-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add metag build infrastructure. Signed-off-by: James Hogan <james.hogan@imgtec.com>
- Loading branch information
James Hogan
committed
Mar 2, 2013
1 parent
79f83c0
commit 5633004
Showing
19 changed files
with
1,124 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,277 @@ | ||
config SYMBOL_PREFIX | ||
string | ||
default "_" | ||
|
||
config METAG | ||
def_bool y | ||
select EMBEDDED | ||
select GENERIC_ATOMIC64 | ||
select GENERIC_CLOCKEVENTS | ||
select GENERIC_IRQ_SHOW | ||
select GENERIC_SIGALTSTACK | ||
select GENERIC_SMP_IDLE_THREAD | ||
select HAVE_64BIT_ALIGNED_ACCESS | ||
select HAVE_ARCH_TRACEHOOK | ||
select HAVE_DEBUG_KMEMLEAK | ||
select HAVE_GENERIC_HARDIRQS | ||
select HAVE_IRQ_WORK | ||
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_SYSCALL_TRACEPOINTS | ||
select IRQ_DOMAIN | ||
select MODULES_USE_ELF_RELA | ||
select OF | ||
select OF_EARLY_FLATTREE | ||
select SPARSE_IRQ | ||
|
||
config ARCH_NO_VIRT_TO_BUS | ||
def_bool y | ||
|
||
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. | ||
|
||
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" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
menu "Kernel hacking" | ||
|
||
config TRACE_IRQFLAGS_SUPPORT | ||
bool | ||
default y | ||
|
||
source "lib/Kconfig.debug" | ||
|
||
config DEBUG_STACKOVERFLOW | ||
bool "Check for stack overflows" | ||
depends on DEBUG_KERNEL | ||
help | ||
This option will cause messages to be printed if free stack space | ||
drops below a certain limit. | ||
|
||
config 4KSTACKS | ||
bool "Use 4Kb for kernel stacks instead of 8Kb" | ||
depends on DEBUG_KERNEL | ||
help | ||
If you say Y here the kernel will use a 4Kb stacksize for the | ||
kernel stack attached to each process/thread. This facilitates | ||
running more threads on a system and also reduces the pressure | ||
on the VM subsystem for higher order allocations. This option | ||
will also use IRQ stacks to compensate for the reduced stackspace. | ||
|
||
config METAG_FUNCTION_TRACE | ||
bool "Output Meta real-time trace data for function entry/exit" | ||
help | ||
If you say Y here the kernel will use the Meta hardware trace | ||
unit to output information about function entry and exit that | ||
can be used by a debugger for profiling and call-graphs. | ||
|
||
config METAG_POISON_CATCH_BUFFERS | ||
bool "Poison catch buffer contents on kernel entry" | ||
help | ||
If you say Y here the kernel will write poison data to the | ||
catch buffer registers on kernel entry. This will make any | ||
problem with catch buffer handling much more apparent. | ||
|
||
endmenu |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
choice | ||
prompt "SoC Type" | ||
default META21_FPGA | ||
|
||
config META12_FPGA | ||
bool "Meta 1.2 FPGA" | ||
select METAG_META12 | ||
help | ||
This is a Meta 1.2 FPGA bitstream, just a bare CPU. | ||
|
||
config META21_FPGA | ||
bool "Meta 2.1 FPGA" | ||
select METAG_META21 | ||
help | ||
This is a Meta 2.1 FPGA bitstream, just a bare CPU. | ||
|
||
endchoice | ||
|
||
menu "SoC configuration" | ||
|
||
if METAG_META21 | ||
|
||
# Meta 2.x specific options | ||
|
||
config METAG_META21_MMU | ||
bool "Meta 2.x MMU mode" | ||
default y | ||
help | ||
Use the Meta 2.x MMU in extended mode. | ||
|
||
config METAG_UNALIGNED | ||
bool "Meta 2.x unaligned access checking" | ||
default y | ||
help | ||
All memory accesses will be checked for alignment and an exception | ||
raised on unaligned accesses. This feature does cost performance | ||
but without it there will be no notification of this type of error. | ||
|
||
config METAG_USER_TCM | ||
bool "Meta on-chip memory support for userland" | ||
select GENERIC_ALLOCATOR | ||
default y | ||
help | ||
Allow the on-chip memories of Meta SoCs to be used by user | ||
applications. | ||
|
||
endif | ||
|
||
config METAG_HALT_ON_PANIC | ||
bool "Halt the core on panic" | ||
help | ||
Halt the core when a panic occurs. This is useful when running | ||
pre-production silicon or in an FPGA environment. | ||
|
||
endmenu |
Oops, something went wrong.