Skip to content

Commit 09fa31a

Browse files
committed
Merge branch 'dt/gic' into highbank/soc
Conflicts: arch/arm/Kconfig
2 parents 2b228e8 + f37a53c commit 09fa31a

File tree

559 files changed

+8639
-3065
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

559 files changed

+8639
-3065
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
* ARM Generic Interrupt Controller
2+
3+
ARM SMP cores are often associated with a GIC, providing per processor
4+
interrupts (PPI), shared processor interrupts (SPI) and software
5+
generated interrupts (SGI).
6+
7+
Primary GIC is attached directly to the CPU and typically has PPIs and SGIs.
8+
Secondary GICs are cascaded into the upward interrupt controller and do not
9+
have PPIs or SGIs.
10+
11+
Main node required properties:
12+
13+
- compatible : should be one of:
14+
"arm,cortex-a9-gic"
15+
"arm,arm11mp-gic"
16+
- interrupt-controller : Identifies the node as an interrupt controller
17+
- #interrupt-cells : Specifies the number of cells needed to encode an
18+
interrupt source. The type shall be a <u32> and the value shall be 3.
19+
20+
The 1st cell is the interrupt type; 0 for SPI interrupts, 1 for PPI
21+
interrupts.
22+
23+
The 2nd cell contains the interrupt number for the interrupt type.
24+
SPI interrupts are in the range [0-987]. PPI interrupts are in the
25+
range [0-15].
26+
27+
The 3rd cell is the flags, encoded as follows:
28+
bits[3:0] trigger type and level flags.
29+
1 = low-to-high edge triggered
30+
2 = high-to-low edge triggered
31+
4 = active high level-sensitive
32+
8 = active low level-sensitive
33+
bits[15:8] PPI interrupt cpu mask. Each bit corresponds to each of
34+
the 8 possible cpus attached to the GIC. A bit set to '1' indicated
35+
the interrupt is wired to that CPU. Only valid for PPI interrupts.
36+
37+
- reg : Specifies base physical address(s) and size of the GIC registers. The
38+
first region is the GIC distributor register base and size. The 2nd region is
39+
the GIC cpu interface register base and size.
40+
41+
Optional
42+
- interrupts : Interrupt source of the parent interrupt controller. Only
43+
present on secondary GICs.
44+
45+
Example:
46+
47+
intc: interrupt-controller@fff11000 {
48+
compatible = "arm,cortex-a9-gic";
49+
#interrupt-cells = <3>;
50+
#address-cells = <1>;
51+
interrupt-controller;
52+
reg = <0xfff11000 0x1000>,
53+
<0xfff10100 0x100>;
54+
};
55+

arch/arm/Kconfig

Lines changed: 94 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ config ARM
2929
select HAVE_GENERIC_HARDIRQS
3030
select HAVE_SPARSE_IRQ
3131
select GENERIC_IRQ_SHOW
32+
select CPU_PM if (SUSPEND || CPU_IDLE)
3233
help
3334
The ARM series is a line of low-power-consumption RISC chip designs
3435
licensed by ARM Ltd and targeted at embedded applications and
@@ -195,7 +196,8 @@ config VECTORS_BASE
195196
The base address of exception vectors.
196197

197198
config ARM_PATCH_PHYS_VIRT
198-
bool "Patch physical to virtual translations at runtime"
199+
bool "Patch physical to virtual translations at runtime" if EMBEDDED
200+
default y
199201
depends on !XIP_KERNEL && MMU
200202
depends on !ARCH_REALVIEW || !SPARSEMEM
201203
help
@@ -204,16 +206,25 @@ config ARM_PATCH_PHYS_VIRT
204206
kernel in system memory.
205207

206208
This can only be used with non-XIP MMU kernels where the base
207-
of physical memory is at a 16MB boundary, or theoretically 64K
208-
for the MSM machine class.
209+
of physical memory is at a 16MB boundary.
209210

210-
config ARM_PATCH_PHYS_VIRT_16BIT
211-
def_bool y
212-
depends on ARM_PATCH_PHYS_VIRT && ARCH_MSM
211+
Only disable this option if you know that you do not require
212+
this feature (eg, building a kernel for a single machine) and
213+
you need to shrink the kernel to the minimal size.
214+
215+
config NEED_MACH_MEMORY_H
216+
bool
213217
help
214-
This option extends the physical to virtual translation patching
215-
to allow physical memory down to a theoretical minimum of 64K
216-
boundaries.
218+
Select this when mach/memory.h is required to provide special
219+
definitions for this platform. The need for mach/memory.h should
220+
be avoided when possible.
221+
222+
config PHYS_OFFSET
223+
hex "Physical address of main memory"
224+
depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H
225+
help
226+
Please provide the physical address corresponding to the
227+
location of main memory in your system.
217228

218229
source "init/Kconfig"
219230

@@ -246,6 +257,7 @@ config ARCH_INTEGRATOR
246257
select GENERIC_CLOCKEVENTS
247258
select PLAT_VERSATILE
248259
select PLAT_VERSATILE_FPGA_IRQ
260+
select NEED_MACH_MEMORY_H
249261
help
250262
Support for ARM's Integrator platform.
251263

@@ -261,6 +273,7 @@ config ARCH_REALVIEW
261273
select PLAT_VERSATILE_CLCD
262274
select ARM_TIMER_SP804
263275
select GPIO_PL061 if GPIOLIB
276+
select NEED_MACH_MEMORY_H
264277
help
265278
This enables support for ARM Ltd RealView boards.
266279

@@ -301,7 +314,6 @@ config ARCH_AT91
301314
select ARCH_REQUIRE_GPIOLIB
302315
select HAVE_CLK
303316
select CLKDEV_LOOKUP
304-
select ARM_PATCH_PHYS_VIRT if MMU
305317
help
306318
This enables support for systems based on the Atmel AT91RM9200,
307319
AT91SAM9 and AT91CAP9 processors.
@@ -322,6 +334,7 @@ config ARCH_CLPS711X
322334
bool "Cirrus Logic CLPS711x/EP721x-based"
323335
select CPU_ARM720T
324336
select ARCH_USES_GETTIMEOFFSET
337+
select NEED_MACH_MEMORY_H
325338
help
326339
Support for Cirrus Logic 711x/721x based boards.
327340

@@ -362,6 +375,7 @@ config ARCH_EBSA110
362375
select ISA
363376
select NO_IOPORT
364377
select ARCH_USES_GETTIMEOFFSET
378+
select NEED_MACH_MEMORY_H
365379
help
366380
This is an evaluation board for the StrongARM processor available
367381
from Digital. It has limited hardware on-board, including an
@@ -377,6 +391,7 @@ config ARCH_EP93XX
377391
select ARCH_REQUIRE_GPIOLIB
378392
select ARCH_HAS_HOLES_MEMORYMODEL
379393
select ARCH_USES_GETTIMEOFFSET
394+
select NEED_MEMORY_H
380395
help
381396
This enables support for the Cirrus EP93xx series of CPUs.
382397

@@ -385,6 +400,7 @@ config ARCH_FOOTBRIDGE
385400
select CPU_SA110
386401
select FOOTBRIDGE
387402
select GENERIC_CLOCKEVENTS
403+
select NEED_MACH_MEMORY_H
388404
help
389405
Support for systems based on the DC21285 companion chip
390406
("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
@@ -434,6 +450,7 @@ config ARCH_IOP13XX
434450
select PCI
435451
select ARCH_SUPPORTS_MSI
436452
select VMSPLIT_1G
453+
select NEED_MACH_MEMORY_H
437454
help
438455
Support for Intel's IOP13XX (XScale) family of processors.
439456

@@ -464,6 +481,7 @@ config ARCH_IXP23XX
464481
select CPU_XSC3
465482
select PCI
466483
select ARCH_USES_GETTIMEOFFSET
484+
select NEED_MACH_MEMORY_H
467485
help
468486
Support for Intel's IXP23xx (XScale) family of processors.
469487

@@ -473,6 +491,7 @@ config ARCH_IXP2000
473491
select CPU_XSCALE
474492
select PCI
475493
select ARCH_USES_GETTIMEOFFSET
494+
select NEED_MACH_MEMORY_H
476495
help
477496
Support for Intel's IXP2400/2800 (XScale) family of processors.
478497

@@ -566,6 +585,7 @@ config ARCH_KS8695
566585
select CPU_ARM922T
567586
select ARCH_REQUIRE_GPIOLIB
568587
select ARCH_USES_GETTIMEOFFSET
588+
select NEED_MACH_MEMORY_H
569589
help
570590
Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
571591
System-on-Chip devices.
@@ -657,6 +677,7 @@ config ARCH_SHMOBILE
657677
select SPARSE_IRQ
658678
select MULTI_IRQ_HANDLER
659679
select PM_GENERIC_DOMAINS if PM
680+
select NEED_MACH_MEMORY_H
660681
help
661682
Support for Renesas's SH-Mobile and R-Mobile ARM platforms.
662683

@@ -671,6 +692,7 @@ config ARCH_RPC
671692
select NO_IOPORT
672693
select ARCH_SPARSEMEM_ENABLE
673694
select ARCH_USES_GETTIMEOFFSET
695+
select NEED_MACH_MEMORY_H
674696
help
675697
On the Acorn Risc-PC, Linux can support the internal IDE disk and
676698
CD-ROM interface, serial and parallel port, and the floppy drive.
@@ -689,6 +711,7 @@ config ARCH_SA1100
689711
select HAVE_SCHED_CLOCK
690712
select TICK_ONESHOT
691713
select ARCH_REQUIRE_GPIOLIB
714+
select NEED_MACH_MEMORY_H
692715
help
693716
Support for StrongARM 11x0 based boards.
694717

@@ -781,6 +804,7 @@ config ARCH_S5PV210
781804
select HAVE_S3C2410_I2C if I2C
782805
select HAVE_S3C_RTC if RTC_CLASS
783806
select HAVE_S3C2410_WATCHDOG if WATCHDOG
807+
select NEED_MACH_MEMORY_H
784808
help
785809
Samsung S5PV210/S5PC110 series based systems
786810

@@ -797,6 +821,7 @@ config ARCH_EXYNOS4
797821
select HAVE_S3C_RTC if RTC_CLASS
798822
select HAVE_S3C2410_I2C if I2C
799823
select HAVE_S3C2410_WATCHDOG if WATCHDOG
824+
select NEED_MACH_MEMORY_H
800825
help
801826
Samsung EXYNOS4 series based systems
802827

@@ -808,6 +833,7 @@ config ARCH_SHARK
808833
select ZONE_DMA
809834
select PCI
810835
select ARCH_USES_GETTIMEOFFSET
836+
select NEED_MACH_MEMORY_H
811837
help
812838
Support for the StrongARM based Digital DNARD machine, also known
813839
as "Shark" (<http://www.shark-linux.de/shark.html>).
@@ -836,6 +862,7 @@ config ARCH_U300
836862
select HAVE_MACH_CLKDEV
837863
select GENERIC_GPIO
838864
select ARCH_REQUIRE_GPIOLIB
865+
select NEED_MACH_MEMORY_H
839866
help
840867
Support for ST-Ericsson U300 series mobile platforms.
841868

@@ -1408,6 +1435,31 @@ config SMP_ON_UP
14081435

14091436
If you don't know what to do here, say Y.
14101437

1438+
config ARM_CPU_TOPOLOGY
1439+
bool "Support cpu topology definition"
1440+
depends on SMP && CPU_V7
1441+
default y
1442+
help
1443+
Support ARM cpu topology definition. The MPIDR register defines
1444+
affinity between processors which is then used to describe the cpu
1445+
topology of an ARM System.
1446+
1447+
config SCHED_MC
1448+
bool "Multi-core scheduler support"
1449+
depends on ARM_CPU_TOPOLOGY
1450+
help
1451+
Multi-core scheduler support improves the CPU scheduler's decision
1452+
making when dealing with multi-core CPU chips at a cost of slightly
1453+
increased overhead in some places. If unsure say N here.
1454+
1455+
config SCHED_SMT
1456+
bool "SMT scheduler support"
1457+
depends on ARM_CPU_TOPOLOGY
1458+
help
1459+
Improves the CPU scheduler's decision making when dealing with
1460+
MultiThreading at a cost of slightly increased overhead in some
1461+
places. If unsure say N here.
1462+
14111463
config HAVE_ARM_SCU
14121464
bool
14131465
help
@@ -1808,6 +1860,38 @@ config ZBOOT_ROM_SH_MOBILE_SDHI
18081860

18091861
endchoice
18101862

1863+
config ARM_APPENDED_DTB
1864+
bool "Use appended device tree blob to zImage (EXPERIMENTAL)"
1865+
depends on OF && !ZBOOT_ROM && EXPERIMENTAL
1866+
help
1867+
With this option, the boot code will look for a device tree binary
1868+
(DTB) appended to zImage
1869+
(e.g. cat zImage <filename>.dtb > zImage_w_dtb).
1870+
1871+
This is meant as a backward compatibility convenience for those
1872+
systems with a bootloader that can't be upgraded to accommodate
1873+
the documented boot protocol using a device tree.
1874+
1875+
Beware that there is very little in terms of protection against
1876+
this option being confused by leftover garbage in memory that might
1877+
look like a DTB header after a reboot if no actual DTB is appended
1878+
to zImage. Do not leave this option active in a production kernel
1879+
if you don't intend to always append a DTB. Proper passing of the
1880+
location into r2 of a bootloader provided DTB is always preferable
1881+
to this option.
1882+
1883+
config ARM_ATAG_DTB_COMPAT
1884+
bool "Supplement the appended DTB with traditional ATAG information"
1885+
depends on ARM_APPENDED_DTB
1886+
help
1887+
Some old bootloaders can't be updated to a DTB capable one, yet
1888+
they provide ATAGs with memory configuration, the ramdisk address,
1889+
the kernel cmdline string, etc. Such information is dynamically
1890+
provided by the bootloader and can't always be stored in a static
1891+
DTB. To allow a device tree enabled kernel to be used with such
1892+
bootloaders, this option allows zImage to extract the information
1893+
from the ATAG list and store it at run time into the appended DTB.
1894+
18111895
config CMDLINE
18121896
string "Default kernel command string"
18131897
default ""

arch/arm/Kconfig.debug

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,10 @@ config DEBUG_S3C_UART
158158
The uncompressor code port configuration is now handled
159159
by CONFIG_S3C_LOWLEVEL_UART_PORT.
160160

161+
config ARM_KPROBES_TEST
162+
tristate "Kprobes test module"
163+
depends on KPROBES && MODULES
164+
help
165+
Perform tests of kprobes API and instruction set simulation.
166+
161167
endmenu

arch/arm/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,9 @@ textofs-$(CONFIG_PM_H1940) := 0x00108000
128128
ifeq ($(CONFIG_ARCH_SA1100),y)
129129
textofs-$(CONFIG_SA1111) := 0x00208000
130130
endif
131+
textofs-$(CONFIG_ARCH_MSM7X30) := 0x00208000
132+
textofs-$(CONFIG_ARCH_MSM8X60) := 0x00208000
133+
textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000
131134

132135
# Machine directory name. This list is sorted alphanumerically
133136
# by CONFIG_* macro name.

arch/arm/boot/compressed/.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,12 @@ piggy.lzo
55
piggy.lzma
66
vmlinux
77
vmlinux.lds
8+
9+
# borrowed libfdt files
10+
fdt.c
11+
fdt.h
12+
fdt_ro.c
13+
fdt_rw.c
14+
fdt_wip.c
15+
libfdt.h
16+
libfdt_internal.h

0 commit comments

Comments
 (0)