ImgTec Meta architecture changes for v3.9-rc1
This adds core architecture support for Imagination's Meta processor
cores, followed by some later miscellaneous arch/metag cleanups and
fixes which I kept separate to ease review:
- Support for basic Meta 1 (ATP) and Meta 2 (HTP) core architecture
- A few fixes all over, particularly for symbol prefixes
- A few privilege protection fixes
- Several cleanups (setup.c includes, split out a lot of metag_ksyms.c)
- Fix some missing exports
- Convert hugetlb to use vm_unmapped_area()
- Copy device tree to non-init memory
- Provide dma_get_sgtable()
Signed-off-by: James Hogan <james.hogan@imgtec.com>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (GNU/Linux)
iQIcBAABAgAGBQJRMmVXAAoJEKHZs+irPybfivgP/inEXqJyfw59omQdjwvYcU/a
/u0MJ3UKSNS3U+HknfaFCy/Nwk1dqPLjqqyVC1V6AbUPBXlaEwGcimlNRx2uRjdq
Uh96upMLHsNuF/xiiR477g3RwY0egIJdM1R1bGi3mZ3vVrNQGF+wbni6f61xCWGz
M/4rDglpQvE79oLhYdgj6tidZtHQT0YWtERA9W90zkQWXGYmpFPKBKbfZAi5+rKQ
U6Gpg26orUugzXNaxltJEYKE8gjLTppEabx8DARnItZ4zCMy4dw5RBJ35RFvQw6e
eSmfgTy9w9WqBMY2+QMSgU0KQt1IITCzX7OlOXC0jALQJXoU0WWbOELlBVQLCwF1
T0OcR/5ZP/hIlOk5Dh+e9U3AtbASXdMtqA0ZUe78woH1CBf7Nc/0c0vRg23EdMh8
lnHDJxT/UqskoOYLI4kgWbEdLDy4uTh19U2pVi7VCo7ksLB9Bj9Xc8VSKgscSXTl
OwzN+c4Jgtu8FDFTp+Af4AT8pYGJ08j8L2ErsV2sOv3Q44U5WXdrMz3GSgwXj8+4
wZk3HvdkQVkMD5sJCUZgAswaN6BnbB0pHdCz4wMQ8jR/Ogs015Ipk64Ecym9S/4n
uES7PnDtt/4lb5EyX2ScbvdnZTAFTaaP7OOhC77BOQvbQjIW1tkAcxWJqRry86uS
iM0BFgK6Ohx3geqa5Ft0
=65cR
-----END PGP SIGNATURE-----
Merge tag 'metag-v3.9-rc1-v4' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag
Pull new ImgTec Meta architecture from James Hogan:
"This adds core architecture support for Imagination's Meta processor
cores, followed by some later miscellaneous arch/metag cleanups and
fixes which I kept separate to ease review:
- Support for basic Meta 1 (ATP) and Meta 2 (HTP) core architecture
- A few fixes all over, particularly for symbol prefixes
- A few privilege protection fixes
- Several cleanups (setup.c includes, split out a lot of
metag_ksyms.c)
- Fix some missing exports
- Convert hugetlb to use vm_unmapped_area()
- Copy device tree to non-init memory
- Provide dma_get_sgtable()"
* tag 'metag-v3.9-rc1-v4' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: (61 commits)
metag: Provide dma_get_sgtable()
metag: prom.h: remove declaration of metag_dt_memblock_reserve()
metag: copy devicetree to non-init memory
metag: cleanup metag_ksyms.c includes
metag: move mm/init.c exports out of metag_ksyms.c
metag: move usercopy.c exports out of metag_ksyms.c
metag: move setup.c exports out of metag_ksyms.c
metag: move kick.c exports out of metag_ksyms.c
metag: move traps.c exports out of metag_ksyms.c
metag: move irq enable out of irqflags.h on SMP
genksyms: fix metag symbol prefix on crc symbols
metag: hugetlb: convert to vm_unmapped_area()
metag: export clear_page and copy_page
metag: export metag_code_cache_flush_all
metag: protect more non-MMU memory regions
metag: make TXPRIVEXT bits explicit
metag: kernel/setup.c: sort includes
perf: Enable building perf tools for Meta
metag: add boot time LNKGET/LNKSET check
metag: add __init to metag_cache_probe()
...
This commit is contained in:
commit
8fd5e7a2d9
200 changed files with 26934 additions and 8 deletions
|
|
@ -299,6 +299,8 @@ memory-hotplug.txt
|
|||
- Hotpluggable memory support, how to use and current status.
|
||||
memory.txt
|
||||
- info on typical Linux memory problems.
|
||||
metag/
|
||||
- directory with info about Linux on Meta architecture.
|
||||
mips/
|
||||
- directory with info about Linux on MIPS architecture.
|
||||
misc-devices/
|
||||
|
|
|
|||
82
Documentation/devicetree/bindings/metag/meta-intc.txt
Normal file
82
Documentation/devicetree/bindings/metag/meta-intc.txt
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
* Meta External Trigger Controller Binding
|
||||
|
||||
This binding specifies what properties must be available in the device tree
|
||||
representation of a Meta external trigger controller.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: Specifies the compatibility list for the interrupt controller.
|
||||
The type shall be <string> and the value shall include "img,meta-intc".
|
||||
|
||||
- num-banks: Specifies the number of interrupt banks (each of which can
|
||||
handle 32 interrupt sources).
|
||||
|
||||
- interrupt-controller: The presence of this property identifies the node
|
||||
as an interupt controller. No property value shall be defined.
|
||||
|
||||
- #interrupt-cells: Specifies the number of cells needed to encode an
|
||||
interrupt source. The type shall be a <u32> and the value shall be 2.
|
||||
|
||||
- #address-cells: Specifies the number of cells needed to encode an
|
||||
address. The type shall be <u32> and the value shall be 0. As such,
|
||||
'interrupt-map' nodes do not have to specify a parent unit address.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- no-mask: The controller doesn't have any mask registers.
|
||||
|
||||
* Interrupt Specifier Definition
|
||||
|
||||
Interrupt specifiers consists of 2 cells encoded as follows:
|
||||
|
||||
- <1st-cell>: The interrupt-number that identifies the interrupt source.
|
||||
|
||||
- <2nd-cell>: The Linux interrupt flags containing level-sense information,
|
||||
encoded as follows:
|
||||
1 = edge triggered
|
||||
4 = level-sensitive
|
||||
|
||||
* Examples
|
||||
|
||||
Example 1:
|
||||
|
||||
/*
|
||||
* Meta external trigger block
|
||||
*/
|
||||
intc: intc {
|
||||
// This is an interrupt controller node.
|
||||
interrupt-controller;
|
||||
|
||||
// No address cells so that 'interrupt-map' nodes which
|
||||
// reference this interrupt controller node do not need a parent
|
||||
// address specifier.
|
||||
#address-cells = <0>;
|
||||
|
||||
// Two cells to encode interrupt sources.
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
// Number of interrupt banks
|
||||
num-banks = <2>;
|
||||
|
||||
// No HWMASKEXT is available (specify on Chorus2 and Comet ES1)
|
||||
no-mask;
|
||||
|
||||
// Compatible with Meta hardware trigger block.
|
||||
compatible = "img,meta-intc";
|
||||
};
|
||||
|
||||
Example 2:
|
||||
|
||||
/*
|
||||
* An interrupt generating device that is wired to a Meta external
|
||||
* trigger block.
|
||||
*/
|
||||
uart1: uart@0x02004c00 {
|
||||
// Interrupt source '5' that is level-sensitive.
|
||||
// Note that there are only two cells as specified in the
|
||||
// interrupt parent's '#interrupt-cells' property.
|
||||
interrupts = <5 4 /* level */>;
|
||||
|
||||
// The interrupt controller that this device is wired to.
|
||||
interrupt-parent = <&intc>;
|
||||
};
|
||||
|
|
@ -978,6 +978,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
If specified, z/VM IUCV HVC accepts connections
|
||||
from listed z/VM user IDs only.
|
||||
|
||||
hwthread_map= [METAG] Comma-separated list of Linux cpu id to
|
||||
hardware thread id mappings.
|
||||
Format: <cpu>:<hwthread>
|
||||
|
||||
keep_bootcon [KNL]
|
||||
Do not unregister boot console at start. This is only
|
||||
useful for debugging when something happens in the window
|
||||
|
|
|
|||
4
Documentation/metag/00-INDEX
Normal file
4
Documentation/metag/00-INDEX
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
00-INDEX
|
||||
- this file
|
||||
kernel-ABI.txt
|
||||
- Documents metag ABI details
|
||||
256
Documentation/metag/kernel-ABI.txt
Normal file
256
Documentation/metag/kernel-ABI.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
==========================
|
||||
KERNEL ABIS FOR METAG ARCH
|
||||
==========================
|
||||
|
||||
This document describes the Linux ABIs for the metag architecture, and has the
|
||||
following sections:
|
||||
|
||||
(*) Outline of registers
|
||||
(*) Userland registers
|
||||
(*) Kernel registers
|
||||
(*) System call ABI
|
||||
(*) Calling conventions
|
||||
|
||||
|
||||
====================
|
||||
OUTLINE OF REGISTERS
|
||||
====================
|
||||
|
||||
The main Meta core registers are arranged in units:
|
||||
|
||||
UNIT Type DESCRIPTION GP EXT PRIV GLOBAL
|
||||
======= ======= =============== ======= ======= ======= =======
|
||||
CT Special Control unit
|
||||
D0 General Data unit 0 0-7 8-15 16-31 16-31
|
||||
D1 General Data unit 1 0-7 8-15 16-31 16-31
|
||||
A0 General Address unit 0 0-3 4-7 8-15 8-15
|
||||
A1 General Address unit 1 0-3 4-7 8-15 8-15
|
||||
PC Special PC unit 0 1
|
||||
PORT Special Ports
|
||||
TR Special Trigger unit 0-7
|
||||
TT Special Trace unit 0-5
|
||||
FX General FP unit 0-15
|
||||
|
||||
GP registers form part of the main context.
|
||||
|
||||
Extended context registers (EXT) may not be present on all hardware threads and
|
||||
can be context switched if support is enabled and the appropriate bits are set
|
||||
in e.g. the D0.8 register to indicate what extended state to preserve.
|
||||
|
||||
Global registers are shared between threads and are privilege protected.
|
||||
|
||||
See arch/metag/include/asm/metag_regs.h for definitions relating to core
|
||||
registers and the fields and bits they contain. See the TRMs for further details
|
||||
about special registers.
|
||||
|
||||
Several special registers are preserved in the main context, these are the
|
||||
interesting ones:
|
||||
|
||||
REG (ALIAS) PURPOSE
|
||||
======================= ===============================================
|
||||
CT.1 (TXMODE) Processor mode bits (particularly for DSP)
|
||||
CT.2 (TXSTATUS) Condition flags and LSM_STEP (MGET/MSET step)
|
||||
CT.3 (TXRPT) Branch repeat counter
|
||||
PC.0 (PC) Program counter
|
||||
|
||||
Some of the general registers have special purposes in the ABI and therefore
|
||||
have aliases:
|
||||
|
||||
D0 REG (ALIAS) PURPOSE D1 REG (ALIAS) PURPOSE
|
||||
=============== =============== =============== =======================
|
||||
D0.0 (D0Re0) 32bit result D1.0 (D1Re0) Top half of 64bit result
|
||||
D0.1 (D0Ar6) Argument 6 D1.1 (D1Ar5) Argument 5
|
||||
D0.2 (D0Ar4) Argument 4 D1.2 (D1Ar3) Argument 3
|
||||
D0.3 (D0Ar2) Argument 2 D1.3 (D1Ar1) Argument 1
|
||||
D0.4 (D0FrT) Frame temp D1.4 (D1RtP) Return pointer
|
||||
D0.5 Call preserved D1.5 Call preserved
|
||||
D0.6 Call preserved D1.6 Call preserved
|
||||
D0.7 Call preserved D1.7 Call preserved
|
||||
|
||||
A0 REG (ALIAS) PURPOSE A1 REG (ALIAS) PURPOSE
|
||||
=============== =============== =============== =======================
|
||||
A0.0 (A0StP) Stack pointer A1.0 (A1GbP) Global base pointer
|
||||
A0.1 (A0FrP) Frame pointer A1.1 (A1LbP) Local base pointer
|
||||
A0.2 A1.2
|
||||
A0.3 A1.3
|
||||
|
||||
|
||||
==================
|
||||
USERLAND REGISTERS
|
||||
==================
|
||||
|
||||
All the general purpose D0, D1, A0, A1 registers are preserved when entering the
|
||||
kernel (including asynchronous events such as interrupts and timer ticks) except
|
||||
the following which have special purposes in the ABI:
|
||||
|
||||
REGISTERS WHEN STATUS PURPOSE
|
||||
=============== ======= =============== ===============================
|
||||
D0.8 DSP Preserved ECH, determines what extended
|
||||
DSP state to preserve.
|
||||
A0.0 (A0StP) ALWAYS Preserved Stack >= A0StP may be clobbered
|
||||
at any time by the creation of a
|
||||
signal frame.
|
||||
A1.0 (A1GbP) SMP Clobbered Used as temporary for loading
|
||||
kernel stack pointer and saving
|
||||
core context.
|
||||
A0.15 !SMP Protected Stores kernel stack pointer.
|
||||
A1.15 ALWAYS Protected Stores kernel base pointer.
|
||||
|
||||
On UP A0.15 is used to store the kernel stack pointer for storing the userland
|
||||
context. A0.15 is global between hardware threads though which means it cannot
|
||||
be used on SMP for this purpose. Since no protected local registers are
|
||||
available A1GbP is reserved for use as a temporary to allow a percpu stack
|
||||
pointer to be loaded for storing the rest of the context.
|
||||
|
||||
|
||||
================
|
||||
KERNEL REGISTERS
|
||||
================
|
||||
|
||||
When in the kernel the following registers have special purposes in the ABI:
|
||||
|
||||
REGISTERS WHEN STATUS PURPOSE
|
||||
=============== ======= =============== ===============================
|
||||
A0.0 (A0StP) ALWAYS Preserved Stack >= A0StP may be clobbered
|
||||
at any time by the creation of
|
||||
an irq signal frame.
|
||||
A1.0 (A1GbP) ALWAYS Preserved Reserved (kernel base pointer).
|
||||
|
||||
|
||||
===============
|
||||
SYSTEM CALL ABI
|
||||
===============
|
||||
|
||||
When a system call is made, the following registers are effective:
|
||||
|
||||
REGISTERS CALL RETURN
|
||||
=============== ======================= ===============================
|
||||
D0.0 (D0Re0) Return value (or -errno)
|
||||
D1.0 (D1Re0) System call number Clobbered
|
||||
D0.1 (D0Ar6) Syscall arg #6 Preserved
|
||||
D1.1 (D1Ar5) Syscall arg #5 Preserved
|
||||
D0.2 (D0Ar4) Syscall arg #4 Preserved
|
||||
D1.2 (D1Ar3) Syscall arg #3 Preserved
|
||||
D0.3 (D0Ar2) Syscall arg #2 Preserved
|
||||
D1.3 (D1Ar1) Syscall arg #1 Preserved
|
||||
|
||||
Due to the limited number of argument registers and some system calls with badly
|
||||
aligned 64-bit arguments, 64-bit values are always packed in consecutive
|
||||
arguments, even if this is contrary to the normal calling conventions (where the
|
||||
two halves would go in a matching pair of data registers).
|
||||
|
||||
For example fadvise64_64 usually has the signature:
|
||||
|
||||
long sys_fadvise64_64(i32 fd, i64 offs, i64 len, i32 advice);
|
||||
|
||||
But for metag fadvise64_64 is wrapped so that the 64-bit arguments are packed:
|
||||
|
||||
long sys_fadvise64_64_metag(i32 fd, i32 offs_lo,
|
||||
i32 offs_hi, i32 len_lo,
|
||||
i32 len_hi, i32 advice)
|
||||
|
||||
So the arguments are packed in the registers like this:
|
||||
|
||||
D0 REG (ALIAS) VALUE D1 REG (ALIAS) VALUE
|
||||
=============== =============== =============== =======================
|
||||
D0.1 (D0Ar6) advice D1.1 (D1Ar5) hi(len)
|
||||
D0.2 (D0Ar4) lo(len) D1.2 (D1Ar3) hi(offs)
|
||||
D0.3 (D0Ar2) lo(offs) D1.3 (D1Ar1) fd
|
||||
|
||||
|
||||
===================
|
||||
CALLING CONVENTIONS
|
||||
===================
|
||||
|
||||
These calling conventions apply to both user and kernel code. The stack grows
|
||||
from low addresses to high addresses in the metag ABI. The stack pointer (A0StP)
|
||||
should always point to the next free address on the stack and should at all
|
||||
times be 64-bit aligned. The following registers are effective at the point of a
|
||||
call:
|
||||
|
||||
REGISTERS CALL RETURN
|
||||
=============== ======================= ===============================
|
||||
D0.0 (D0Re0) 32bit return value
|
||||
D1.0 (D1Re0) Upper half of 64bit return value
|
||||
D0.1 (D0Ar6) 32bit argument #6 Clobbered
|
||||
D1.1 (D1Ar5) 32bit argument #5 Clobbered
|
||||
D0.2 (D0Ar4) 32bit argument #4 Clobbered
|
||||
D1.2 (D1Ar3) 32bit argument #3 Clobbered
|
||||
D0.3 (D0Ar2) 32bit argument #2 Clobbered
|
||||
D1.3 (D1Ar1) 32bit argument #1 Clobbered
|
||||
D0.4 (D0FrT) Clobbered
|
||||
D1.4 (D1RtP) Return pointer Clobbered
|
||||
D{0-1}.{5-7} Preserved
|
||||
A0.0 (A0StP) Stack pointer Preserved
|
||||
A1.0 (A0GbP) Preserved
|
||||
A0.1 (A0FrP) Frame pointer Preserved
|
||||
A1.1 (A0LbP) Preserved
|
||||
A{0-1},{2-3} Clobbered
|
||||
|
||||
64-bit arguments are placed in matching pairs of registers (i.e. the same
|
||||
register number in both D0 and D1 units), with the least significant half in D0
|
||||
and the most significant half in D1, leaving a gap where necessary. Futher
|
||||
arguments are stored on the stack in reverse order (earlier arguments at higher
|
||||
addresses):
|
||||
|
||||
ADDRESS 0 1 2 3 4 5 6 7
|
||||
=============== ===== ===== ===== ===== ===== ===== ===== =====
|
||||
A0StP -->
|
||||
A0StP-0x08 32bit argument #8 32bit argument #7
|
||||
A0StP-0x10 32bit argument #10 32bit argument #9
|
||||
|
||||
Function prologues tend to look a bit like this:
|
||||
|
||||
/* If frame pointer in use, move it to frame temp register so it can be
|
||||
easily pushed onto stack */
|
||||
MOV D0FrT,A0FrP
|
||||
|
||||
/* If frame pointer in use, set it to stack pointer */
|
||||
ADD A0FrP,A0StP,#0
|
||||
|
||||
/* Preserve D0FrT, D1RtP, D{0-1}.{5-7} on stack, incrementing A0StP */
|
||||
MSETL [A0StP++],D0FrT,D0.5,D0.6,D0.7
|
||||
|
||||
/* Allocate some stack space for local variables */
|
||||
ADD A0StP,A0StP,#0x10
|
||||
|
||||
At this point the stack would look like this:
|
||||
|
||||
ADDRESS 0 1 2 3 4 5 6 7
|
||||
=============== ===== ===== ===== ===== ===== ===== ===== =====
|
||||
A0StP -->
|
||||
A0StP-0x08
|
||||
A0StP-0x10
|
||||
A0StP-0x18 Old D0.7 Old D1.7
|
||||
A0StP-0x20 Old D0.6 Old D1.6
|
||||
A0StP-0x28 Old D0.5 Old D1.5
|
||||
A0FrP --> Old A0FrP (frame ptr) Old D1RtP (return ptr)
|
||||
A0FrP-0x08 32bit argument #8 32bit argument #7
|
||||
A0FrP-0x10 32bit argument #10 32bit argument #9
|
||||
|
||||
Function epilogues tend to differ depending on the use of a frame pointer. An
|
||||
example of a frame pointer epilogue:
|
||||
|
||||
/* Restore D0FrT, D1RtP, D{0-1}.{5-7} from stack, incrementing A0FrP */
|
||||
MGETL D0FrT,D0.5,D0.6,D0.7,[A0FrP++]
|
||||
/* Restore stack pointer to where frame pointer was before increment */
|
||||
SUB A0StP,A0FrP,#0x20
|
||||
/* Restore frame pointer from frame temp */
|
||||
MOV A0FrP,D0FrT
|
||||
/* Return to caller via restored return pointer */
|
||||
MOV PC,D1RtP
|
||||
|
||||
If the function hasn't touched the frame pointer, MGETL cannot be safely used
|
||||
with A0StP as it always increments and that would expose the stack to clobbering
|
||||
by interrupts (kernel) or signals (user). Therefore it's common to see the MGETL
|
||||
split into separate GETL instructions:
|
||||
|
||||
/* Restore D0FrT, D1RtP, D{0-1}.{5-7} from stack */
|
||||
GETL D0FrT,D1RtP,[A0StP+#-0x30]
|
||||
GETL D0.5,D1.5,[A0StP+#-0x28]
|
||||
GETL D0.6,D1.6,[A0StP+#-0x20]
|
||||
GETL D0.7,D1.7,[A0StP+#-0x18]
|
||||
/* Restore stack pointer */
|
||||
SUB A0StP,A0StP,#0x30
|
||||
/* Return to caller via restored return pointer */
|
||||
MOV PC,D1RtP
|
||||
12
MAINTAINERS
12
MAINTAINERS
|
|
@ -5204,6 +5204,18 @@ F: drivers/mtd/
|
|||
F: include/linux/mtd/
|
||||
F: include/uapi/mtd/
|
||||
|
||||
METAG ARCHITECTURE
|
||||
M: James Hogan <james.hogan@imgtec.com>
|
||||
S: Supported
|
||||
F: arch/metag/
|
||||
F: Documentation/metag/
|
||||
F: Documentation/devicetree/bindings/metag/
|
||||
F: drivers/clocksource/metag_generic.c
|
||||
F: drivers/irqchip/irq-metag.c
|
||||
F: drivers/irqchip/irq-metag-ext.c
|
||||
F: drivers/tty/metag_da.c
|
||||
F: fs/imgdafs/
|
||||
|
||||
MICROBLAZE ARCHITECTURE
|
||||
M: Michal Simek <monstr@monstr.eu>
|
||||
L: microblaze-uclinux@itee.uq.edu.au (moderated for non-subscribers)
|
||||
|
|
|
|||
16
arch/Kconfig
16
arch/Kconfig
|
|
@ -103,6 +103,22 @@ config UPROBES
|
|||
|
||||
If in doubt, say "N".
|
||||
|
||||
config HAVE_64BIT_ALIGNED_ACCESS
|
||||
def_bool 64BIT && !HAVE_EFFICIENT_UNALIGNED_ACCESS
|
||||
help
|
||||
Some architectures require 64 bit accesses to be 64 bit
|
||||
aligned, which also requires structs containing 64 bit values
|
||||
to be 64 bit aligned too. This includes some 32 bit
|
||||
architectures which can do 64 bit accesses, as well as 64 bit
|
||||
architectures without unaligned access.
|
||||
|
||||
This symbol should be selected by an architecture if 64 bit
|
||||
accesses are required to be 64 bit aligned in this way even
|
||||
though it is not a 64 bit architecture.
|
||||
|
||||
See Documentation/unaligned-memory-access.txt for more
|
||||
information on the topic of unaligned memory accesses.
|
||||
|
||||
config HAVE_EFFICIENT_UNALIGNED_ACCESS
|
||||
bool
|
||||
help
|
||||
|
|
|
|||
290
arch/metag/Kconfig
Normal file
290
arch/metag/Kconfig
Normal file
|
|
@ -0,0 +1,290 @@
|
|||
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_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 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"
|
||||
40
arch/metag/Kconfig.debug
Normal file
40
arch/metag/Kconfig.debug
Normal file
|
|
@ -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
|
||||
55
arch/metag/Kconfig.soc
Normal file
55
arch/metag/Kconfig.soc
Normal file
|
|
@ -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
|
||||
87
arch/metag/Makefile
Normal file
87
arch/metag/Makefile
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
#
|
||||
# metag/Makefile
|
||||
#
|
||||
# This file is included by the global makefile so that you can add your own
|
||||
# architecture-specific flags and dependencies. Remember to do have actions
|
||||
# for "archclean" cleaning up for this architecture.
|
||||
#
|
||||
# This file is subject to the terms and conditions of the GNU General Public
|
||||
# License. See the file "COPYING" in the main directory of this archive
|
||||
# for more details.
|
||||
#
|
||||
# Copyright (C) 1994 by Linus Torvalds
|
||||
# 2007,2008,2012 by Imagination Technologies Ltd.
|
||||
#
|
||||
|
||||
LDFLAGS :=
|
||||
OBJCOPYFLAGS := -O binary -R .note -R .comment -S
|
||||
|
||||
checkflags-$(CONFIG_METAG_META12) += -DMETAC_1_2
|
||||
checkflags-$(CONFIG_METAG_META21) += -DMETAC_2_1
|
||||
CHECKFLAGS += -D__metag__ $(checkflags-y)
|
||||
|
||||
KBUILD_DEFCONFIG := meta2_defconfig
|
||||
|
||||
sflags-$(CONFIG_METAG_META12) += -mmetac=1.2
|
||||
ifeq ($(CONFIG_METAG_META12),y)
|
||||
# Only use TBI API 1.4 if DSP is enabled for META12 cores
|
||||
sflags-$(CONFIG_METAG_DSP) += -DTBI_1_4
|
||||
endif
|
||||
sflags-$(CONFIG_METAG_META21) += -mmetac=2.1 -DTBI_1_4
|
||||
|
||||
cflags-$(CONFIG_METAG_FUNCTION_TRACE) += -mhwtrace-leaf -mhwtrace-retpc
|
||||
cflags-$(CONFIG_METAG_META21) += -mextensions=bex
|
||||
|
||||
KBUILD_CFLAGS += -pipe
|
||||
KBUILD_CFLAGS += -ffunction-sections
|
||||
|
||||
KBUILD_CFLAGS += $(sflags-y) $(cflags-y)
|
||||
KBUILD_AFLAGS += $(sflags-y)
|
||||
|
||||
LDFLAGS_vmlinux := $(ldflags-y)
|
||||
|
||||
head-y := arch/metag/kernel/head.o
|
||||
|
||||
core-y += arch/metag/boot/dts/
|
||||
core-y += arch/metag/kernel/
|
||||
core-y += arch/metag/mm/
|
||||
|
||||
libs-y += arch/metag/lib/
|
||||
libs-y += arch/metag/tbx/
|
||||
|
||||
boot := arch/metag/boot
|
||||
|
||||
boot_targets += uImage
|
||||
boot_targets += uImage.gz
|
||||
boot_targets += uImage.bz2
|
||||
boot_targets += uImage.xz
|
||||
boot_targets += uImage.lzo
|
||||
boot_targets += uImage.bin
|
||||
boot_targets += vmlinux.bin
|
||||
|
||||
PHONY += $(boot_targets)
|
||||
|
||||
all: vmlinux.bin
|
||||
|
||||
$(boot_targets): vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
||||
|
||||
%.dtb %.dtb.S %.dtb.o: scripts
|
||||
$(Q)$(MAKE) $(build)=$(boot)/dts $(boot)/dts/$@
|
||||
|
||||
dtbs: scripts
|
||||
$(Q)$(MAKE) $(build)=$(boot)/dts dtbs
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
define archhelp
|
||||
echo '* vmlinux.bin - Binary kernel image (arch/$(ARCH)/boot/vmlinux.bin)'
|
||||
@echo ' uImage - Alias to bootable U-Boot image'
|
||||
@echo ' uImage.bin - Kernel-only image for U-Boot (bin)'
|
||||
@echo ' uImage.gz - Kernel-only image for U-Boot (gzip)'
|
||||
@echo ' uImage.bz2 - Kernel-only image for U-Boot (bzip2)'
|
||||
@echo ' uImage.xz - Kernel-only image for U-Boot (xz)'
|
||||
@echo ' uImage.lzo - Kernel-only image for U-Boot (lzo)'
|
||||
@echo ' dtbs - Build device tree blobs for enabled boards'
|
||||
endef
|
||||
4
arch/metag/boot/.gitignore
vendored
Normal file
4
arch/metag/boot/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
vmlinux*
|
||||
uImage*
|
||||
ramdisk.*
|
||||
*.dtb
|
||||
68
arch/metag/boot/Makefile
Normal file
68
arch/metag/boot/Makefile
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
#
|
||||
# This file is subject to the terms and conditions of the GNU General Public
|
||||
# License. See the file "COPYING" in the main directory of this archive
|
||||
# for more details.
|
||||
#
|
||||
# Copyright (C) 2007,2012 Imagination Technologies Ltd.
|
||||
#
|
||||
|
||||
suffix-y := bin
|
||||
suffix-$(CONFIG_KERNEL_GZIP) := gz
|
||||
suffix-$(CONFIG_KERNEL_BZIP2) := bz2
|
||||
suffix-$(CONFIG_KERNEL_XZ) := xz
|
||||
suffix-$(CONFIG_KERNEL_LZO) := lzo
|
||||
|
||||
targets += vmlinux.bin
|
||||
targets += uImage
|
||||
targets += uImage.gz
|
||||
targets += uImage.bz2
|
||||
targets += uImage.xz
|
||||
targets += uImage.lzo
|
||||
targets += uImage.bin
|
||||
|
||||
extra-y += vmlinux.bin
|
||||
extra-y += vmlinux.bin.gz
|
||||
extra-y += vmlinux.bin.bz2
|
||||
extra-y += vmlinux.bin.xz
|
||||
extra-y += vmlinux.bin.lzo
|
||||
|
||||
UIMAGE_LOADADDR = $(CONFIG_PAGE_OFFSET)
|
||||
|
||||
ifeq ($(CONFIG_FUNCTION_TRACER),y)
|
||||
orig_cflags := $(KBUILD_CFLAGS)
|
||||
KBUILD_CFLAGS = $(subst -pg, , $(orig_cflags))
|
||||
endif
|
||||
|
||||
$(obj)/vmlinux.bin: vmlinux FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
|
||||
$(call if_changed,gzip)
|
||||
|
||||
$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
|
||||
$(call if_changed,bzip2)
|
||||
|
||||
$(obj)/vmlinux.bin.xz: $(obj)/vmlinux.bin FORCE
|
||||
$(call if_changed,xzkern)
|
||||
|
||||
$(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.bin FORCE
|
||||
$(call if_changed,lzo)
|
||||
|
||||
$(obj)/uImage.gz: $(obj)/vmlinux.bin.gz FORCE
|
||||
$(call if_changed,uimage,gzip)
|
||||
|
||||
$(obj)/uImage.bz2: $(obj)/vmlinux.bin.bz2 FORCE
|
||||
$(call if_changed,uimage,bzip2)
|
||||
|
||||
$(obj)/uImage.xz: $(obj)/vmlinux.bin.xz FORCE
|
||||
$(call if_changed,uimage,xz)
|
||||
|
||||
$(obj)/uImage.lzo: $(obj)/vmlinux.bin.lzo FORCE
|
||||
$(call if_changed,uimage,lzo)
|
||||
|
||||
$(obj)/uImage.bin: $(obj)/vmlinux.bin FORCE
|
||||
$(call if_changed,uimage,none)
|
||||
|
||||
$(obj)/uImage: $(obj)/uImage.$(suffix-y)
|
||||
@ln -sf $(notdir $<) $@
|
||||
@echo ' Image $@ is ready'
|
||||
16
arch/metag/boot/dts/Makefile
Normal file
16
arch/metag/boot/dts/Makefile
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
dtb-y += skeleton.dtb
|
||||
|
||||
# Built-in dtb
|
||||
builtindtb-y := skeleton
|
||||
|
||||
ifneq ($(CONFIG_METAG_BUILTIN_DTB_NAME),"")
|
||||
builtindtb-y := $(CONFIG_METAG_BUILTIN_DTB_NAME)
|
||||
endif
|
||||
obj-$(CONFIG_METAG_BUILTIN_DTB) += $(patsubst "%",%,$(builtindtb-y)).dtb.o
|
||||
|
||||
targets += dtbs
|
||||
targets += $(dtb-y)
|
||||
|
||||
dtbs: $(addprefix $(obj)/, $(dtb-y))
|
||||
|
||||
clean-files += *.dtb
|
||||
10
arch/metag/boot/dts/skeleton.dts
Normal file
10
arch/metag/boot/dts/skeleton.dts
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/*
|
||||
* Copyright (C) 2012 Imagination Technologies Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
/dts-v1/;
|
||||
|
||||
/include/ "skeleton.dtsi"
|
||||
14
arch/metag/boot/dts/skeleton.dtsi
Normal file
14
arch/metag/boot/dts/skeleton.dtsi
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* Skeleton device tree; the bare minimum needed to boot; just include and
|
||||
* add a compatible value. The bootloader will typically populate the memory
|
||||
* node.
|
||||
*/
|
||||
|
||||
/ {
|
||||
compatible = "img,meta";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
chosen { };
|
||||
aliases { };
|
||||
memory { device_type = "memory"; reg = <0 0>; };
|
||||
};
|
||||
40
arch/metag/configs/meta1_defconfig
Normal file
40
arch/metag/configs/meta1_defconfig
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# CONFIG_LOCALVERSION_AUTO is not set
|
||||
# CONFIG_SWAP is not set
|
||||
CONFIG_LOG_BUF_SHIFT=13
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_ELF_CORE is not set
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
# CONFIG_MSDOS_PARTITION is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_META12_FPGA=y
|
||||
CONFIG_METAG_DA=y
|
||||
CONFIG_HZ_100=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
# CONFIG_STANDALONE is not set
|
||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=1
|
||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
CONFIG_DA_TTY=y
|
||||
CONFIG_DA_CONSOLE=y
|
||||
# CONFIG_DEVKMEM is not set
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
# CONFIG_DNOTIFY is not set
|
||||
CONFIG_TMPFS=y
|
||||
# CONFIG_MISC_FILESYSTEMS is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
CONFIG_DEBUG_INFO=y
|
||||
41
arch/metag/configs/meta2_defconfig
Normal file
41
arch/metag/configs/meta2_defconfig
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# CONFIG_LOCALVERSION_AUTO is not set
|
||||
# CONFIG_SWAP is not set
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_LOG_BUF_SHIFT=13
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_ELF_CORE is not set
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
# CONFIG_MSDOS_PARTITION is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_METAG_L2C=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_METAG_HALT_ON_PANIC=y
|
||||
CONFIG_METAG_DA=y
|
||||
CONFIG_HZ_100=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
# CONFIG_STANDALONE is not set
|
||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=1
|
||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
CONFIG_DA_TTY=y
|
||||
CONFIG_DA_CONSOLE=y
|
||||
# CONFIG_DEVKMEM is not set
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
# CONFIG_DNOTIFY is not set
|
||||
CONFIG_TMPFS=y
|
||||
# CONFIG_MISC_FILESYSTEMS is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
CONFIG_DEBUG_INFO=y
|
||||
42
arch/metag/configs/meta2_smp_defconfig
Normal file
42
arch/metag/configs/meta2_smp_defconfig
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# CONFIG_LOCALVERSION_AUTO is not set
|
||||
# CONFIG_SWAP is not set
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_LOG_BUF_SHIFT=13
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_ELF_CORE is not set
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
# CONFIG_MSDOS_PARTITION is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_METAG_L2C=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_METAG_HALT_ON_PANIC=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_METAG_DA=y
|
||||
CONFIG_HZ_100=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
# CONFIG_STANDALONE is not set
|
||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=1
|
||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
CONFIG_DA_TTY=y
|
||||
CONFIG_DA_CONSOLE=y
|
||||
# CONFIG_DEVKMEM is not set
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
# CONFIG_DNOTIFY is not set
|
||||
CONFIG_TMPFS=y
|
||||
# CONFIG_MISC_FILESYSTEMS is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
CONFIG_DEBUG_INFO=y
|
||||
54
arch/metag/include/asm/Kbuild
Normal file
54
arch/metag/include/asm/Kbuild
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
generic-y += auxvec.h
|
||||
generic-y += bitsperlong.h
|
||||
generic-y += bugs.h
|
||||
generic-y += clkdev.h
|
||||
generic-y += cputime.h
|
||||
generic-y += current.h
|
||||
generic-y += device.h
|
||||
generic-y += dma.h
|
||||
generic-y += emergency-restart.h
|
||||
generic-y += errno.h
|
||||
generic-y += exec.h
|
||||
generic-y += fb.h
|
||||
generic-y += fcntl.h
|
||||
generic-y += futex.h
|
||||
generic-y += hardirq.h
|
||||
generic-y += hw_irq.h
|
||||
generic-y += ioctl.h
|
||||
generic-y += ioctls.h
|
||||
generic-y += ipcbuf.h
|
||||
generic-y += irq_regs.h
|
||||
generic-y += kdebug.h
|
||||
generic-y += kmap_types.h
|
||||
generic-y += kvm_para.h
|
||||
generic-y += local.h
|
||||
generic-y += local64.h
|
||||
generic-y += msgbuf.h
|
||||
generic-y += mutex.h
|
||||
generic-y += param.h
|
||||
generic-y += pci.h
|
||||
generic-y += percpu.h
|
||||
generic-y += poll.h
|
||||
generic-y += posix_types.h
|
||||
generic-y += scatterlist.h
|
||||
generic-y += sections.h
|
||||
generic-y += sembuf.h
|
||||
generic-y += serial.h
|
||||
generic-y += shmbuf.h
|
||||
generic-y += shmparam.h
|
||||
generic-y += signal.h
|
||||
generic-y += socket.h
|
||||
generic-y += sockios.h
|
||||
generic-y += stat.h
|
||||
generic-y += statfs.h
|
||||
generic-y += switch_to.h
|
||||
generic-y += termbits.h
|
||||
generic-y += termios.h
|
||||
generic-y += timex.h
|
||||
generic-y += trace_clock.h
|
||||
generic-y += types.h
|
||||
generic-y += ucontext.h
|
||||
generic-y += unaligned.h
|
||||
generic-y += user.h
|
||||
generic-y += vga.h
|
||||
generic-y += xor.h
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue