forked from Minki/linux
00e6c92304
Add OProfile support for metag, using the perf backend, and falling back to generic timer based sampling if perf counter interrupt support is disabled. The oprofile code prepends "metag/" to the perf pmu name to give "metag/meta2" which is more consistent with other oprofile arch names. The backtrace code makes use of <asm/stacktrace.h> for kernel backtracing, and a simple frame pointer walk for userland backtracing. Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Robert Richter <rric@kernel.org> Cc: oprofile-list@lists.sf.net
295 lines
7.1 KiB
Plaintext
295 lines
7.1 KiB
Plaintext
config SYMBOL_PREFIX
|
|
string
|
|
default "_"
|
|
|
|
config METAG
|
|
def_bool y
|
|
select EMBEDDED
|
|
select GENERIC_ATOMIC64
|
|
select GENERIC_CLOCKEVENTS
|
|
select GENERIC_IRQ_SHOW
|
|
select GENERIC_SMP_IDLE_THREAD
|
|
select HAVE_64BIT_ALIGNED_ACCESS
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_C_RECORDMCOUNT
|
|
select HAVE_DEBUG_KMEMLEAK
|
|
select HAVE_DYNAMIC_FTRACE
|
|
select HAVE_FTRACE_MCOUNT_RECORD
|
|
select HAVE_FUNCTION_TRACER
|
|
select HAVE_FUNCTION_TRACE_MCOUNT_TEST
|
|
select HAVE_GENERIC_HARDIRQS
|
|
select HAVE_KERNEL_BZIP2
|
|
select HAVE_KERNEL_GZIP
|
|
select HAVE_KERNEL_LZO
|
|
select HAVE_KERNEL_XZ
|
|
select HAVE_MEMBLOCK
|
|
select HAVE_MEMBLOCK_NODE_MAP
|
|
select HAVE_MOD_ARCH_SPECIFIC
|
|
select HAVE_OPROFILE
|
|
select HAVE_PERF_EVENTS
|
|
select HAVE_SYSCALL_TRACEPOINTS
|
|
select IRQ_DOMAIN
|
|
select MODULES_USE_ELF_RELA
|
|
select OF
|
|
select OF_EARLY_FLATTREE
|
|
select SPARSE_IRQ
|
|
|
|
config STACKTRACE_SUPPORT
|
|
def_bool y
|
|
|
|
config LOCKDEP_SUPPORT
|
|
def_bool y
|
|
|
|
config HAVE_LATENCYTOP_SUPPORT
|
|
def_bool y
|
|
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
def_bool y
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
bool
|
|
|
|
config GENERIC_HWEIGHT
|
|
def_bool y
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
def_bool y
|
|
|
|
config GENERIC_GPIO
|
|
def_bool n
|
|
|
|
config NO_IOPORT
|
|
def_bool y
|
|
|
|
source "init/Kconfig"
|
|
|
|
source "kernel/Kconfig.freezer"
|
|
|
|
menu "Processor type and features"
|
|
|
|
config MMU
|
|
def_bool y
|
|
|
|
config STACK_GROWSUP
|
|
def_bool y
|
|
|
|
config HOTPLUG_CPU
|
|
bool "Enable CPU hotplug support"
|
|
depends on SMP
|
|
help
|
|
Say Y here to allow turning CPUs off and on. CPUs can be
|
|
controlled through /sys/devices/system/cpu.
|
|
|
|
Say N if you want to disable CPU hotplug.
|
|
|
|
config HIGHMEM
|
|
bool "High Memory Support"
|
|
help
|
|
The address space of Meta processors is only 4 Gigabytes large
|
|
and it has to accommodate user address space, kernel address
|
|
space as well as some memory mapped IO. That means that, if you
|
|
have a large amount of physical memory and/or IO, not all of the
|
|
memory can be "permanently mapped" by the kernel. The physical
|
|
memory that is not permanently mapped is called "high memory".
|
|
|
|
Depending on the selected kernel/user memory split, minimum
|
|
vmalloc space and actual amount of RAM, you may not need this
|
|
option which should result in a slightly faster kernel.
|
|
|
|
If unsure, say n.
|
|
|
|
source "arch/metag/mm/Kconfig"
|
|
|
|
source "arch/metag/Kconfig.soc"
|
|
|
|
config METAG_META12
|
|
bool
|
|
help
|
|
Select this from the SoC config symbol to indicate that it contains a
|
|
Meta 1.2 core.
|
|
|
|
config METAG_META21
|
|
bool
|
|
help
|
|
Select this from the SoC config symbol to indicate that it contains a
|
|
Meta 2.1 core.
|
|
|
|
config SMP
|
|
bool "Symmetric multi-processing support"
|
|
depends on METAG_META21 && METAG_META21_MMU
|
|
select USE_GENERIC_SMP_HELPERS
|
|
help
|
|
This enables support for systems with more than one thread running
|
|
Linux. If you have a system with only one thread running Linux,
|
|
say N. Otherwise, say Y.
|
|
|
|
config NR_CPUS
|
|
int "Maximum number of CPUs (2-4)" if SMP
|
|
range 2 4 if SMP
|
|
default "1" if !SMP
|
|
default "4" if SMP
|
|
|
|
config METAG_SMP_WRITE_REORDERING
|
|
bool
|
|
help
|
|
This attempts to prevent cache-memory incoherence due to external
|
|
reordering of writes from different hardware threads when SMP is
|
|
enabled. It adds fences (system event 0) to smp_mb and smp_rmb in an
|
|
attempt to catch some of the cases, and also before writes to shared
|
|
memory in LOCK1 protected atomics and spinlocks.
|
|
This will not completely prevent cache incoherency on affected cores.
|
|
|
|
config METAG_LNKGET_AROUND_CACHE
|
|
bool
|
|
depends on METAG_META21
|
|
help
|
|
This indicates that the LNKGET/LNKSET instructions go around the
|
|
cache, which requires some extra cache flushes when the memory needs
|
|
to be accessed by normal GET/SET instructions too.
|
|
|
|
choice
|
|
prompt "Atomicity primitive"
|
|
default METAG_ATOMICITY_LNKGET
|
|
help
|
|
This option selects the mechanism for performing atomic operations.
|
|
|
|
config METAG_ATOMICITY_IRQSOFF
|
|
depends on !SMP
|
|
bool "irqsoff"
|
|
help
|
|
This option disables interrupts to achieve atomicity. This mechanism
|
|
is not SMP-safe.
|
|
|
|
config METAG_ATOMICITY_LNKGET
|
|
depends on METAG_META21
|
|
bool "lnkget/lnkset"
|
|
help
|
|
This option uses the LNKGET and LNKSET instructions to achieve
|
|
atomicity. LNKGET/LNKSET are load-link/store-conditional instructions.
|
|
Choose this option if your system requires low latency.
|
|
|
|
config METAG_ATOMICITY_LOCK1
|
|
depends on SMP
|
|
bool "lock1"
|
|
help
|
|
This option uses the LOCK1 instruction for atomicity. This is mainly
|
|
provided as a debugging aid if the lnkget/lnkset atomicity primitive
|
|
isn't working properly.
|
|
|
|
endchoice
|
|
|
|
config METAG_FPU
|
|
bool "FPU Support"
|
|
depends on METAG_META21
|
|
default y
|
|
help
|
|
This option allows processes to use FPU hardware available with this
|
|
CPU. If this option is not enabled FPU registers will not be saved
|
|
and restored on context-switch.
|
|
|
|
If you plan on running programs which are compiled to use hard floats
|
|
say Y here.
|
|
|
|
config METAG_DSP
|
|
bool "DSP Support"
|
|
help
|
|
This option allows processes to use DSP hardware available
|
|
with this CPU. If this option is not enabled DSP registers
|
|
will not be saved and restored on context-switch.
|
|
|
|
If you plan on running DSP programs say Y here.
|
|
|
|
config METAG_PERFCOUNTER_IRQS
|
|
bool "PerfCounters interrupt support"
|
|
depends on METAG_META21
|
|
help
|
|
This option enables using interrupts to collect information from
|
|
Performance Counters. This option is supported in new META21
|
|
(starting from HTP265).
|
|
|
|
When disabled, Performance Counters information will be collected
|
|
based on Timer Interrupt.
|
|
|
|
config HW_PERF_EVENTS
|
|
def_bool METAG_PERFCOUNTER_IRQS && PERF_EVENTS
|
|
|
|
config METAG_DA
|
|
bool "DA support"
|
|
help
|
|
Say Y if you plan to use a DA debug adapter with Linux. The presence
|
|
of the DA will be detected automatically at boot, so it is safe to say
|
|
Y to this option even when booting without a DA.
|
|
|
|
This enables support for services provided by DA JTAG debug adapters,
|
|
such as:
|
|
- communication over DA channels (such as the console driver).
|
|
- use of the DA filesystem.
|
|
|
|
menu "Boot options"
|
|
|
|
config METAG_BUILTIN_DTB
|
|
bool "Embed DTB in kernel image"
|
|
default y
|
|
help
|
|
Embeds a device tree binary in the kernel image.
|
|
|
|
config METAG_BUILTIN_DTB_NAME
|
|
string "Built in DTB"
|
|
depends on METAG_BUILTIN_DTB
|
|
help
|
|
Set the name of the DTB to embed (leave blank to pick one
|
|
automatically based on kernel configuration).
|
|
|
|
config CMDLINE_BOOL
|
|
bool "Default bootloader kernel arguments"
|
|
|
|
config CMDLINE
|
|
string "Kernel command line"
|
|
depends on CMDLINE_BOOL
|
|
help
|
|
On some architectures there is currently no way for the boot loader
|
|
to pass arguments to the kernel. For these architectures, you should
|
|
supply some command-line options at build time by entering them
|
|
here.
|
|
|
|
config CMDLINE_FORCE
|
|
bool "Force default kernel command string"
|
|
depends on CMDLINE_BOOL
|
|
help
|
|
Set this to have arguments from the default kernel command string
|
|
override those passed by the boot loader.
|
|
|
|
endmenu
|
|
|
|
source "kernel/Kconfig.preempt"
|
|
|
|
source kernel/Kconfig.hz
|
|
|
|
endmenu
|
|
|
|
menu "Power management options"
|
|
|
|
source kernel/power/Kconfig
|
|
|
|
endmenu
|
|
|
|
menu "Executable file formats"
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
endmenu
|
|
|
|
source "net/Kconfig"
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
source "fs/Kconfig"
|
|
|
|
source "arch/metag/Kconfig.debug"
|
|
|
|
source "security/Kconfig"
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
source "lib/Kconfig"
|