diff options
Diffstat (limited to 'arch/arm')
126 files changed, 1195 insertions, 1134 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 7caf8ddea046..00bdfdbdd4a8 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -49,7 +49,6 @@ config ARM | |||
49 | select HAVE_REGS_AND_STACK_ACCESS_API | 49 | select HAVE_REGS_AND_STACK_ACCESS_API |
50 | select HAVE_SYSCALL_TRACEPOINTS | 50 | select HAVE_SYSCALL_TRACEPOINTS |
51 | select HAVE_UID16 | 51 | select HAVE_UID16 |
52 | select VIRT_TO_BUS | ||
53 | select KTIME_SCALAR | 52 | select KTIME_SCALAR |
54 | select PERF_USE_VMALLOC | 53 | select PERF_USE_VMALLOC |
55 | select RTC_LIB | 54 | select RTC_LIB |
@@ -59,6 +58,7 @@ config ARM | |||
59 | select CLONE_BACKWARDS | 58 | select CLONE_BACKWARDS |
60 | select OLD_SIGSUSPEND3 | 59 | select OLD_SIGSUSPEND3 |
61 | select OLD_SIGACTION | 60 | select OLD_SIGACTION |
61 | select HAVE_CONTEXT_TRACKING | ||
62 | help | 62 | help |
63 | The ARM series is a line of low-power-consumption RISC chip designs | 63 | The ARM series is a line of low-power-consumption RISC chip designs |
64 | licensed by ARM Ltd and targeted at embedded applications and | 64 | licensed by ARM Ltd and targeted at embedded applications and |
@@ -743,6 +743,7 @@ config ARCH_RPC | |||
743 | select NEED_MACH_IO_H | 743 | select NEED_MACH_IO_H |
744 | select NEED_MACH_MEMORY_H | 744 | select NEED_MACH_MEMORY_H |
745 | select NO_IOPORT | 745 | select NO_IOPORT |
746 | select VIRT_TO_BUS | ||
746 | help | 747 | help |
747 | On the Acorn Risc-PC, Linux can support the internal IDE disk and | 748 | On the Acorn Risc-PC, Linux can support the internal IDE disk and |
748 | CD-ROM interface, serial and parallel port, and the floppy drive. | 749 | CD-ROM interface, serial and parallel port, and the floppy drive. |
@@ -878,6 +879,7 @@ config ARCH_SHARK | |||
878 | select ISA_DMA | 879 | select ISA_DMA |
879 | select NEED_MACH_MEMORY_H | 880 | select NEED_MACH_MEMORY_H |
880 | select PCI | 881 | select PCI |
882 | select VIRT_TO_BUS | ||
881 | select ZONE_DMA | 883 | select ZONE_DMA |
882 | help | 884 | help |
883 | Support for the StrongARM based Digital DNARD machine, also known | 885 | Support for the StrongARM based Digital DNARD machine, also known |
@@ -1005,12 +1007,12 @@ config ARCH_MULTI_V4_V5 | |||
1005 | bool | 1007 | bool |
1006 | 1008 | ||
1007 | config ARCH_MULTI_V6 | 1009 | config ARCH_MULTI_V6 |
1008 | bool "ARMv6 based platforms (ARM11, Scorpion, ...)" | 1010 | bool "ARMv6 based platforms (ARM11)" |
1009 | select ARCH_MULTI_V6_V7 | 1011 | select ARCH_MULTI_V6_V7 |
1010 | select CPU_V6 | 1012 | select CPU_V6 |
1011 | 1013 | ||
1012 | config ARCH_MULTI_V7 | 1014 | config ARCH_MULTI_V7 |
1013 | bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)" | 1015 | bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)" |
1014 | default y | 1016 | default y |
1015 | select ARCH_MULTI_V6_V7 | 1017 | select ARCH_MULTI_V6_V7 |
1016 | select ARCH_VEXPRESS | 1018 | select ARCH_VEXPRESS |
@@ -1182,9 +1184,9 @@ config ARM_NR_BANKS | |||
1182 | default 8 | 1184 | default 8 |
1183 | 1185 | ||
1184 | config IWMMXT | 1186 | config IWMMXT |
1185 | bool "Enable iWMMXt support" | 1187 | bool "Enable iWMMXt support" if !CPU_PJ4 |
1186 | depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 | 1188 | depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 |
1187 | default y if PXA27x || PXA3xx || ARCH_MMP | 1189 | default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4 |
1188 | help | 1190 | help |
1189 | Enable support for iWMMXt context switching at run time if | 1191 | Enable support for iWMMXt context switching at run time if |
1190 | running on a CPU that supports it. | 1192 | running on a CPU that supports it. |
@@ -1438,6 +1440,16 @@ config ARM_ERRATA_775420 | |||
1438 | to deadlock. This workaround puts DSB before executing ISB if | 1440 | to deadlock. This workaround puts DSB before executing ISB if |
1439 | an abort may occur on cache maintenance. | 1441 | an abort may occur on cache maintenance. |
1440 | 1442 | ||
1443 | config ARM_ERRATA_798181 | ||
1444 | bool "ARM errata: TLBI/DSB failure on Cortex-A15" | ||
1445 | depends on CPU_V7 && SMP | ||
1446 | help | ||
1447 | On Cortex-A15 (r0p0..r3p2) the TLBI*IS/DSB operations are not | ||
1448 | adequately shooting down all use of the old entries. This | ||
1449 | option enables the Linux kernel workaround for this erratum | ||
1450 | which sends an IPI to the CPUs that are running the same ASID | ||
1451 | as the one being invalidated. | ||
1452 | |||
1441 | endmenu | 1453 | endmenu |
1442 | 1454 | ||
1443 | source "arch/arm/common/Kconfig" | 1455 | source "arch/arm/common/Kconfig" |
@@ -1461,10 +1473,6 @@ config ISA_DMA | |||
1461 | bool | 1473 | bool |
1462 | select ISA_DMA_API | 1474 | select ISA_DMA_API |
1463 | 1475 | ||
1464 | config ARCH_NO_VIRT_TO_BUS | ||
1465 | def_bool y | ||
1466 | depends on !ARCH_RPC && !ARCH_NETWINDER && !ARCH_SHARK | ||
1467 | |||
1468 | # Select ISA DMA interface | 1476 | # Select ISA DMA interface |
1469 | config ISA_DMA_API | 1477 | config ISA_DMA_API |
1470 | bool | 1478 | bool |
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index ecfcdba2d17c..791fbeba40c6 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug | |||
@@ -495,6 +495,7 @@ config DEBUG_IMX_UART_PORT | |||
495 | DEBUG_IMX53_UART || \ | 495 | DEBUG_IMX53_UART || \ |
496 | DEBUG_IMX6Q_UART | 496 | DEBUG_IMX6Q_UART |
497 | default 1 | 497 | default 1 |
498 | depends on ARCH_MXC | ||
498 | help | 499 | help |
499 | Choose UART port on which kernel low-level debug messages | 500 | Choose UART port on which kernel low-level debug messages |
500 | should be output. | 501 | should be output. |
@@ -601,6 +602,17 @@ config DEBUG_LL_INCLUDE | |||
601 | default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1 | 602 | default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1 |
602 | default "mach/debug-macro.S" | 603 | default "mach/debug-macro.S" |
603 | 604 | ||
605 | config DEBUG_UNCOMPRESS | ||
606 | bool | ||
607 | default y if ARCH_MULTIPLATFORM && DEBUG_LL && \ | ||
608 | !DEBUG_OMAP2PLUS_UART && \ | ||
609 | !DEBUG_TEGRA_UART | ||
610 | |||
611 | config UNCOMPRESS_INCLUDE | ||
612 | string | ||
613 | default "debug/uncompress.h" if ARCH_MULTIPLATFORM | ||
614 | default "mach/uncompress.h" | ||
615 | |||
604 | config EARLY_PRINTK | 616 | config EARLY_PRINTK |
605 | bool "Early printk" | 617 | bool "Early printk" |
606 | depends on DEBUG_LL | 618 | depends on DEBUG_LL |
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index afed28e37ea5..3580d57ea218 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile | |||
@@ -24,6 +24,9 @@ endif | |||
24 | AFLAGS_head.o += -DTEXT_OFFSET=$(TEXT_OFFSET) | 24 | AFLAGS_head.o += -DTEXT_OFFSET=$(TEXT_OFFSET) |
25 | HEAD = head.o | 25 | HEAD = head.o |
26 | OBJS += misc.o decompress.o | 26 | OBJS += misc.o decompress.o |
27 | ifeq ($(CONFIG_DEBUG_UNCOMPRESS),y) | ||
28 | OBJS += debug.o | ||
29 | endif | ||
27 | FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c | 30 | FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c |
28 | 31 | ||
29 | # string library code (-Os is enforced to keep it much smaller) | 32 | # string library code (-Os is enforced to keep it much smaller) |
diff --git a/arch/arm/boot/compressed/debug.S b/arch/arm/boot/compressed/debug.S new file mode 100644 index 000000000000..6e8382d5b7a4 --- /dev/null +++ b/arch/arm/boot/compressed/debug.S | |||
@@ -0,0 +1,12 @@ | |||
1 | #include <linux/linkage.h> | ||
2 | #include <asm/assembler.h> | ||
3 | |||
4 | #include CONFIG_DEBUG_LL_INCLUDE | ||
5 | |||
6 | ENTRY(putc) | ||
7 | addruart r1, r2, r3 | ||
8 | waituart r3, r1 | ||
9 | senduart r0, r1 | ||
10 | busyuart r3, r1 | ||
11 | mov pc, lr | ||
12 | ENDPROC(putc) | ||
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index df899834d84e..31bd43b82095 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c | |||
@@ -25,13 +25,7 @@ unsigned int __machine_arch_type; | |||
25 | static void putstr(const char *ptr); | 25 | static void putstr(const char *ptr); |
26 | extern void error(char *x); | 26 | extern void error(char *x); |
27 | 27 | ||
28 | #ifdef CONFIG_ARCH_MULTIPLATFORM | 28 | #include CONFIG_UNCOMPRESS_INCLUDE |
29 | static inline void putc(int c) {} | ||
30 | static inline void flush(void) {} | ||
31 | static inline void arch_decomp_setup(void) {} | ||
32 | #else | ||
33 | #include <mach/uncompress.h> | ||
34 | #endif | ||
35 | 29 | ||
36 | #ifdef CONFIG_DEBUG_ICEDCC | 30 | #ifdef CONFIG_DEBUG_ICEDCC |
37 | 31 | ||
diff --git a/arch/arm/boot/dts/armada-370-mirabox.dts b/arch/arm/boot/dts/armada-370-mirabox.dts index dd0c57dd9f30..3234875824dc 100644 --- a/arch/arm/boot/dts/armada-370-mirabox.dts +++ b/arch/arm/boot/dts/armada-370-mirabox.dts | |||
@@ -54,7 +54,7 @@ | |||
54 | }; | 54 | }; |
55 | 55 | ||
56 | mvsdio@d00d4000 { | 56 | mvsdio@d00d4000 { |
57 | pinctrl-0 = <&sdio_pins2>; | 57 | pinctrl-0 = <&sdio_pins3>; |
58 | pinctrl-names = "default"; | 58 | pinctrl-names = "default"; |
59 | status = "okay"; | 59 | status = "okay"; |
60 | /* | 60 | /* |
diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi index 8188d138020e..a195debb67d3 100644 --- a/arch/arm/boot/dts/armada-370.dtsi +++ b/arch/arm/boot/dts/armada-370.dtsi | |||
@@ -59,6 +59,12 @@ | |||
59 | "mpp50", "mpp51", "mpp52"; | 59 | "mpp50", "mpp51", "mpp52"; |
60 | marvell,function = "sd0"; | 60 | marvell,function = "sd0"; |
61 | }; | 61 | }; |
62 | |||
63 | sdio_pins3: sdio-pins3 { | ||
64 | marvell,pins = "mpp48", "mpp49", "mpp50", | ||
65 | "mpp51", "mpp52", "mpp53"; | ||
66 | marvell,function = "sd0"; | ||
67 | }; | ||
62 | }; | 68 | }; |
63 | 69 | ||
64 | gpio0: gpio@d0018100 { | 70 | gpio0: gpio@d0018100 { |
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi index aa98e641931f..a98c0d50fbbe 100644 --- a/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/arch/arm/boot/dts/at91sam9x5.dtsi | |||
@@ -238,8 +238,32 @@ | |||
238 | nand { | 238 | nand { |
239 | pinctrl_nand: nand-0 { | 239 | pinctrl_nand: nand-0 { |
240 | atmel,pins = | 240 | atmel,pins = |
241 | <3 4 0x0 0x1 /* PD5 gpio RDY pin pull_up */ | 241 | <3 0 0x1 0x0 /* PD0 periph A Read Enable */ |
242 | 3 5 0x0 0x1>; /* PD4 gpio enable pin pull_up */ | 242 | 3 1 0x1 0x0 /* PD1 periph A Write Enable */ |
243 | 3 2 0x1 0x0 /* PD2 periph A Address Latch Enable */ | ||
244 | 3 3 0x1 0x0 /* PD3 periph A Command Latch Enable */ | ||
245 | 3 4 0x0 0x1 /* PD4 gpio Chip Enable pin pull_up */ | ||
246 | 3 5 0x0 0x1 /* PD5 gpio RDY/BUSY pin pull_up */ | ||
247 | 3 6 0x1 0x0 /* PD6 periph A Data bit 0 */ | ||
248 | 3 7 0x1 0x0 /* PD7 periph A Data bit 1 */ | ||
249 | 3 8 0x1 0x0 /* PD8 periph A Data bit 2 */ | ||
250 | 3 9 0x1 0x0 /* PD9 periph A Data bit 3 */ | ||
251 | 3 10 0x1 0x0 /* PD10 periph A Data bit 4 */ | ||
252 | 3 11 0x1 0x0 /* PD11 periph A Data bit 5 */ | ||
253 | 3 12 0x1 0x0 /* PD12 periph A Data bit 6 */ | ||
254 | 3 13 0x1 0x0>; /* PD13 periph A Data bit 7 */ | ||
255 | }; | ||
256 | |||
257 | pinctrl_nand_16bits: nand_16bits-0 { | ||
258 | atmel,pins = | ||
259 | <3 14 0x1 0x0 /* PD14 periph A Data bit 8 */ | ||
260 | 3 15 0x1 0x0 /* PD15 periph A Data bit 9 */ | ||
261 | 3 16 0x1 0x0 /* PD16 periph A Data bit 10 */ | ||
262 | 3 17 0x1 0x0 /* PD17 periph A Data bit 11 */ | ||
263 | 3 18 0x1 0x0 /* PD18 periph A Data bit 12 */ | ||
264 | 3 19 0x1 0x0 /* PD19 periph A Data bit 13 */ | ||
265 | 3 20 0x1 0x0 /* PD20 periph A Data bit 14 */ | ||
266 | 3 21 0x1 0x0>; /* PD21 periph A Data bit 15 */ | ||
243 | }; | 267 | }; |
244 | }; | 268 | }; |
245 | 269 | ||
diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi index 9de93096601a..aaa63d0a8096 100644 --- a/arch/arm/boot/dts/dbx5x0.dtsi +++ b/arch/arm/boot/dts/dbx5x0.dtsi | |||
@@ -191,8 +191,8 @@ | |||
191 | 191 | ||
192 | prcmu: prcmu@80157000 { | 192 | prcmu: prcmu@80157000 { |
193 | compatible = "stericsson,db8500-prcmu"; | 193 | compatible = "stericsson,db8500-prcmu"; |
194 | reg = <0x80157000 0x1000>; | 194 | reg = <0x80157000 0x1000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>; |
195 | reg-names = "prcmu"; | 195 | reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm"; |
196 | interrupts = <0 47 0x4>; | 196 | interrupts = <0 47 0x4>; |
197 | #address-cells = <1>; | 197 | #address-cells = <1>; |
198 | #size-cells = <1>; | 198 | #size-cells = <1>; |
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi index e1347fceb5bc..1a62bcf18aa3 100644 --- a/arch/arm/boot/dts/exynos4.dtsi +++ b/arch/arm/boot/dts/exynos4.dtsi | |||
@@ -275,18 +275,27 @@ | |||
275 | compatible = "arm,pl330", "arm,primecell"; | 275 | compatible = "arm,pl330", "arm,primecell"; |
276 | reg = <0x12680000 0x1000>; | 276 | reg = <0x12680000 0x1000>; |
277 | interrupts = <0 35 0>; | 277 | interrupts = <0 35 0>; |
278 | #dma-cells = <1>; | ||
279 | #dma-channels = <8>; | ||
280 | #dma-requests = <32>; | ||
278 | }; | 281 | }; |
279 | 282 | ||
280 | pdma1: pdma@12690000 { | 283 | pdma1: pdma@12690000 { |
281 | compatible = "arm,pl330", "arm,primecell"; | 284 | compatible = "arm,pl330", "arm,primecell"; |
282 | reg = <0x12690000 0x1000>; | 285 | reg = <0x12690000 0x1000>; |
283 | interrupts = <0 36 0>; | 286 | interrupts = <0 36 0>; |
287 | #dma-cells = <1>; | ||
288 | #dma-channels = <8>; | ||
289 | #dma-requests = <32>; | ||
284 | }; | 290 | }; |
285 | 291 | ||
286 | mdma1: mdma@12850000 { | 292 | mdma1: mdma@12850000 { |
287 | compatible = "arm,pl330", "arm,primecell"; | 293 | compatible = "arm,pl330", "arm,primecell"; |
288 | reg = <0x12850000 0x1000>; | 294 | reg = <0x12850000 0x1000>; |
289 | interrupts = <0 34 0>; | 295 | interrupts = <0 34 0>; |
296 | #dma-cells = <1>; | ||
297 | #dma-channels = <8>; | ||
298 | #dma-requests = <1>; | ||
290 | }; | 299 | }; |
291 | }; | 300 | }; |
292 | }; | 301 | }; |
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi index 5f3562ad6746..9a99755920c0 100644 --- a/arch/arm/boot/dts/exynos5440.dtsi +++ b/arch/arm/boot/dts/exynos5440.dtsi | |||
@@ -142,12 +142,18 @@ | |||
142 | compatible = "arm,pl330", "arm,primecell"; | 142 | compatible = "arm,pl330", "arm,primecell"; |
143 | reg = <0x120000 0x1000>; | 143 | reg = <0x120000 0x1000>; |
144 | interrupts = <0 34 0>; | 144 | interrupts = <0 34 0>; |
145 | #dma-cells = <1>; | ||
146 | #dma-channels = <8>; | ||
147 | #dma-requests = <32>; | ||
145 | }; | 148 | }; |
146 | 149 | ||
147 | pdma1: pdma@121B0000 { | 150 | pdma1: pdma@121B0000 { |
148 | compatible = "arm,pl330", "arm,primecell"; | 151 | compatible = "arm,pl330", "arm,primecell"; |
149 | reg = <0x121000 0x1000>; | 152 | reg = <0x121000 0x1000>; |
150 | interrupts = <0 35 0>; | 153 | interrupts = <0 35 0>; |
154 | #dma-cells = <1>; | ||
155 | #dma-channels = <8>; | ||
156 | #dma-requests = <32>; | ||
151 | }; | 157 | }; |
152 | }; | 158 | }; |
153 | 159 | ||
diff --git a/arch/arm/boot/dts/imx28-m28evk.dts b/arch/arm/boot/dts/imx28-m28evk.dts index 6ce3d17c3a29..fd36e1cca104 100644 --- a/arch/arm/boot/dts/imx28-m28evk.dts +++ b/arch/arm/boot/dts/imx28-m28evk.dts | |||
@@ -152,7 +152,6 @@ | |||
152 | i2c0: i2c@80058000 { | 152 | i2c0: i2c@80058000 { |
153 | pinctrl-names = "default"; | 153 | pinctrl-names = "default"; |
154 | pinctrl-0 = <&i2c0_pins_a>; | 154 | pinctrl-0 = <&i2c0_pins_a>; |
155 | clock-frequency = <400000>; | ||
156 | status = "okay"; | 155 | status = "okay"; |
157 | 156 | ||
158 | sgtl5000: codec@0a { | 157 | sgtl5000: codec@0a { |
diff --git a/arch/arm/boot/dts/imx28-sps1.dts b/arch/arm/boot/dts/imx28-sps1.dts index e6cde8aa7fff..6c6a5442800a 100644 --- a/arch/arm/boot/dts/imx28-sps1.dts +++ b/arch/arm/boot/dts/imx28-sps1.dts | |||
@@ -70,7 +70,6 @@ | |||
70 | i2c0: i2c@80058000 { | 70 | i2c0: i2c@80058000 { |
71 | pinctrl-names = "default"; | 71 | pinctrl-names = "default"; |
72 | pinctrl-0 = <&i2c0_pins_a>; | 72 | pinctrl-0 = <&i2c0_pins_a>; |
73 | clock-frequency = <400000>; | ||
74 | status = "okay"; | 73 | status = "okay"; |
75 | 74 | ||
76 | rtc: rtc@51 { | 75 | rtc: rtc@51 { |
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index 06ec460b4581..281a223591ff 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi | |||
@@ -91,6 +91,7 @@ | |||
91 | compatible = "arm,cortex-a9-twd-timer"; | 91 | compatible = "arm,cortex-a9-twd-timer"; |
92 | reg = <0x00a00600 0x20>; | 92 | reg = <0x00a00600 0x20>; |
93 | interrupts = <1 13 0xf01>; | 93 | interrupts = <1 13 0xf01>; |
94 | clocks = <&clks 15>; | ||
94 | }; | 95 | }; |
95 | 96 | ||
96 | L2: l2-cache@00a02000 { | 97 | L2: l2-cache@00a02000 { |
diff --git a/arch/arm/boot/dts/kirkwood-goflexnet.dts b/arch/arm/boot/dts/kirkwood-goflexnet.dts index bd83b8fc7c83..c3573be7b92c 100644 --- a/arch/arm/boot/dts/kirkwood-goflexnet.dts +++ b/arch/arm/boot/dts/kirkwood-goflexnet.dts | |||
@@ -77,6 +77,7 @@ | |||
77 | }; | 77 | }; |
78 | 78 | ||
79 | nand@3000000 { | 79 | nand@3000000 { |
80 | chip-delay = <40>; | ||
80 | status = "okay"; | 81 | status = "okay"; |
81 | 82 | ||
82 | partition@0 { | 83 | partition@0 { |
diff --git a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts index 93c3afbef9ee..3694e94f6e99 100644 --- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts +++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts | |||
@@ -96,11 +96,11 @@ | |||
96 | marvell,function = "gpio"; | 96 | marvell,function = "gpio"; |
97 | }; | 97 | }; |
98 | pmx_led_rebuild_brt_ctrl_1: pmx-led-rebuild-brt-ctrl-1 { | 98 | pmx_led_rebuild_brt_ctrl_1: pmx-led-rebuild-brt-ctrl-1 { |
99 | marvell,pins = "mpp44"; | 99 | marvell,pins = "mpp46"; |
100 | marvell,function = "gpio"; | 100 | marvell,function = "gpio"; |
101 | }; | 101 | }; |
102 | pmx_led_rebuild_brt_ctrl_2: pmx-led-rebuild-brt-ctrl-2 { | 102 | pmx_led_rebuild_brt_ctrl_2: pmx-led-rebuild-brt-ctrl-2 { |
103 | marvell,pins = "mpp45"; | 103 | marvell,pins = "mpp47"; |
104 | marvell,function = "gpio"; | 104 | marvell,function = "gpio"; |
105 | }; | 105 | }; |
106 | 106 | ||
@@ -157,14 +157,14 @@ | |||
157 | gpios = <&gpio0 16 0>; | 157 | gpios = <&gpio0 16 0>; |
158 | linux,default-trigger = "default-on"; | 158 | linux,default-trigger = "default-on"; |
159 | }; | 159 | }; |
160 | health_led1 { | 160 | rebuild_led { |
161 | label = "status:white:rebuild_led"; | ||
162 | gpios = <&gpio1 4 0>; | ||
163 | }; | ||
164 | health_led { | ||
161 | label = "status:red:health_led"; | 165 | label = "status:red:health_led"; |
162 | gpios = <&gpio1 5 0>; | 166 | gpios = <&gpio1 5 0>; |
163 | }; | 167 | }; |
164 | health_led2 { | ||
165 | label = "status:white:health_led"; | ||
166 | gpios = <&gpio1 4 0>; | ||
167 | }; | ||
168 | backup_led { | 168 | backup_led { |
169 | label = "status:blue:backup_led"; | 169 | label = "status:blue:backup_led"; |
170 | gpios = <&gpio0 15 0>; | 170 | gpios = <&gpio0 15 0>; |
diff --git a/arch/arm/boot/dts/orion5x.dtsi b/arch/arm/boot/dts/orion5x.dtsi index 8aad00f81ed9..f7bec3b1ba32 100644 --- a/arch/arm/boot/dts/orion5x.dtsi +++ b/arch/arm/boot/dts/orion5x.dtsi | |||
@@ -13,6 +13,9 @@ | |||
13 | compatible = "marvell,orion5x"; | 13 | compatible = "marvell,orion5x"; |
14 | interrupt-parent = <&intc>; | 14 | interrupt-parent = <&intc>; |
15 | 15 | ||
16 | aliases { | ||
17 | gpio0 = &gpio0; | ||
18 | }; | ||
16 | intc: interrupt-controller { | 19 | intc: interrupt-controller { |
17 | compatible = "marvell,orion-intc", "marvell,intc"; | 20 | compatible = "marvell,orion-intc", "marvell,intc"; |
18 | interrupt-controller; | 21 | interrupt-controller; |
@@ -32,7 +35,9 @@ | |||
32 | #gpio-cells = <2>; | 35 | #gpio-cells = <2>; |
33 | gpio-controller; | 36 | gpio-controller; |
34 | reg = <0x10100 0x40>; | 37 | reg = <0x10100 0x40>; |
35 | ngpio = <32>; | 38 | ngpios = <32>; |
39 | interrupt-controller; | ||
40 | #interrupt-cells = <2>; | ||
36 | interrupts = <6>, <7>, <8>, <9>; | 41 | interrupts = <6>, <7>, <8>, <9>; |
37 | }; | 42 | }; |
38 | 43 | ||
@@ -91,7 +96,7 @@ | |||
91 | reg = <0x90000 0x10000>, | 96 | reg = <0x90000 0x10000>, |
92 | <0xf2200000 0x800>; | 97 | <0xf2200000 0x800>; |
93 | reg-names = "regs", "sram"; | 98 | reg-names = "regs", "sram"; |
94 | interrupts = <22>; | 99 | interrupts = <28>; |
95 | status = "okay"; | 100 | status = "okay"; |
96 | }; | 101 | }; |
97 | }; | 102 | }; |
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi index 48d00a099ce3..3d3f64d2111a 100644 --- a/arch/arm/boot/dts/tegra20.dtsi +++ b/arch/arm/boot/dts/tegra20.dtsi | |||
@@ -385,7 +385,7 @@ | |||
385 | 385 | ||
386 | spi@7000d800 { | 386 | spi@7000d800 { |
387 | compatible = "nvidia,tegra20-slink"; | 387 | compatible = "nvidia,tegra20-slink"; |
388 | reg = <0x7000d480 0x200>; | 388 | reg = <0x7000d800 0x200>; |
389 | interrupts = <0 83 0x04>; | 389 | interrupts = <0 83 0x04>; |
390 | nvidia,dma-request-selector = <&apbdma 17>; | 390 | nvidia,dma-request-selector = <&apbdma 17>; |
391 | #address-cells = <1>; | 391 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi index 9d87a3ffe998..dbf46c272562 100644 --- a/arch/arm/boot/dts/tegra30.dtsi +++ b/arch/arm/boot/dts/tegra30.dtsi | |||
@@ -372,7 +372,7 @@ | |||
372 | 372 | ||
373 | spi@7000d800 { | 373 | spi@7000d800 { |
374 | compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; | 374 | compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; |
375 | reg = <0x7000d480 0x200>; | 375 | reg = <0x7000d800 0x200>; |
376 | interrupts = <0 83 0x04>; | 376 | interrupts = <0 83 0x04>; |
377 | nvidia,dma-request-selector = <&apbdma 17>; | 377 | nvidia,dma-request-selector = <&apbdma 17>; |
378 | #address-cells = <1>; | 378 | #address-cells = <1>; |
diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h index c79f61faa3a5..da1c77d39327 100644 --- a/arch/arm/include/asm/atomic.h +++ b/arch/arm/include/asm/atomic.h | |||
@@ -243,6 +243,29 @@ typedef struct { | |||
243 | 243 | ||
244 | #define ATOMIC64_INIT(i) { (i) } | 244 | #define ATOMIC64_INIT(i) { (i) } |
245 | 245 | ||
246 | #ifdef CONFIG_ARM_LPAE | ||
247 | static inline u64 atomic64_read(const atomic64_t *v) | ||
248 | { | ||
249 | u64 result; | ||
250 | |||
251 | __asm__ __volatile__("@ atomic64_read\n" | ||
252 | " ldrd %0, %H0, [%1]" | ||
253 | : "=&r" (result) | ||
254 | : "r" (&v->counter), "Qo" (v->counter) | ||
255 | ); | ||
256 | |||
257 | return result; | ||
258 | } | ||
259 | |||
260 | static inline void atomic64_set(atomic64_t *v, u64 i) | ||
261 | { | ||
262 | __asm__ __volatile__("@ atomic64_set\n" | ||
263 | " strd %2, %H2, [%1]" | ||
264 | : "=Qo" (v->counter) | ||
265 | : "r" (&v->counter), "r" (i) | ||
266 | ); | ||
267 | } | ||
268 | #else | ||
246 | static inline u64 atomic64_read(const atomic64_t *v) | 269 | static inline u64 atomic64_read(const atomic64_t *v) |
247 | { | 270 | { |
248 | u64 result; | 271 | u64 result; |
@@ -269,6 +292,7 @@ static inline void atomic64_set(atomic64_t *v, u64 i) | |||
269 | : "r" (&v->counter), "r" (i) | 292 | : "r" (&v->counter), "r" (i) |
270 | : "cc"); | 293 | : "cc"); |
271 | } | 294 | } |
295 | #endif | ||
272 | 296 | ||
273 | static inline void atomic64_add(u64 i, atomic64_t *v) | 297 | static inline void atomic64_add(u64 i, atomic64_t *v) |
274 | { | 298 | { |
diff --git a/arch/arm/include/asm/delay.h b/arch/arm/include/asm/delay.h index 720799fd3a81..dff714d886d5 100644 --- a/arch/arm/include/asm/delay.h +++ b/arch/arm/include/asm/delay.h | |||
@@ -24,7 +24,7 @@ extern struct arm_delay_ops { | |||
24 | void (*delay)(unsigned long); | 24 | void (*delay)(unsigned long); |
25 | void (*const_udelay)(unsigned long); | 25 | void (*const_udelay)(unsigned long); |
26 | void (*udelay)(unsigned long); | 26 | void (*udelay)(unsigned long); |
27 | bool const_clock; | 27 | unsigned long ticks_per_jiffy; |
28 | } arm_delay_ops; | 28 | } arm_delay_ops; |
29 | 29 | ||
30 | #define __delay(n) arm_delay_ops.delay(n) | 30 | #define __delay(n) arm_delay_ops.delay(n) |
diff --git a/arch/arm/include/asm/glue-cache.h b/arch/arm/include/asm/glue-cache.h index cca9f15704ed..ea289e1435e7 100644 --- a/arch/arm/include/asm/glue-cache.h +++ b/arch/arm/include/asm/glue-cache.h | |||
@@ -19,14 +19,6 @@ | |||
19 | #undef _CACHE | 19 | #undef _CACHE |
20 | #undef MULTI_CACHE | 20 | #undef MULTI_CACHE |
21 | 21 | ||
22 | #if defined(CONFIG_CPU_CACHE_V3) | ||
23 | # ifdef _CACHE | ||
24 | # define MULTI_CACHE 1 | ||
25 | # else | ||
26 | # define _CACHE v3 | ||
27 | # endif | ||
28 | #endif | ||
29 | |||
30 | #if defined(CONFIG_CPU_CACHE_V4) | 22 | #if defined(CONFIG_CPU_CACHE_V4) |
31 | # ifdef _CACHE | 23 | # ifdef _CACHE |
32 | # define MULTI_CACHE 1 | 24 | # define MULTI_CACHE 1 |
diff --git a/arch/arm/include/asm/hardware/iop3xx.h b/arch/arm/include/asm/hardware/iop3xx.h index 02fe2fbe2477..ed94b1a366ae 100644 --- a/arch/arm/include/asm/hardware/iop3xx.h +++ b/arch/arm/include/asm/hardware/iop3xx.h | |||
@@ -37,7 +37,7 @@ extern int iop3xx_get_init_atu(void); | |||
37 | * IOP3XX processor registers | 37 | * IOP3XX processor registers |
38 | */ | 38 | */ |
39 | #define IOP3XX_PERIPHERAL_PHYS_BASE 0xffffe000 | 39 | #define IOP3XX_PERIPHERAL_PHYS_BASE 0xffffe000 |
40 | #define IOP3XX_PERIPHERAL_VIRT_BASE 0xfeffe000 | 40 | #define IOP3XX_PERIPHERAL_VIRT_BASE 0xfedfe000 |
41 | #define IOP3XX_PERIPHERAL_SIZE 0x00002000 | 41 | #define IOP3XX_PERIPHERAL_SIZE 0x00002000 |
42 | #define IOP3XX_PERIPHERAL_UPPER_PA (IOP3XX_PERIPHERAL_PHYS_BASE +\ | 42 | #define IOP3XX_PERIPHERAL_UPPER_PA (IOP3XX_PERIPHERAL_PHYS_BASE +\ |
43 | IOP3XX_PERIPHERAL_SIZE - 1) | 43 | IOP3XX_PERIPHERAL_SIZE - 1) |
diff --git a/arch/arm/include/asm/highmem.h b/arch/arm/include/asm/highmem.h index 8c5e828f484d..91b99abe7a95 100644 --- a/arch/arm/include/asm/highmem.h +++ b/arch/arm/include/asm/highmem.h | |||
@@ -41,6 +41,13 @@ extern void kunmap_high(struct page *page); | |||
41 | #endif | 41 | #endif |
42 | #endif | 42 | #endif |
43 | 43 | ||
44 | /* | ||
45 | * Needed to be able to broadcast the TLB invalidation for kmap. | ||
46 | */ | ||
47 | #ifdef CONFIG_ARM_ERRATA_798181 | ||
48 | #undef ARCH_NEEDS_KMAP_HIGH_GET | ||
49 | #endif | ||
50 | |||
44 | #ifdef ARCH_NEEDS_KMAP_HIGH_GET | 51 | #ifdef ARCH_NEEDS_KMAP_HIGH_GET |
45 | extern void *kmap_high_get(struct page *page); | 52 | extern void *kmap_high_get(struct page *page); |
46 | #else | 53 | #else |
diff --git a/arch/arm/include/asm/mach/pci.h b/arch/arm/include/asm/mach/pci.h index 5cf2e979b4be..7d2c3c843801 100644 --- a/arch/arm/include/asm/mach/pci.h +++ b/arch/arm/include/asm/mach/pci.h | |||
@@ -30,6 +30,11 @@ struct hw_pci { | |||
30 | void (*postinit)(void); | 30 | void (*postinit)(void); |
31 | u8 (*swizzle)(struct pci_dev *dev, u8 *pin); | 31 | u8 (*swizzle)(struct pci_dev *dev, u8 *pin); |
32 | int (*map_irq)(const struct pci_dev *dev, u8 slot, u8 pin); | 32 | int (*map_irq)(const struct pci_dev *dev, u8 slot, u8 pin); |
33 | resource_size_t (*align_resource)(struct pci_dev *dev, | ||
34 | const struct resource *res, | ||
35 | resource_size_t start, | ||
36 | resource_size_t size, | ||
37 | resource_size_t align); | ||
33 | }; | 38 | }; |
34 | 39 | ||
35 | /* | 40 | /* |
@@ -51,6 +56,12 @@ struct pci_sys_data { | |||
51 | u8 (*swizzle)(struct pci_dev *, u8 *); | 56 | u8 (*swizzle)(struct pci_dev *, u8 *); |
52 | /* IRQ mapping */ | 57 | /* IRQ mapping */ |
53 | int (*map_irq)(const struct pci_dev *, u8, u8); | 58 | int (*map_irq)(const struct pci_dev *, u8, u8); |
59 | /* Resource alignement requirements */ | ||
60 | resource_size_t (*align_resource)(struct pci_dev *dev, | ||
61 | const struct resource *res, | ||
62 | resource_size_t start, | ||
63 | resource_size_t size, | ||
64 | resource_size_t align); | ||
54 | void *private_data; /* platform controller private data */ | 65 | void *private_data; /* platform controller private data */ |
55 | }; | 66 | }; |
56 | 67 | ||
diff --git a/arch/arm/include/asm/mmu_context.h b/arch/arm/include/asm/mmu_context.h index 863a6611323c..a7b85e0d0cc1 100644 --- a/arch/arm/include/asm/mmu_context.h +++ b/arch/arm/include/asm/mmu_context.h | |||
@@ -27,6 +27,8 @@ void __check_vmalloc_seq(struct mm_struct *mm); | |||
27 | void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk); | 27 | void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk); |
28 | #define init_new_context(tsk,mm) ({ atomic64_set(&mm->context.id, 0); 0; }) | 28 | #define init_new_context(tsk,mm) ({ atomic64_set(&mm->context.id, 0); 0; }) |
29 | 29 | ||
30 | DECLARE_PER_CPU(atomic64_t, active_asids); | ||
31 | |||
30 | #else /* !CONFIG_CPU_HAS_ASID */ | 32 | #else /* !CONFIG_CPU_HAS_ASID */ |
31 | 33 | ||
32 | #ifdef CONFIG_MMU | 34 | #ifdef CONFIG_MMU |
diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h index 6ef8afd1b64c..86b8fe398b95 100644 --- a/arch/arm/include/asm/pgtable-3level.h +++ b/arch/arm/include/asm/pgtable-3level.h | |||
@@ -111,7 +111,7 @@ | |||
111 | #define L_PTE_S2_MT_WRITETHROUGH (_AT(pteval_t, 0xa) << 2) /* MemAttr[3:0] */ | 111 | #define L_PTE_S2_MT_WRITETHROUGH (_AT(pteval_t, 0xa) << 2) /* MemAttr[3:0] */ |
112 | #define L_PTE_S2_MT_WRITEBACK (_AT(pteval_t, 0xf) << 2) /* MemAttr[3:0] */ | 112 | #define L_PTE_S2_MT_WRITEBACK (_AT(pteval_t, 0xf) << 2) /* MemAttr[3:0] */ |
113 | #define L_PTE_S2_RDONLY (_AT(pteval_t, 1) << 6) /* HAP[1] */ | 113 | #define L_PTE_S2_RDONLY (_AT(pteval_t, 1) << 6) /* HAP[1] */ |
114 | #define L_PTE_S2_RDWR (_AT(pteval_t, 2) << 6) /* HAP[2:1] */ | 114 | #define L_PTE_S2_RDWR (_AT(pteval_t, 3) << 6) /* HAP[2:1] */ |
115 | 115 | ||
116 | /* | 116 | /* |
117 | * Hyp-mode PL2 PTE definitions for LPAE. | 117 | * Hyp-mode PL2 PTE definitions for LPAE. |
diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h index 80d6fc4dbe4a..9bcd262a9008 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h | |||
@@ -61,6 +61,15 @@ extern void __pgd_error(const char *file, int line, pgd_t); | |||
61 | #define FIRST_USER_ADDRESS PAGE_SIZE | 61 | #define FIRST_USER_ADDRESS PAGE_SIZE |
62 | 62 | ||
63 | /* | 63 | /* |
64 | * Use TASK_SIZE as the ceiling argument for free_pgtables() and | ||
65 | * free_pgd_range() to avoid freeing the modules pmd when LPAE is enabled (pmd | ||
66 | * page shared between user and kernel). | ||
67 | */ | ||
68 | #ifdef CONFIG_ARM_LPAE | ||
69 | #define USER_PGTABLES_CEILING TASK_SIZE | ||
70 | #endif | ||
71 | |||
72 | /* | ||
64 | * The pgprot_* and protection_map entries will be fixed up in runtime | 73 | * The pgprot_* and protection_map entries will be fixed up in runtime |
65 | * to include the cachable and bufferable bits based on memory policy, | 74 | * to include the cachable and bufferable bits based on memory policy, |
66 | * as well as any architecture dependent bits like global/ASID and SMP | 75 | * as well as any architecture dependent bits like global/ASID and SMP |
diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h index cddda1f41f0f..1995d1a84060 100644 --- a/arch/arm/include/asm/thread_info.h +++ b/arch/arm/include/asm/thread_info.h | |||
@@ -152,6 +152,7 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *, | |||
152 | #define TIF_SYSCALL_AUDIT 9 | 152 | #define TIF_SYSCALL_AUDIT 9 |
153 | #define TIF_SYSCALL_TRACEPOINT 10 | 153 | #define TIF_SYSCALL_TRACEPOINT 10 |
154 | #define TIF_SECCOMP 11 /* seccomp syscall filtering active */ | 154 | #define TIF_SECCOMP 11 /* seccomp syscall filtering active */ |
155 | #define TIF_NOHZ 12 /* in adaptive nohz mode */ | ||
155 | #define TIF_USING_IWMMXT 17 | 156 | #define TIF_USING_IWMMXT 17 |
156 | #define TIF_MEMDIE 18 /* is terminating due to OOM killer */ | 157 | #define TIF_MEMDIE 18 /* is terminating due to OOM killer */ |
157 | #define TIF_RESTORE_SIGMASK 20 | 158 | #define TIF_RESTORE_SIGMASK 20 |
diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h index 4db8c8820f0d..a3625d141c1d 100644 --- a/arch/arm/include/asm/tlbflush.h +++ b/arch/arm/include/asm/tlbflush.h | |||
@@ -14,7 +14,6 @@ | |||
14 | 14 | ||
15 | #include <asm/glue.h> | 15 | #include <asm/glue.h> |
16 | 16 | ||
17 | #define TLB_V3_PAGE (1 << 0) | ||
18 | #define TLB_V4_U_PAGE (1 << 1) | 17 | #define TLB_V4_U_PAGE (1 << 1) |
19 | #define TLB_V4_D_PAGE (1 << 2) | 18 | #define TLB_V4_D_PAGE (1 << 2) |
20 | #define TLB_V4_I_PAGE (1 << 3) | 19 | #define TLB_V4_I_PAGE (1 << 3) |
@@ -22,7 +21,6 @@ | |||
22 | #define TLB_V6_D_PAGE (1 << 5) | 21 | #define TLB_V6_D_PAGE (1 << 5) |
23 | #define TLB_V6_I_PAGE (1 << 6) | 22 | #define TLB_V6_I_PAGE (1 << 6) |
24 | 23 | ||
25 | #define TLB_V3_FULL (1 << 8) | ||
26 | #define TLB_V4_U_FULL (1 << 9) | 24 | #define TLB_V4_U_FULL (1 << 9) |
27 | #define TLB_V4_D_FULL (1 << 10) | 25 | #define TLB_V4_D_FULL (1 << 10) |
28 | #define TLB_V4_I_FULL (1 << 11) | 26 | #define TLB_V4_I_FULL (1 << 11) |
@@ -52,7 +50,6 @@ | |||
52 | * ============= | 50 | * ============= |
53 | * | 51 | * |
54 | * We have the following to choose from: | 52 | * We have the following to choose from: |
55 | * v3 - ARMv3 | ||
56 | * v4 - ARMv4 without write buffer | 53 | * v4 - ARMv4 without write buffer |
57 | * v4wb - ARMv4 with write buffer without I TLB flush entry instruction | 54 | * v4wb - ARMv4 with write buffer without I TLB flush entry instruction |
58 | * v4wbi - ARMv4 with write buffer with I TLB flush entry instruction | 55 | * v4wbi - ARMv4 with write buffer with I TLB flush entry instruction |
@@ -169,7 +166,7 @@ | |||
169 | # define v6wbi_always_flags (-1UL) | 166 | # define v6wbi_always_flags (-1UL) |
170 | #endif | 167 | #endif |
171 | 168 | ||
172 | #define v7wbi_tlb_flags_smp (TLB_WB | TLB_DCLEAN | TLB_BARRIER | \ | 169 | #define v7wbi_tlb_flags_smp (TLB_WB | TLB_BARRIER | \ |
173 | TLB_V7_UIS_FULL | TLB_V7_UIS_PAGE | \ | 170 | TLB_V7_UIS_FULL | TLB_V7_UIS_PAGE | \ |
174 | TLB_V7_UIS_ASID | TLB_V7_UIS_BP) | 171 | TLB_V7_UIS_ASID | TLB_V7_UIS_BP) |
175 | #define v7wbi_tlb_flags_up (TLB_WB | TLB_DCLEAN | TLB_BARRIER | \ | 172 | #define v7wbi_tlb_flags_up (TLB_WB | TLB_DCLEAN | TLB_BARRIER | \ |
@@ -330,7 +327,6 @@ static inline void local_flush_tlb_all(void) | |||
330 | if (tlb_flag(TLB_WB)) | 327 | if (tlb_flag(TLB_WB)) |
331 | dsb(); | 328 | dsb(); |
332 | 329 | ||
333 | tlb_op(TLB_V3_FULL, "c6, c0, 0", zero); | ||
334 | tlb_op(TLB_V4_U_FULL | TLB_V6_U_FULL, "c8, c7, 0", zero); | 330 | tlb_op(TLB_V4_U_FULL | TLB_V6_U_FULL, "c8, c7, 0", zero); |
335 | tlb_op(TLB_V4_D_FULL | TLB_V6_D_FULL, "c8, c6, 0", zero); | 331 | tlb_op(TLB_V4_D_FULL | TLB_V6_D_FULL, "c8, c6, 0", zero); |
336 | tlb_op(TLB_V4_I_FULL | TLB_V6_I_FULL, "c8, c5, 0", zero); | 332 | tlb_op(TLB_V4_I_FULL | TLB_V6_I_FULL, "c8, c5, 0", zero); |
@@ -351,9 +347,8 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm) | |||
351 | if (tlb_flag(TLB_WB)) | 347 | if (tlb_flag(TLB_WB)) |
352 | dsb(); | 348 | dsb(); |
353 | 349 | ||
354 | if (possible_tlb_flags & (TLB_V3_FULL|TLB_V4_U_FULL|TLB_V4_D_FULL|TLB_V4_I_FULL)) { | 350 | if (possible_tlb_flags & (TLB_V4_U_FULL|TLB_V4_D_FULL|TLB_V4_I_FULL)) { |
355 | if (cpumask_test_cpu(get_cpu(), mm_cpumask(mm))) { | 351 | if (cpumask_test_cpu(get_cpu(), mm_cpumask(mm))) { |
356 | tlb_op(TLB_V3_FULL, "c6, c0, 0", zero); | ||
357 | tlb_op(TLB_V4_U_FULL, "c8, c7, 0", zero); | 352 | tlb_op(TLB_V4_U_FULL, "c8, c7, 0", zero); |
358 | tlb_op(TLB_V4_D_FULL, "c8, c6, 0", zero); | 353 | tlb_op(TLB_V4_D_FULL, "c8, c6, 0", zero); |
359 | tlb_op(TLB_V4_I_FULL, "c8, c5, 0", zero); | 354 | tlb_op(TLB_V4_I_FULL, "c8, c5, 0", zero); |
@@ -385,9 +380,8 @@ local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) | |||
385 | if (tlb_flag(TLB_WB)) | 380 | if (tlb_flag(TLB_WB)) |
386 | dsb(); | 381 | dsb(); |
387 | 382 | ||
388 | if (possible_tlb_flags & (TLB_V3_PAGE|TLB_V4_U_PAGE|TLB_V4_D_PAGE|TLB_V4_I_PAGE|TLB_V4_I_FULL) && | 383 | if (possible_tlb_flags & (TLB_V4_U_PAGE|TLB_V4_D_PAGE|TLB_V4_I_PAGE|TLB_V4_I_FULL) && |
389 | cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) { | 384 | cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) { |
390 | tlb_op(TLB_V3_PAGE, "c6, c0, 0", uaddr); | ||
391 | tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", uaddr); | 385 | tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", uaddr); |
392 | tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", uaddr); | 386 | tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", uaddr); |
393 | tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", uaddr); | 387 | tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", uaddr); |
@@ -418,7 +412,6 @@ static inline void local_flush_tlb_kernel_page(unsigned long kaddr) | |||
418 | if (tlb_flag(TLB_WB)) | 412 | if (tlb_flag(TLB_WB)) |
419 | dsb(); | 413 | dsb(); |
420 | 414 | ||
421 | tlb_op(TLB_V3_PAGE, "c6, c0, 0", kaddr); | ||
422 | tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", kaddr); | 415 | tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", kaddr); |
423 | tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", kaddr); | 416 | tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", kaddr); |
424 | tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", kaddr); | 417 | tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", kaddr); |
@@ -450,6 +443,21 @@ static inline void local_flush_bp_all(void) | |||
450 | isb(); | 443 | isb(); |
451 | } | 444 | } |
452 | 445 | ||
446 | #ifdef CONFIG_ARM_ERRATA_798181 | ||
447 | static inline void dummy_flush_tlb_a15_erratum(void) | ||
448 | { | ||
449 | /* | ||
450 | * Dummy TLBIMVAIS. Using the unmapped address 0 and ASID 0. | ||
451 | */ | ||
452 | asm("mcr p15, 0, %0, c8, c3, 1" : : "r" (0)); | ||
453 | dsb(); | ||
454 | } | ||
455 | #else | ||
456 | static inline void dummy_flush_tlb_a15_erratum(void) | ||
457 | { | ||
458 | } | ||
459 | #endif | ||
460 | |||
453 | /* | 461 | /* |
454 | * flush_pmd_entry | 462 | * flush_pmd_entry |
455 | * | 463 | * |
diff --git a/arch/arm/include/debug/uncompress.h b/arch/arm/include/debug/uncompress.h new file mode 100644 index 000000000000..0e2949b0fae9 --- /dev/null +++ b/arch/arm/include/debug/uncompress.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifdef CONFIG_DEBUG_UNCOMPRESS | ||
2 | extern void putc(int c); | ||
3 | #else | ||
4 | static inline void putc(int c) {} | ||
5 | #endif | ||
6 | static inline void flush(void) {} | ||
7 | static inline void arch_decomp_setup(void) {} | ||
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c index a1f73b502ef0..b2ed73c45489 100644 --- a/arch/arm/kernel/bios32.c +++ b/arch/arm/kernel/bios32.c | |||
@@ -462,6 +462,7 @@ static void pcibios_init_hw(struct hw_pci *hw, struct list_head *head) | |||
462 | sys->busnr = busnr; | 462 | sys->busnr = busnr; |
463 | sys->swizzle = hw->swizzle; | 463 | sys->swizzle = hw->swizzle; |
464 | sys->map_irq = hw->map_irq; | 464 | sys->map_irq = hw->map_irq; |
465 | sys->align_resource = hw->align_resource; | ||
465 | INIT_LIST_HEAD(&sys->resources); | 466 | INIT_LIST_HEAD(&sys->resources); |
466 | 467 | ||
467 | if (hw->private_data) | 468 | if (hw->private_data) |
@@ -574,6 +575,8 @@ char * __init pcibios_setup(char *str) | |||
574 | resource_size_t pcibios_align_resource(void *data, const struct resource *res, | 575 | resource_size_t pcibios_align_resource(void *data, const struct resource *res, |
575 | resource_size_t size, resource_size_t align) | 576 | resource_size_t size, resource_size_t align) |
576 | { | 577 | { |
578 | struct pci_dev *dev = data; | ||
579 | struct pci_sys_data *sys = dev->sysdata; | ||
577 | resource_size_t start = res->start; | 580 | resource_size_t start = res->start; |
578 | 581 | ||
579 | if (res->flags & IORESOURCE_IO && start & 0x300) | 582 | if (res->flags & IORESOURCE_IO && start & 0x300) |
@@ -581,6 +584,9 @@ resource_size_t pcibios_align_resource(void *data, const struct resource *res, | |||
581 | 584 | ||
582 | start = (start + align - 1) & ~(align - 1); | 585 | start = (start + align - 1) & ~(align - 1); |
583 | 586 | ||
587 | if (sys->align_resource) | ||
588 | return sys->align_resource(dev, res, start, size, align); | ||
589 | |||
584 | return start; | 590 | return start; |
585 | } | 591 | } |
586 | 592 | ||
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 0f82098c9bfe..c66ca7e4ee91 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -192,18 +192,6 @@ __dabt_svc: | |||
192 | svc_entry | 192 | svc_entry |
193 | mov r2, sp | 193 | mov r2, sp |
194 | dabt_helper | 194 | dabt_helper |
195 | |||
196 | @ | ||
197 | @ IRQs off again before pulling preserved data off the stack | ||
198 | @ | ||
199 | disable_irq_notrace | ||
200 | |||
201 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
202 | tst r5, #PSR_I_BIT | ||
203 | bleq trace_hardirqs_on | ||
204 | tst r5, #PSR_I_BIT | ||
205 | blne trace_hardirqs_off | ||
206 | #endif | ||
207 | svc_exit r5 @ return from exception | 195 | svc_exit r5 @ return from exception |
208 | UNWIND(.fnend ) | 196 | UNWIND(.fnend ) |
209 | ENDPROC(__dabt_svc) | 197 | ENDPROC(__dabt_svc) |
@@ -223,12 +211,7 @@ __irq_svc: | |||
223 | blne svc_preempt | 211 | blne svc_preempt |
224 | #endif | 212 | #endif |
225 | 213 | ||
226 | #ifdef CONFIG_TRACE_IRQFLAGS | 214 | svc_exit r5, irq = 1 @ return from exception |
227 | @ The parent context IRQs must have been enabled to get here in | ||
228 | @ the first place, so there's no point checking the PSR I bit. | ||
229 | bl trace_hardirqs_on | ||
230 | #endif | ||
231 | svc_exit r5 @ return from exception | ||
232 | UNWIND(.fnend ) | 215 | UNWIND(.fnend ) |
233 | ENDPROC(__irq_svc) | 216 | ENDPROC(__irq_svc) |
234 | 217 | ||
@@ -295,22 +278,8 @@ __und_svc_fault: | |||
295 | mov r0, sp @ struct pt_regs *regs | 278 | mov r0, sp @ struct pt_regs *regs |
296 | bl __und_fault | 279 | bl __und_fault |
297 | 280 | ||
298 | @ | ||
299 | @ IRQs off again before pulling preserved data off the stack | ||
300 | @ | ||
301 | __und_svc_finish: | 281 | __und_svc_finish: |
302 | disable_irq_notrace | ||
303 | |||
304 | @ | ||
305 | @ restore SPSR and restart the instruction | ||
306 | @ | ||
307 | ldr r5, [sp, #S_PSR] @ Get SVC cpsr | 282 | ldr r5, [sp, #S_PSR] @ Get SVC cpsr |
308 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
309 | tst r5, #PSR_I_BIT | ||
310 | bleq trace_hardirqs_on | ||
311 | tst r5, #PSR_I_BIT | ||
312 | blne trace_hardirqs_off | ||
313 | #endif | ||
314 | svc_exit r5 @ return from exception | 283 | svc_exit r5 @ return from exception |
315 | UNWIND(.fnend ) | 284 | UNWIND(.fnend ) |
316 | ENDPROC(__und_svc) | 285 | ENDPROC(__und_svc) |
@@ -320,18 +289,6 @@ __pabt_svc: | |||
320 | svc_entry | 289 | svc_entry |
321 | mov r2, sp @ regs | 290 | mov r2, sp @ regs |
322 | pabt_helper | 291 | pabt_helper |
323 | |||
324 | @ | ||
325 | @ IRQs off again before pulling preserved data off the stack | ||
326 | @ | ||
327 | disable_irq_notrace | ||
328 | |||
329 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
330 | tst r5, #PSR_I_BIT | ||
331 | bleq trace_hardirqs_on | ||
332 | tst r5, #PSR_I_BIT | ||
333 | blne trace_hardirqs_off | ||
334 | #endif | ||
335 | svc_exit r5 @ return from exception | 292 | svc_exit r5 @ return from exception |
336 | UNWIND(.fnend ) | 293 | UNWIND(.fnend ) |
337 | ENDPROC(__pabt_svc) | 294 | ENDPROC(__pabt_svc) |
@@ -396,6 +353,7 @@ ENDPROC(__pabt_svc) | |||
396 | #ifdef CONFIG_IRQSOFF_TRACER | 353 | #ifdef CONFIG_IRQSOFF_TRACER |
397 | bl trace_hardirqs_off | 354 | bl trace_hardirqs_off |
398 | #endif | 355 | #endif |
356 | ct_user_exit save = 0 | ||
399 | .endm | 357 | .endm |
400 | 358 | ||
401 | .macro kuser_cmpxchg_check | 359 | .macro kuser_cmpxchg_check |
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 3248cde504ed..bc5bc0a97131 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
@@ -35,12 +35,11 @@ ret_fast_syscall: | |||
35 | ldr r1, [tsk, #TI_FLAGS] | 35 | ldr r1, [tsk, #TI_FLAGS] |
36 | tst r1, #_TIF_WORK_MASK | 36 | tst r1, #_TIF_WORK_MASK |
37 | bne fast_work_pending | 37 | bne fast_work_pending |
38 | #if defined(CONFIG_IRQSOFF_TRACER) | ||
39 | asm_trace_hardirqs_on | 38 | asm_trace_hardirqs_on |
40 | #endif | ||
41 | 39 | ||
42 | /* perform architecture specific actions before user return */ | 40 | /* perform architecture specific actions before user return */ |
43 | arch_ret_to_user r1, lr | 41 | arch_ret_to_user r1, lr |
42 | ct_user_enter | ||
44 | 43 | ||
45 | restore_user_regs fast = 1, offset = S_OFF | 44 | restore_user_regs fast = 1, offset = S_OFF |
46 | UNWIND(.fnend ) | 45 | UNWIND(.fnend ) |
@@ -71,11 +70,11 @@ ENTRY(ret_to_user_from_irq) | |||
71 | tst r1, #_TIF_WORK_MASK | 70 | tst r1, #_TIF_WORK_MASK |
72 | bne work_pending | 71 | bne work_pending |
73 | no_work_pending: | 72 | no_work_pending: |
74 | #if defined(CONFIG_IRQSOFF_TRACER) | ||
75 | asm_trace_hardirqs_on | 73 | asm_trace_hardirqs_on |
76 | #endif | 74 | |
77 | /* perform architecture specific actions before user return */ | 75 | /* perform architecture specific actions before user return */ |
78 | arch_ret_to_user r1, lr | 76 | arch_ret_to_user r1, lr |
77 | ct_user_enter save = 0 | ||
79 | 78 | ||
80 | restore_user_regs fast = 0, offset = 0 | 79 | restore_user_regs fast = 0, offset = 0 |
81 | ENDPROC(ret_to_user_from_irq) | 80 | ENDPROC(ret_to_user_from_irq) |
@@ -276,7 +275,13 @@ ENDPROC(ftrace_graph_caller_old) | |||
276 | */ | 275 | */ |
277 | 276 | ||
278 | .macro mcount_enter | 277 | .macro mcount_enter |
278 | /* | ||
279 | * This pad compensates for the push {lr} at the call site. Note that we are | ||
280 | * unable to unwind through a function which does not otherwise save its lr. | ||
281 | */ | ||
282 | UNWIND(.pad #4) | ||
279 | stmdb sp!, {r0-r3, lr} | 283 | stmdb sp!, {r0-r3, lr} |
284 | UNWIND(.save {r0-r3, lr}) | ||
280 | .endm | 285 | .endm |
281 | 286 | ||
282 | .macro mcount_get_lr reg | 287 | .macro mcount_get_lr reg |
@@ -289,6 +294,7 @@ ENDPROC(ftrace_graph_caller_old) | |||
289 | .endm | 294 | .endm |
290 | 295 | ||
291 | ENTRY(__gnu_mcount_nc) | 296 | ENTRY(__gnu_mcount_nc) |
297 | UNWIND(.fnstart) | ||
292 | #ifdef CONFIG_DYNAMIC_FTRACE | 298 | #ifdef CONFIG_DYNAMIC_FTRACE |
293 | mov ip, lr | 299 | mov ip, lr |
294 | ldmia sp!, {lr} | 300 | ldmia sp!, {lr} |
@@ -296,17 +302,22 @@ ENTRY(__gnu_mcount_nc) | |||
296 | #else | 302 | #else |
297 | __mcount | 303 | __mcount |
298 | #endif | 304 | #endif |
305 | UNWIND(.fnend) | ||
299 | ENDPROC(__gnu_mcount_nc) | 306 | ENDPROC(__gnu_mcount_nc) |
300 | 307 | ||
301 | #ifdef CONFIG_DYNAMIC_FTRACE | 308 | #ifdef CONFIG_DYNAMIC_FTRACE |
302 | ENTRY(ftrace_caller) | 309 | ENTRY(ftrace_caller) |
310 | UNWIND(.fnstart) | ||
303 | __ftrace_caller | 311 | __ftrace_caller |
312 | UNWIND(.fnend) | ||
304 | ENDPROC(ftrace_caller) | 313 | ENDPROC(ftrace_caller) |
305 | #endif | 314 | #endif |
306 | 315 | ||
307 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER | 316 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER |
308 | ENTRY(ftrace_graph_caller) | 317 | ENTRY(ftrace_graph_caller) |
318 | UNWIND(.fnstart) | ||
309 | __ftrace_graph_caller | 319 | __ftrace_graph_caller |
320 | UNWIND(.fnend) | ||
310 | ENDPROC(ftrace_graph_caller) | 321 | ENDPROC(ftrace_graph_caller) |
311 | #endif | 322 | #endif |
312 | 323 | ||
@@ -394,6 +405,7 @@ ENTRY(vector_swi) | |||
394 | mcr p15, 0, ip, c1, c0 @ update control register | 405 | mcr p15, 0, ip, c1, c0 @ update control register |
395 | #endif | 406 | #endif |
396 | enable_irq | 407 | enable_irq |
408 | ct_user_exit | ||
397 | 409 | ||
398 | get_thread_info tsk | 410 | get_thread_info tsk |
399 | adr tbl, sys_call_table @ load syscall table pointer | 411 | adr tbl, sys_call_table @ load syscall table pointer |
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S index 9a8531eadd3d..160f3376ba6d 100644 --- a/arch/arm/kernel/entry-header.S +++ b/arch/arm/kernel/entry-header.S | |||
@@ -74,7 +74,24 @@ | |||
74 | .endm | 74 | .endm |
75 | 75 | ||
76 | #ifndef CONFIG_THUMB2_KERNEL | 76 | #ifndef CONFIG_THUMB2_KERNEL |
77 | .macro svc_exit, rpsr | 77 | .macro svc_exit, rpsr, irq = 0 |
78 | .if \irq != 0 | ||
79 | @ IRQs already off | ||
80 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
81 | @ The parent context IRQs must have been enabled to get here in | ||
82 | @ the first place, so there's no point checking the PSR I bit. | ||
83 | bl trace_hardirqs_on | ||
84 | #endif | ||
85 | .else | ||
86 | @ IRQs off again before pulling preserved data off the stack | ||
87 | disable_irq_notrace | ||
88 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
89 | tst \rpsr, #PSR_I_BIT | ||
90 | bleq trace_hardirqs_on | ||
91 | tst \rpsr, #PSR_I_BIT | ||
92 | blne trace_hardirqs_off | ||
93 | #endif | ||
94 | .endif | ||
78 | msr spsr_cxsf, \rpsr | 95 | msr spsr_cxsf, \rpsr |
79 | #if defined(CONFIG_CPU_V6) | 96 | #if defined(CONFIG_CPU_V6) |
80 | ldr r0, [sp] | 97 | ldr r0, [sp] |
@@ -120,7 +137,24 @@ | |||
120 | mov pc, \reg | 137 | mov pc, \reg |
121 | .endm | 138 | .endm |
122 | #else /* CONFIG_THUMB2_KERNEL */ | 139 | #else /* CONFIG_THUMB2_KERNEL */ |
123 | .macro svc_exit, rpsr | 140 | .macro svc_exit, rpsr, irq = 0 |
141 | .if \irq != 0 | ||
142 | @ IRQs already off | ||
143 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
144 | @ The parent context IRQs must have been enabled to get here in | ||
145 | @ the first place, so there's no point checking the PSR I bit. | ||
146 | bl trace_hardirqs_on | ||
147 | #endif | ||
148 | .else | ||
149 | @ IRQs off again before pulling preserved data off the stack | ||
150 | disable_irq_notrace | ||
151 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
152 | tst \rpsr, #PSR_I_BIT | ||
153 | bleq trace_hardirqs_on | ||
154 | tst \rpsr, #PSR_I_BIT | ||
155 | blne trace_hardirqs_off | ||
156 | #endif | ||
157 | .endif | ||
124 | ldr lr, [sp, #S_SP] @ top of the stack | 158 | ldr lr, [sp, #S_SP] @ top of the stack |
125 | ldrd r0, r1, [sp, #S_LR] @ calling lr and pc | 159 | ldrd r0, r1, [sp, #S_LR] @ calling lr and pc |
126 | clrex @ clear the exclusive monitor | 160 | clrex @ clear the exclusive monitor |
@@ -164,6 +198,34 @@ | |||
164 | #endif /* !CONFIG_THUMB2_KERNEL */ | 198 | #endif /* !CONFIG_THUMB2_KERNEL */ |
165 | 199 | ||
166 | /* | 200 | /* |
201 | * Context tracking subsystem. Used to instrument transitions | ||
202 | * between user and kernel mode. | ||
203 | */ | ||
204 | .macro ct_user_exit, save = 1 | ||
205 | #ifdef CONFIG_CONTEXT_TRACKING | ||
206 | .if \save | ||
207 | stmdb sp!, {r0-r3, ip, lr} | ||
208 | bl user_exit | ||
209 | ldmia sp!, {r0-r3, ip, lr} | ||
210 | .else | ||
211 | bl user_exit | ||
212 | .endif | ||
213 | #endif | ||
214 | .endm | ||
215 | |||
216 | .macro ct_user_enter, save = 1 | ||
217 | #ifdef CONFIG_CONTEXT_TRACKING | ||
218 | .if \save | ||
219 | stmdb sp!, {r0-r3, ip, lr} | ||
220 | bl user_enter | ||
221 | ldmia sp!, {r0-r3, ip, lr} | ||
222 | .else | ||
223 | bl user_enter | ||
224 | .endif | ||
225 | #endif | ||
226 | .endm | ||
227 | |||
228 | /* | ||
167 | * These are the registers used in the syscall handler, and allow us to | 229 | * These are the registers used in the syscall handler, and allow us to |
168 | * have in theory up to 7 arguments to a function - r0 to r6. | 230 | * have in theory up to 7 arguments to a function - r0 to r6. |
169 | * | 231 | * |
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index e0eb9a1cae77..8bac553fe213 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
@@ -267,7 +267,7 @@ __create_page_tables: | |||
267 | addne r6, r6, #1 << SECTION_SHIFT | 267 | addne r6, r6, #1 << SECTION_SHIFT |
268 | strne r6, [r3] | 268 | strne r6, [r3] |
269 | 269 | ||
270 | #if defined(CONFIG_LPAE) && defined(CONFIG_CPU_ENDIAN_BE8) | 270 | #if defined(CONFIG_ARM_LPAE) && defined(CONFIG_CPU_ENDIAN_BE8) |
271 | sub r4, r4, #4 @ Fixup page table pointer | 271 | sub r4, r4, #4 @ Fixup page table pointer |
272 | @ for 64-bit descriptors | 272 | @ for 64-bit descriptors |
273 | #endif | 273 | #endif |
diff --git a/arch/arm/kernel/hw_breakpoint.c b/arch/arm/kernel/hw_breakpoint.c index 96093b75ab90..1fd749ee4a1b 100644 --- a/arch/arm/kernel/hw_breakpoint.c +++ b/arch/arm/kernel/hw_breakpoint.c | |||
@@ -966,7 +966,7 @@ static void reset_ctrl_regs(void *unused) | |||
966 | } | 966 | } |
967 | 967 | ||
968 | if (err) { | 968 | if (err) { |
969 | pr_warning("CPU %d debug is powered down!\n", cpu); | 969 | pr_warn_once("CPU %d debug is powered down!\n", cpu); |
970 | cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu)); | 970 | cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu)); |
971 | return; | 971 | return; |
972 | } | 972 | } |
@@ -987,7 +987,7 @@ clear_vcr: | |||
987 | isb(); | 987 | isb(); |
988 | 988 | ||
989 | if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) { | 989 | if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) { |
990 | pr_warning("CPU %d failed to disable vector catch\n", cpu); | 990 | pr_warn_once("CPU %d failed to disable vector catch\n", cpu); |
991 | return; | 991 | return; |
992 | } | 992 | } |
993 | 993 | ||
@@ -1007,7 +1007,7 @@ clear_vcr: | |||
1007 | } | 1007 | } |
1008 | 1008 | ||
1009 | if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) { | 1009 | if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) { |
1010 | pr_warning("CPU %d failed to clear debug register pairs\n", cpu); | 1010 | pr_warn_once("CPU %d failed to clear debug register pairs\n", cpu); |
1011 | return; | 1011 | return; |
1012 | } | 1012 | } |
1013 | 1013 | ||
@@ -1043,7 +1043,7 @@ static int dbg_cpu_pm_notify(struct notifier_block *self, unsigned long action, | |||
1043 | return NOTIFY_OK; | 1043 | return NOTIFY_OK; |
1044 | } | 1044 | } |
1045 | 1045 | ||
1046 | static struct notifier_block __cpuinitdata dbg_cpu_pm_nb = { | 1046 | static struct notifier_block dbg_cpu_pm_nb = { |
1047 | .notifier_call = dbg_cpu_pm_notify, | 1047 | .notifier_call = dbg_cpu_pm_notify, |
1048 | }; | 1048 | }; |
1049 | 1049 | ||
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c index 146157dfe27c..8c3094d0f7b7 100644 --- a/arch/arm/kernel/perf_event.c +++ b/arch/arm/kernel/perf_event.c | |||
@@ -253,7 +253,10 @@ validate_event(struct pmu_hw_events *hw_events, | |||
253 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | 253 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); |
254 | struct pmu *leader_pmu = event->group_leader->pmu; | 254 | struct pmu *leader_pmu = event->group_leader->pmu; |
255 | 255 | ||
256 | if (event->pmu != leader_pmu || event->state <= PERF_EVENT_STATE_OFF) | 256 | if (event->pmu != leader_pmu || event->state < PERF_EVENT_STATE_OFF) |
257 | return 1; | ||
258 | |||
259 | if (event->state == PERF_EVENT_STATE_OFF && !event->attr.enable_on_exec) | ||
257 | return 1; | 260 | return 1; |
258 | 261 | ||
259 | return armpmu->get_event_idx(hw_events, event) >= 0; | 262 | return armpmu->get_event_idx(hw_events, event) >= 0; |
diff --git a/arch/arm/kernel/return_address.c b/arch/arm/kernel/return_address.c index 8085417555dd..fafedd86885d 100644 --- a/arch/arm/kernel/return_address.c +++ b/arch/arm/kernel/return_address.c | |||
@@ -26,7 +26,7 @@ static int save_return_addr(struct stackframe *frame, void *d) | |||
26 | struct return_address_data *data = d; | 26 | struct return_address_data *data = d; |
27 | 27 | ||
28 | if (!data->level) { | 28 | if (!data->level) { |
29 | data->addr = (void *)frame->lr; | 29 | data->addr = (void *)frame->pc; |
30 | 30 | ||
31 | return 1; | 31 | return 1; |
32 | } else { | 32 | } else { |
@@ -41,7 +41,8 @@ void *return_address(unsigned int level) | |||
41 | struct stackframe frame; | 41 | struct stackframe frame; |
42 | register unsigned long current_sp asm ("sp"); | 42 | register unsigned long current_sp asm ("sp"); |
43 | 43 | ||
44 | data.level = level + 1; | 44 | data.level = level + 2; |
45 | data.addr = NULL; | ||
45 | 46 | ||
46 | frame.fp = (unsigned long)__builtin_frame_address(0); | 47 | frame.fp = (unsigned long)__builtin_frame_address(0); |
47 | frame.sp = current_sp; | 48 | frame.sp = current_sp; |
diff --git a/arch/arm/kernel/sched_clock.c b/arch/arm/kernel/sched_clock.c index bd6f56b9ec21..59d2adb764a9 100644 --- a/arch/arm/kernel/sched_clock.c +++ b/arch/arm/kernel/sched_clock.c | |||
@@ -45,12 +45,12 @@ static u32 notrace jiffy_sched_clock_read(void) | |||
45 | 45 | ||
46 | static u32 __read_mostly (*read_sched_clock)(void) = jiffy_sched_clock_read; | 46 | static u32 __read_mostly (*read_sched_clock)(void) = jiffy_sched_clock_read; |
47 | 47 | ||
48 | static inline u64 cyc_to_ns(u64 cyc, u32 mult, u32 shift) | 48 | static inline u64 notrace cyc_to_ns(u64 cyc, u32 mult, u32 shift) |
49 | { | 49 | { |
50 | return (cyc * mult) >> shift; | 50 | return (cyc * mult) >> shift; |
51 | } | 51 | } |
52 | 52 | ||
53 | static unsigned long long cyc_to_sched_clock(u32 cyc, u32 mask) | 53 | static unsigned long long notrace cyc_to_sched_clock(u32 cyc, u32 mask) |
54 | { | 54 | { |
55 | u64 epoch_ns; | 55 | u64 epoch_ns; |
56 | u32 epoch_cyc; | 56 | u32 epoch_cyc; |
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 1cc9e1796415..728007c4a2b7 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -56,7 +56,6 @@ | |||
56 | #include <asm/virt.h> | 56 | #include <asm/virt.h> |
57 | 57 | ||
58 | #include "atags.h" | 58 | #include "atags.h" |
59 | #include "tcm.h" | ||
60 | 59 | ||
61 | 60 | ||
62 | #if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE) | 61 | #if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE) |
@@ -353,6 +352,23 @@ void __init early_print(const char *str, ...) | |||
353 | printk("%s", buf); | 352 | printk("%s", buf); |
354 | } | 353 | } |
355 | 354 | ||
355 | static void __init cpuid_init_hwcaps(void) | ||
356 | { | ||
357 | unsigned int divide_instrs; | ||
358 | |||
359 | if (cpu_architecture() < CPU_ARCH_ARMv7) | ||
360 | return; | ||
361 | |||
362 | divide_instrs = (read_cpuid_ext(CPUID_EXT_ISAR0) & 0x0f000000) >> 24; | ||
363 | |||
364 | switch (divide_instrs) { | ||
365 | case 2: | ||
366 | elf_hwcap |= HWCAP_IDIVA; | ||
367 | case 1: | ||
368 | elf_hwcap |= HWCAP_IDIVT; | ||
369 | } | ||
370 | } | ||
371 | |||
356 | static void __init feat_v6_fixup(void) | 372 | static void __init feat_v6_fixup(void) |
357 | { | 373 | { |
358 | int id = read_cpuid_id(); | 374 | int id = read_cpuid_id(); |
@@ -373,7 +389,7 @@ static void __init feat_v6_fixup(void) | |||
373 | * | 389 | * |
374 | * cpu_init sets up the per-CPU stacks. | 390 | * cpu_init sets up the per-CPU stacks. |
375 | */ | 391 | */ |
376 | void cpu_init(void) | 392 | void notrace cpu_init(void) |
377 | { | 393 | { |
378 | unsigned int cpu = smp_processor_id(); | 394 | unsigned int cpu = smp_processor_id(); |
379 | struct stack *stk = &stacks[cpu]; | 395 | struct stack *stk = &stacks[cpu]; |
@@ -483,8 +499,11 @@ static void __init setup_processor(void) | |||
483 | snprintf(elf_platform, ELF_PLATFORM_SIZE, "%s%c", | 499 | snprintf(elf_platform, ELF_PLATFORM_SIZE, "%s%c", |
484 | list->elf_name, ENDIANNESS); | 500 | list->elf_name, ENDIANNESS); |
485 | elf_hwcap = list->elf_hwcap; | 501 | elf_hwcap = list->elf_hwcap; |
502 | |||
503 | cpuid_init_hwcaps(); | ||
504 | |||
486 | #ifndef CONFIG_ARM_THUMB | 505 | #ifndef CONFIG_ARM_THUMB |
487 | elf_hwcap &= ~HWCAP_THUMB; | 506 | elf_hwcap &= ~(HWCAP_THUMB | HWCAP_IDIVT); |
488 | #endif | 507 | #endif |
489 | 508 | ||
490 | feat_v6_fixup(); | 509 | feat_v6_fixup(); |
@@ -524,7 +543,7 @@ int __init arm_add_memory(phys_addr_t start, phys_addr_t size) | |||
524 | size -= start & ~PAGE_MASK; | 543 | size -= start & ~PAGE_MASK; |
525 | bank->start = PAGE_ALIGN(start); | 544 | bank->start = PAGE_ALIGN(start); |
526 | 545 | ||
527 | #ifndef CONFIG_LPAE | 546 | #ifndef CONFIG_ARM_LPAE |
528 | if (bank->start + size < bank->start) { | 547 | if (bank->start + size < bank->start) { |
529 | printk(KERN_CRIT "Truncating memory at 0x%08llx to fit in " | 548 | printk(KERN_CRIT "Truncating memory at 0x%08llx to fit in " |
530 | "32-bit physical address space\n", (long long)start); | 549 | "32-bit physical address space\n", (long long)start); |
@@ -778,8 +797,6 @@ void __init setup_arch(char **cmdline_p) | |||
778 | 797 | ||
779 | reserve_crashkernel(); | 798 | reserve_crashkernel(); |
780 | 799 | ||
781 | tcm_init(); | ||
782 | |||
783 | #ifdef CONFIG_MULTI_IRQ_HANDLER | 800 | #ifdef CONFIG_MULTI_IRQ_HANDLER |
784 | handle_arch_irq = mdesc->handle_irq; | 801 | handle_arch_irq = mdesc->handle_irq; |
785 | #endif | 802 | #endif |
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 79078edbb9bc..4231034b8128 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -211,6 +211,13 @@ void __cpuinit __cpu_die(unsigned int cpu) | |||
211 | } | 211 | } |
212 | printk(KERN_NOTICE "CPU%u: shutdown\n", cpu); | 212 | printk(KERN_NOTICE "CPU%u: shutdown\n", cpu); |
213 | 213 | ||
214 | /* | ||
215 | * platform_cpu_kill() is generally expected to do the powering off | ||
216 | * and/or cutting of clocks to the dying CPU. Optionally, this may | ||
217 | * be done by the CPU which is dying in preference to supporting | ||
218 | * this call, but that means there is _no_ synchronisation between | ||
219 | * the requesting CPU and the dying CPU actually losing power. | ||
220 | */ | ||
214 | if (!platform_cpu_kill(cpu)) | 221 | if (!platform_cpu_kill(cpu)) |
215 | printk("CPU%u: unable to kill\n", cpu); | 222 | printk("CPU%u: unable to kill\n", cpu); |
216 | } | 223 | } |
@@ -230,14 +237,41 @@ void __ref cpu_die(void) | |||
230 | idle_task_exit(); | 237 | idle_task_exit(); |
231 | 238 | ||
232 | local_irq_disable(); | 239 | local_irq_disable(); |
233 | mb(); | ||
234 | 240 | ||
235 | /* Tell __cpu_die() that this CPU is now safe to dispose of */ | 241 | /* |
242 | * Flush the data out of the L1 cache for this CPU. This must be | ||
243 | * before the completion to ensure that data is safely written out | ||
244 | * before platform_cpu_kill() gets called - which may disable | ||
245 | * *this* CPU and power down its cache. | ||
246 | */ | ||
247 | flush_cache_louis(); | ||
248 | |||
249 | /* | ||
250 | * Tell __cpu_die() that this CPU is now safe to dispose of. Once | ||
251 | * this returns, power and/or clocks can be removed at any point | ||
252 | * from this CPU and its cache by platform_cpu_kill(). | ||
253 | */ | ||
236 | RCU_NONIDLE(complete(&cpu_died)); | 254 | RCU_NONIDLE(complete(&cpu_died)); |
237 | 255 | ||
238 | /* | 256 | /* |
239 | * actual CPU shutdown procedure is at least platform (if not | 257 | * Ensure that the cache lines associated with that completion are |
240 | * CPU) specific. | 258 | * written out. This covers the case where _this_ CPU is doing the |
259 | * powering down, to ensure that the completion is visible to the | ||
260 | * CPU waiting for this one. | ||
261 | */ | ||
262 | flush_cache_louis(); | ||
263 | |||
264 | /* | ||
265 | * The actual CPU shutdown procedure is at least platform (if not | ||
266 | * CPU) specific. This may remove power, or it may simply spin. | ||
267 | * | ||
268 | * Platforms are generally expected *NOT* to return from this call, | ||
269 | * although there are some which do because they have no way to | ||
270 | * power down the CPU. These platforms are the _only_ reason we | ||
271 | * have a return path which uses the fragment of assembly below. | ||
272 | * | ||
273 | * The return path should not be used for platforms which can | ||
274 | * power off the CPU. | ||
241 | */ | 275 | */ |
242 | if (smp_ops.cpu_die) | 276 | if (smp_ops.cpu_die) |
243 | smp_ops.cpu_die(cpu); | 277 | smp_ops.cpu_die(cpu); |
@@ -673,9 +707,6 @@ static int cpufreq_callback(struct notifier_block *nb, | |||
673 | if (freq->flags & CPUFREQ_CONST_LOOPS) | 707 | if (freq->flags & CPUFREQ_CONST_LOOPS) |
674 | return NOTIFY_OK; | 708 | return NOTIFY_OK; |
675 | 709 | ||
676 | if (arm_delay_ops.const_clock) | ||
677 | return NOTIFY_OK; | ||
678 | |||
679 | if (!per_cpu(l_p_j_ref, cpu)) { | 710 | if (!per_cpu(l_p_j_ref, cpu)) { |
680 | per_cpu(l_p_j_ref, cpu) = | 711 | per_cpu(l_p_j_ref, cpu) = |
681 | per_cpu(cpu_data, cpu).loops_per_jiffy; | 712 | per_cpu(cpu_data, cpu).loops_per_jiffy; |
diff --git a/arch/arm/kernel/smp_tlb.c b/arch/arm/kernel/smp_tlb.c index bd0300531399..9a52a07aa40e 100644 --- a/arch/arm/kernel/smp_tlb.c +++ b/arch/arm/kernel/smp_tlb.c | |||
@@ -12,6 +12,7 @@ | |||
12 | 12 | ||
13 | #include <asm/smp_plat.h> | 13 | #include <asm/smp_plat.h> |
14 | #include <asm/tlbflush.h> | 14 | #include <asm/tlbflush.h> |
15 | #include <asm/mmu_context.h> | ||
15 | 16 | ||
16 | /**********************************************************************/ | 17 | /**********************************************************************/ |
17 | 18 | ||
@@ -69,12 +70,73 @@ static inline void ipi_flush_bp_all(void *ignored) | |||
69 | local_flush_bp_all(); | 70 | local_flush_bp_all(); |
70 | } | 71 | } |
71 | 72 | ||
73 | #ifdef CONFIG_ARM_ERRATA_798181 | ||
74 | static int erratum_a15_798181(void) | ||
75 | { | ||
76 | unsigned int midr = read_cpuid_id(); | ||
77 | |||
78 | /* Cortex-A15 r0p0..r3p2 affected */ | ||
79 | if ((midr & 0xff0ffff0) != 0x410fc0f0 || midr > 0x413fc0f2) | ||
80 | return 0; | ||
81 | return 1; | ||
82 | } | ||
83 | #else | ||
84 | static int erratum_a15_798181(void) | ||
85 | { | ||
86 | return 0; | ||
87 | } | ||
88 | #endif | ||
89 | |||
90 | static void ipi_flush_tlb_a15_erratum(void *arg) | ||
91 | { | ||
92 | dmb(); | ||
93 | } | ||
94 | |||
95 | static void broadcast_tlb_a15_erratum(void) | ||
96 | { | ||
97 | if (!erratum_a15_798181()) | ||
98 | return; | ||
99 | |||
100 | dummy_flush_tlb_a15_erratum(); | ||
101 | smp_call_function(ipi_flush_tlb_a15_erratum, NULL, 1); | ||
102 | } | ||
103 | |||
104 | static void broadcast_tlb_mm_a15_erratum(struct mm_struct *mm) | ||
105 | { | ||
106 | int cpu, this_cpu; | ||
107 | cpumask_t mask = { CPU_BITS_NONE }; | ||
108 | |||
109 | if (!erratum_a15_798181()) | ||
110 | return; | ||
111 | |||
112 | dummy_flush_tlb_a15_erratum(); | ||
113 | this_cpu = get_cpu(); | ||
114 | for_each_online_cpu(cpu) { | ||
115 | if (cpu == this_cpu) | ||
116 | continue; | ||
117 | /* | ||
118 | * We only need to send an IPI if the other CPUs are running | ||
119 | * the same ASID as the one being invalidated. There is no | ||
120 | * need for locking around the active_asids check since the | ||
121 | * switch_mm() function has at least one dmb() (as required by | ||
122 | * this workaround) in case a context switch happens on | ||
123 | * another CPU after the condition below. | ||
124 | */ | ||
125 | if (atomic64_read(&mm->context.id) == | ||
126 | atomic64_read(&per_cpu(active_asids, cpu))) | ||
127 | cpumask_set_cpu(cpu, &mask); | ||
128 | } | ||
129 | smp_call_function_many(&mask, ipi_flush_tlb_a15_erratum, NULL, 1); | ||
130 | put_cpu(); | ||
131 | } | ||
132 | |||
72 | void flush_tlb_all(void) | 133 | void flush_tlb_all(void) |
73 | { | 134 | { |
74 | if (tlb_ops_need_broadcast()) | 135 | if (tlb_ops_need_broadcast()) |
75 | on_each_cpu(ipi_flush_tlb_all, NULL, 1); | 136 | on_each_cpu(ipi_flush_tlb_all, NULL, 1); |
76 | else | 137 | else |
77 | local_flush_tlb_all(); | 138 | local_flush_tlb_all(); |
139 | broadcast_tlb_a15_erratum(); | ||
78 | } | 140 | } |
79 | 141 | ||
80 | void flush_tlb_mm(struct mm_struct *mm) | 142 | void flush_tlb_mm(struct mm_struct *mm) |
@@ -83,6 +145,7 @@ void flush_tlb_mm(struct mm_struct *mm) | |||
83 | on_each_cpu_mask(mm_cpumask(mm), ipi_flush_tlb_mm, mm, 1); | 145 | on_each_cpu_mask(mm_cpumask(mm), ipi_flush_tlb_mm, mm, 1); |
84 | else | 146 | else |
85 | local_flush_tlb_mm(mm); | 147 | local_flush_tlb_mm(mm); |
148 | broadcast_tlb_mm_a15_erratum(mm); | ||
86 | } | 149 | } |
87 | 150 | ||
88 | void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) | 151 | void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) |
@@ -95,6 +158,7 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) | |||
95 | &ta, 1); | 158 | &ta, 1); |
96 | } else | 159 | } else |
97 | local_flush_tlb_page(vma, uaddr); | 160 | local_flush_tlb_page(vma, uaddr); |
161 | broadcast_tlb_mm_a15_erratum(vma->vm_mm); | ||
98 | } | 162 | } |
99 | 163 | ||
100 | void flush_tlb_kernel_page(unsigned long kaddr) | 164 | void flush_tlb_kernel_page(unsigned long kaddr) |
@@ -105,6 +169,7 @@ void flush_tlb_kernel_page(unsigned long kaddr) | |||
105 | on_each_cpu(ipi_flush_tlb_kernel_page, &ta, 1); | 169 | on_each_cpu(ipi_flush_tlb_kernel_page, &ta, 1); |
106 | } else | 170 | } else |
107 | local_flush_tlb_kernel_page(kaddr); | 171 | local_flush_tlb_kernel_page(kaddr); |
172 | broadcast_tlb_a15_erratum(); | ||
108 | } | 173 | } |
109 | 174 | ||
110 | void flush_tlb_range(struct vm_area_struct *vma, | 175 | void flush_tlb_range(struct vm_area_struct *vma, |
@@ -119,6 +184,7 @@ void flush_tlb_range(struct vm_area_struct *vma, | |||
119 | &ta, 1); | 184 | &ta, 1); |
120 | } else | 185 | } else |
121 | local_flush_tlb_range(vma, start, end); | 186 | local_flush_tlb_range(vma, start, end); |
187 | broadcast_tlb_mm_a15_erratum(vma->vm_mm); | ||
122 | } | 188 | } |
123 | 189 | ||
124 | void flush_tlb_kernel_range(unsigned long start, unsigned long end) | 190 | void flush_tlb_kernel_range(unsigned long start, unsigned long end) |
@@ -130,6 +196,7 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) | |||
130 | on_each_cpu(ipi_flush_tlb_kernel_range, &ta, 1); | 196 | on_each_cpu(ipi_flush_tlb_kernel_range, &ta, 1); |
131 | } else | 197 | } else |
132 | local_flush_tlb_kernel_range(start, end); | 198 | local_flush_tlb_kernel_range(start, end); |
199 | broadcast_tlb_a15_erratum(); | ||
133 | } | 200 | } |
134 | 201 | ||
135 | void flush_bp_all(void) | 202 | void flush_bp_all(void) |
diff --git a/arch/arm/kernel/tcm.c b/arch/arm/kernel/tcm.c index 30ae6bb4a310..f50f19e5c138 100644 --- a/arch/arm/kernel/tcm.c +++ b/arch/arm/kernel/tcm.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <asm/mach/map.h> | 17 | #include <asm/mach/map.h> |
18 | #include <asm/memory.h> | 18 | #include <asm/memory.h> |
19 | #include <asm/system_info.h> | 19 | #include <asm/system_info.h> |
20 | #include "tcm.h" | ||
21 | 20 | ||
22 | static struct gen_pool *tcm_pool; | 21 | static struct gen_pool *tcm_pool; |
23 | static bool dtcm_present; | 22 | static bool dtcm_present; |
diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c index c10a45fa73f7..a0dfc2a53f91 100644 --- a/arch/arm/kvm/arm.c +++ b/arch/arm/kvm/arm.c | |||
@@ -198,6 +198,7 @@ int kvm_dev_ioctl_check_extension(long ext) | |||
198 | break; | 198 | break; |
199 | case KVM_CAP_ARM_SET_DEVICE_ADDR: | 199 | case KVM_CAP_ARM_SET_DEVICE_ADDR: |
200 | r = 1; | 200 | r = 1; |
201 | break; | ||
201 | case KVM_CAP_NR_VCPUS: | 202 | case KVM_CAP_NR_VCPUS: |
202 | r = num_online_cpus(); | 203 | r = num_online_cpus(); |
203 | break; | 204 | break; |
diff --git a/arch/arm/kvm/coproc.c b/arch/arm/kvm/coproc.c index 94eee8befc83..8eea97be1ed5 100644 --- a/arch/arm/kvm/coproc.c +++ b/arch/arm/kvm/coproc.c | |||
@@ -79,11 +79,11 @@ static bool access_dcsw(struct kvm_vcpu *vcpu, | |||
79 | unsigned long val; | 79 | unsigned long val; |
80 | int cpu; | 80 | int cpu; |
81 | 81 | ||
82 | cpu = get_cpu(); | ||
83 | |||
84 | if (!p->is_write) | 82 | if (!p->is_write) |
85 | return read_from_write_only(vcpu, p); | 83 | return read_from_write_only(vcpu, p); |
86 | 84 | ||
85 | cpu = get_cpu(); | ||
86 | |||
87 | cpumask_setall(&vcpu->arch.require_dcache_flush); | 87 | cpumask_setall(&vcpu->arch.require_dcache_flush); |
88 | cpumask_clear_cpu(cpu, &vcpu->arch.require_dcache_flush); | 88 | cpumask_clear_cpu(cpu, &vcpu->arch.require_dcache_flush); |
89 | 89 | ||
diff --git a/arch/arm/kvm/vgic.c b/arch/arm/kvm/vgic.c index 161d5c15f0f0..17c5ac7d10ed 100644 --- a/arch/arm/kvm/vgic.c +++ b/arch/arm/kvm/vgic.c | |||
@@ -883,8 +883,7 @@ static bool vgic_queue_irq(struct kvm_vcpu *vcpu, u8 sgi_source_id, int irq) | |||
883 | lr, irq, vgic_cpu->vgic_lr[lr]); | 883 | lr, irq, vgic_cpu->vgic_lr[lr]); |
884 | BUG_ON(!test_bit(lr, vgic_cpu->lr_used)); | 884 | BUG_ON(!test_bit(lr, vgic_cpu->lr_used)); |
885 | vgic_cpu->vgic_lr[lr] |= GICH_LR_PENDING_BIT; | 885 | vgic_cpu->vgic_lr[lr] |= GICH_LR_PENDING_BIT; |
886 | 886 | return true; | |
887 | goto out; | ||
888 | } | 887 | } |
889 | 888 | ||
890 | /* Try to use another LR for this interrupt */ | 889 | /* Try to use another LR for this interrupt */ |
@@ -898,7 +897,6 @@ static bool vgic_queue_irq(struct kvm_vcpu *vcpu, u8 sgi_source_id, int irq) | |||
898 | vgic_cpu->vgic_irq_lr_map[irq] = lr; | 897 | vgic_cpu->vgic_irq_lr_map[irq] = lr; |
899 | set_bit(lr, vgic_cpu->lr_used); | 898 | set_bit(lr, vgic_cpu->lr_used); |
900 | 899 | ||
901 | out: | ||
902 | if (!vgic_irq_is_edge(vcpu, irq)) | 900 | if (!vgic_irq_is_edge(vcpu, irq)) |
903 | vgic_cpu->vgic_lr[lr] |= GICH_LR_EOI; | 901 | vgic_cpu->vgic_lr[lr] |= GICH_LR_EOI; |
904 | 902 | ||
@@ -1018,21 +1016,6 @@ static bool vgic_process_maintenance(struct kvm_vcpu *vcpu) | |||
1018 | 1016 | ||
1019 | kvm_debug("MISR = %08x\n", vgic_cpu->vgic_misr); | 1017 | kvm_debug("MISR = %08x\n", vgic_cpu->vgic_misr); |
1020 | 1018 | ||
1021 | /* | ||
1022 | * We do not need to take the distributor lock here, since the only | ||
1023 | * action we perform is clearing the irq_active_bit for an EOIed | ||
1024 | * level interrupt. There is a potential race with | ||
1025 | * the queuing of an interrupt in __kvm_vgic_flush_hwstate(), where we | ||
1026 | * check if the interrupt is already active. Two possibilities: | ||
1027 | * | ||
1028 | * - The queuing is occurring on the same vcpu: cannot happen, | ||
1029 | * as we're already in the context of this vcpu, and | ||
1030 | * executing the handler | ||
1031 | * - The interrupt has been migrated to another vcpu, and we | ||
1032 | * ignore this interrupt for this run. Big deal. It is still | ||
1033 | * pending though, and will get considered when this vcpu | ||
1034 | * exits. | ||
1035 | */ | ||
1036 | if (vgic_cpu->vgic_misr & GICH_MISR_EOI) { | 1019 | if (vgic_cpu->vgic_misr & GICH_MISR_EOI) { |
1037 | /* | 1020 | /* |
1038 | * Some level interrupts have been EOIed. Clear their | 1021 | * Some level interrupts have been EOIed. Clear their |
@@ -1054,6 +1037,13 @@ static bool vgic_process_maintenance(struct kvm_vcpu *vcpu) | |||
1054 | } else { | 1037 | } else { |
1055 | vgic_cpu_irq_clear(vcpu, irq); | 1038 | vgic_cpu_irq_clear(vcpu, irq); |
1056 | } | 1039 | } |
1040 | |||
1041 | /* | ||
1042 | * Despite being EOIed, the LR may not have | ||
1043 | * been marked as empty. | ||
1044 | */ | ||
1045 | set_bit(lr, (unsigned long *)vgic_cpu->vgic_elrsr); | ||
1046 | vgic_cpu->vgic_lr[lr] &= ~GICH_LR_ACTIVE_BIT; | ||
1057 | } | 1047 | } |
1058 | } | 1048 | } |
1059 | 1049 | ||
@@ -1064,9 +1054,8 @@ static bool vgic_process_maintenance(struct kvm_vcpu *vcpu) | |||
1064 | } | 1054 | } |
1065 | 1055 | ||
1066 | /* | 1056 | /* |
1067 | * Sync back the VGIC state after a guest run. We do not really touch | 1057 | * Sync back the VGIC state after a guest run. The distributor lock is |
1068 | * the distributor here (the irq_pending_on_cpu bit is safe to set), | 1058 | * needed so we don't get preempted in the middle of the state processing. |
1069 | * so there is no need for taking its lock. | ||
1070 | */ | 1059 | */ |
1071 | static void __kvm_vgic_sync_hwstate(struct kvm_vcpu *vcpu) | 1060 | static void __kvm_vgic_sync_hwstate(struct kvm_vcpu *vcpu) |
1072 | { | 1061 | { |
@@ -1112,10 +1101,14 @@ void kvm_vgic_flush_hwstate(struct kvm_vcpu *vcpu) | |||
1112 | 1101 | ||
1113 | void kvm_vgic_sync_hwstate(struct kvm_vcpu *vcpu) | 1102 | void kvm_vgic_sync_hwstate(struct kvm_vcpu *vcpu) |
1114 | { | 1103 | { |
1104 | struct vgic_dist *dist = &vcpu->kvm->arch.vgic; | ||
1105 | |||
1115 | if (!irqchip_in_kernel(vcpu->kvm)) | 1106 | if (!irqchip_in_kernel(vcpu->kvm)) |
1116 | return; | 1107 | return; |
1117 | 1108 | ||
1109 | spin_lock(&dist->lock); | ||
1118 | __kvm_vgic_sync_hwstate(vcpu); | 1110 | __kvm_vgic_sync_hwstate(vcpu); |
1111 | spin_unlock(&dist->lock); | ||
1119 | } | 1112 | } |
1120 | 1113 | ||
1121 | int kvm_vgic_vcpu_pending_irq(struct kvm_vcpu *vcpu) | 1114 | int kvm_vgic_vcpu_pending_irq(struct kvm_vcpu *vcpu) |
diff --git a/arch/arm/lib/delay.c b/arch/arm/lib/delay.c index 6b93f6a1a3c7..64dbfa57204a 100644 --- a/arch/arm/lib/delay.c +++ b/arch/arm/lib/delay.c | |||
@@ -58,7 +58,7 @@ static void __timer_delay(unsigned long cycles) | |||
58 | static void __timer_const_udelay(unsigned long xloops) | 58 | static void __timer_const_udelay(unsigned long xloops) |
59 | { | 59 | { |
60 | unsigned long long loops = xloops; | 60 | unsigned long long loops = xloops; |
61 | loops *= loops_per_jiffy; | 61 | loops *= arm_delay_ops.ticks_per_jiffy; |
62 | __timer_delay(loops >> UDELAY_SHIFT); | 62 | __timer_delay(loops >> UDELAY_SHIFT); |
63 | } | 63 | } |
64 | 64 | ||
@@ -73,11 +73,13 @@ void __init register_current_timer_delay(const struct delay_timer *timer) | |||
73 | pr_info("Switching to timer-based delay loop\n"); | 73 | pr_info("Switching to timer-based delay loop\n"); |
74 | delay_timer = timer; | 74 | delay_timer = timer; |
75 | lpj_fine = timer->freq / HZ; | 75 | lpj_fine = timer->freq / HZ; |
76 | loops_per_jiffy = lpj_fine; | 76 | |
77 | /* cpufreq may scale loops_per_jiffy, so keep a private copy */ | ||
78 | arm_delay_ops.ticks_per_jiffy = lpj_fine; | ||
77 | arm_delay_ops.delay = __timer_delay; | 79 | arm_delay_ops.delay = __timer_delay; |
78 | arm_delay_ops.const_udelay = __timer_const_udelay; | 80 | arm_delay_ops.const_udelay = __timer_const_udelay; |
79 | arm_delay_ops.udelay = __timer_udelay; | 81 | arm_delay_ops.udelay = __timer_udelay; |
80 | arm_delay_ops.const_clock = true; | 82 | |
81 | delay_calibrated = true; | 83 | delay_calibrated = true; |
82 | } else { | 84 | } else { |
83 | pr_info("Ignoring duplicate/late registration of read_current_timer delay\n"); | 85 | pr_info("Ignoring duplicate/late registration of read_current_timer delay\n"); |
diff --git a/arch/arm/mach-at91/include/mach/gpio.h b/arch/arm/mach-at91/include/mach/gpio.h index eed465ab0dd7..5fc23771c154 100644 --- a/arch/arm/mach-at91/include/mach/gpio.h +++ b/arch/arm/mach-at91/include/mach/gpio.h | |||
@@ -209,6 +209,14 @@ extern int at91_get_gpio_value(unsigned pin); | |||
209 | extern void at91_gpio_suspend(void); | 209 | extern void at91_gpio_suspend(void); |
210 | extern void at91_gpio_resume(void); | 210 | extern void at91_gpio_resume(void); |
211 | 211 | ||
212 | #ifdef CONFIG_PINCTRL_AT91 | ||
213 | extern void at91_pinctrl_gpio_suspend(void); | ||
214 | extern void at91_pinctrl_gpio_resume(void); | ||
215 | #else | ||
216 | static inline void at91_pinctrl_gpio_suspend(void) {} | ||
217 | static inline void at91_pinctrl_gpio_resume(void) {} | ||
218 | #endif | ||
219 | |||
212 | #endif /* __ASSEMBLY__ */ | 220 | #endif /* __ASSEMBLY__ */ |
213 | 221 | ||
214 | #endif | 222 | #endif |
diff --git a/arch/arm/mach-at91/irq.c b/arch/arm/mach-at91/irq.c index 8e210262aeee..e0ca59171022 100644 --- a/arch/arm/mach-at91/irq.c +++ b/arch/arm/mach-at91/irq.c | |||
@@ -92,23 +92,21 @@ static int at91_aic_set_wake(struct irq_data *d, unsigned value) | |||
92 | 92 | ||
93 | void at91_irq_suspend(void) | 93 | void at91_irq_suspend(void) |
94 | { | 94 | { |
95 | int i = 0, bit; | 95 | int bit = -1; |
96 | 96 | ||
97 | if (has_aic5()) { | 97 | if (has_aic5()) { |
98 | /* disable enabled irqs */ | 98 | /* disable enabled irqs */ |
99 | while ((bit = find_next_bit(backups, n_irqs, i)) < n_irqs) { | 99 | while ((bit = find_next_bit(backups, n_irqs, bit + 1)) < n_irqs) { |
100 | at91_aic_write(AT91_AIC5_SSR, | 100 | at91_aic_write(AT91_AIC5_SSR, |
101 | bit & AT91_AIC5_INTSEL_MSK); | 101 | bit & AT91_AIC5_INTSEL_MSK); |
102 | at91_aic_write(AT91_AIC5_IDCR, 1); | 102 | at91_aic_write(AT91_AIC5_IDCR, 1); |
103 | i = bit; | ||
104 | } | 103 | } |
105 | /* enable wakeup irqs */ | 104 | /* enable wakeup irqs */ |
106 | i = 0; | 105 | bit = -1; |
107 | while ((bit = find_next_bit(wakeups, n_irqs, i)) < n_irqs) { | 106 | while ((bit = find_next_bit(wakeups, n_irqs, bit + 1)) < n_irqs) { |
108 | at91_aic_write(AT91_AIC5_SSR, | 107 | at91_aic_write(AT91_AIC5_SSR, |
109 | bit & AT91_AIC5_INTSEL_MSK); | 108 | bit & AT91_AIC5_INTSEL_MSK); |
110 | at91_aic_write(AT91_AIC5_IECR, 1); | 109 | at91_aic_write(AT91_AIC5_IECR, 1); |
111 | i = bit; | ||
112 | } | 110 | } |
113 | } else { | 111 | } else { |
114 | at91_aic_write(AT91_AIC_IDCR, *backups); | 112 | at91_aic_write(AT91_AIC_IDCR, *backups); |
@@ -118,23 +116,21 @@ void at91_irq_suspend(void) | |||
118 | 116 | ||
119 | void at91_irq_resume(void) | 117 | void at91_irq_resume(void) |
120 | { | 118 | { |
121 | int i = 0, bit; | 119 | int bit = -1; |
122 | 120 | ||
123 | if (has_aic5()) { | 121 | if (has_aic5()) { |
124 | /* disable wakeup irqs */ | 122 | /* disable wakeup irqs */ |
125 | while ((bit = find_next_bit(wakeups, n_irqs, i)) < n_irqs) { | 123 | while ((bit = find_next_bit(wakeups, n_irqs, bit + 1)) < n_irqs) { |
126 | at91_aic_write(AT91_AIC5_SSR, | 124 | at91_aic_write(AT91_AIC5_SSR, |
127 | bit & AT91_AIC5_INTSEL_MSK); | 125 | bit & AT91_AIC5_INTSEL_MSK); |
128 | at91_aic_write(AT91_AIC5_IDCR, 1); | 126 | at91_aic_write(AT91_AIC5_IDCR, 1); |
129 | i = bit; | ||
130 | } | 127 | } |
131 | /* enable irqs disabled for suspend */ | 128 | /* enable irqs disabled for suspend */ |
132 | i = 0; | 129 | bit = -1; |
133 | while ((bit = find_next_bit(backups, n_irqs, i)) < n_irqs) { | 130 | while ((bit = find_next_bit(backups, n_irqs, bit + 1)) < n_irqs) { |
134 | at91_aic_write(AT91_AIC5_SSR, | 131 | at91_aic_write(AT91_AIC5_SSR, |
135 | bit & AT91_AIC5_INTSEL_MSK); | 132 | bit & AT91_AIC5_INTSEL_MSK); |
136 | at91_aic_write(AT91_AIC5_IECR, 1); | 133 | at91_aic_write(AT91_AIC5_IECR, 1); |
137 | i = bit; | ||
138 | } | 134 | } |
139 | } else { | 135 | } else { |
140 | at91_aic_write(AT91_AIC_IDCR, *wakeups); | 136 | at91_aic_write(AT91_AIC_IDCR, *wakeups); |
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c index adb6db888a1f..73f1f250403a 100644 --- a/arch/arm/mach-at91/pm.c +++ b/arch/arm/mach-at91/pm.c | |||
@@ -201,7 +201,10 @@ extern u32 at91_slow_clock_sz; | |||
201 | 201 | ||
202 | static int at91_pm_enter(suspend_state_t state) | 202 | static int at91_pm_enter(suspend_state_t state) |
203 | { | 203 | { |
204 | at91_gpio_suspend(); | 204 | if (of_have_populated_dt()) |
205 | at91_pinctrl_gpio_suspend(); | ||
206 | else | ||
207 | at91_gpio_suspend(); | ||
205 | at91_irq_suspend(); | 208 | at91_irq_suspend(); |
206 | 209 | ||
207 | pr_debug("AT91: PM - wake mask %08x, pm state %d\n", | 210 | pr_debug("AT91: PM - wake mask %08x, pm state %d\n", |
@@ -286,7 +289,10 @@ static int at91_pm_enter(suspend_state_t state) | |||
286 | error: | 289 | error: |
287 | target_state = PM_SUSPEND_ON; | 290 | target_state = PM_SUSPEND_ON; |
288 | at91_irq_resume(); | 291 | at91_irq_resume(); |
289 | at91_gpio_resume(); | 292 | if (of_have_populated_dt()) |
293 | at91_pinctrl_gpio_resume(); | ||
294 | else | ||
295 | at91_gpio_resume(); | ||
290 | return 0; | 296 | return 0; |
291 | } | 297 | } |
292 | 298 | ||
diff --git a/arch/arm/mach-cns3xxx/core.c b/arch/arm/mach-cns3xxx/core.c index e698f26cc0cb..52e4bb5cf12d 100644 --- a/arch/arm/mach-cns3xxx/core.c +++ b/arch/arm/mach-cns3xxx/core.c | |||
@@ -22,19 +22,9 @@ | |||
22 | 22 | ||
23 | static struct map_desc cns3xxx_io_desc[] __initdata = { | 23 | static struct map_desc cns3xxx_io_desc[] __initdata = { |
24 | { | 24 | { |
25 | .virtual = CNS3XXX_TC11MP_TWD_BASE_VIRT, | 25 | .virtual = CNS3XXX_TC11MP_SCU_BASE_VIRT, |
26 | .pfn = __phys_to_pfn(CNS3XXX_TC11MP_TWD_BASE), | 26 | .pfn = __phys_to_pfn(CNS3XXX_TC11MP_SCU_BASE), |
27 | .length = SZ_4K, | 27 | .length = SZ_8K, |
28 | .type = MT_DEVICE, | ||
29 | }, { | ||
30 | .virtual = CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT, | ||
31 | .pfn = __phys_to_pfn(CNS3XXX_TC11MP_GIC_CPU_BASE), | ||
32 | .length = SZ_4K, | ||
33 | .type = MT_DEVICE, | ||
34 | }, { | ||
35 | .virtual = CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT, | ||
36 | .pfn = __phys_to_pfn(CNS3XXX_TC11MP_GIC_DIST_BASE), | ||
37 | .length = SZ_4K, | ||
38 | .type = MT_DEVICE, | 28 | .type = MT_DEVICE, |
39 | }, { | 29 | }, { |
40 | .virtual = CNS3XXX_TIMER1_2_3_BASE_VIRT, | 30 | .virtual = CNS3XXX_TIMER1_2_3_BASE_VIRT, |
diff --git a/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h b/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h index 191c8e57f289..b1021aafa481 100644 --- a/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h +++ b/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h | |||
@@ -94,10 +94,10 @@ | |||
94 | #define RTC_INTR_STS_OFFSET 0x34 | 94 | #define RTC_INTR_STS_OFFSET 0x34 |
95 | 95 | ||
96 | #define CNS3XXX_MISC_BASE 0x76000000 /* Misc Control */ | 96 | #define CNS3XXX_MISC_BASE 0x76000000 /* Misc Control */ |
97 | #define CNS3XXX_MISC_BASE_VIRT 0xFFF07000 /* Misc Control */ | 97 | #define CNS3XXX_MISC_BASE_VIRT 0xFB000000 /* Misc Control */ |
98 | 98 | ||
99 | #define CNS3XXX_PM_BASE 0x77000000 /* Power Management Control */ | 99 | #define CNS3XXX_PM_BASE 0x77000000 /* Power Management Control */ |
100 | #define CNS3XXX_PM_BASE_VIRT 0xFFF08000 | 100 | #define CNS3XXX_PM_BASE_VIRT 0xFB001000 |
101 | 101 | ||
102 | #define PM_CLK_GATE_OFFSET 0x00 | 102 | #define PM_CLK_GATE_OFFSET 0x00 |
103 | #define PM_SOFT_RST_OFFSET 0x04 | 103 | #define PM_SOFT_RST_OFFSET 0x04 |
@@ -109,7 +109,7 @@ | |||
109 | #define PM_PLL_HM_PD_OFFSET 0x1C | 109 | #define PM_PLL_HM_PD_OFFSET 0x1C |
110 | 110 | ||
111 | #define CNS3XXX_UART0_BASE 0x78000000 /* UART 0 */ | 111 | #define CNS3XXX_UART0_BASE 0x78000000 /* UART 0 */ |
112 | #define CNS3XXX_UART0_BASE_VIRT 0xFFF09000 | 112 | #define CNS3XXX_UART0_BASE_VIRT 0xFB002000 |
113 | 113 | ||
114 | #define CNS3XXX_UART1_BASE 0x78400000 /* UART 1 */ | 114 | #define CNS3XXX_UART1_BASE 0x78400000 /* UART 1 */ |
115 | #define CNS3XXX_UART1_BASE_VIRT 0xFFF0A000 | 115 | #define CNS3XXX_UART1_BASE_VIRT 0xFFF0A000 |
@@ -130,7 +130,7 @@ | |||
130 | #define CNS3XXX_I2S_BASE_VIRT 0xFFF10000 | 130 | #define CNS3XXX_I2S_BASE_VIRT 0xFFF10000 |
131 | 131 | ||
132 | #define CNS3XXX_TIMER1_2_3_BASE 0x7C800000 /* Timer */ | 132 | #define CNS3XXX_TIMER1_2_3_BASE 0x7C800000 /* Timer */ |
133 | #define CNS3XXX_TIMER1_2_3_BASE_VIRT 0xFFF10800 | 133 | #define CNS3XXX_TIMER1_2_3_BASE_VIRT 0xFB003000 |
134 | 134 | ||
135 | #define TIMER1_COUNTER_OFFSET 0x00 | 135 | #define TIMER1_COUNTER_OFFSET 0x00 |
136 | #define TIMER1_AUTO_RELOAD_OFFSET 0x04 | 136 | #define TIMER1_AUTO_RELOAD_OFFSET 0x04 |
@@ -227,16 +227,16 @@ | |||
227 | * Testchip peripheral and fpga gic regions | 227 | * Testchip peripheral and fpga gic regions |
228 | */ | 228 | */ |
229 | #define CNS3XXX_TC11MP_SCU_BASE 0x90000000 /* IRQ, Test chip */ | 229 | #define CNS3XXX_TC11MP_SCU_BASE 0x90000000 /* IRQ, Test chip */ |
230 | #define CNS3XXX_TC11MP_SCU_BASE_VIRT 0xFF000000 | 230 | #define CNS3XXX_TC11MP_SCU_BASE_VIRT 0xFB004000 |
231 | 231 | ||
232 | #define CNS3XXX_TC11MP_GIC_CPU_BASE 0x90000100 /* Test chip interrupt controller CPU interface */ | 232 | #define CNS3XXX_TC11MP_GIC_CPU_BASE 0x90000100 /* Test chip interrupt controller CPU interface */ |
233 | #define CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT 0xFF000100 | 233 | #define CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x100) |
234 | 234 | ||
235 | #define CNS3XXX_TC11MP_TWD_BASE 0x90000600 | 235 | #define CNS3XXX_TC11MP_TWD_BASE 0x90000600 |
236 | #define CNS3XXX_TC11MP_TWD_BASE_VIRT 0xFF000600 | 236 | #define CNS3XXX_TC11MP_TWD_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x600) |
237 | 237 | ||
238 | #define CNS3XXX_TC11MP_GIC_DIST_BASE 0x90001000 /* Test chip interrupt controller distributor */ | 238 | #define CNS3XXX_TC11MP_GIC_DIST_BASE 0x90001000 /* Test chip interrupt controller distributor */ |
239 | #define CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT 0xFF001000 | 239 | #define CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x1000) |
240 | 240 | ||
241 | #define CNS3XXX_TC11MP_L220_BASE 0x92002000 /* L220 registers */ | 241 | #define CNS3XXX_TC11MP_L220_BASE 0x92002000 /* L220 registers */ |
242 | #define CNS3XXX_TC11MP_L220_BASE_VIRT 0xFF002000 | 242 | #define CNS3XXX_TC11MP_L220_BASE_VIRT 0xFF002000 |
diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c index a685e9706b7b..45b7c71d9cc1 100644 --- a/arch/arm/mach-davinci/dma.c +++ b/arch/arm/mach-davinci/dma.c | |||
@@ -743,6 +743,9 @@ EXPORT_SYMBOL(edma_free_channel); | |||
743 | */ | 743 | */ |
744 | int edma_alloc_slot(unsigned ctlr, int slot) | 744 | int edma_alloc_slot(unsigned ctlr, int slot) |
745 | { | 745 | { |
746 | if (!edma_cc[ctlr]) | ||
747 | return -EINVAL; | ||
748 | |||
746 | if (slot >= 0) | 749 | if (slot >= 0) |
747 | slot = EDMA_CHAN_SLOT(slot); | 750 | slot = EDMA_CHAN_SLOT(slot); |
748 | 751 | ||
diff --git a/arch/arm/mach-ep93xx/include/mach/uncompress.h b/arch/arm/mach-ep93xx/include/mach/uncompress.h index d2afb4dd82ab..b5cc77d2380b 100644 --- a/arch/arm/mach-ep93xx/include/mach/uncompress.h +++ b/arch/arm/mach-ep93xx/include/mach/uncompress.h | |||
@@ -47,9 +47,13 @@ static void __raw_writel(unsigned int value, unsigned int ptr) | |||
47 | 47 | ||
48 | static inline void putc(int c) | 48 | static inline void putc(int c) |
49 | { | 49 | { |
50 | /* Transmit fifo not full? */ | 50 | int i; |
51 | while (__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF) | 51 | |
52 | ; | 52 | for (i = 0; i < 10000; i++) { |
53 | /* Transmit fifo not full? */ | ||
54 | if (!(__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF)) | ||
55 | break; | ||
56 | } | ||
53 | 57 | ||
54 | __raw_writeb(c, PHYS_UART_DATA); | 58 | __raw_writeb(c, PHYS_UART_DATA); |
55 | } | 59 | } |
diff --git a/arch/arm/mach-exynos/hotplug.c b/arch/arm/mach-exynos/hotplug.c index c3f825b27947..af90cfa2f826 100644 --- a/arch/arm/mach-exynos/hotplug.c +++ b/arch/arm/mach-exynos/hotplug.c | |||
@@ -28,7 +28,6 @@ static inline void cpu_enter_lowpower_a9(void) | |||
28 | { | 28 | { |
29 | unsigned int v; | 29 | unsigned int v; |
30 | 30 | ||
31 | flush_cache_all(); | ||
32 | asm volatile( | 31 | asm volatile( |
33 | " mcr p15, 0, %1, c7, c5, 0\n" | 32 | " mcr p15, 0, %1, c7, c5, 0\n" |
34 | " mcr p15, 0, %1, c7, c10, 4\n" | 33 | " mcr p15, 0, %1, c7, c10, 4\n" |
diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig index abda5a18a664..0f2111a11315 100644 --- a/arch/arm/mach-footbridge/Kconfig +++ b/arch/arm/mach-footbridge/Kconfig | |||
@@ -67,6 +67,7 @@ config ARCH_NETWINDER | |||
67 | select ISA | 67 | select ISA |
68 | select ISA_DMA | 68 | select ISA_DMA |
69 | select PCI | 69 | select PCI |
70 | select VIRT_TO_BUS | ||
70 | help | 71 | help |
71 | Say Y here if you intend to run this kernel on the Rebel.COM | 72 | Say Y here if you intend to run this kernel on the Rebel.COM |
72 | NetWinder. Information about this machine can be found at: | 73 | NetWinder. Information about this machine can be found at: |
diff --git a/arch/arm/mach-highbank/hotplug.c b/arch/arm/mach-highbank/hotplug.c index f30c52843396..a019e4e86e51 100644 --- a/arch/arm/mach-highbank/hotplug.c +++ b/arch/arm/mach-highbank/hotplug.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * this program. If not, see <http://www.gnu.org/licenses/>. | 14 | * this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | |||
18 | #include <asm/cacheflush.h> | 17 | #include <asm/cacheflush.h> |
19 | 18 | ||
20 | #include "core.h" | 19 | #include "core.h" |
@@ -28,13 +27,11 @@ extern void secondary_startup(void); | |||
28 | */ | 27 | */ |
29 | void __ref highbank_cpu_die(unsigned int cpu) | 28 | void __ref highbank_cpu_die(unsigned int cpu) |
30 | { | 29 | { |
31 | flush_cache_all(); | ||
32 | |||
33 | highbank_set_cpu_jump(cpu, phys_to_virt(0)); | 30 | highbank_set_cpu_jump(cpu, phys_to_virt(0)); |
34 | highbank_set_core_pwr(); | ||
35 | 31 | ||
36 | cpu_do_idle(); | 32 | flush_cache_louis(); |
33 | highbank_set_core_pwr(); | ||
37 | 34 | ||
38 | /* We should never return from idle */ | 35 | while (1) |
39 | panic("highbank: cpu %d unexpectedly exit from shutdown\n", cpu); | 36 | cpu_do_idle(); |
40 | } | 37 | } |
diff --git a/arch/arm/mach-imx/clk-imx35.c b/arch/arm/mach-imx/clk-imx35.c index 74e3a34d78b8..2193c834f55c 100644 --- a/arch/arm/mach-imx/clk-imx35.c +++ b/arch/arm/mach-imx/clk-imx35.c | |||
@@ -257,6 +257,7 @@ int __init mx35_clocks_init(void) | |||
257 | clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0"); | 257 | clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0"); |
258 | clk_register_clkdev(clk[nfc_div], NULL, "imx25-nand.0"); | 258 | clk_register_clkdev(clk[nfc_div], NULL, "imx25-nand.0"); |
259 | clk_register_clkdev(clk[csi_gate], NULL, "mx3-camera.0"); | 259 | clk_register_clkdev(clk[csi_gate], NULL, "mx3-camera.0"); |
260 | clk_register_clkdev(clk[admux_gate], "audmux", NULL); | ||
260 | 261 | ||
261 | clk_prepare_enable(clk[spba_gate]); | 262 | clk_prepare_enable(clk[spba_gate]); |
262 | clk_prepare_enable(clk[gpio1_gate]); | 263 | clk_prepare_enable(clk[gpio1_gate]); |
@@ -264,6 +265,8 @@ int __init mx35_clocks_init(void) | |||
264 | clk_prepare_enable(clk[gpio3_gate]); | 265 | clk_prepare_enable(clk[gpio3_gate]); |
265 | clk_prepare_enable(clk[iim_gate]); | 266 | clk_prepare_enable(clk[iim_gate]); |
266 | clk_prepare_enable(clk[emi_gate]); | 267 | clk_prepare_enable(clk[emi_gate]); |
268 | clk_prepare_enable(clk[max_gate]); | ||
269 | clk_prepare_enable(clk[iomuxc_gate]); | ||
267 | 270 | ||
268 | /* | 271 | /* |
269 | * SCC is needed to boot via mmc after a watchdog reset. The clock code | 272 | * SCC is needed to boot via mmc after a watchdog reset. The clock code |
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c index 2f9ff93a4e61..d38e54f5b6d7 100644 --- a/arch/arm/mach-imx/clk-imx6q.c +++ b/arch/arm/mach-imx/clk-imx6q.c | |||
@@ -115,7 +115,7 @@ static const char *gpu2d_core_sels[] = { "axi", "pll3_usb_otg", "pll2_pfd0_352m" | |||
115 | static const char *gpu3d_core_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd2_396m", }; | 115 | static const char *gpu3d_core_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd2_396m", }; |
116 | static const char *gpu3d_shader_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd9_720m", }; | 116 | static const char *gpu3d_shader_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd9_720m", }; |
117 | static const char *ipu_sels[] = { "mmdc_ch0_axi", "pll2_pfd2_396m", "pll3_120m", "pll3_pfd1_540m", }; | 117 | static const char *ipu_sels[] = { "mmdc_ch0_axi", "pll2_pfd2_396m", "pll3_120m", "pll3_pfd1_540m", }; |
118 | static const char *ldb_di_sels[] = { "pll5_video", "pll2_pfd0_352m", "pll2_pfd2_396m", "mmdc_ch1_axi", "pll3_pfd1_540m", }; | 118 | static const char *ldb_di_sels[] = { "pll5_video", "pll2_pfd0_352m", "pll2_pfd2_396m", "mmdc_ch1_axi", "pll3_usb_otg", }; |
119 | static const char *ipu_di_pre_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll5_video", "pll2_pfd0_352m", "pll2_pfd2_396m", "pll3_pfd1_540m", }; | 119 | static const char *ipu_di_pre_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll5_video", "pll2_pfd0_352m", "pll2_pfd2_396m", "pll3_pfd1_540m", }; |
120 | static const char *ipu1_di0_sels[] = { "ipu1_di0_pre", "dummy", "dummy", "ldb_di0", "ldb_di1", }; | 120 | static const char *ipu1_di0_sels[] = { "ipu1_di0_pre", "dummy", "dummy", "ldb_di0", "ldb_di1", }; |
121 | static const char *ipu1_di1_sels[] = { "ipu1_di1_pre", "dummy", "dummy", "ldb_di0", "ldb_di1", }; | 121 | static const char *ipu1_di1_sels[] = { "ipu1_di1_pre", "dummy", "dummy", "ldb_di0", "ldb_di1", }; |
@@ -443,7 +443,6 @@ int __init mx6q_clocks_init(void) | |||
443 | 443 | ||
444 | clk_register_clkdev(clk[gpt_ipg], "ipg", "imx-gpt.0"); | 444 | clk_register_clkdev(clk[gpt_ipg], "ipg", "imx-gpt.0"); |
445 | clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0"); | 445 | clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0"); |
446 | clk_register_clkdev(clk[twd], NULL, "smp_twd"); | ||
447 | clk_register_clkdev(clk[cko1_sel], "cko1_sel", NULL); | 446 | clk_register_clkdev(clk[cko1_sel], "cko1_sel", NULL); |
448 | clk_register_clkdev(clk[ahb], "ahb", NULL); | 447 | clk_register_clkdev(clk[ahb], "ahb", NULL); |
449 | clk_register_clkdev(clk[cko1], "cko1", NULL); | 448 | clk_register_clkdev(clk[cko1], "cko1", NULL); |
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index 5a800bfcec5b..5bf4a97ab241 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h | |||
@@ -110,6 +110,8 @@ void tzic_handle_irq(struct pt_regs *); | |||
110 | 110 | ||
111 | extern void imx_enable_cpu(int cpu, bool enable); | 111 | extern void imx_enable_cpu(int cpu, bool enable); |
112 | extern void imx_set_cpu_jump(int cpu, void *jump_addr); | 112 | extern void imx_set_cpu_jump(int cpu, void *jump_addr); |
113 | extern u32 imx_get_cpu_arg(int cpu); | ||
114 | extern void imx_set_cpu_arg(int cpu, u32 arg); | ||
113 | extern void v7_cpu_resume(void); | 115 | extern void v7_cpu_resume(void); |
114 | extern u32 *pl310_get_save_ptr(void); | 116 | extern u32 *pl310_get_save_ptr(void); |
115 | #ifdef CONFIG_SMP | 117 | #ifdef CONFIG_SMP |
diff --git a/arch/arm/mach-imx/hotplug.c b/arch/arm/mach-imx/hotplug.c index 7bc5fe15dda2..5e91112dcbee 100644 --- a/arch/arm/mach-imx/hotplug.c +++ b/arch/arm/mach-imx/hotplug.c | |||
@@ -11,7 +11,6 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
14 | #include <asm/cacheflush.h> | ||
15 | #include <asm/cp15.h> | 14 | #include <asm/cp15.h> |
16 | 15 | ||
17 | #include "common.h" | 16 | #include "common.h" |
@@ -20,7 +19,6 @@ static inline void cpu_enter_lowpower(void) | |||
20 | { | 19 | { |
21 | unsigned int v; | 20 | unsigned int v; |
22 | 21 | ||
23 | flush_cache_all(); | ||
24 | asm volatile( | 22 | asm volatile( |
25 | "mcr p15, 0, %1, c7, c5, 0\n" | 23 | "mcr p15, 0, %1, c7, c5, 0\n" |
26 | " mcr p15, 0, %1, c7, c10, 4\n" | 24 | " mcr p15, 0, %1, c7, c10, 4\n" |
@@ -46,11 +44,23 @@ static inline void cpu_enter_lowpower(void) | |||
46 | void imx_cpu_die(unsigned int cpu) | 44 | void imx_cpu_die(unsigned int cpu) |
47 | { | 45 | { |
48 | cpu_enter_lowpower(); | 46 | cpu_enter_lowpower(); |
47 | /* | ||
48 | * We use the cpu jumping argument register to sync with | ||
49 | * imx_cpu_kill() which is running on cpu0 and waiting for | ||
50 | * the register being cleared to kill the cpu. | ||
51 | */ | ||
52 | imx_set_cpu_arg(cpu, ~0); | ||
49 | cpu_do_idle(); | 53 | cpu_do_idle(); |
50 | } | 54 | } |
51 | 55 | ||
52 | int imx_cpu_kill(unsigned int cpu) | 56 | int imx_cpu_kill(unsigned int cpu) |
53 | { | 57 | { |
58 | unsigned long timeout = jiffies + msecs_to_jiffies(50); | ||
59 | |||
60 | while (imx_get_cpu_arg(cpu) == 0) | ||
61 | if (time_after(jiffies, timeout)) | ||
62 | return 0; | ||
54 | imx_enable_cpu(cpu, false); | 63 | imx_enable_cpu(cpu, false); |
64 | imx_set_cpu_arg(cpu, 0); | ||
55 | return 1; | 65 | return 1; |
56 | } | 66 | } |
diff --git a/arch/arm/mach-imx/imx25-dt.c b/arch/arm/mach-imx/imx25-dt.c index 03b65e5ea541..82348391582a 100644 --- a/arch/arm/mach-imx/imx25-dt.c +++ b/arch/arm/mach-imx/imx25-dt.c | |||
@@ -27,6 +27,11 @@ static const char * const imx25_dt_board_compat[] __initconst = { | |||
27 | NULL | 27 | NULL |
28 | }; | 28 | }; |
29 | 29 | ||
30 | static void __init imx25_timer_init(void) | ||
31 | { | ||
32 | mx25_clocks_init_dt(); | ||
33 | } | ||
34 | |||
30 | DT_MACHINE_START(IMX25_DT, "Freescale i.MX25 (Device Tree Support)") | 35 | DT_MACHINE_START(IMX25_DT, "Freescale i.MX25 (Device Tree Support)") |
31 | .map_io = mx25_map_io, | 36 | .map_io = mx25_map_io, |
32 | .init_early = imx25_init_early, | 37 | .init_early = imx25_init_early, |
diff --git a/arch/arm/mach-imx/src.c b/arch/arm/mach-imx/src.c index e15f1555c59b..09a742f8c7ab 100644 --- a/arch/arm/mach-imx/src.c +++ b/arch/arm/mach-imx/src.c | |||
@@ -43,6 +43,18 @@ void imx_set_cpu_jump(int cpu, void *jump_addr) | |||
43 | src_base + SRC_GPR1 + cpu * 8); | 43 | src_base + SRC_GPR1 + cpu * 8); |
44 | } | 44 | } |
45 | 45 | ||
46 | u32 imx_get_cpu_arg(int cpu) | ||
47 | { | ||
48 | cpu = cpu_logical_map(cpu); | ||
49 | return readl_relaxed(src_base + SRC_GPR1 + cpu * 8 + 4); | ||
50 | } | ||
51 | |||
52 | void imx_set_cpu_arg(int cpu, u32 arg) | ||
53 | { | ||
54 | cpu = cpu_logical_map(cpu); | ||
55 | writel_relaxed(arg, src_base + SRC_GPR1 + cpu * 8 + 4); | ||
56 | } | ||
57 | |||
46 | void imx_src_prepare_restart(void) | 58 | void imx_src_prepare_restart(void) |
47 | { | 59 | { |
48 | u32 val; | 60 | u32 val; |
diff --git a/arch/arm/mach-kirkwood/board-iomega_ix2_200.c b/arch/arm/mach-kirkwood/board-iomega_ix2_200.c index f655b2637b0e..e5f70415905a 100644 --- a/arch/arm/mach-kirkwood/board-iomega_ix2_200.c +++ b/arch/arm/mach-kirkwood/board-iomega_ix2_200.c | |||
@@ -20,10 +20,15 @@ static struct mv643xx_eth_platform_data iomega_ix2_200_ge00_data = { | |||
20 | .duplex = DUPLEX_FULL, | 20 | .duplex = DUPLEX_FULL, |
21 | }; | 21 | }; |
22 | 22 | ||
23 | static struct mv643xx_eth_platform_data iomega_ix2_200_ge01_data = { | ||
24 | .phy_addr = MV643XX_ETH_PHY_ADDR(11), | ||
25 | }; | ||
26 | |||
23 | void __init iomega_ix2_200_init(void) | 27 | void __init iomega_ix2_200_init(void) |
24 | { | 28 | { |
25 | /* | 29 | /* |
26 | * Basic setup. Needs to be called early. | 30 | * Basic setup. Needs to be called early. |
27 | */ | 31 | */ |
28 | kirkwood_ge01_init(&iomega_ix2_200_ge00_data); | 32 | kirkwood_ge00_init(&iomega_ix2_200_ge00_data); |
33 | kirkwood_ge01_init(&iomega_ix2_200_ge01_data); | ||
29 | } | 34 | } |
diff --git a/arch/arm/mach-kirkwood/guruplug-setup.c b/arch/arm/mach-kirkwood/guruplug-setup.c index 1c6e736cbbf8..08dd739aa709 100644 --- a/arch/arm/mach-kirkwood/guruplug-setup.c +++ b/arch/arm/mach-kirkwood/guruplug-setup.c | |||
@@ -53,6 +53,8 @@ static struct mv_sata_platform_data guruplug_sata_data = { | |||
53 | 53 | ||
54 | static struct mvsdio_platform_data guruplug_mvsdio_data = { | 54 | static struct mvsdio_platform_data guruplug_mvsdio_data = { |
55 | /* unfortunately the CD signal has not been connected */ | 55 | /* unfortunately the CD signal has not been connected */ |
56 | .gpio_card_detect = -1, | ||
57 | .gpio_write_protect = -1, | ||
56 | }; | 58 | }; |
57 | 59 | ||
58 | static struct gpio_led guruplug_led_pins[] = { | 60 | static struct gpio_led guruplug_led_pins[] = { |
diff --git a/arch/arm/mach-kirkwood/openrd-setup.c b/arch/arm/mach-kirkwood/openrd-setup.c index 8ddd69fdc937..6a6eb548307d 100644 --- a/arch/arm/mach-kirkwood/openrd-setup.c +++ b/arch/arm/mach-kirkwood/openrd-setup.c | |||
@@ -55,6 +55,7 @@ static struct mv_sata_platform_data openrd_sata_data = { | |||
55 | 55 | ||
56 | static struct mvsdio_platform_data openrd_mvsdio_data = { | 56 | static struct mvsdio_platform_data openrd_mvsdio_data = { |
57 | .gpio_card_detect = 29, /* MPP29 used as SD card detect */ | 57 | .gpio_card_detect = 29, /* MPP29 used as SD card detect */ |
58 | .gpio_write_protect = -1, | ||
58 | }; | 59 | }; |
59 | 60 | ||
60 | static unsigned int openrd_mpp_config[] __initdata = { | 61 | static unsigned int openrd_mpp_config[] __initdata = { |
diff --git a/arch/arm/mach-kirkwood/rd88f6281-setup.c b/arch/arm/mach-kirkwood/rd88f6281-setup.c index c7d93b48926b..d24223166e06 100644 --- a/arch/arm/mach-kirkwood/rd88f6281-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6281-setup.c | |||
@@ -69,6 +69,7 @@ static struct mv_sata_platform_data rd88f6281_sata_data = { | |||
69 | 69 | ||
70 | static struct mvsdio_platform_data rd88f6281_mvsdio_data = { | 70 | static struct mvsdio_platform_data rd88f6281_mvsdio_data = { |
71 | .gpio_card_detect = 28, | 71 | .gpio_card_detect = 28, |
72 | .gpio_write_protect = -1, | ||
72 | }; | 73 | }; |
73 | 74 | ||
74 | static unsigned int rd88f6281_mpp_config[] __initdata = { | 75 | static unsigned int rd88f6281_mpp_config[] __initdata = { |
diff --git a/arch/arm/mach-mmp/gplugd.c b/arch/arm/mach-mmp/gplugd.c index d1e2d595e79c..f62b68d926f4 100644 --- a/arch/arm/mach-mmp/gplugd.c +++ b/arch/arm/mach-mmp/gplugd.c | |||
@@ -9,6 +9,7 @@ | |||
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/platform_device.h> | ||
12 | #include <linux/gpio.h> | 13 | #include <linux/gpio.h> |
13 | 14 | ||
14 | #include <asm/mach/arch.h> | 15 | #include <asm/mach/arch.h> |
diff --git a/arch/arm/mach-msm/hotplug.c b/arch/arm/mach-msm/hotplug.c index 750446feb444..326a87261f9a 100644 --- a/arch/arm/mach-msm/hotplug.c +++ b/arch/arm/mach-msm/hotplug.c | |||
@@ -10,16 +10,12 @@ | |||
10 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
11 | #include <linux/smp.h> | 11 | #include <linux/smp.h> |
12 | 12 | ||
13 | #include <asm/cacheflush.h> | ||
14 | #include <asm/smp_plat.h> | 13 | #include <asm/smp_plat.h> |
15 | 14 | ||
16 | #include "common.h" | 15 | #include "common.h" |
17 | 16 | ||
18 | static inline void cpu_enter_lowpower(void) | 17 | static inline void cpu_enter_lowpower(void) |
19 | { | 18 | { |
20 | /* Just flush the cache. Changing the coherency is not yet | ||
21 | * available on msm. */ | ||
22 | flush_cache_all(); | ||
23 | } | 19 | } |
24 | 20 | ||
25 | static inline void cpu_leave_lowpower(void) | 21 | static inline void cpu_leave_lowpower(void) |
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c index 2969027f02fa..f9fd77e8f1f5 100644 --- a/arch/arm/mach-msm/timer.c +++ b/arch/arm/mach-msm/timer.c | |||
@@ -62,7 +62,10 @@ static int msm_timer_set_next_event(unsigned long cycles, | |||
62 | { | 62 | { |
63 | u32 ctrl = readl_relaxed(event_base + TIMER_ENABLE); | 63 | u32 ctrl = readl_relaxed(event_base + TIMER_ENABLE); |
64 | 64 | ||
65 | writel_relaxed(0, event_base + TIMER_CLEAR); | 65 | ctrl &= ~TIMER_ENABLE_EN; |
66 | writel_relaxed(ctrl, event_base + TIMER_ENABLE); | ||
67 | |||
68 | writel_relaxed(ctrl, event_base + TIMER_CLEAR); | ||
66 | writel_relaxed(cycles, event_base + TIMER_MATCH_VAL); | 69 | writel_relaxed(cycles, event_base + TIMER_MATCH_VAL); |
67 | writel_relaxed(ctrl | TIMER_ENABLE_EN, event_base + TIMER_ENABLE); | 70 | writel_relaxed(ctrl | TIMER_ENABLE_EN, event_base + TIMER_ENABLE); |
68 | return 0; | 71 | return 0; |
diff --git a/arch/arm/mach-mvebu/irq-armada-370-xp.c b/arch/arm/mach-mvebu/irq-armada-370-xp.c index 274ff58271de..d5970f5a1e8d 100644 --- a/arch/arm/mach-mvebu/irq-armada-370-xp.c +++ b/arch/arm/mach-mvebu/irq-armada-370-xp.c | |||
@@ -44,6 +44,8 @@ | |||
44 | 44 | ||
45 | #define ARMADA_370_XP_MAX_PER_CPU_IRQS (28) | 45 | #define ARMADA_370_XP_MAX_PER_CPU_IRQS (28) |
46 | 46 | ||
47 | #define ARMADA_370_XP_TIMER0_PER_CPU_IRQ (5) | ||
48 | |||
47 | #define ACTIVE_DOORBELLS (8) | 49 | #define ACTIVE_DOORBELLS (8) |
48 | 50 | ||
49 | static DEFINE_RAW_SPINLOCK(irq_controller_lock); | 51 | static DEFINE_RAW_SPINLOCK(irq_controller_lock); |
@@ -59,36 +61,26 @@ static struct irq_domain *armada_370_xp_mpic_domain; | |||
59 | */ | 61 | */ |
60 | static void armada_370_xp_irq_mask(struct irq_data *d) | 62 | static void armada_370_xp_irq_mask(struct irq_data *d) |
61 | { | 63 | { |
62 | #ifdef CONFIG_SMP | ||
63 | irq_hw_number_t hwirq = irqd_to_hwirq(d); | 64 | irq_hw_number_t hwirq = irqd_to_hwirq(d); |
64 | 65 | ||
65 | if (hwirq > ARMADA_370_XP_MAX_PER_CPU_IRQS) | 66 | if (hwirq != ARMADA_370_XP_TIMER0_PER_CPU_IRQ) |
66 | writel(hwirq, main_int_base + | 67 | writel(hwirq, main_int_base + |
67 | ARMADA_370_XP_INT_CLEAR_ENABLE_OFFS); | 68 | ARMADA_370_XP_INT_CLEAR_ENABLE_OFFS); |
68 | else | 69 | else |
69 | writel(hwirq, per_cpu_int_base + | 70 | writel(hwirq, per_cpu_int_base + |
70 | ARMADA_370_XP_INT_SET_MASK_OFFS); | 71 | ARMADA_370_XP_INT_SET_MASK_OFFS); |
71 | #else | ||
72 | writel(irqd_to_hwirq(d), | ||
73 | per_cpu_int_base + ARMADA_370_XP_INT_SET_MASK_OFFS); | ||
74 | #endif | ||
75 | } | 72 | } |
76 | 73 | ||
77 | static void armada_370_xp_irq_unmask(struct irq_data *d) | 74 | static void armada_370_xp_irq_unmask(struct irq_data *d) |
78 | { | 75 | { |
79 | #ifdef CONFIG_SMP | ||
80 | irq_hw_number_t hwirq = irqd_to_hwirq(d); | 76 | irq_hw_number_t hwirq = irqd_to_hwirq(d); |
81 | 77 | ||
82 | if (hwirq > ARMADA_370_XP_MAX_PER_CPU_IRQS) | 78 | if (hwirq != ARMADA_370_XP_TIMER0_PER_CPU_IRQ) |
83 | writel(hwirq, main_int_base + | 79 | writel(hwirq, main_int_base + |
84 | ARMADA_370_XP_INT_SET_ENABLE_OFFS); | 80 | ARMADA_370_XP_INT_SET_ENABLE_OFFS); |
85 | else | 81 | else |
86 | writel(hwirq, per_cpu_int_base + | 82 | writel(hwirq, per_cpu_int_base + |
87 | ARMADA_370_XP_INT_CLEAR_MASK_OFFS); | 83 | ARMADA_370_XP_INT_CLEAR_MASK_OFFS); |
88 | #else | ||
89 | writel(irqd_to_hwirq(d), | ||
90 | per_cpu_int_base + ARMADA_370_XP_INT_CLEAR_MASK_OFFS); | ||
91 | #endif | ||
92 | } | 84 | } |
93 | 85 | ||
94 | #ifdef CONFIG_SMP | 86 | #ifdef CONFIG_SMP |
@@ -144,10 +136,14 @@ static int armada_370_xp_mpic_irq_map(struct irq_domain *h, | |||
144 | unsigned int virq, irq_hw_number_t hw) | 136 | unsigned int virq, irq_hw_number_t hw) |
145 | { | 137 | { |
146 | armada_370_xp_irq_mask(irq_get_irq_data(virq)); | 138 | armada_370_xp_irq_mask(irq_get_irq_data(virq)); |
147 | writel(hw, main_int_base + ARMADA_370_XP_INT_SET_ENABLE_OFFS); | 139 | if (hw != ARMADA_370_XP_TIMER0_PER_CPU_IRQ) |
140 | writel(hw, per_cpu_int_base + | ||
141 | ARMADA_370_XP_INT_CLEAR_MASK_OFFS); | ||
142 | else | ||
143 | writel(hw, main_int_base + ARMADA_370_XP_INT_SET_ENABLE_OFFS); | ||
148 | irq_set_status_flags(virq, IRQ_LEVEL); | 144 | irq_set_status_flags(virq, IRQ_LEVEL); |
149 | 145 | ||
150 | if (hw < ARMADA_370_XP_MAX_PER_CPU_IRQS) { | 146 | if (hw == ARMADA_370_XP_TIMER0_PER_CPU_IRQ) { |
151 | irq_set_percpu_devid(virq); | 147 | irq_set_percpu_devid(virq); |
152 | irq_set_chip_and_handler(virq, &armada_370_xp_irq_chip, | 148 | irq_set_chip_and_handler(virq, &armada_370_xp_irq_chip, |
153 | handle_percpu_devid_irq); | 149 | handle_percpu_devid_irq); |
diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c index 3218f1f2c0e0..e7b781d3788f 100644 --- a/arch/arm/mach-mxs/mach-mxs.c +++ b/arch/arm/mach-mxs/mach-mxs.c | |||
@@ -41,8 +41,6 @@ static struct fb_videomode mx23evk_video_modes[] = { | |||
41 | .lower_margin = 4, | 41 | .lower_margin = 4, |
42 | .hsync_len = 1, | 42 | .hsync_len = 1, |
43 | .vsync_len = 1, | 43 | .vsync_len = 1, |
44 | .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
45 | FB_SYNC_DOTCLK_FAILING_ACT, | ||
46 | }, | 44 | }, |
47 | }; | 45 | }; |
48 | 46 | ||
@@ -59,8 +57,6 @@ static struct fb_videomode mx28evk_video_modes[] = { | |||
59 | .lower_margin = 10, | 57 | .lower_margin = 10, |
60 | .hsync_len = 10, | 58 | .hsync_len = 10, |
61 | .vsync_len = 10, | 59 | .vsync_len = 10, |
62 | .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
63 | FB_SYNC_DOTCLK_FAILING_ACT, | ||
64 | }, | 60 | }, |
65 | }; | 61 | }; |
66 | 62 | ||
@@ -77,7 +73,6 @@ static struct fb_videomode m28evk_video_modes[] = { | |||
77 | .lower_margin = 45, | 73 | .lower_margin = 45, |
78 | .hsync_len = 1, | 74 | .hsync_len = 1, |
79 | .vsync_len = 1, | 75 | .vsync_len = 1, |
80 | .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT, | ||
81 | }, | 76 | }, |
82 | }; | 77 | }; |
83 | 78 | ||
@@ -94,9 +89,7 @@ static struct fb_videomode apx4devkit_video_modes[] = { | |||
94 | .lower_margin = 13, | 89 | .lower_margin = 13, |
95 | .hsync_len = 48, | 90 | .hsync_len = 48, |
96 | .vsync_len = 3, | 91 | .vsync_len = 3, |
97 | .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT | | 92 | .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, |
98 | FB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
99 | FB_SYNC_DOTCLK_FAILING_ACT, | ||
100 | }, | 93 | }, |
101 | }; | 94 | }; |
102 | 95 | ||
@@ -113,9 +106,7 @@ static struct fb_videomode apf28dev_video_modes[] = { | |||
113 | .lower_margin = 0x15, | 106 | .lower_margin = 0x15, |
114 | .hsync_len = 64, | 107 | .hsync_len = 64, |
115 | .vsync_len = 4, | 108 | .vsync_len = 4, |
116 | .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT | | 109 | .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, |
117 | FB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
118 | FB_SYNC_DOTCLK_FAILING_ACT, | ||
119 | }, | 110 | }, |
120 | }; | 111 | }; |
121 | 112 | ||
@@ -132,7 +123,6 @@ static struct fb_videomode cfa10049_video_modes[] = { | |||
132 | .lower_margin = 2, | 123 | .lower_margin = 2, |
133 | .hsync_len = 15, | 124 | .hsync_len = 15, |
134 | .vsync_len = 15, | 125 | .vsync_len = 15, |
135 | .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT | ||
136 | }, | 126 | }, |
137 | }; | 127 | }; |
138 | 128 | ||
@@ -259,6 +249,8 @@ static void __init imx23_evk_init(void) | |||
259 | mxsfb_pdata.mode_count = ARRAY_SIZE(mx23evk_video_modes); | 249 | mxsfb_pdata.mode_count = ARRAY_SIZE(mx23evk_video_modes); |
260 | mxsfb_pdata.default_bpp = 32; | 250 | mxsfb_pdata.default_bpp = 32; |
261 | mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; | 251 | mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; |
252 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
253 | MXSFB_SYNC_DOTCLK_FAILING_ACT; | ||
262 | } | 254 | } |
263 | 255 | ||
264 | static inline void enable_clk_enet_out(void) | 256 | static inline void enable_clk_enet_out(void) |
@@ -278,6 +270,8 @@ static void __init imx28_evk_init(void) | |||
278 | mxsfb_pdata.mode_count = ARRAY_SIZE(mx28evk_video_modes); | 270 | mxsfb_pdata.mode_count = ARRAY_SIZE(mx28evk_video_modes); |
279 | mxsfb_pdata.default_bpp = 32; | 271 | mxsfb_pdata.default_bpp = 32; |
280 | mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; | 272 | mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; |
273 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
274 | MXSFB_SYNC_DOTCLK_FAILING_ACT; | ||
281 | 275 | ||
282 | mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0); | 276 | mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0); |
283 | } | 277 | } |
@@ -297,6 +291,7 @@ static void __init m28evk_init(void) | |||
297 | mxsfb_pdata.mode_count = ARRAY_SIZE(m28evk_video_modes); | 291 | mxsfb_pdata.mode_count = ARRAY_SIZE(m28evk_video_modes); |
298 | mxsfb_pdata.default_bpp = 16; | 292 | mxsfb_pdata.default_bpp = 16; |
299 | mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; | 293 | mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; |
294 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT; | ||
300 | } | 295 | } |
301 | 296 | ||
302 | static void __init sc_sps1_init(void) | 297 | static void __init sc_sps1_init(void) |
@@ -322,6 +317,8 @@ static void __init apx4devkit_init(void) | |||
322 | mxsfb_pdata.mode_count = ARRAY_SIZE(apx4devkit_video_modes); | 317 | mxsfb_pdata.mode_count = ARRAY_SIZE(apx4devkit_video_modes); |
323 | mxsfb_pdata.default_bpp = 32; | 318 | mxsfb_pdata.default_bpp = 32; |
324 | mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; | 319 | mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; |
320 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
321 | MXSFB_SYNC_DOTCLK_FAILING_ACT; | ||
325 | } | 322 | } |
326 | 323 | ||
327 | #define ENET0_MDC__GPIO_4_0 MXS_GPIO_NR(4, 0) | 324 | #define ENET0_MDC__GPIO_4_0 MXS_GPIO_NR(4, 0) |
@@ -407,6 +404,7 @@ static void __init cfa10049_init(void) | |||
407 | mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes); | 404 | mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes); |
408 | mxsfb_pdata.default_bpp = 32; | 405 | mxsfb_pdata.default_bpp = 32; |
409 | mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; | 406 | mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; |
407 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT; | ||
410 | } | 408 | } |
411 | 409 | ||
412 | static void __init cfa10037_init(void) | 410 | static void __init cfa10037_init(void) |
@@ -423,6 +421,8 @@ static void __init apf28_init(void) | |||
423 | mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes); | 421 | mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes); |
424 | mxsfb_pdata.default_bpp = 16; | 422 | mxsfb_pdata.default_bpp = 16; |
425 | mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT; | 423 | mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT; |
424 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
425 | MXSFB_SYNC_DOTCLK_FAILING_ACT; | ||
426 | } | 426 | } |
427 | 427 | ||
428 | static void __init mxs_machine_init(void) | 428 | static void __init mxs_machine_init(void) |
diff --git a/arch/arm/mach-omap1/clock_data.c b/arch/arm/mach-omap1/clock_data.c index cb7c6ae2e3fc..6c4f766365a2 100644 --- a/arch/arm/mach-omap1/clock_data.c +++ b/arch/arm/mach-omap1/clock_data.c | |||
@@ -543,15 +543,6 @@ static struct clk usb_dc_ck = { | |||
543 | /* Direct from ULPD, no parent */ | 543 | /* Direct from ULPD, no parent */ |
544 | .rate = 48000000, | 544 | .rate = 48000000, |
545 | .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG), | 545 | .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG), |
546 | .enable_bit = USB_REQ_EN_SHIFT, | ||
547 | }; | ||
548 | |||
549 | static struct clk usb_dc_ck7xx = { | ||
550 | .name = "usb_dc_ck", | ||
551 | .ops = &clkops_generic, | ||
552 | /* Direct from ULPD, no parent */ | ||
553 | .rate = 48000000, | ||
554 | .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG), | ||
555 | .enable_bit = SOFT_USB_OTG_DPLL_REQ_SHIFT, | 546 | .enable_bit = SOFT_USB_OTG_DPLL_REQ_SHIFT, |
556 | }; | 547 | }; |
557 | 548 | ||
@@ -727,8 +718,7 @@ static struct omap_clk omap_clks[] = { | |||
727 | CLK(NULL, "usb_clko", &usb_clko, CK_16XX | CK_1510 | CK_310), | 718 | CLK(NULL, "usb_clko", &usb_clko, CK_16XX | CK_1510 | CK_310), |
728 | CLK(NULL, "usb_hhc_ck", &usb_hhc_ck1510, CK_1510 | CK_310), | 719 | CLK(NULL, "usb_hhc_ck", &usb_hhc_ck1510, CK_1510 | CK_310), |
729 | CLK(NULL, "usb_hhc_ck", &usb_hhc_ck16xx, CK_16XX), | 720 | CLK(NULL, "usb_hhc_ck", &usb_hhc_ck16xx, CK_16XX), |
730 | CLK(NULL, "usb_dc_ck", &usb_dc_ck, CK_16XX), | 721 | CLK(NULL, "usb_dc_ck", &usb_dc_ck, CK_16XX | CK_7XX), |
731 | CLK(NULL, "usb_dc_ck", &usb_dc_ck7xx, CK_7XX), | ||
732 | CLK(NULL, "mclk", &mclk_1510, CK_1510 | CK_310), | 722 | CLK(NULL, "mclk", &mclk_1510, CK_1510 | CK_310), |
733 | CLK(NULL, "mclk", &mclk_16xx, CK_16XX), | 723 | CLK(NULL, "mclk", &mclk_16xx, CK_16XX), |
734 | CLK(NULL, "bclk", &bclk_1510, CK_1510 | CK_310), | 724 | CLK(NULL, "bclk", &bclk_1510, CK_1510 | CK_310), |
diff --git a/arch/arm/mach-omap2/cclock44xx_data.c b/arch/arm/mach-omap2/cclock44xx_data.c index 3d58f335f173..0c6834ae1fc4 100644 --- a/arch/arm/mach-omap2/cclock44xx_data.c +++ b/arch/arm/mach-omap2/cclock44xx_data.c | |||
@@ -52,6 +52,13 @@ | |||
52 | */ | 52 | */ |
53 | #define OMAP4_DPLL_ABE_DEFFREQ 98304000 | 53 | #define OMAP4_DPLL_ABE_DEFFREQ 98304000 |
54 | 54 | ||
55 | /* | ||
56 | * OMAP4 USB DPLL default frequency. In OMAP4430 TRM version V, section | ||
57 | * "3.6.3.9.5 DPLL_USB Preferred Settings" shows that the preferred | ||
58 | * locked frequency for the USB DPLL is 960MHz. | ||
59 | */ | ||
60 | #define OMAP4_DPLL_USB_DEFFREQ 960000000 | ||
61 | |||
55 | /* Root clocks */ | 62 | /* Root clocks */ |
56 | 63 | ||
57 | DEFINE_CLK_FIXED_RATE(extalt_clkin_ck, CLK_IS_ROOT, 59000000, 0x0); | 64 | DEFINE_CLK_FIXED_RATE(extalt_clkin_ck, CLK_IS_ROOT, 59000000, 0x0); |
@@ -1011,6 +1018,10 @@ DEFINE_CLK_OMAP_MUX(hsmmc2_fclk, "l3_init_clkdm", hsmmc1_fclk_sel, | |||
1011 | OMAP4430_CM_L3INIT_MMC2_CLKCTRL, OMAP4430_CLKSEL_MASK, | 1018 | OMAP4430_CM_L3INIT_MMC2_CLKCTRL, OMAP4430_CLKSEL_MASK, |
1012 | hsmmc1_fclk_parents, func_dmic_abe_gfclk_ops); | 1019 | hsmmc1_fclk_parents, func_dmic_abe_gfclk_ops); |
1013 | 1020 | ||
1021 | DEFINE_CLK_GATE(ocp2scp_usb_phy_phy_48m, "func_48m_fclk", &func_48m_fclk, 0x0, | ||
1022 | OMAP4430_CM_L3INIT_USBPHYOCP2SCP_CLKCTRL, | ||
1023 | OMAP4430_OPTFCLKEN_PHY_48M_SHIFT, 0x0, NULL); | ||
1024 | |||
1014 | DEFINE_CLK_GATE(sha2md5_fck, "l3_div_ck", &l3_div_ck, 0x0, | 1025 | DEFINE_CLK_GATE(sha2md5_fck, "l3_div_ck", &l3_div_ck, 0x0, |
1015 | OMAP4430_CM_L4SEC_SHA2MD51_CLKCTRL, | 1026 | OMAP4430_CM_L4SEC_SHA2MD51_CLKCTRL, |
1016 | OMAP4430_MODULEMODE_SWCTRL_SHIFT, 0x0, NULL); | 1027 | OMAP4430_MODULEMODE_SWCTRL_SHIFT, 0x0, NULL); |
@@ -1538,6 +1549,7 @@ static struct omap_clk omap44xx_clks[] = { | |||
1538 | CLK(NULL, "per_mcbsp4_gfclk", &per_mcbsp4_gfclk, CK_443X), | 1549 | CLK(NULL, "per_mcbsp4_gfclk", &per_mcbsp4_gfclk, CK_443X), |
1539 | CLK(NULL, "hsmmc1_fclk", &hsmmc1_fclk, CK_443X), | 1550 | CLK(NULL, "hsmmc1_fclk", &hsmmc1_fclk, CK_443X), |
1540 | CLK(NULL, "hsmmc2_fclk", &hsmmc2_fclk, CK_443X), | 1551 | CLK(NULL, "hsmmc2_fclk", &hsmmc2_fclk, CK_443X), |
1552 | CLK(NULL, "ocp2scp_usb_phy_phy_48m", &ocp2scp_usb_phy_phy_48m, CK_443X), | ||
1541 | CLK(NULL, "sha2md5_fck", &sha2md5_fck, CK_443X), | 1553 | CLK(NULL, "sha2md5_fck", &sha2md5_fck, CK_443X), |
1542 | CLK(NULL, "slimbus1_fclk_1", &slimbus1_fclk_1, CK_443X), | 1554 | CLK(NULL, "slimbus1_fclk_1", &slimbus1_fclk_1, CK_443X), |
1543 | CLK(NULL, "slimbus1_fclk_0", &slimbus1_fclk_0, CK_443X), | 1555 | CLK(NULL, "slimbus1_fclk_0", &slimbus1_fclk_0, CK_443X), |
@@ -1705,5 +1717,13 @@ int __init omap4xxx_clk_init(void) | |||
1705 | if (rc) | 1717 | if (rc) |
1706 | pr_err("%s: failed to configure ABE DPLL!\n", __func__); | 1718 | pr_err("%s: failed to configure ABE DPLL!\n", __func__); |
1707 | 1719 | ||
1720 | /* | ||
1721 | * Lock USB DPLL on OMAP4 devices so that the L3INIT power | ||
1722 | * domain can transition to retention state when not in use. | ||
1723 | */ | ||
1724 | rc = clk_set_rate(&dpll_usb_ck, OMAP4_DPLL_USB_DEFFREQ); | ||
1725 | if (rc) | ||
1726 | pr_err("%s: failed to configure USB DPLL!\n", __func__); | ||
1727 | |||
1708 | return 0; | 1728 | return 0; |
1709 | } | 1729 | } |
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index 40f4a03d728f..d6ba13e1c540 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h | |||
@@ -293,5 +293,8 @@ extern void omap_reserve(void); | |||
293 | struct omap_hwmod; | 293 | struct omap_hwmod; |
294 | extern int omap_dss_reset(struct omap_hwmod *); | 294 | extern int omap_dss_reset(struct omap_hwmod *); |
295 | 295 | ||
296 | /* SoC specific clock initializer */ | ||
297 | extern int (*omap_clk_init)(void); | ||
298 | |||
296 | #endif /* __ASSEMBLER__ */ | 299 | #endif /* __ASSEMBLER__ */ |
297 | #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */ | 300 | #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */ |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 2c3fdd65387b..5c445ca1e271 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -55,6 +55,12 @@ | |||
55 | #include "prm44xx.h" | 55 | #include "prm44xx.h" |
56 | 56 | ||
57 | /* | 57 | /* |
58 | * omap_clk_init: points to a function that does the SoC-specific | ||
59 | * clock initializations | ||
60 | */ | ||
61 | int (*omap_clk_init)(void); | ||
62 | |||
63 | /* | ||
58 | * The machine specific code may provide the extra mapping besides the | 64 | * The machine specific code may provide the extra mapping besides the |
59 | * default mapping provided here. | 65 | * default mapping provided here. |
60 | */ | 66 | */ |
@@ -397,7 +403,7 @@ void __init omap2420_init_early(void) | |||
397 | omap242x_clockdomains_init(); | 403 | omap242x_clockdomains_init(); |
398 | omap2420_hwmod_init(); | 404 | omap2420_hwmod_init(); |
399 | omap_hwmod_init_postsetup(); | 405 | omap_hwmod_init_postsetup(); |
400 | omap2420_clk_init(); | 406 | omap_clk_init = omap2420_clk_init; |
401 | } | 407 | } |
402 | 408 | ||
403 | void __init omap2420_init_late(void) | 409 | void __init omap2420_init_late(void) |
@@ -427,7 +433,7 @@ void __init omap2430_init_early(void) | |||
427 | omap243x_clockdomains_init(); | 433 | omap243x_clockdomains_init(); |
428 | omap2430_hwmod_init(); | 434 | omap2430_hwmod_init(); |
429 | omap_hwmod_init_postsetup(); | 435 | omap_hwmod_init_postsetup(); |
430 | omap2430_clk_init(); | 436 | omap_clk_init = omap2430_clk_init; |
431 | } | 437 | } |
432 | 438 | ||
433 | void __init omap2430_init_late(void) | 439 | void __init omap2430_init_late(void) |
@@ -462,7 +468,7 @@ void __init omap3_init_early(void) | |||
462 | omap3xxx_clockdomains_init(); | 468 | omap3xxx_clockdomains_init(); |
463 | omap3xxx_hwmod_init(); | 469 | omap3xxx_hwmod_init(); |
464 | omap_hwmod_init_postsetup(); | 470 | omap_hwmod_init_postsetup(); |
465 | omap3xxx_clk_init(); | 471 | omap_clk_init = omap3xxx_clk_init; |
466 | } | 472 | } |
467 | 473 | ||
468 | void __init omap3430_init_early(void) | 474 | void __init omap3430_init_early(void) |
@@ -500,7 +506,7 @@ void __init ti81xx_init_early(void) | |||
500 | omap3xxx_clockdomains_init(); | 506 | omap3xxx_clockdomains_init(); |
501 | omap3xxx_hwmod_init(); | 507 | omap3xxx_hwmod_init(); |
502 | omap_hwmod_init_postsetup(); | 508 | omap_hwmod_init_postsetup(); |
503 | omap3xxx_clk_init(); | 509 | omap_clk_init = omap3xxx_clk_init; |
504 | } | 510 | } |
505 | 511 | ||
506 | void __init omap3_init_late(void) | 512 | void __init omap3_init_late(void) |
@@ -568,7 +574,7 @@ void __init am33xx_init_early(void) | |||
568 | am33xx_clockdomains_init(); | 574 | am33xx_clockdomains_init(); |
569 | am33xx_hwmod_init(); | 575 | am33xx_hwmod_init(); |
570 | omap_hwmod_init_postsetup(); | 576 | omap_hwmod_init_postsetup(); |
571 | am33xx_clk_init(); | 577 | omap_clk_init = am33xx_clk_init; |
572 | } | 578 | } |
573 | #endif | 579 | #endif |
574 | 580 | ||
@@ -593,7 +599,7 @@ void __init omap4430_init_early(void) | |||
593 | omap44xx_clockdomains_init(); | 599 | omap44xx_clockdomains_init(); |
594 | omap44xx_hwmod_init(); | 600 | omap44xx_hwmod_init(); |
595 | omap_hwmod_init_postsetup(); | 601 | omap_hwmod_init_postsetup(); |
596 | omap4xxx_clk_init(); | 602 | omap_clk_init = omap4xxx_clk_init; |
597 | } | 603 | } |
598 | 604 | ||
599 | void __init omap4430_init_late(void) | 605 | void __init omap4430_init_late(void) |
diff --git a/arch/arm/mach-omap2/omap-hotplug.c b/arch/arm/mach-omap2/omap-hotplug.c index e712d1725a8b..ceb30a59bf28 100644 --- a/arch/arm/mach-omap2/omap-hotplug.c +++ b/arch/arm/mach-omap2/omap-hotplug.c | |||
@@ -35,9 +35,6 @@ void __ref omap4_cpu_die(unsigned int cpu) | |||
35 | unsigned int boot_cpu = 0; | 35 | unsigned int boot_cpu = 0; |
36 | void __iomem *base = omap_get_wakeupgen_base(); | 36 | void __iomem *base = omap_get_wakeupgen_base(); |
37 | 37 | ||
38 | flush_cache_all(); | ||
39 | dsb(); | ||
40 | |||
41 | /* | 38 | /* |
42 | * we're ready for shutdown now, so do it | 39 | * we're ready for shutdown now, so do it |
43 | */ | 40 | */ |
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index c2c798c08c2b..a202a4785104 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -1368,7 +1368,9 @@ static void _enable_sysc(struct omap_hwmod *oh) | |||
1368 | } | 1368 | } |
1369 | 1369 | ||
1370 | if (sf & SYSC_HAS_MIDLEMODE) { | 1370 | if (sf & SYSC_HAS_MIDLEMODE) { |
1371 | if (oh->flags & HWMOD_SWSUP_MSTANDBY) { | 1371 | if (oh->flags & HWMOD_FORCE_MSTANDBY) { |
1372 | idlemode = HWMOD_IDLEMODE_FORCE; | ||
1373 | } else if (oh->flags & HWMOD_SWSUP_MSTANDBY) { | ||
1372 | idlemode = HWMOD_IDLEMODE_NO; | 1374 | idlemode = HWMOD_IDLEMODE_NO; |
1373 | } else { | 1375 | } else { |
1374 | if (sf & SYSC_HAS_ENAWAKEUP) | 1376 | if (sf & SYSC_HAS_ENAWAKEUP) |
@@ -1440,7 +1442,8 @@ static void _idle_sysc(struct omap_hwmod *oh) | |||
1440 | } | 1442 | } |
1441 | 1443 | ||
1442 | if (sf & SYSC_HAS_MIDLEMODE) { | 1444 | if (sf & SYSC_HAS_MIDLEMODE) { |
1443 | if (oh->flags & HWMOD_SWSUP_MSTANDBY) { | 1445 | if ((oh->flags & HWMOD_SWSUP_MSTANDBY) || |
1446 | (oh->flags & HWMOD_FORCE_MSTANDBY)) { | ||
1444 | idlemode = HWMOD_IDLEMODE_FORCE; | 1447 | idlemode = HWMOD_IDLEMODE_FORCE; |
1445 | } else { | 1448 | } else { |
1446 | if (sf & SYSC_HAS_ENAWAKEUP) | 1449 | if (sf & SYSC_HAS_ENAWAKEUP) |
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h index d43d9b608eda..d5dc935f6060 100644 --- a/arch/arm/mach-omap2/omap_hwmod.h +++ b/arch/arm/mach-omap2/omap_hwmod.h | |||
@@ -427,8 +427,8 @@ struct omap_hwmod_omap4_prcm { | |||
427 | * | 427 | * |
428 | * HWMOD_SWSUP_SIDLE: omap_hwmod code should manually bring module in and out | 428 | * HWMOD_SWSUP_SIDLE: omap_hwmod code should manually bring module in and out |
429 | * of idle, rather than relying on module smart-idle | 429 | * of idle, rather than relying on module smart-idle |
430 | * HWMOD_SWSUP_MSTDBY: omap_hwmod code should manually bring module in and out | 430 | * HWMOD_SWSUP_MSTANDBY: omap_hwmod code should manually bring module in and |
431 | * of standby, rather than relying on module smart-standby | 431 | * out of standby, rather than relying on module smart-standby |
432 | * HWMOD_INIT_NO_RESET: don't reset this module at boot - important for | 432 | * HWMOD_INIT_NO_RESET: don't reset this module at boot - important for |
433 | * SDRAM controller, etc. XXX probably belongs outside the main hwmod file | 433 | * SDRAM controller, etc. XXX probably belongs outside the main hwmod file |
434 | * XXX Should be HWMOD_SETUP_NO_RESET | 434 | * XXX Should be HWMOD_SETUP_NO_RESET |
@@ -459,6 +459,10 @@ struct omap_hwmod_omap4_prcm { | |||
459 | * correctly, or this is being abused to deal with some PM latency | 459 | * correctly, or this is being abused to deal with some PM latency |
460 | * issues -- but we're currently suffering from a shortage of | 460 | * issues -- but we're currently suffering from a shortage of |
461 | * folks who are able to track these issues down properly. | 461 | * folks who are able to track these issues down properly. |
462 | * HWMOD_FORCE_MSTANDBY: Always keep MIDLEMODE bits cleared so that device | ||
463 | * is kept in force-standby mode. Failing to do so causes PM problems | ||
464 | * with musb on OMAP3630 at least. Note that musb has a dedicated register | ||
465 | * to control MSTANDBY signal when MIDLEMODE is set to force-standby. | ||
462 | */ | 466 | */ |
463 | #define HWMOD_SWSUP_SIDLE (1 << 0) | 467 | #define HWMOD_SWSUP_SIDLE (1 << 0) |
464 | #define HWMOD_SWSUP_MSTANDBY (1 << 1) | 468 | #define HWMOD_SWSUP_MSTANDBY (1 << 1) |
@@ -471,6 +475,7 @@ struct omap_hwmod_omap4_prcm { | |||
471 | #define HWMOD_16BIT_REG (1 << 8) | 475 | #define HWMOD_16BIT_REG (1 << 8) |
472 | #define HWMOD_EXT_OPT_MAIN_CLK (1 << 9) | 476 | #define HWMOD_EXT_OPT_MAIN_CLK (1 << 9) |
473 | #define HWMOD_BLOCK_WFI (1 << 10) | 477 | #define HWMOD_BLOCK_WFI (1 << 10) |
478 | #define HWMOD_FORCE_MSTANDBY (1 << 11) | ||
474 | 479 | ||
475 | /* | 480 | /* |
476 | * omap_hwmod._int_flags definitions | 481 | * omap_hwmod._int_flags definitions |
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c index ac7e03ec952f..5112d04e7b79 100644 --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | |||
@@ -1707,9 +1707,14 @@ static struct omap_hwmod omap3xxx_usbhsotg_hwmod = { | |||
1707 | * Erratum ID: i479 idle_req / idle_ack mechanism potentially | 1707 | * Erratum ID: i479 idle_req / idle_ack mechanism potentially |
1708 | * broken when autoidle is enabled | 1708 | * broken when autoidle is enabled |
1709 | * workaround is to disable the autoidle bit at module level. | 1709 | * workaround is to disable the autoidle bit at module level. |
1710 | * | ||
1711 | * Enabling the device in any other MIDLEMODE setting but force-idle | ||
1712 | * causes core_pwrdm not enter idle states at least on OMAP3630. | ||
1713 | * Note that musb has OTG_FORCESTDBY register that controls MSTANDBY | ||
1714 | * signal when MIDLEMODE is set to force-idle. | ||
1710 | */ | 1715 | */ |
1711 | .flags = HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE | 1716 | .flags = HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE |
1712 | | HWMOD_SWSUP_MSTANDBY, | 1717 | | HWMOD_FORCE_MSTANDBY, |
1713 | }; | 1718 | }; |
1714 | 1719 | ||
1715 | /* usb_otg_hs */ | 1720 | /* usb_otg_hs */ |
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 0e47d2e1687c..9e0576569e07 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
@@ -2714,6 +2714,10 @@ static struct omap_ocp2scp_dev ocp2scp_dev_attr[] = { | |||
2714 | { } | 2714 | { } |
2715 | }; | 2715 | }; |
2716 | 2716 | ||
2717 | static struct omap_hwmod_opt_clk ocp2scp_usb_phy_opt_clks[] = { | ||
2718 | { .role = "48mhz", .clk = "ocp2scp_usb_phy_phy_48m" }, | ||
2719 | }; | ||
2720 | |||
2717 | /* ocp2scp_usb_phy */ | 2721 | /* ocp2scp_usb_phy */ |
2718 | static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { | 2722 | static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { |
2719 | .name = "ocp2scp_usb_phy", | 2723 | .name = "ocp2scp_usb_phy", |
@@ -2728,6 +2732,8 @@ static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { | |||
2728 | }, | 2732 | }, |
2729 | }, | 2733 | }, |
2730 | .dev_attr = ocp2scp_dev_attr, | 2734 | .dev_attr = ocp2scp_dev_attr, |
2735 | .opt_clks = ocp2scp_usb_phy_opt_clks, | ||
2736 | .opt_clks_cnt = ARRAY_SIZE(ocp2scp_usb_phy_opt_clks), | ||
2731 | }; | 2737 | }; |
2732 | 2738 | ||
2733 | /* | 2739 | /* |
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 2bdd4cf17a8f..f62b509ed08d 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
@@ -547,6 +547,8 @@ static inline void __init realtime_counter_init(void) | |||
547 | clksrc_nr, clksrc_src) \ | 547 | clksrc_nr, clksrc_src) \ |
548 | void __init omap##name##_gptimer_timer_init(void) \ | 548 | void __init omap##name##_gptimer_timer_init(void) \ |
549 | { \ | 549 | { \ |
550 | if (omap_clk_init) \ | ||
551 | omap_clk_init(); \ | ||
550 | omap_dmtimer_init(); \ | 552 | omap_dmtimer_init(); \ |
551 | omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop); \ | 553 | omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop); \ |
552 | omap2_gptimer_clocksource_init((clksrc_nr), clksrc_src); \ | 554 | omap2_gptimer_clocksource_init((clksrc_nr), clksrc_src); \ |
@@ -556,6 +558,8 @@ void __init omap##name##_gptimer_timer_init(void) \ | |||
556 | clksrc_nr, clksrc_src) \ | 558 | clksrc_nr, clksrc_src) \ |
557 | void __init omap##name##_sync32k_timer_init(void) \ | 559 | void __init omap##name##_sync32k_timer_init(void) \ |
558 | { \ | 560 | { \ |
561 | if (omap_clk_init) \ | ||
562 | omap_clk_init(); \ | ||
559 | omap_dmtimer_init(); \ | 563 | omap_dmtimer_init(); \ |
560 | omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop); \ | 564 | omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop); \ |
561 | /* Enable the use of clocksource="gp_timer" kernel parameter */ \ | 565 | /* Enable the use of clocksource="gp_timer" kernel parameter */ \ |
diff --git a/arch/arm/mach-prima2/hotplug.c b/arch/arm/mach-prima2/hotplug.c index f4b17cbababd..0ab2f8bae28e 100644 --- a/arch/arm/mach-prima2/hotplug.c +++ b/arch/arm/mach-prima2/hotplug.c | |||
@@ -10,13 +10,10 @@ | |||
10 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
11 | #include <linux/smp.h> | 11 | #include <linux/smp.h> |
12 | 12 | ||
13 | #include <asm/cacheflush.h> | ||
14 | #include <asm/smp_plat.h> | 13 | #include <asm/smp_plat.h> |
15 | 14 | ||
16 | static inline void platform_do_lowpower(unsigned int cpu) | 15 | static inline void platform_do_lowpower(unsigned int cpu) |
17 | { | 16 | { |
18 | flush_cache_all(); | ||
19 | |||
20 | /* we put the platform to just WFI */ | 17 | /* we put the platform to just WFI */ |
21 | for (;;) { | 18 | for (;;) { |
22 | __asm__ __volatile__("dsb\n\t" "wfi\n\t" | 19 | __asm__ __volatile__("dsb\n\t" "wfi\n\t" |
diff --git a/arch/arm/mach-realview/hotplug.c b/arch/arm/mach-realview/hotplug.c index 53818e5cd3ad..ac22dd41b135 100644 --- a/arch/arm/mach-realview/hotplug.c +++ b/arch/arm/mach-realview/hotplug.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | #include <linux/smp.h> | 13 | #include <linux/smp.h> |
14 | 14 | ||
15 | #include <asm/cacheflush.h> | ||
16 | #include <asm/cp15.h> | 15 | #include <asm/cp15.h> |
17 | #include <asm/smp_plat.h> | 16 | #include <asm/smp_plat.h> |
18 | 17 | ||
@@ -20,7 +19,6 @@ static inline void cpu_enter_lowpower(void) | |||
20 | { | 19 | { |
21 | unsigned int v; | 20 | unsigned int v; |
22 | 21 | ||
23 | flush_cache_all(); | ||
24 | asm volatile( | 22 | asm volatile( |
25 | " mcr p15, 0, %1, c7, c5, 0\n" | 23 | " mcr p15, 0, %1, c7, c5, 0\n" |
26 | " mcr p15, 0, %1, c7, c10, 4\n" | 24 | " mcr p15, 0, %1, c7, c10, 4\n" |
diff --git a/arch/arm/mach-s3c24xx/include/mach/irqs.h b/arch/arm/mach-s3c24xx/include/mach/irqs.h index b7a9f4d469e8..1e73f5fa8659 100644 --- a/arch/arm/mach-s3c24xx/include/mach/irqs.h +++ b/arch/arm/mach-s3c24xx/include/mach/irqs.h | |||
@@ -188,10 +188,8 @@ | |||
188 | 188 | ||
189 | #if defined(CONFIG_CPU_S3C2416) | 189 | #if defined(CONFIG_CPU_S3C2416) |
190 | #define NR_IRQS (IRQ_S3C2416_I2S1 + 1) | 190 | #define NR_IRQS (IRQ_S3C2416_I2S1 + 1) |
191 | #elif defined(CONFIG_CPU_S3C2443) | ||
192 | #define NR_IRQS (IRQ_S3C2443_AC97+1) | ||
193 | #else | 191 | #else |
194 | #define NR_IRQS (IRQ_S3C2440_AC97+1) | 192 | #define NR_IRQS (IRQ_S3C2443_AC97 + 1) |
195 | #endif | 193 | #endif |
196 | 194 | ||
197 | /* compatibility define. */ | 195 | /* compatibility define. */ |
diff --git a/arch/arm/mach-s3c24xx/irq.c b/arch/arm/mach-s3c24xx/irq.c index cb9f5e011e73..d8ba9bee4c7e 100644 --- a/arch/arm/mach-s3c24xx/irq.c +++ b/arch/arm/mach-s3c24xx/irq.c | |||
@@ -500,7 +500,7 @@ struct s3c_irq_intc *s3c24xx_init_intc(struct device_node *np, | |||
500 | base = (void *)0xfd000000; | 500 | base = (void *)0xfd000000; |
501 | 501 | ||
502 | intc->reg_mask = base + 0xa4; | 502 | intc->reg_mask = base + 0xa4; |
503 | intc->reg_pending = base + 0x08; | 503 | intc->reg_pending = base + 0xa8; |
504 | irq_num = 20; | 504 | irq_num = 20; |
505 | irq_start = S3C2410_IRQ(32); | 505 | irq_start = S3C2410_IRQ(32); |
506 | irq_offset = 4; | 506 | irq_offset = 4; |
diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c index fcdf52dbcc49..f051f53e35b7 100644 --- a/arch/arm/mach-s5pv210/clock.c +++ b/arch/arm/mach-s5pv210/clock.c | |||
@@ -214,11 +214,6 @@ static struct clk clk_pcmcdclk2 = { | |||
214 | .name = "pcmcdclk", | 214 | .name = "pcmcdclk", |
215 | }; | 215 | }; |
216 | 216 | ||
217 | static struct clk dummy_apb_pclk = { | ||
218 | .name = "apb_pclk", | ||
219 | .id = -1, | ||
220 | }; | ||
221 | |||
222 | static struct clk *clkset_vpllsrc_list[] = { | 217 | static struct clk *clkset_vpllsrc_list[] = { |
223 | [0] = &clk_fin_vpll, | 218 | [0] = &clk_fin_vpll, |
224 | [1] = &clk_sclk_hdmi27m, | 219 | [1] = &clk_sclk_hdmi27m, |
@@ -305,18 +300,6 @@ static struct clk_ops clk_fout_apll_ops = { | |||
305 | 300 | ||
306 | static struct clk init_clocks_off[] = { | 301 | static struct clk init_clocks_off[] = { |
307 | { | 302 | { |
308 | .name = "dma", | ||
309 | .devname = "dma-pl330.0", | ||
310 | .parent = &clk_hclk_psys.clk, | ||
311 | .enable = s5pv210_clk_ip0_ctrl, | ||
312 | .ctrlbit = (1 << 3), | ||
313 | }, { | ||
314 | .name = "dma", | ||
315 | .devname = "dma-pl330.1", | ||
316 | .parent = &clk_hclk_psys.clk, | ||
317 | .enable = s5pv210_clk_ip0_ctrl, | ||
318 | .ctrlbit = (1 << 4), | ||
319 | }, { | ||
320 | .name = "rot", | 303 | .name = "rot", |
321 | .parent = &clk_hclk_dsys.clk, | 304 | .parent = &clk_hclk_dsys.clk, |
322 | .enable = s5pv210_clk_ip0_ctrl, | 305 | .enable = s5pv210_clk_ip0_ctrl, |
@@ -573,6 +556,20 @@ static struct clk clk_hsmmc3 = { | |||
573 | .ctrlbit = (1<<19), | 556 | .ctrlbit = (1<<19), |
574 | }; | 557 | }; |
575 | 558 | ||
559 | static struct clk clk_pdma0 = { | ||
560 | .name = "pdma0", | ||
561 | .parent = &clk_hclk_psys.clk, | ||
562 | .enable = s5pv210_clk_ip0_ctrl, | ||
563 | .ctrlbit = (1 << 3), | ||
564 | }; | ||
565 | |||
566 | static struct clk clk_pdma1 = { | ||
567 | .name = "pdma1", | ||
568 | .parent = &clk_hclk_psys.clk, | ||
569 | .enable = s5pv210_clk_ip0_ctrl, | ||
570 | .ctrlbit = (1 << 4), | ||
571 | }; | ||
572 | |||
576 | static struct clk *clkset_uart_list[] = { | 573 | static struct clk *clkset_uart_list[] = { |
577 | [6] = &clk_mout_mpll.clk, | 574 | [6] = &clk_mout_mpll.clk, |
578 | [7] = &clk_mout_epll.clk, | 575 | [7] = &clk_mout_epll.clk, |
@@ -1075,6 +1072,8 @@ static struct clk *clk_cdev[] = { | |||
1075 | &clk_hsmmc1, | 1072 | &clk_hsmmc1, |
1076 | &clk_hsmmc2, | 1073 | &clk_hsmmc2, |
1077 | &clk_hsmmc3, | 1074 | &clk_hsmmc3, |
1075 | &clk_pdma0, | ||
1076 | &clk_pdma1, | ||
1078 | }; | 1077 | }; |
1079 | 1078 | ||
1080 | /* Clock initialisation code */ | 1079 | /* Clock initialisation code */ |
@@ -1333,6 +1332,8 @@ static struct clk_lookup s5pv210_clk_lookup[] = { | |||
1333 | CLKDEV_INIT(NULL, "spi_busclk0", &clk_p), | 1332 | CLKDEV_INIT(NULL, "spi_busclk0", &clk_p), |
1334 | CLKDEV_INIT("s5pv210-spi.0", "spi_busclk1", &clk_sclk_spi0.clk), | 1333 | CLKDEV_INIT("s5pv210-spi.0", "spi_busclk1", &clk_sclk_spi0.clk), |
1335 | CLKDEV_INIT("s5pv210-spi.1", "spi_busclk1", &clk_sclk_spi1.clk), | 1334 | CLKDEV_INIT("s5pv210-spi.1", "spi_busclk1", &clk_sclk_spi1.clk), |
1335 | CLKDEV_INIT("dma-pl330.0", "apb_pclk", &clk_pdma0), | ||
1336 | CLKDEV_INIT("dma-pl330.1", "apb_pclk", &clk_pdma1), | ||
1336 | }; | 1337 | }; |
1337 | 1338 | ||
1338 | void __init s5pv210_register_clocks(void) | 1339 | void __init s5pv210_register_clocks(void) |
@@ -1361,6 +1362,5 @@ void __init s5pv210_register_clocks(void) | |||
1361 | for (ptr = 0; ptr < ARRAY_SIZE(clk_cdev); ptr++) | 1362 | for (ptr = 0; ptr < ARRAY_SIZE(clk_cdev); ptr++) |
1362 | s3c_disable_clocks(clk_cdev[ptr], 1); | 1363 | s3c_disable_clocks(clk_cdev[ptr], 1); |
1363 | 1364 | ||
1364 | s3c24xx_register_clock(&dummy_apb_pclk); | ||
1365 | s3c_pwmclk_init(); | 1365 | s3c_pwmclk_init(); |
1366 | } | 1366 | } |
diff --git a/arch/arm/mach-s5pv210/mach-goni.c b/arch/arm/mach-s5pv210/mach-goni.c index 3a38f7b34b94..e373de44a8b6 100644 --- a/arch/arm/mach-s5pv210/mach-goni.c +++ b/arch/arm/mach-s5pv210/mach-goni.c | |||
@@ -845,7 +845,7 @@ static struct fimc_source_info goni_camera_sensors[] = { | |||
845 | .mux_id = 0, | 845 | .mux_id = 0, |
846 | .flags = V4L2_MBUS_PCLK_SAMPLE_FALLING | | 846 | .flags = V4L2_MBUS_PCLK_SAMPLE_FALLING | |
847 | V4L2_MBUS_VSYNC_ACTIVE_LOW, | 847 | V4L2_MBUS_VSYNC_ACTIVE_LOW, |
848 | .bus_type = FIMC_BUS_TYPE_ITU_601, | 848 | .fimc_bus_type = FIMC_BUS_TYPE_ITU_601, |
849 | .board_info = &noon010pc30_board_info, | 849 | .board_info = &noon010pc30_board_info, |
850 | .i2c_bus_num = 0, | 850 | .i2c_bus_num = 0, |
851 | .clk_frequency = 16000000UL, | 851 | .clk_frequency = 16000000UL, |
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c index cdcb799e802f..fec49ebc359a 100644 --- a/arch/arm/mach-shmobile/board-marzen.c +++ b/arch/arm/mach-shmobile/board-marzen.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/smsc911x.h> | 32 | #include <linux/smsc911x.h> |
33 | #include <linux/spi/spi.h> | 33 | #include <linux/spi/spi.h> |
34 | #include <linux/spi/sh_hspi.h> | 34 | #include <linux/spi/sh_hspi.h> |
35 | #include <linux/mmc/host.h> | ||
35 | #include <linux/mmc/sh_mobile_sdhi.h> | 36 | #include <linux/mmc/sh_mobile_sdhi.h> |
36 | #include <linux/mfd/tmio.h> | 37 | #include <linux/mfd/tmio.h> |
37 | #include <linux/usb/otg.h> | 38 | #include <linux/usb/otg.h> |
diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c index acb46a94ccdf..2f1ef1bc805d 100644 --- a/arch/arm/mach-shmobile/smp-sh73a0.c +++ b/arch/arm/mach-shmobile/smp-sh73a0.c | |||
@@ -119,14 +119,6 @@ static int sh73a0_cpu_kill(unsigned int cpu) | |||
119 | 119 | ||
120 | static void sh73a0_cpu_die(unsigned int cpu) | 120 | static void sh73a0_cpu_die(unsigned int cpu) |
121 | { | 121 | { |
122 | /* | ||
123 | * The ARM MPcore does not issue a cache coherency request for the L1 | ||
124 | * cache when powering off single CPUs. We must take care of this and | ||
125 | * further caches. | ||
126 | */ | ||
127 | dsb(); | ||
128 | flush_cache_all(); | ||
129 | |||
130 | /* Set power off mode. This takes the CPU out of the MP cluster */ | 122 | /* Set power off mode. This takes the CPU out of the MP cluster */ |
131 | scu_power_mode(scu_base_addr(), SCU_PM_POWEROFF); | 123 | scu_power_mode(scu_base_addr(), SCU_PM_POWEROFF); |
132 | 124 | ||
diff --git a/arch/arm/mach-spear13xx/hotplug.c b/arch/arm/mach-spear13xx/hotplug.c index a7d2dd11a4f2..d97749c642ce 100644 --- a/arch/arm/mach-spear13xx/hotplug.c +++ b/arch/arm/mach-spear13xx/hotplug.c | |||
@@ -13,7 +13,6 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | #include <linux/smp.h> | 15 | #include <linux/smp.h> |
16 | #include <asm/cacheflush.h> | ||
17 | #include <asm/cp15.h> | 16 | #include <asm/cp15.h> |
18 | #include <asm/smp_plat.h> | 17 | #include <asm/smp_plat.h> |
19 | 18 | ||
@@ -21,7 +20,6 @@ static inline void cpu_enter_lowpower(void) | |||
21 | { | 20 | { |
22 | unsigned int v; | 21 | unsigned int v; |
23 | 22 | ||
24 | flush_cache_all(); | ||
25 | asm volatile( | 23 | asm volatile( |
26 | " mcr p15, 0, %1, c7, c5, 0\n" | 24 | " mcr p15, 0, %1, c7, c5, 0\n" |
27 | " dsb\n" | 25 | " dsb\n" |
diff --git a/arch/arm/mach-tegra/common.h b/arch/arm/mach-tegra/common.h index 32f8eb3fe344..5900cc44f780 100644 --- a/arch/arm/mach-tegra/common.h +++ b/arch/arm/mach-tegra/common.h | |||
@@ -2,4 +2,3 @@ extern struct smp_operations tegra_smp_ops; | |||
2 | 2 | ||
3 | extern int tegra_cpu_kill(unsigned int cpu); | 3 | extern int tegra_cpu_kill(unsigned int cpu); |
4 | extern void tegra_cpu_die(unsigned int cpu); | 4 | extern void tegra_cpu_die(unsigned int cpu); |
5 | extern int tegra_cpu_disable(unsigned int cpu); | ||
diff --git a/arch/arm/mach-tegra/hotplug.c b/arch/arm/mach-tegra/hotplug.c index a599f6e36dea..e8323bc95770 100644 --- a/arch/arm/mach-tegra/hotplug.c +++ b/arch/arm/mach-tegra/hotplug.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/smp.h> | 12 | #include <linux/smp.h> |
13 | #include <linux/clk/tegra.h> | 13 | #include <linux/clk/tegra.h> |
14 | 14 | ||
15 | #include <asm/cacheflush.h> | ||
16 | #include <asm/smp_plat.h> | 15 | #include <asm/smp_plat.h> |
17 | 16 | ||
18 | #include "sleep.h" | 17 | #include "sleep.h" |
@@ -47,15 +46,6 @@ void __ref tegra_cpu_die(unsigned int cpu) | |||
47 | BUG(); | 46 | BUG(); |
48 | } | 47 | } |
49 | 48 | ||
50 | int tegra_cpu_disable(unsigned int cpu) | ||
51 | { | ||
52 | /* | ||
53 | * we don't allow CPU 0 to be shutdown (it is still too special | ||
54 | * e.g. clock tick interrupts) | ||
55 | */ | ||
56 | return cpu == 0 ? -EPERM : 0; | ||
57 | } | ||
58 | |||
59 | #ifdef CONFIG_ARCH_TEGRA_2x_SOC | 49 | #ifdef CONFIG_ARCH_TEGRA_2x_SOC |
60 | extern void tegra20_hotplug_shutdown(void); | 50 | extern void tegra20_hotplug_shutdown(void); |
61 | void __init tegra20_hotplug_init(void) | 51 | void __init tegra20_hotplug_init(void) |
diff --git a/arch/arm/mach-tegra/platsmp.c b/arch/arm/mach-tegra/platsmp.c index 2c6b3d55213b..ec33ec86aad9 100644 --- a/arch/arm/mach-tegra/platsmp.c +++ b/arch/arm/mach-tegra/platsmp.c | |||
@@ -192,6 +192,5 @@ struct smp_operations tegra_smp_ops __initdata = { | |||
192 | #ifdef CONFIG_HOTPLUG_CPU | 192 | #ifdef CONFIG_HOTPLUG_CPU |
193 | .cpu_kill = tegra_cpu_kill, | 193 | .cpu_kill = tegra_cpu_kill, |
194 | .cpu_die = tegra_cpu_die, | 194 | .cpu_die = tegra_cpu_die, |
195 | .cpu_disable = tegra_cpu_disable, | ||
196 | #endif | 195 | #endif |
197 | }; | 196 | }; |
diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c index 051b62c27102..7f2cb6c5e2c1 100644 --- a/arch/arm/mach-ux500/board-mop500-sdi.c +++ b/arch/arm/mach-ux500/board-mop500-sdi.c | |||
@@ -81,7 +81,6 @@ static struct stedma40_chan_cfg mop500_sdi0_dma_cfg_tx = { | |||
81 | #endif | 81 | #endif |
82 | 82 | ||
83 | struct mmci_platform_data mop500_sdi0_data = { | 83 | struct mmci_platform_data mop500_sdi0_data = { |
84 | .ios_handler = mop500_sdi0_ios_handler, | ||
85 | .ocr_mask = MMC_VDD_29_30, | 84 | .ocr_mask = MMC_VDD_29_30, |
86 | .f_max = 50000000, | 85 | .f_max = 50000000, |
87 | .capabilities = MMC_CAP_4_BIT_DATA | | 86 | .capabilities = MMC_CAP_4_BIT_DATA | |
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index b03457881c4b..87d2d7b38ce9 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
15 | #include <linux/clk.h> | ||
15 | #include <linux/io.h> | 16 | #include <linux/io.h> |
16 | #include <linux/i2c.h> | 17 | #include <linux/i2c.h> |
17 | #include <linux/platform_data/i2c-nomadik.h> | 18 | #include <linux/platform_data/i2c-nomadik.h> |
@@ -439,6 +440,15 @@ static void mop500_prox_deactivate(struct device *dev) | |||
439 | regulator_put(prox_regulator); | 440 | regulator_put(prox_regulator); |
440 | } | 441 | } |
441 | 442 | ||
443 | void mop500_snowball_ethernet_clock_enable(void) | ||
444 | { | ||
445 | struct clk *clk; | ||
446 | |||
447 | clk = clk_get_sys("fsmc", NULL); | ||
448 | if (!IS_ERR(clk)) | ||
449 | clk_prepare_enable(clk); | ||
450 | } | ||
451 | |||
442 | static struct cryp_platform_data u8500_cryp1_platform_data = { | 452 | static struct cryp_platform_data u8500_cryp1_platform_data = { |
443 | .mem_to_engine = { | 453 | .mem_to_engine = { |
444 | .dir = STEDMA40_MEM_TO_PERIPH, | 454 | .dir = STEDMA40_MEM_TO_PERIPH, |
@@ -683,6 +693,8 @@ static void __init snowball_init_machine(void) | |||
683 | mop500_audio_init(parent); | 693 | mop500_audio_init(parent); |
684 | mop500_uart_init(parent); | 694 | mop500_uart_init(parent); |
685 | 695 | ||
696 | mop500_snowball_ethernet_clock_enable(); | ||
697 | |||
686 | /* This board has full regulator constraints */ | 698 | /* This board has full regulator constraints */ |
687 | regulator_has_full_constraints(); | 699 | regulator_has_full_constraints(); |
688 | } | 700 | } |
diff --git a/arch/arm/mach-ux500/board-mop500.h b/arch/arm/mach-ux500/board-mop500.h index eaa605f5d90d..d38951be70df 100644 --- a/arch/arm/mach-ux500/board-mop500.h +++ b/arch/arm/mach-ux500/board-mop500.h | |||
@@ -104,6 +104,7 @@ void __init mop500_pinmaps_init(void); | |||
104 | void __init snowball_pinmaps_init(void); | 104 | void __init snowball_pinmaps_init(void); |
105 | void __init hrefv60_pinmaps_init(void); | 105 | void __init hrefv60_pinmaps_init(void); |
106 | void mop500_audio_init(struct device *parent); | 106 | void mop500_audio_init(struct device *parent); |
107 | void mop500_snowball_ethernet_clock_enable(void); | ||
107 | 108 | ||
108 | int __init mop500_uib_init(void); | 109 | int __init mop500_uib_init(void); |
109 | void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info, | 110 | void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info, |
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index 19235cf7bbe3..f1a581844372 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
@@ -312,9 +312,10 @@ static void __init u8500_init_machine(void) | |||
312 | /* Pinmaps must be in place before devices register */ | 312 | /* Pinmaps must be in place before devices register */ |
313 | if (of_machine_is_compatible("st-ericsson,mop500")) | 313 | if (of_machine_is_compatible("st-ericsson,mop500")) |
314 | mop500_pinmaps_init(); | 314 | mop500_pinmaps_init(); |
315 | else if (of_machine_is_compatible("calaosystems,snowball-a9500")) | 315 | else if (of_machine_is_compatible("calaosystems,snowball-a9500")) { |
316 | snowball_pinmaps_init(); | 316 | snowball_pinmaps_init(); |
317 | else if (of_machine_is_compatible("st-ericsson,hrefv60+")) | 317 | mop500_snowball_ethernet_clock_enable(); |
318 | } else if (of_machine_is_compatible("st-ericsson,hrefv60+")) | ||
318 | hrefv60_pinmaps_init(); | 319 | hrefv60_pinmaps_init(); |
319 | else if (of_machine_is_compatible("st-ericsson,ccu9540")) {} | 320 | else if (of_machine_is_compatible("st-ericsson,ccu9540")) {} |
320 | /* TODO: Add pinmaps for ccu9540 board. */ | 321 | /* TODO: Add pinmaps for ccu9540 board. */ |
diff --git a/arch/arm/mach-ux500/hotplug.c b/arch/arm/mach-ux500/hotplug.c index 2f6af259015d..1c55a55dd89e 100644 --- a/arch/arm/mach-ux500/hotplug.c +++ b/arch/arm/mach-ux500/hotplug.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | #include <linux/smp.h> | 13 | #include <linux/smp.h> |
14 | 14 | ||
15 | #include <asm/cacheflush.h> | ||
16 | #include <asm/smp_plat.h> | 15 | #include <asm/smp_plat.h> |
17 | 16 | ||
18 | #include <mach/setup.h> | 17 | #include <mach/setup.h> |
@@ -24,8 +23,6 @@ | |||
24 | */ | 23 | */ |
25 | void __ref ux500_cpu_die(unsigned int cpu) | 24 | void __ref ux500_cpu_die(unsigned int cpu) |
26 | { | 25 | { |
27 | flush_cache_all(); | ||
28 | |||
29 | /* directly enter low power state, skipping secure registers */ | 26 | /* directly enter low power state, skipping secure registers */ |
30 | for (;;) { | 27 | for (;;) { |
31 | __asm__ __volatile__("dsb\n\t" "wfi\n\t" | 28 | __asm__ __volatile__("dsb\n\t" "wfi\n\t" |
diff --git a/arch/arm/mach-vexpress/hotplug.c b/arch/arm/mach-vexpress/hotplug.c index a141b98d84fe..f0ce6b8f5e71 100644 --- a/arch/arm/mach-vexpress/hotplug.c +++ b/arch/arm/mach-vexpress/hotplug.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | #include <linux/smp.h> | 13 | #include <linux/smp.h> |
14 | 14 | ||
15 | #include <asm/cacheflush.h> | ||
16 | #include <asm/smp_plat.h> | 15 | #include <asm/smp_plat.h> |
17 | #include <asm/cp15.h> | 16 | #include <asm/cp15.h> |
18 | 17 | ||
@@ -20,7 +19,6 @@ static inline void cpu_enter_lowpower(void) | |||
20 | { | 19 | { |
21 | unsigned int v; | 20 | unsigned int v; |
22 | 21 | ||
23 | flush_cache_all(); | ||
24 | asm volatile( | 22 | asm volatile( |
25 | "mcr p15, 0, %1, c7, c5, 0\n" | 23 | "mcr p15, 0, %1, c7, c5, 0\n" |
26 | " mcr p15, 0, %1, c7, c10, 4\n" | 24 | " mcr p15, 0, %1, c7, c10, 4\n" |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index cb812a13e299..35955b54944c 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -43,7 +43,7 @@ config CPU_ARM740T | |||
43 | depends on !MMU | 43 | depends on !MMU |
44 | select CPU_32v4T | 44 | select CPU_32v4T |
45 | select CPU_ABRT_LV4T | 45 | select CPU_ABRT_LV4T |
46 | select CPU_CACHE_V3 # although the core is v4t | 46 | select CPU_CACHE_V4 |
47 | select CPU_CP15_MPU | 47 | select CPU_CP15_MPU |
48 | select CPU_PABRT_LEGACY | 48 | select CPU_PABRT_LEGACY |
49 | help | 49 | help |
@@ -476,9 +476,6 @@ config CPU_PABRT_V7 | |||
476 | bool | 476 | bool |
477 | 477 | ||
478 | # The cache model | 478 | # The cache model |
479 | config CPU_CACHE_V3 | ||
480 | bool | ||
481 | |||
482 | config CPU_CACHE_V4 | 479 | config CPU_CACHE_V4 |
483 | bool | 480 | bool |
484 | 481 | ||
diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile index 4e333fa2756f..9e51be96f635 100644 --- a/arch/arm/mm/Makefile +++ b/arch/arm/mm/Makefile | |||
@@ -33,7 +33,6 @@ obj-$(CONFIG_CPU_PABRT_LEGACY) += pabort-legacy.o | |||
33 | obj-$(CONFIG_CPU_PABRT_V6) += pabort-v6.o | 33 | obj-$(CONFIG_CPU_PABRT_V6) += pabort-v6.o |
34 | obj-$(CONFIG_CPU_PABRT_V7) += pabort-v7.o | 34 | obj-$(CONFIG_CPU_PABRT_V7) += pabort-v7.o |
35 | 35 | ||
36 | obj-$(CONFIG_CPU_CACHE_V3) += cache-v3.o | ||
37 | obj-$(CONFIG_CPU_CACHE_V4) += cache-v4.o | 36 | obj-$(CONFIG_CPU_CACHE_V4) += cache-v4.o |
38 | obj-$(CONFIG_CPU_CACHE_V4WT) += cache-v4wt.o | 37 | obj-$(CONFIG_CPU_CACHE_V4WT) += cache-v4wt.o |
39 | obj-$(CONFIG_CPU_CACHE_V4WB) += cache-v4wb.o | 38 | obj-$(CONFIG_CPU_CACHE_V4WB) += cache-v4wb.o |
diff --git a/arch/arm/mm/cache-feroceon-l2.c b/arch/arm/mm/cache-feroceon-l2.c index dd3d59122cc3..48bc3c0a87ce 100644 --- a/arch/arm/mm/cache-feroceon-l2.c +++ b/arch/arm/mm/cache-feroceon-l2.c | |||
@@ -343,6 +343,7 @@ void __init feroceon_l2_init(int __l2_wt_override) | |||
343 | outer_cache.inv_range = feroceon_l2_inv_range; | 343 | outer_cache.inv_range = feroceon_l2_inv_range; |
344 | outer_cache.clean_range = feroceon_l2_clean_range; | 344 | outer_cache.clean_range = feroceon_l2_clean_range; |
345 | outer_cache.flush_range = feroceon_l2_flush_range; | 345 | outer_cache.flush_range = feroceon_l2_flush_range; |
346 | outer_cache.inv_all = l2_inv_all; | ||
346 | 347 | ||
347 | enable_l2(); | 348 | enable_l2(); |
348 | 349 | ||
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index c2f37390308a..c465faca51b0 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c | |||
@@ -299,7 +299,7 @@ static void l2x0_unlock(u32 cache_id) | |||
299 | int lockregs; | 299 | int lockregs; |
300 | int i; | 300 | int i; |
301 | 301 | ||
302 | switch (cache_id) { | 302 | switch (cache_id & L2X0_CACHE_ID_PART_MASK) { |
303 | case L2X0_CACHE_ID_PART_L310: | 303 | case L2X0_CACHE_ID_PART_L310: |
304 | lockregs = 8; | 304 | lockregs = 8; |
305 | break; | 305 | break; |
@@ -333,15 +333,14 @@ void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask) | |||
333 | if (cache_id_part_number_from_dt) | 333 | if (cache_id_part_number_from_dt) |
334 | cache_id = cache_id_part_number_from_dt; | 334 | cache_id = cache_id_part_number_from_dt; |
335 | else | 335 | else |
336 | cache_id = readl_relaxed(l2x0_base + L2X0_CACHE_ID) | 336 | cache_id = readl_relaxed(l2x0_base + L2X0_CACHE_ID); |
337 | & L2X0_CACHE_ID_PART_MASK; | ||
338 | aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL); | 337 | aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL); |
339 | 338 | ||
340 | aux &= aux_mask; | 339 | aux &= aux_mask; |
341 | aux |= aux_val; | 340 | aux |= aux_val; |
342 | 341 | ||
343 | /* Determine the number of ways */ | 342 | /* Determine the number of ways */ |
344 | switch (cache_id) { | 343 | switch (cache_id & L2X0_CACHE_ID_PART_MASK) { |
345 | case L2X0_CACHE_ID_PART_L310: | 344 | case L2X0_CACHE_ID_PART_L310: |
346 | if (aux & (1 << 16)) | 345 | if (aux & (1 << 16)) |
347 | ways = 16; | 346 | ways = 16; |
@@ -725,7 +724,6 @@ static const struct l2x0_of_data pl310_data = { | |||
725 | .flush_all = l2x0_flush_all, | 724 | .flush_all = l2x0_flush_all, |
726 | .inv_all = l2x0_inv_all, | 725 | .inv_all = l2x0_inv_all, |
727 | .disable = l2x0_disable, | 726 | .disable = l2x0_disable, |
728 | .set_debug = pl310_set_debug, | ||
729 | }, | 727 | }, |
730 | }; | 728 | }; |
731 | 729 | ||
@@ -814,9 +812,8 @@ int __init l2x0_of_init(u32 aux_val, u32 aux_mask) | |||
814 | data->save(); | 812 | data->save(); |
815 | 813 | ||
816 | of_init = true; | 814 | of_init = true; |
817 | l2x0_init(l2x0_base, aux_val, aux_mask); | ||
818 | |||
819 | memcpy(&outer_cache, &data->outer_cache, sizeof(outer_cache)); | 815 | memcpy(&outer_cache, &data->outer_cache, sizeof(outer_cache)); |
816 | l2x0_init(l2x0_base, aux_val, aux_mask); | ||
820 | 817 | ||
821 | return 0; | 818 | return 0; |
822 | } | 819 | } |
diff --git a/arch/arm/mm/cache-v3.S b/arch/arm/mm/cache-v3.S deleted file mode 100644 index 8a3fadece8d3..000000000000 --- a/arch/arm/mm/cache-v3.S +++ /dev/null | |||
@@ -1,137 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mm/cache-v3.S | ||
3 | * | ||
4 | * Copyright (C) 1997-2002 Russell king | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | #include <linux/linkage.h> | ||
11 | #include <linux/init.h> | ||
12 | #include <asm/page.h> | ||
13 | #include "proc-macros.S" | ||
14 | |||
15 | /* | ||
16 | * flush_icache_all() | ||
17 | * | ||
18 | * Unconditionally clean and invalidate the entire icache. | ||
19 | */ | ||
20 | ENTRY(v3_flush_icache_all) | ||
21 | mov pc, lr | ||
22 | ENDPROC(v3_flush_icache_all) | ||
23 | |||
24 | /* | ||
25 | * flush_user_cache_all() | ||
26 | * | ||
27 | * Invalidate all cache entries in a particular address | ||
28 | * space. | ||
29 | * | ||
30 | * - mm - mm_struct describing address space | ||
31 | */ | ||
32 | ENTRY(v3_flush_user_cache_all) | ||
33 | /* FALLTHROUGH */ | ||
34 | /* | ||
35 | * flush_kern_cache_all() | ||
36 | * | ||
37 | * Clean and invalidate the entire cache. | ||
38 | */ | ||
39 | ENTRY(v3_flush_kern_cache_all) | ||
40 | /* FALLTHROUGH */ | ||
41 | |||
42 | /* | ||
43 | * flush_user_cache_range(start, end, flags) | ||
44 | * | ||
45 | * Invalidate a range of cache entries in the specified | ||
46 | * address space. | ||
47 | * | ||
48 | * - start - start address (may not be aligned) | ||
49 | * - end - end address (exclusive, may not be aligned) | ||
50 | * - flags - vma_area_struct flags describing address space | ||
51 | */ | ||
52 | ENTRY(v3_flush_user_cache_range) | ||
53 | mov ip, #0 | ||
54 | mcreq p15, 0, ip, c7, c0, 0 @ flush ID cache | ||
55 | mov pc, lr | ||
56 | |||
57 | /* | ||
58 | * coherent_kern_range(start, end) | ||
59 | * | ||
60 | * Ensure coherency between the Icache and the Dcache in the | ||
61 | * region described by start. If you have non-snooping | ||
62 | * Harvard caches, you need to implement this function. | ||
63 | * | ||
64 | * - start - virtual start address | ||
65 | * - end - virtual end address | ||
66 | */ | ||
67 | ENTRY(v3_coherent_kern_range) | ||
68 | /* FALLTHROUGH */ | ||
69 | |||
70 | /* | ||
71 | * coherent_user_range(start, end) | ||
72 | * | ||
73 | * Ensure coherency between the Icache and the Dcache in the | ||
74 | * region described by start. If you have non-snooping | ||
75 | * Harvard caches, you need to implement this function. | ||
76 | * | ||
77 | * - start - virtual start address | ||
78 | * - end - virtual end address | ||
79 | */ | ||
80 | ENTRY(v3_coherent_user_range) | ||
81 | mov r0, #0 | ||
82 | mov pc, lr | ||
83 | |||
84 | /* | ||
85 | * flush_kern_dcache_area(void *page, size_t size) | ||
86 | * | ||
87 | * Ensure no D cache aliasing occurs, either with itself or | ||
88 | * the I cache | ||
89 | * | ||
90 | * - addr - kernel address | ||
91 | * - size - region size | ||
92 | */ | ||
93 | ENTRY(v3_flush_kern_dcache_area) | ||
94 | /* FALLTHROUGH */ | ||
95 | |||
96 | /* | ||
97 | * dma_flush_range(start, end) | ||
98 | * | ||
99 | * Clean and invalidate the specified virtual address range. | ||
100 | * | ||
101 | * - start - virtual start address | ||
102 | * - end - virtual end address | ||
103 | */ | ||
104 | ENTRY(v3_dma_flush_range) | ||
105 | mov r0, #0 | ||
106 | mcr p15, 0, r0, c7, c0, 0 @ flush ID cache | ||
107 | mov pc, lr | ||
108 | |||
109 | /* | ||
110 | * dma_unmap_area(start, size, dir) | ||
111 | * - start - kernel virtual start address | ||
112 | * - size - size of region | ||
113 | * - dir - DMA direction | ||
114 | */ | ||
115 | ENTRY(v3_dma_unmap_area) | ||
116 | teq r2, #DMA_TO_DEVICE | ||
117 | bne v3_dma_flush_range | ||
118 | /* FALLTHROUGH */ | ||
119 | |||
120 | /* | ||
121 | * dma_map_area(start, size, dir) | ||
122 | * - start - kernel virtual start address | ||
123 | * - size - size of region | ||
124 | * - dir - DMA direction | ||
125 | */ | ||
126 | ENTRY(v3_dma_map_area) | ||
127 | mov pc, lr | ||
128 | ENDPROC(v3_dma_unmap_area) | ||
129 | ENDPROC(v3_dma_map_area) | ||
130 | |||
131 | .globl v3_flush_kern_cache_louis | ||
132 | .equ v3_flush_kern_cache_louis, v3_flush_kern_cache_all | ||
133 | |||
134 | __INITDATA | ||
135 | |||
136 | @ define struct cpu_cache_fns (see <asm/cacheflush.h> and proc-macros.S) | ||
137 | define_cache_functions v3 | ||
diff --git a/arch/arm/mm/cache-v4.S b/arch/arm/mm/cache-v4.S index 43e5d77be677..a7ba68f59f0c 100644 --- a/arch/arm/mm/cache-v4.S +++ b/arch/arm/mm/cache-v4.S | |||
@@ -58,7 +58,7 @@ ENTRY(v4_flush_kern_cache_all) | |||
58 | ENTRY(v4_flush_user_cache_range) | 58 | ENTRY(v4_flush_user_cache_range) |
59 | #ifdef CONFIG_CPU_CP15 | 59 | #ifdef CONFIG_CPU_CP15 |
60 | mov ip, #0 | 60 | mov ip, #0 |
61 | mcreq p15, 0, ip, c7, c7, 0 @ flush ID cache | 61 | mcr p15, 0, ip, c7, c7, 0 @ flush ID cache |
62 | mov pc, lr | 62 | mov pc, lr |
63 | #else | 63 | #else |
64 | /* FALLTHROUGH */ | 64 | /* FALLTHROUGH */ |
diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c index a5a4b2bc42ba..2ac37372ef52 100644 --- a/arch/arm/mm/context.c +++ b/arch/arm/mm/context.c | |||
@@ -48,7 +48,7 @@ static DEFINE_RAW_SPINLOCK(cpu_asid_lock); | |||
48 | static atomic64_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION); | 48 | static atomic64_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION); |
49 | static DECLARE_BITMAP(asid_map, NUM_USER_ASIDS); | 49 | static DECLARE_BITMAP(asid_map, NUM_USER_ASIDS); |
50 | 50 | ||
51 | static DEFINE_PER_CPU(atomic64_t, active_asids); | 51 | DEFINE_PER_CPU(atomic64_t, active_asids); |
52 | static DEFINE_PER_CPU(u64, reserved_asids); | 52 | static DEFINE_PER_CPU(u64, reserved_asids); |
53 | static cpumask_t tlb_flush_pending; | 53 | static cpumask_t tlb_flush_pending; |
54 | 54 | ||
@@ -215,6 +215,7 @@ void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk) | |||
215 | if (cpumask_test_and_clear_cpu(cpu, &tlb_flush_pending)) { | 215 | if (cpumask_test_and_clear_cpu(cpu, &tlb_flush_pending)) { |
216 | local_flush_bp_all(); | 216 | local_flush_bp_all(); |
217 | local_flush_tlb_all(); | 217 | local_flush_tlb_all(); |
218 | dummy_flush_tlb_a15_erratum(); | ||
218 | } | 219 | } |
219 | 220 | ||
220 | atomic64_set(&per_cpu(active_asids, cpu), asid); | 221 | atomic64_set(&per_cpu(active_asids, cpu), asid); |
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index e9db6b4bf65a..ef3e0f3aac96 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
@@ -823,16 +823,17 @@ static void dma_cache_maint_page(struct page *page, unsigned long offset, | |||
823 | if (PageHighMem(page)) { | 823 | if (PageHighMem(page)) { |
824 | if (len + offset > PAGE_SIZE) | 824 | if (len + offset > PAGE_SIZE) |
825 | len = PAGE_SIZE - offset; | 825 | len = PAGE_SIZE - offset; |
826 | vaddr = kmap_high_get(page); | 826 | |
827 | if (vaddr) { | 827 | if (cache_is_vipt_nonaliasing()) { |
828 | vaddr += offset; | ||
829 | op(vaddr, len, dir); | ||
830 | kunmap_high(page); | ||
831 | } else if (cache_is_vipt()) { | ||
832 | /* unmapped pages might still be cached */ | ||
833 | vaddr = kmap_atomic(page); | 828 | vaddr = kmap_atomic(page); |
834 | op(vaddr + offset, len, dir); | 829 | op(vaddr + offset, len, dir); |
835 | kunmap_atomic(vaddr); | 830 | kunmap_atomic(vaddr); |
831 | } else { | ||
832 | vaddr = kmap_high_get(page); | ||
833 | if (vaddr) { | ||
834 | op(vaddr + offset, len, dir); | ||
835 | kunmap_high(page); | ||
836 | } | ||
836 | } | 837 | } |
837 | } else { | 838 | } else { |
838 | vaddr = page_address(page) + offset; | 839 | vaddr = page_address(page) + offset; |
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index 1c8f7f564175..0d473cce501c 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c | |||
@@ -170,15 +170,18 @@ void __flush_dcache_page(struct address_space *mapping, struct page *page) | |||
170 | if (!PageHighMem(page)) { | 170 | if (!PageHighMem(page)) { |
171 | __cpuc_flush_dcache_area(page_address(page), PAGE_SIZE); | 171 | __cpuc_flush_dcache_area(page_address(page), PAGE_SIZE); |
172 | } else { | 172 | } else { |
173 | void *addr = kmap_high_get(page); | 173 | void *addr; |
174 | if (addr) { | 174 | |
175 | __cpuc_flush_dcache_area(addr, PAGE_SIZE); | 175 | if (cache_is_vipt_nonaliasing()) { |
176 | kunmap_high(page); | ||
177 | } else if (cache_is_vipt()) { | ||
178 | /* unmapped pages might still be cached */ | ||
179 | addr = kmap_atomic(page); | 176 | addr = kmap_atomic(page); |
180 | __cpuc_flush_dcache_area(addr, PAGE_SIZE); | 177 | __cpuc_flush_dcache_area(addr, PAGE_SIZE); |
181 | kunmap_atomic(addr); | 178 | kunmap_atomic(addr); |
179 | } else { | ||
180 | addr = kmap_high_get(page); | ||
181 | if (addr) { | ||
182 | __cpuc_flush_dcache_area(addr, PAGE_SIZE); | ||
183 | kunmap_high(page); | ||
184 | } | ||
182 | } | 185 | } |
183 | } | 186 | } |
184 | 187 | ||
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index c6d45c87540e..e0d8565671a6 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -34,6 +34,7 @@ | |||
34 | #include <asm/mach/pci.h> | 34 | #include <asm/mach/pci.h> |
35 | 35 | ||
36 | #include "mm.h" | 36 | #include "mm.h" |
37 | #include "tcm.h" | ||
37 | 38 | ||
38 | /* | 39 | /* |
39 | * empty_zero_page is a special page that is used for | 40 | * empty_zero_page is a special page that is used for |
@@ -615,39 +616,60 @@ static void __init alloc_init_pte(pmd_t *pmd, unsigned long addr, | |||
615 | } while (pte++, addr += PAGE_SIZE, addr != end); | 616 | } while (pte++, addr += PAGE_SIZE, addr != end); |
616 | } | 617 | } |
617 | 618 | ||
618 | static void __init alloc_init_section(pud_t *pud, unsigned long addr, | 619 | static void __init map_init_section(pmd_t *pmd, unsigned long addr, |
619 | unsigned long end, phys_addr_t phys, | 620 | unsigned long end, phys_addr_t phys, |
620 | const struct mem_type *type) | 621 | const struct mem_type *type) |
621 | { | 622 | { |
622 | pmd_t *pmd = pmd_offset(pud, addr); | 623 | #ifndef CONFIG_ARM_LPAE |
623 | |||
624 | /* | 624 | /* |
625 | * Try a section mapping - end, addr and phys must all be aligned | 625 | * In classic MMU format, puds and pmds are folded in to |
626 | * to a section boundary. Note that PMDs refer to the individual | 626 | * the pgds. pmd_offset gives the PGD entry. PGDs refer to a |
627 | * L1 entries, whereas PGDs refer to a group of L1 entries making | 627 | * group of L1 entries making up one logical pointer to |
628 | * up one logical pointer to an L2 table. | 628 | * an L2 table (2MB), where as PMDs refer to the individual |
629 | * L1 entries (1MB). Hence increment to get the correct | ||
630 | * offset for odd 1MB sections. | ||
631 | * (See arch/arm/include/asm/pgtable-2level.h) | ||
629 | */ | 632 | */ |
630 | if (type->prot_sect && ((addr | end | phys) & ~SECTION_MASK) == 0) { | 633 | if (addr & SECTION_SIZE) |
631 | pmd_t *p = pmd; | 634 | pmd++; |
632 | |||
633 | #ifndef CONFIG_ARM_LPAE | ||
634 | if (addr & SECTION_SIZE) | ||
635 | pmd++; | ||
636 | #endif | 635 | #endif |
636 | do { | ||
637 | *pmd = __pmd(phys | type->prot_sect); | ||
638 | phys += SECTION_SIZE; | ||
639 | } while (pmd++, addr += SECTION_SIZE, addr != end); | ||
637 | 640 | ||
638 | do { | 641 | flush_pmd_entry(pmd); |
639 | *pmd = __pmd(phys | type->prot_sect); | 642 | } |
640 | phys += SECTION_SIZE; | ||
641 | } while (pmd++, addr += SECTION_SIZE, addr != end); | ||
642 | 643 | ||
643 | flush_pmd_entry(p); | 644 | static void __init alloc_init_pmd(pud_t *pud, unsigned long addr, |
644 | } else { | 645 | unsigned long end, phys_addr_t phys, |
646 | const struct mem_type *type) | ||
647 | { | ||
648 | pmd_t *pmd = pmd_offset(pud, addr); | ||
649 | unsigned long next; | ||
650 | |||
651 | do { | ||
645 | /* | 652 | /* |
646 | * No need to loop; pte's aren't interested in the | 653 | * With LPAE, we must loop over to map |
647 | * individual L1 entries. | 654 | * all the pmds for the given range. |
648 | */ | 655 | */ |
649 | alloc_init_pte(pmd, addr, end, __phys_to_pfn(phys), type); | 656 | next = pmd_addr_end(addr, end); |
650 | } | 657 | |
658 | /* | ||
659 | * Try a section mapping - addr, next and phys must all be | ||
660 | * aligned to a section boundary. | ||
661 | */ | ||
662 | if (type->prot_sect && | ||
663 | ((addr | next | phys) & ~SECTION_MASK) == 0) { | ||
664 | map_init_section(pmd, addr, next, phys, type); | ||
665 | } else { | ||
666 | alloc_init_pte(pmd, addr, next, | ||
667 | __phys_to_pfn(phys), type); | ||
668 | } | ||
669 | |||
670 | phys += next - addr; | ||
671 | |||
672 | } while (pmd++, addr = next, addr != end); | ||
651 | } | 673 | } |
652 | 674 | ||
653 | static void __init alloc_init_pud(pgd_t *pgd, unsigned long addr, | 675 | static void __init alloc_init_pud(pgd_t *pgd, unsigned long addr, |
@@ -658,7 +680,7 @@ static void __init alloc_init_pud(pgd_t *pgd, unsigned long addr, | |||
658 | 680 | ||
659 | do { | 681 | do { |
660 | next = pud_addr_end(addr, end); | 682 | next = pud_addr_end(addr, end); |
661 | alloc_init_section(pud, addr, next, phys, type); | 683 | alloc_init_pmd(pud, addr, next, phys, type); |
662 | phys += next - addr; | 684 | phys += next - addr; |
663 | } while (pud++, addr = next, addr != end); | 685 | } while (pud++, addr = next, addr != end); |
664 | } | 686 | } |
@@ -1273,6 +1295,7 @@ void __init paging_init(struct machine_desc *mdesc) | |||
1273 | dma_contiguous_remap(); | 1295 | dma_contiguous_remap(); |
1274 | devicemaps_init(mdesc); | 1296 | devicemaps_init(mdesc); |
1275 | kmap_init(); | 1297 | kmap_init(); |
1298 | tcm_init(); | ||
1276 | 1299 | ||
1277 | top_pmd = pmd_off_k(0xffff0000); | 1300 | top_pmd = pmd_off_k(0xffff0000); |
1278 | 1301 | ||
diff --git a/arch/arm/mm/proc-arm740.S b/arch/arm/mm/proc-arm740.S index dc5de5d53f20..fde2d2a794cf 100644 --- a/arch/arm/mm/proc-arm740.S +++ b/arch/arm/mm/proc-arm740.S | |||
@@ -77,24 +77,27 @@ __arm740_setup: | |||
77 | mcr p15, 0, r0, c6, c0 @ set area 0, default | 77 | mcr p15, 0, r0, c6, c0 @ set area 0, default |
78 | 78 | ||
79 | ldr r0, =(CONFIG_DRAM_BASE & 0xFFFFF000) @ base[31:12] of RAM | 79 | ldr r0, =(CONFIG_DRAM_BASE & 0xFFFFF000) @ base[31:12] of RAM |
80 | ldr r1, =(CONFIG_DRAM_SIZE >> 12) @ size of RAM (must be >= 4KB) | 80 | ldr r3, =(CONFIG_DRAM_SIZE >> 12) @ size of RAM (must be >= 4KB) |
81 | mov r2, #10 @ 11 is the minimum (4KB) | 81 | mov r4, #10 @ 11 is the minimum (4KB) |
82 | 1: add r2, r2, #1 @ area size *= 2 | 82 | 1: add r4, r4, #1 @ area size *= 2 |
83 | mov r1, r1, lsr #1 | 83 | movs r3, r3, lsr #1 |
84 | bne 1b @ count not zero r-shift | 84 | bne 1b @ count not zero r-shift |
85 | orr r0, r0, r2, lsl #1 @ the area register value | 85 | orr r0, r0, r4, lsl #1 @ the area register value |
86 | orr r0, r0, #1 @ set enable bit | 86 | orr r0, r0, #1 @ set enable bit |
87 | mcr p15, 0, r0, c6, c1 @ set area 1, RAM | 87 | mcr p15, 0, r0, c6, c1 @ set area 1, RAM |
88 | 88 | ||
89 | ldr r0, =(CONFIG_FLASH_MEM_BASE & 0xFFFFF000) @ base[31:12] of FLASH | 89 | ldr r0, =(CONFIG_FLASH_MEM_BASE & 0xFFFFF000) @ base[31:12] of FLASH |
90 | ldr r1, =(CONFIG_FLASH_SIZE >> 12) @ size of FLASH (must be >= 4KB) | 90 | ldr r3, =(CONFIG_FLASH_SIZE >> 12) @ size of FLASH (must be >= 4KB) |
91 | mov r2, #10 @ 11 is the minimum (4KB) | 91 | cmp r3, #0 |
92 | 1: add r2, r2, #1 @ area size *= 2 | 92 | moveq r0, #0 |
93 | mov r1, r1, lsr #1 | 93 | beq 2f |
94 | mov r4, #10 @ 11 is the minimum (4KB) | ||
95 | 1: add r4, r4, #1 @ area size *= 2 | ||
96 | movs r3, r3, lsr #1 | ||
94 | bne 1b @ count not zero r-shift | 97 | bne 1b @ count not zero r-shift |
95 | orr r0, r0, r2, lsl #1 @ the area register value | 98 | orr r0, r0, r4, lsl #1 @ the area register value |
96 | orr r0, r0, #1 @ set enable bit | 99 | orr r0, r0, #1 @ set enable bit |
97 | mcr p15, 0, r0, c6, c2 @ set area 2, ROM/FLASH | 100 | 2: mcr p15, 0, r0, c6, c2 @ set area 2, ROM/FLASH |
98 | 101 | ||
99 | mov r0, #0x06 | 102 | mov r0, #0x06 |
100 | mcr p15, 0, r0, c2, c0 @ Region 1&2 cacheable | 103 | mcr p15, 0, r0, c2, c0 @ Region 1&2 cacheable |
@@ -137,13 +140,14 @@ __arm740_proc_info: | |||
137 | .long 0x41807400 | 140 | .long 0x41807400 |
138 | .long 0xfffffff0 | 141 | .long 0xfffffff0 |
139 | .long 0 | 142 | .long 0 |
143 | .long 0 | ||
140 | b __arm740_setup | 144 | b __arm740_setup |
141 | .long cpu_arch_name | 145 | .long cpu_arch_name |
142 | .long cpu_elf_name | 146 | .long cpu_elf_name |
143 | .long HWCAP_SWP | HWCAP_HALF | HWCAP_26BIT | 147 | .long HWCAP_SWP | HWCAP_HALF | HWCAP_THUMB | HWCAP_26BIT |
144 | .long cpu_arm740_name | 148 | .long cpu_arm740_name |
145 | .long arm740_processor_functions | 149 | .long arm740_processor_functions |
146 | .long 0 | 150 | .long 0 |
147 | .long 0 | 151 | .long 0 |
148 | .long v3_cache_fns @ cache model | 152 | .long v4_cache_fns @ cache model |
149 | .size __arm740_proc_info, . - __arm740_proc_info | 153 | .size __arm740_proc_info, . - __arm740_proc_info |
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S index 2c3b9421ab5e..2556cf1c2da1 100644 --- a/arch/arm/mm/proc-arm920.S +++ b/arch/arm/mm/proc-arm920.S | |||
@@ -387,7 +387,7 @@ ENTRY(cpu_arm920_set_pte_ext) | |||
387 | /* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ | 387 | /* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ |
388 | .globl cpu_arm920_suspend_size | 388 | .globl cpu_arm920_suspend_size |
389 | .equ cpu_arm920_suspend_size, 4 * 3 | 389 | .equ cpu_arm920_suspend_size, 4 * 3 |
390 | #ifdef CONFIG_PM_SLEEP | 390 | #ifdef CONFIG_ARM_CPU_SUSPEND |
391 | ENTRY(cpu_arm920_do_suspend) | 391 | ENTRY(cpu_arm920_do_suspend) |
392 | stmfd sp!, {r4 - r6, lr} | 392 | stmfd sp!, {r4 - r6, lr} |
393 | mrc p15, 0, r4, c13, c0, 0 @ PID | 393 | mrc p15, 0, r4, c13, c0, 0 @ PID |
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S index f1803f7e2972..344c8a548cc0 100644 --- a/arch/arm/mm/proc-arm926.S +++ b/arch/arm/mm/proc-arm926.S | |||
@@ -402,7 +402,7 @@ ENTRY(cpu_arm926_set_pte_ext) | |||
402 | /* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ | 402 | /* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ |
403 | .globl cpu_arm926_suspend_size | 403 | .globl cpu_arm926_suspend_size |
404 | .equ cpu_arm926_suspend_size, 4 * 3 | 404 | .equ cpu_arm926_suspend_size, 4 * 3 |
405 | #ifdef CONFIG_PM_SLEEP | 405 | #ifdef CONFIG_ARM_CPU_SUSPEND |
406 | ENTRY(cpu_arm926_do_suspend) | 406 | ENTRY(cpu_arm926_do_suspend) |
407 | stmfd sp!, {r4 - r6, lr} | 407 | stmfd sp!, {r4 - r6, lr} |
408 | mrc p15, 0, r4, c13, c0, 0 @ PID | 408 | mrc p15, 0, r4, c13, c0, 0 @ PID |
diff --git a/arch/arm/mm/proc-mohawk.S b/arch/arm/mm/proc-mohawk.S index 82f9cdc751d6..0b60dd3d742a 100644 --- a/arch/arm/mm/proc-mohawk.S +++ b/arch/arm/mm/proc-mohawk.S | |||
@@ -350,7 +350,7 @@ ENTRY(cpu_mohawk_set_pte_ext) | |||
350 | 350 | ||
351 | .globl cpu_mohawk_suspend_size | 351 | .globl cpu_mohawk_suspend_size |
352 | .equ cpu_mohawk_suspend_size, 4 * 6 | 352 | .equ cpu_mohawk_suspend_size, 4 * 6 |
353 | #ifdef CONFIG_PM_SLEEP | 353 | #ifdef CONFIG_ARM_CPU_SUSPEND |
354 | ENTRY(cpu_mohawk_do_suspend) | 354 | ENTRY(cpu_mohawk_do_suspend) |
355 | stmfd sp!, {r4 - r9, lr} | 355 | stmfd sp!, {r4 - r9, lr} |
356 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode | 356 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode |
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S index 3aa0da11fd84..d92dfd081429 100644 --- a/arch/arm/mm/proc-sa1100.S +++ b/arch/arm/mm/proc-sa1100.S | |||
@@ -172,7 +172,7 @@ ENTRY(cpu_sa1100_set_pte_ext) | |||
172 | 172 | ||
173 | .globl cpu_sa1100_suspend_size | 173 | .globl cpu_sa1100_suspend_size |
174 | .equ cpu_sa1100_suspend_size, 4 * 3 | 174 | .equ cpu_sa1100_suspend_size, 4 * 3 |
175 | #ifdef CONFIG_PM_SLEEP | 175 | #ifdef CONFIG_ARM_CPU_SUSPEND |
176 | ENTRY(cpu_sa1100_do_suspend) | 176 | ENTRY(cpu_sa1100_do_suspend) |
177 | stmfd sp!, {r4 - r6, lr} | 177 | stmfd sp!, {r4 - r6, lr} |
178 | mrc p15, 0, r4, c3, c0, 0 @ domain ID | 178 | mrc p15, 0, r4, c3, c0, 0 @ domain ID |
diff --git a/arch/arm/mm/proc-syms.c b/arch/arm/mm/proc-syms.c index 3e6210b4d6d4..054b491ff764 100644 --- a/arch/arm/mm/proc-syms.c +++ b/arch/arm/mm/proc-syms.c | |||
@@ -17,7 +17,9 @@ | |||
17 | 17 | ||
18 | #ifndef MULTI_CPU | 18 | #ifndef MULTI_CPU |
19 | EXPORT_SYMBOL(cpu_dcache_clean_area); | 19 | EXPORT_SYMBOL(cpu_dcache_clean_area); |
20 | #ifdef CONFIG_MMU | ||
20 | EXPORT_SYMBOL(cpu_set_pte_ext); | 21 | EXPORT_SYMBOL(cpu_set_pte_ext); |
22 | #endif | ||
21 | #else | 23 | #else |
22 | EXPORT_SYMBOL(processor); | 24 | EXPORT_SYMBOL(processor); |
23 | #endif | 25 | #endif |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index bcaaa8de9325..919405e20b80 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -80,12 +80,10 @@ ENTRY(cpu_v6_do_idle) | |||
80 | mov pc, lr | 80 | mov pc, lr |
81 | 81 | ||
82 | ENTRY(cpu_v6_dcache_clean_area) | 82 | ENTRY(cpu_v6_dcache_clean_area) |
83 | #ifndef TLB_CAN_READ_FROM_L1_CACHE | ||
84 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 83 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
85 | add r0, r0, #D_CACHE_LINE_SIZE | 84 | add r0, r0, #D_CACHE_LINE_SIZE |
86 | subs r1, r1, #D_CACHE_LINE_SIZE | 85 | subs r1, r1, #D_CACHE_LINE_SIZE |
87 | bhi 1b | 86 | bhi 1b |
88 | #endif | ||
89 | mov pc, lr | 87 | mov pc, lr |
90 | 88 | ||
91 | /* | 89 | /* |
@@ -138,7 +136,7 @@ ENTRY(cpu_v6_set_pte_ext) | |||
138 | /* Suspend/resume support: taken from arch/arm/mach-s3c64xx/sleep.S */ | 136 | /* Suspend/resume support: taken from arch/arm/mach-s3c64xx/sleep.S */ |
139 | .globl cpu_v6_suspend_size | 137 | .globl cpu_v6_suspend_size |
140 | .equ cpu_v6_suspend_size, 4 * 6 | 138 | .equ cpu_v6_suspend_size, 4 * 6 |
141 | #ifdef CONFIG_PM_SLEEP | 139 | #ifdef CONFIG_ARM_CPU_SUSPEND |
142 | ENTRY(cpu_v6_do_suspend) | 140 | ENTRY(cpu_v6_do_suspend) |
143 | stmfd sp!, {r4 - r9, lr} | 141 | stmfd sp!, {r4 - r9, lr} |
144 | mrc p15, 0, r4, c13, c0, 0 @ FCSE/PID | 142 | mrc p15, 0, r4, c13, c0, 0 @ FCSE/PID |
diff --git a/arch/arm/mm/proc-v7-2level.S b/arch/arm/mm/proc-v7-2level.S index 78f520bc0e99..9704097c450e 100644 --- a/arch/arm/mm/proc-v7-2level.S +++ b/arch/arm/mm/proc-v7-2level.S | |||
@@ -110,7 +110,8 @@ ENTRY(cpu_v7_set_pte_ext) | |||
110 | ARM( str r3, [r0, #2048]! ) | 110 | ARM( str r3, [r0, #2048]! ) |
111 | THUMB( add r0, r0, #2048 ) | 111 | THUMB( add r0, r0, #2048 ) |
112 | THUMB( str r3, [r0] ) | 112 | THUMB( str r3, [r0] ) |
113 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte | 113 | ALT_SMP(mov pc,lr) |
114 | ALT_UP (mcr p15, 0, r0, c7, c10, 1) @ flush_pte | ||
114 | #endif | 115 | #endif |
115 | mov pc, lr | 116 | mov pc, lr |
116 | ENDPROC(cpu_v7_set_pte_ext) | 117 | ENDPROC(cpu_v7_set_pte_ext) |
diff --git a/arch/arm/mm/proc-v7-3level.S b/arch/arm/mm/proc-v7-3level.S index 6ffd78c0f9ab..363027e811d6 100644 --- a/arch/arm/mm/proc-v7-3level.S +++ b/arch/arm/mm/proc-v7-3level.S | |||
@@ -73,7 +73,8 @@ ENTRY(cpu_v7_set_pte_ext) | |||
73 | tst r3, #1 << (55 - 32) @ L_PTE_DIRTY | 73 | tst r3, #1 << (55 - 32) @ L_PTE_DIRTY |
74 | orreq r2, #L_PTE_RDONLY | 74 | orreq r2, #L_PTE_RDONLY |
75 | 1: strd r2, r3, [r0] | 75 | 1: strd r2, r3, [r0] |
76 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte | 76 | ALT_SMP(mov pc, lr) |
77 | ALT_UP (mcr p15, 0, r0, c7, c10, 1) @ flush_pte | ||
77 | #endif | 78 | #endif |
78 | mov pc, lr | 79 | mov pc, lr |
79 | ENDPROC(cpu_v7_set_pte_ext) | 80 | ENDPROC(cpu_v7_set_pte_ext) |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index 3a3c015f8d5c..2c73a7301ff7 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -75,14 +75,14 @@ ENTRY(cpu_v7_do_idle) | |||
75 | ENDPROC(cpu_v7_do_idle) | 75 | ENDPROC(cpu_v7_do_idle) |
76 | 76 | ||
77 | ENTRY(cpu_v7_dcache_clean_area) | 77 | ENTRY(cpu_v7_dcache_clean_area) |
78 | #ifndef TLB_CAN_READ_FROM_L1_CACHE | 78 | ALT_SMP(mov pc, lr) @ MP extensions imply L1 PTW |
79 | ALT_UP(W(nop)) | ||
79 | dcache_line_size r2, r3 | 80 | dcache_line_size r2, r3 |
80 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 81 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
81 | add r0, r0, r2 | 82 | add r0, r0, r2 |
82 | subs r1, r1, r2 | 83 | subs r1, r1, r2 |
83 | bhi 1b | 84 | bhi 1b |
84 | dsb | 85 | dsb |
85 | #endif | ||
86 | mov pc, lr | 86 | mov pc, lr |
87 | ENDPROC(cpu_v7_dcache_clean_area) | 87 | ENDPROC(cpu_v7_dcache_clean_area) |
88 | 88 | ||
@@ -402,6 +402,8 @@ __v7_ca9mp_proc_info: | |||
402 | __v7_proc __v7_ca9mp_setup | 402 | __v7_proc __v7_ca9mp_setup |
403 | .size __v7_ca9mp_proc_info, . - __v7_ca9mp_proc_info | 403 | .size __v7_ca9mp_proc_info, . - __v7_ca9mp_proc_info |
404 | 404 | ||
405 | #endif /* CONFIG_ARM_LPAE */ | ||
406 | |||
405 | /* | 407 | /* |
406 | * Marvell PJ4B processor. | 408 | * Marvell PJ4B processor. |
407 | */ | 409 | */ |
@@ -411,7 +413,6 @@ __v7_pj4b_proc_info: | |||
411 | .long 0xfffffff0 | 413 | .long 0xfffffff0 |
412 | __v7_proc __v7_pj4b_setup | 414 | __v7_proc __v7_pj4b_setup |
413 | .size __v7_pj4b_proc_info, . - __v7_pj4b_proc_info | 415 | .size __v7_pj4b_proc_info, . - __v7_pj4b_proc_info |
414 | #endif /* CONFIG_ARM_LPAE */ | ||
415 | 416 | ||
416 | /* | 417 | /* |
417 | * ARM Ltd. Cortex A7 processor. | 418 | * ARM Ltd. Cortex A7 processor. |
@@ -420,7 +421,7 @@ __v7_pj4b_proc_info: | |||
420 | __v7_ca7mp_proc_info: | 421 | __v7_ca7mp_proc_info: |
421 | .long 0x410fc070 | 422 | .long 0x410fc070 |
422 | .long 0xff0ffff0 | 423 | .long 0xff0ffff0 |
423 | __v7_proc __v7_ca7mp_setup, hwcaps = HWCAP_IDIV | 424 | __v7_proc __v7_ca7mp_setup |
424 | .size __v7_ca7mp_proc_info, . - __v7_ca7mp_proc_info | 425 | .size __v7_ca7mp_proc_info, . - __v7_ca7mp_proc_info |
425 | 426 | ||
426 | /* | 427 | /* |
@@ -430,10 +431,25 @@ __v7_ca7mp_proc_info: | |||
430 | __v7_ca15mp_proc_info: | 431 | __v7_ca15mp_proc_info: |
431 | .long 0x410fc0f0 | 432 | .long 0x410fc0f0 |
432 | .long 0xff0ffff0 | 433 | .long 0xff0ffff0 |
433 | __v7_proc __v7_ca15mp_setup, hwcaps = HWCAP_IDIV | 434 | __v7_proc __v7_ca15mp_setup |
434 | .size __v7_ca15mp_proc_info, . - __v7_ca15mp_proc_info | 435 | .size __v7_ca15mp_proc_info, . - __v7_ca15mp_proc_info |
435 | 436 | ||
436 | /* | 437 | /* |
438 | * Qualcomm Inc. Krait processors. | ||
439 | */ | ||
440 | .type __krait_proc_info, #object | ||
441 | __krait_proc_info: | ||
442 | .long 0x510f0400 @ Required ID value | ||
443 | .long 0xff0ffc00 @ Mask for ID | ||
444 | /* | ||
445 | * Some Krait processors don't indicate support for SDIV and UDIV | ||
446 | * instructions in the ARM instruction set, even though they actually | ||
447 | * do support them. | ||
448 | */ | ||
449 | __v7_proc __v7_setup, hwcaps = HWCAP_IDIV | ||
450 | .size __krait_proc_info, . - __krait_proc_info | ||
451 | |||
452 | /* | ||
437 | * Match any ARMv7 processor core. | 453 | * Match any ARMv7 processor core. |
438 | */ | 454 | */ |
439 | .type __v7_proc_info, #object | 455 | .type __v7_proc_info, #object |
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index eb93d6487f35..e8efd83b6f25 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
@@ -413,7 +413,7 @@ ENTRY(cpu_xsc3_set_pte_ext) | |||
413 | 413 | ||
414 | .globl cpu_xsc3_suspend_size | 414 | .globl cpu_xsc3_suspend_size |
415 | .equ cpu_xsc3_suspend_size, 4 * 6 | 415 | .equ cpu_xsc3_suspend_size, 4 * 6 |
416 | #ifdef CONFIG_PM_SLEEP | 416 | #ifdef CONFIG_ARM_CPU_SUSPEND |
417 | ENTRY(cpu_xsc3_do_suspend) | 417 | ENTRY(cpu_xsc3_do_suspend) |
418 | stmfd sp!, {r4 - r9, lr} | 418 | stmfd sp!, {r4 - r9, lr} |
419 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode | 419 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode |
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index 25510361aa18..e766f889bfd6 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
@@ -528,7 +528,7 @@ ENTRY(cpu_xscale_set_pte_ext) | |||
528 | 528 | ||
529 | .globl cpu_xscale_suspend_size | 529 | .globl cpu_xscale_suspend_size |
530 | .equ cpu_xscale_suspend_size, 4 * 6 | 530 | .equ cpu_xscale_suspend_size, 4 * 6 |
531 | #ifdef CONFIG_PM_SLEEP | 531 | #ifdef CONFIG_ARM_CPU_SUSPEND |
532 | ENTRY(cpu_xscale_do_suspend) | 532 | ENTRY(cpu_xscale_do_suspend) |
533 | stmfd sp!, {r4 - r9, lr} | 533 | stmfd sp!, {r4 - r9, lr} |
534 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode | 534 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode |
diff --git a/arch/arm/kernel/tcm.h b/arch/arm/mm/tcm.h index 8015ad434a40..8015ad434a40 100644 --- a/arch/arm/kernel/tcm.h +++ b/arch/arm/mm/tcm.h | |||
diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c index 6828ef6ce80e..a0bd8a755bdf 100644 --- a/arch/arm/net/bpf_jit_32.c +++ b/arch/arm/net/bpf_jit_32.c | |||
@@ -576,7 +576,7 @@ load_ind: | |||
576 | /* x = ((*(frame + k)) & 0xf) << 2; */ | 576 | /* x = ((*(frame + k)) & 0xf) << 2; */ |
577 | ctx->seen |= SEEN_X | SEEN_DATA | SEEN_CALL; | 577 | ctx->seen |= SEEN_X | SEEN_DATA | SEEN_CALL; |
578 | /* the interpreter should deal with the negative K */ | 578 | /* the interpreter should deal with the negative K */ |
579 | if (k < 0) | 579 | if ((int)k < 0) |
580 | return -1; | 580 | return -1; |
581 | /* offset in r1: we might have to take the slow path */ | 581 | /* offset in r1: we might have to take the slow path */ |
582 | emit_mov_i(r_off, k, ctx); | 582 | emit_mov_i(r_off, k, ctx); |
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index 831e1fdfdb2f..a10297da122b 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types | |||
@@ -16,7 +16,7 @@ | |||
16 | # are merged into mainline or have been edited in the machine database | 16 | # are merged into mainline or have been edited in the machine database |
17 | # within the last 12 months. References to machine_is_NAME() do not count! | 17 | # within the last 12 months. References to machine_is_NAME() do not count! |
18 | # | 18 | # |
19 | # Last update: Thu Apr 26 08:44:23 2012 | 19 | # Last update: Fri Mar 22 17:24:50 2013 |
20 | # | 20 | # |
21 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number | 21 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number |
22 | # | 22 | # |
@@ -64,8 +64,8 @@ h7201 ARCH_H7201 H7201 161 | |||
64 | h7202 ARCH_H7202 H7202 162 | 64 | h7202 ARCH_H7202 H7202 162 |
65 | iq80321 ARCH_IQ80321 IQ80321 169 | 65 | iq80321 ARCH_IQ80321 IQ80321 169 |
66 | ks8695 ARCH_KS8695 KS8695 180 | 66 | ks8695 ARCH_KS8695 KS8695 180 |
67 | karo ARCH_KARO KARO 190 | ||
68 | smdk2410 ARCH_SMDK2410 SMDK2410 193 | 67 | smdk2410 ARCH_SMDK2410 SMDK2410 193 |
68 | ceiva ARCH_CEIVA CEIVA 200 | ||
69 | voiceblue MACH_VOICEBLUE VOICEBLUE 218 | 69 | voiceblue MACH_VOICEBLUE VOICEBLUE 218 |
70 | h5400 ARCH_H5400 H5400 220 | 70 | h5400 ARCH_H5400 H5400 220 |
71 | omap_innovator MACH_OMAP_INNOVATOR OMAP_INNOVATOR 234 | 71 | omap_innovator MACH_OMAP_INNOVATOR OMAP_INNOVATOR 234 |
@@ -95,6 +95,7 @@ lpd7a400 MACH_LPD7A400 LPD7A400 389 | |||
95 | lpd7a404 MACH_LPD7A404 LPD7A404 390 | 95 | lpd7a404 MACH_LPD7A404 LPD7A404 390 |
96 | csb337 MACH_CSB337 CSB337 399 | 96 | csb337 MACH_CSB337 CSB337 399 |
97 | mainstone MACH_MAINSTONE MAINSTONE 406 | 97 | mainstone MACH_MAINSTONE MAINSTONE 406 |
98 | lite300 MACH_LITE300 LITE300 408 | ||
98 | xcep MACH_XCEP XCEP 413 | 99 | xcep MACH_XCEP XCEP 413 |
99 | arcom_vulcan MACH_ARCOM_VULCAN ARCOM_VULCAN 414 | 100 | arcom_vulcan MACH_ARCOM_VULCAN ARCOM_VULCAN 414 |
100 | nomadik MACH_NOMADIK NOMADIK 420 | 101 | nomadik MACH_NOMADIK NOMADIK 420 |
@@ -131,12 +132,14 @@ kb9200 MACH_KB9200 KB9200 612 | |||
131 | sx1 MACH_SX1 SX1 613 | 132 | sx1 MACH_SX1 SX1 613 |
132 | ixdp465 MACH_IXDP465 IXDP465 618 | 133 | ixdp465 MACH_IXDP465 IXDP465 618 |
133 | ixdp2351 MACH_IXDP2351 IXDP2351 619 | 134 | ixdp2351 MACH_IXDP2351 IXDP2351 619 |
135 | cm4008 MACH_CM4008 CM4008 624 | ||
134 | iq80332 MACH_IQ80332 IQ80332 629 | 136 | iq80332 MACH_IQ80332 IQ80332 629 |
135 | gtwx5715 MACH_GTWX5715 GTWX5715 641 | 137 | gtwx5715 MACH_GTWX5715 GTWX5715 641 |
136 | csb637 MACH_CSB637 CSB637 648 | 138 | csb637 MACH_CSB637 CSB637 648 |
137 | n30 MACH_N30 N30 656 | 139 | n30 MACH_N30 N30 656 |
138 | nec_mp900 MACH_NEC_MP900 NEC_MP900 659 | 140 | nec_mp900 MACH_NEC_MP900 NEC_MP900 659 |
139 | kafa MACH_KAFA KAFA 662 | 141 | kafa MACH_KAFA KAFA 662 |
142 | cm41xx MACH_CM41XX CM41XX 672 | ||
140 | ts72xx MACH_TS72XX TS72XX 673 | 143 | ts72xx MACH_TS72XX TS72XX 673 |
141 | otom MACH_OTOM OTOM 680 | 144 | otom MACH_OTOM OTOM 680 |
142 | nexcoder_2440 MACH_NEXCODER_2440 NEXCODER_2440 681 | 145 | nexcoder_2440 MACH_NEXCODER_2440 NEXCODER_2440 681 |
@@ -149,6 +152,7 @@ colibri MACH_COLIBRI COLIBRI 729 | |||
149 | gateway7001 MACH_GATEWAY7001 GATEWAY7001 731 | 152 | gateway7001 MACH_GATEWAY7001 GATEWAY7001 731 |
150 | pcm027 MACH_PCM027 PCM027 732 | 153 | pcm027 MACH_PCM027 PCM027 732 |
151 | anubis MACH_ANUBIS ANUBIS 734 | 154 | anubis MACH_ANUBIS ANUBIS 734 |
155 | xboardgp8 MACH_XBOARDGP8 XBOARDGP8 742 | ||
152 | akita MACH_AKITA AKITA 744 | 156 | akita MACH_AKITA AKITA 744 |
153 | e330 MACH_E330 E330 753 | 157 | e330 MACH_E330 E330 753 |
154 | nokia770 MACH_NOKIA770 NOKIA770 755 | 158 | nokia770 MACH_NOKIA770 NOKIA770 755 |
@@ -157,9 +161,11 @@ edb9315a MACH_EDB9315A EDB9315A 772 | |||
157 | stargate2 MACH_STARGATE2 STARGATE2 774 | 161 | stargate2 MACH_STARGATE2 STARGATE2 774 |
158 | intelmote2 MACH_INTELMOTE2 INTELMOTE2 775 | 162 | intelmote2 MACH_INTELMOTE2 INTELMOTE2 775 |
159 | trizeps4 MACH_TRIZEPS4 TRIZEPS4 776 | 163 | trizeps4 MACH_TRIZEPS4 TRIZEPS4 776 |
164 | pnx4008 MACH_PNX4008 PNX4008 782 | ||
160 | cpuat91 MACH_CPUAT91 CPUAT91 787 | 165 | cpuat91 MACH_CPUAT91 CPUAT91 787 |
161 | iq81340sc MACH_IQ81340SC IQ81340SC 799 | 166 | iq81340sc MACH_IQ81340SC IQ81340SC 799 |
162 | iq81340mc MACH_IQ81340MC IQ81340MC 801 | 167 | iq81340mc MACH_IQ81340MC IQ81340MC 801 |
168 | se4200 MACH_SE4200 SE4200 809 | ||
163 | micro9 MACH_MICRO9 MICRO9 811 | 169 | micro9 MACH_MICRO9 MICRO9 811 |
164 | micro9l MACH_MICRO9L MICRO9L 812 | 170 | micro9l MACH_MICRO9L MICRO9L 812 |
165 | omap_palmte MACH_OMAP_PALMTE OMAP_PALMTE 817 | 171 | omap_palmte MACH_OMAP_PALMTE OMAP_PALMTE 817 |
@@ -178,6 +184,7 @@ mx21ads MACH_MX21ADS MX21ADS 851 | |||
178 | ams_delta MACH_AMS_DELTA AMS_DELTA 862 | 184 | ams_delta MACH_AMS_DELTA AMS_DELTA 862 |
179 | nas100d MACH_NAS100D NAS100D 865 | 185 | nas100d MACH_NAS100D NAS100D 865 |
180 | magician MACH_MAGICIAN MAGICIAN 875 | 186 | magician MACH_MAGICIAN MAGICIAN 875 |
187 | cm4002 MACH_CM4002 CM4002 876 | ||
181 | nxdkn MACH_NXDKN NXDKN 880 | 188 | nxdkn MACH_NXDKN NXDKN 880 |
182 | palmtx MACH_PALMTX PALMTX 885 | 189 | palmtx MACH_PALMTX PALMTX 885 |
183 | s3c2413 MACH_S3C2413 S3C2413 887 | 190 | s3c2413 MACH_S3C2413 S3C2413 887 |
@@ -203,7 +210,6 @@ omap_fsample MACH_OMAP_FSAMPLE OMAP_FSAMPLE 970 | |||
203 | snapper_cl15 MACH_SNAPPER_CL15 SNAPPER_CL15 986 | 210 | snapper_cl15 MACH_SNAPPER_CL15 SNAPPER_CL15 986 |
204 | omap_palmz71 MACH_OMAP_PALMZ71 OMAP_PALMZ71 993 | 211 | omap_palmz71 MACH_OMAP_PALMZ71 OMAP_PALMZ71 993 |
205 | smdk2412 MACH_SMDK2412 SMDK2412 1009 | 212 | smdk2412 MACH_SMDK2412 SMDK2412 1009 |
206 | bkde303 MACH_BKDE303 BKDE303 1021 | ||
207 | smdk2413 MACH_SMDK2413 SMDK2413 1022 | 213 | smdk2413 MACH_SMDK2413 SMDK2413 1022 |
208 | aml_m5900 MACH_AML_M5900 AML_M5900 1024 | 214 | aml_m5900 MACH_AML_M5900 AML_M5900 1024 |
209 | balloon3 MACH_BALLOON3 BALLOON3 1029 | 215 | balloon3 MACH_BALLOON3 BALLOON3 1029 |
@@ -214,6 +220,7 @@ fsg MACH_FSG FSG 1091 | |||
214 | at91sam9260ek MACH_AT91SAM9260EK AT91SAM9260EK 1099 | 220 | at91sam9260ek MACH_AT91SAM9260EK AT91SAM9260EK 1099 |
215 | glantank MACH_GLANTANK GLANTANK 1100 | 221 | glantank MACH_GLANTANK GLANTANK 1100 |
216 | n2100 MACH_N2100 N2100 1101 | 222 | n2100 MACH_N2100 N2100 1101 |
223 | im42xx MACH_IM42XX IM42XX 1105 | ||
217 | qt2410 MACH_QT2410 QT2410 1108 | 224 | qt2410 MACH_QT2410 QT2410 1108 |
218 | kixrp435 MACH_KIXRP435 KIXRP435 1109 | 225 | kixrp435 MACH_KIXRP435 KIXRP435 1109 |
219 | cc9p9360dev MACH_CC9P9360DEV CC9P9360DEV 1114 | 226 | cc9p9360dev MACH_CC9P9360DEV CC9P9360DEV 1114 |
@@ -247,6 +254,7 @@ csb726 MACH_CSB726 CSB726 1359 | |||
247 | davinci_dm6467_evm MACH_DAVINCI_DM6467_EVM DAVINCI_DM6467_EVM 1380 | 254 | davinci_dm6467_evm MACH_DAVINCI_DM6467_EVM DAVINCI_DM6467_EVM 1380 |
248 | davinci_dm355_evm MACH_DAVINCI_DM355_EVM DAVINCI_DM355_EVM 1381 | 255 | davinci_dm355_evm MACH_DAVINCI_DM355_EVM DAVINCI_DM355_EVM 1381 |
249 | littleton MACH_LITTLETON LITTLETON 1388 | 256 | littleton MACH_LITTLETON LITTLETON 1388 |
257 | im4004 MACH_IM4004 IM4004 1400 | ||
250 | realview_pb11mp MACH_REALVIEW_PB11MP REALVIEW_PB11MP 1407 | 258 | realview_pb11mp MACH_REALVIEW_PB11MP REALVIEW_PB11MP 1407 |
251 | mx27_3ds MACH_MX27_3DS MX27_3DS 1430 | 259 | mx27_3ds MACH_MX27_3DS MX27_3DS 1430 |
252 | halibut MACH_HALIBUT HALIBUT 1439 | 260 | halibut MACH_HALIBUT HALIBUT 1439 |
@@ -268,6 +276,7 @@ dns323 MACH_DNS323 DNS323 1542 | |||
268 | omap3_beagle MACH_OMAP3_BEAGLE OMAP3_BEAGLE 1546 | 276 | omap3_beagle MACH_OMAP3_BEAGLE OMAP3_BEAGLE 1546 |
269 | nokia_n810 MACH_NOKIA_N810 NOKIA_N810 1548 | 277 | nokia_n810 MACH_NOKIA_N810 NOKIA_N810 1548 |
270 | pcm038 MACH_PCM038 PCM038 1551 | 278 | pcm038 MACH_PCM038 PCM038 1551 |
279 | sg310 MACH_SG310 SG310 1564 | ||
271 | ts209 MACH_TS209 TS209 1565 | 280 | ts209 MACH_TS209 TS209 1565 |
272 | at91cap9adk MACH_AT91CAP9ADK AT91CAP9ADK 1566 | 281 | at91cap9adk MACH_AT91CAP9ADK AT91CAP9ADK 1566 |
273 | mx31moboard MACH_MX31MOBOARD MX31MOBOARD 1574 | 282 | mx31moboard MACH_MX31MOBOARD MX31MOBOARD 1574 |
@@ -371,7 +380,6 @@ pcm043 MACH_PCM043 PCM043 2072 | |||
371 | sheevaplug MACH_SHEEVAPLUG SHEEVAPLUG 2097 | 380 | sheevaplug MACH_SHEEVAPLUG SHEEVAPLUG 2097 |
372 | avengers_lite MACH_AVENGERS_LITE AVENGERS_LITE 2104 | 381 | avengers_lite MACH_AVENGERS_LITE AVENGERS_LITE 2104 |
373 | mx51_babbage MACH_MX51_BABBAGE MX51_BABBAGE 2125 | 382 | mx51_babbage MACH_MX51_BABBAGE MX51_BABBAGE 2125 |
374 | tx37 MACH_TX37 TX37 2127 | ||
375 | rd78x00_masa MACH_RD78X00_MASA RD78X00_MASA 2135 | 383 | rd78x00_masa MACH_RD78X00_MASA RD78X00_MASA 2135 |
376 | dm355_leopard MACH_DM355_LEOPARD DM355_LEOPARD 2138 | 384 | dm355_leopard MACH_DM355_LEOPARD DM355_LEOPARD 2138 |
377 | ts219 MACH_TS219 TS219 2139 | 385 | ts219 MACH_TS219 TS219 2139 |
@@ -380,12 +388,12 @@ davinci_da850_evm MACH_DAVINCI_DA850_EVM DAVINCI_DA850_EVM 2157 | |||
380 | at91sam9g10ek MACH_AT91SAM9G10EK AT91SAM9G10EK 2159 | 388 | at91sam9g10ek MACH_AT91SAM9G10EK AT91SAM9G10EK 2159 |
381 | omap_4430sdp MACH_OMAP_4430SDP OMAP_4430SDP 2160 | 389 | omap_4430sdp MACH_OMAP_4430SDP OMAP_4430SDP 2160 |
382 | magx_zn5 MACH_MAGX_ZN5 MAGX_ZN5 2162 | 390 | magx_zn5 MACH_MAGX_ZN5 MAGX_ZN5 2162 |
383 | tx25 MACH_TX25 TX25 2177 | ||
384 | omap3_torpedo MACH_OMAP3_TORPEDO OMAP3_TORPEDO 2178 | 391 | omap3_torpedo MACH_OMAP3_TORPEDO OMAP3_TORPEDO 2178 |
385 | anw6410 MACH_ANW6410 ANW6410 2183 | 392 | anw6410 MACH_ANW6410 ANW6410 2183 |
386 | imx27_visstrim_m10 MACH_IMX27_VISSTRIM_M10 IMX27_VISSTRIM_M10 2187 | 393 | imx27_visstrim_m10 MACH_IMX27_VISSTRIM_M10 IMX27_VISSTRIM_M10 2187 |
387 | portuxg20 MACH_PORTUXG20 PORTUXG20 2191 | 394 | portuxg20 MACH_PORTUXG20 PORTUXG20 2191 |
388 | smdkc110 MACH_SMDKC110 SMDKC110 2193 | 395 | smdkc110 MACH_SMDKC110 SMDKC110 2193 |
396 | cabespresso MACH_CABESPRESSO CABESPRESSO 2194 | ||
389 | omap3517evm MACH_OMAP3517EVM OMAP3517EVM 2200 | 397 | omap3517evm MACH_OMAP3517EVM OMAP3517EVM 2200 |
390 | netspace_v2 MACH_NETSPACE_V2 NETSPACE_V2 2201 | 398 | netspace_v2 MACH_NETSPACE_V2 NETSPACE_V2 2201 |
391 | netspace_max_v2 MACH_NETSPACE_MAX_V2 NETSPACE_MAX_V2 2202 | 399 | netspace_max_v2 MACH_NETSPACE_MAX_V2 NETSPACE_MAX_V2 2202 |
@@ -404,6 +412,7 @@ bigdisk MACH_BIGDISK BIGDISK 2283 | |||
404 | at91sam9g20ek_2mmc MACH_AT91SAM9G20EK_2MMC AT91SAM9G20EK_2MMC 2288 | 412 | at91sam9g20ek_2mmc MACH_AT91SAM9G20EK_2MMC AT91SAM9G20EK_2MMC 2288 |
405 | bcmring MACH_BCMRING BCMRING 2289 | 413 | bcmring MACH_BCMRING BCMRING 2289 |
406 | mahimahi MACH_MAHIMAHI MAHIMAHI 2304 | 414 | mahimahi MACH_MAHIMAHI MAHIMAHI 2304 |
415 | cerebric MACH_CEREBRIC CEREBRIC 2311 | ||
407 | smdk6442 MACH_SMDK6442 SMDK6442 2324 | 416 | smdk6442 MACH_SMDK6442 SMDK6442 2324 |
408 | openrd_base MACH_OPENRD_BASE OPENRD_BASE 2325 | 417 | openrd_base MACH_OPENRD_BASE OPENRD_BASE 2325 |
409 | devkit8000 MACH_DEVKIT8000 DEVKIT8000 2330 | 418 | devkit8000 MACH_DEVKIT8000 DEVKIT8000 2330 |
@@ -423,10 +432,10 @@ raumfeld_rc MACH_RAUMFELD_RC RAUMFELD_RC 2413 | |||
423 | raumfeld_connector MACH_RAUMFELD_CONNECTOR RAUMFELD_CONNECTOR 2414 | 432 | raumfeld_connector MACH_RAUMFELD_CONNECTOR RAUMFELD_CONNECTOR 2414 |
424 | raumfeld_speaker MACH_RAUMFELD_SPEAKER RAUMFELD_SPEAKER 2415 | 433 | raumfeld_speaker MACH_RAUMFELD_SPEAKER RAUMFELD_SPEAKER 2415 |
425 | tnetv107x MACH_TNETV107X TNETV107X 2418 | 434 | tnetv107x MACH_TNETV107X TNETV107X 2418 |
426 | mx51_m2id MACH_MX51_M2ID MX51_M2ID 2428 | ||
427 | smdkv210 MACH_SMDKV210 SMDKV210 2456 | 435 | smdkv210 MACH_SMDKV210 SMDKV210 2456 |
428 | omap_zoom3 MACH_OMAP_ZOOM3 OMAP_ZOOM3 2464 | 436 | omap_zoom3 MACH_OMAP_ZOOM3 OMAP_ZOOM3 2464 |
429 | omap_3630sdp MACH_OMAP_3630SDP OMAP_3630SDP 2465 | 437 | omap_3630sdp MACH_OMAP_3630SDP OMAP_3630SDP 2465 |
438 | cybook2440 MACH_CYBOOK2440 CYBOOK2440 2466 | ||
430 | smartq7 MACH_SMARTQ7 SMARTQ7 2479 | 439 | smartq7 MACH_SMARTQ7 SMARTQ7 2479 |
431 | watson_efm_plugin MACH_WATSON_EFM_PLUGIN WATSON_EFM_PLUGIN 2491 | 440 | watson_efm_plugin MACH_WATSON_EFM_PLUGIN WATSON_EFM_PLUGIN 2491 |
432 | g4evm MACH_G4EVM G4EVM 2493 | 441 | g4evm MACH_G4EVM G4EVM 2493 |
@@ -434,12 +443,10 @@ omapl138_hawkboard MACH_OMAPL138_HAWKBOARD OMAPL138_HAWKBOARD 2495 | |||
434 | ts41x MACH_TS41X TS41X 2502 | 443 | ts41x MACH_TS41X TS41X 2502 |
435 | phy3250 MACH_PHY3250 PHY3250 2511 | 444 | phy3250 MACH_PHY3250 PHY3250 2511 |
436 | mini6410 MACH_MINI6410 MINI6410 2520 | 445 | mini6410 MACH_MINI6410 MINI6410 2520 |
437 | tx51 MACH_TX51 TX51 2529 | ||
438 | mx28evk MACH_MX28EVK MX28EVK 2531 | 446 | mx28evk MACH_MX28EVK MX28EVK 2531 |
439 | smartq5 MACH_SMARTQ5 SMARTQ5 2534 | 447 | smartq5 MACH_SMARTQ5 SMARTQ5 2534 |
440 | davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548 | 448 | davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548 |
441 | mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 | 449 | mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 |
442 | pca101 MACH_PCA101 PCA101 2595 | ||
443 | capc7117 MACH_CAPC7117 CAPC7117 2612 | 450 | capc7117 MACH_CAPC7117 CAPC7117 2612 |
444 | icontrol MACH_ICONTROL ICONTROL 2624 | 451 | icontrol MACH_ICONTROL ICONTROL 2624 |
445 | gplugd MACH_GPLUGD GPLUGD 2625 | 452 | gplugd MACH_GPLUGD GPLUGD 2625 |
@@ -465,6 +472,7 @@ igep0030 MACH_IGEP0030 IGEP0030 2717 | |||
465 | sbc3530 MACH_SBC3530 SBC3530 2722 | 472 | sbc3530 MACH_SBC3530 SBC3530 2722 |
466 | saarb MACH_SAARB SAARB 2727 | 473 | saarb MACH_SAARB SAARB 2727 |
467 | harmony MACH_HARMONY HARMONY 2731 | 474 | harmony MACH_HARMONY HARMONY 2731 |
475 | cybook_orizon MACH_CYBOOK_ORIZON CYBOOK_ORIZON 2733 | ||
468 | msm7x30_fluid MACH_MSM7X30_FLUID MSM7X30_FLUID 2741 | 476 | msm7x30_fluid MACH_MSM7X30_FLUID MSM7X30_FLUID 2741 |
469 | cm_t3517 MACH_CM_T3517 CM_T3517 2750 | 477 | cm_t3517 MACH_CM_T3517 CM_T3517 2750 |
470 | wbd222 MACH_WBD222 WBD222 2753 | 478 | wbd222 MACH_WBD222 WBD222 2753 |
@@ -480,10 +488,8 @@ eukrea_cpuimx35sd MACH_EUKREA_CPUIMX35SD EUKREA_CPUIMX35SD 2821 | |||
480 | eukrea_cpuimx51sd MACH_EUKREA_CPUIMX51SD EUKREA_CPUIMX51SD 2822 | 488 | eukrea_cpuimx51sd MACH_EUKREA_CPUIMX51SD EUKREA_CPUIMX51SD 2822 |
481 | eukrea_cpuimx51 MACH_EUKREA_CPUIMX51 EUKREA_CPUIMX51 2823 | 489 | eukrea_cpuimx51 MACH_EUKREA_CPUIMX51 EUKREA_CPUIMX51 2823 |
482 | smdkc210 MACH_SMDKC210 SMDKC210 2838 | 490 | smdkc210 MACH_SMDKC210 SMDKC210 2838 |
483 | pcaal1 MACH_PCAAL1 PCAAL1 2843 | ||
484 | t5325 MACH_T5325 T5325 2846 | 491 | t5325 MACH_T5325 T5325 2846 |
485 | income MACH_INCOME INCOME 2849 | 492 | income MACH_INCOME INCOME 2849 |
486 | mx257sx MACH_MX257SX MX257SX 2861 | ||
487 | goni MACH_GONI GONI 2862 | 493 | goni MACH_GONI GONI 2862 |
488 | bv07 MACH_BV07 BV07 2882 | 494 | bv07 MACH_BV07 BV07 2882 |
489 | openrd_ultimate MACH_OPENRD_ULTIMATE OPENRD_ULTIMATE 2884 | 495 | openrd_ultimate MACH_OPENRD_ULTIMATE OPENRD_ULTIMATE 2884 |
@@ -491,7 +497,6 @@ devixp MACH_DEVIXP DEVIXP 2885 | |||
491 | miccpt MACH_MICCPT MICCPT 2886 | 497 | miccpt MACH_MICCPT MICCPT 2886 |
492 | mic256 MACH_MIC256 MIC256 2887 | 498 | mic256 MACH_MIC256 MIC256 2887 |
493 | u5500 MACH_U5500 U5500 2890 | 499 | u5500 MACH_U5500 U5500 2890 |
494 | pov15hd MACH_POV15HD POV15HD 2910 | ||
495 | linkstation_lschl MACH_LINKSTATION_LSCHL LINKSTATION_LSCHL 2913 | 500 | linkstation_lschl MACH_LINKSTATION_LSCHL LINKSTATION_LSCHL 2913 |
496 | smdkv310 MACH_SMDKV310 SMDKV310 2925 | 501 | smdkv310 MACH_SMDKV310 SMDKV310 2925 |
497 | wm8505_7in_netbook MACH_WM8505_7IN_NETBOOK WM8505_7IN_NETBOOK 2928 | 502 | wm8505_7in_netbook MACH_WM8505_7IN_NETBOOK WM8505_7IN_NETBOOK 2928 |
@@ -518,7 +523,6 @@ prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103 | |||
518 | paz00 MACH_PAZ00 PAZ00 3128 | 523 | paz00 MACH_PAZ00 PAZ00 3128 |
519 | acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129 | 524 | acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129 |
520 | ag5evm MACH_AG5EVM AG5EVM 3189 | 525 | ag5evm MACH_AG5EVM AG5EVM 3189 |
521 | tsunagi MACH_TSUNAGI TSUNAGI 3197 | ||
522 | ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206 | 526 | ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206 |
523 | wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207 | 527 | wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207 |
524 | trimslice MACH_TRIMSLICE TRIMSLICE 3209 | 528 | trimslice MACH_TRIMSLICE TRIMSLICE 3209 |
@@ -529,8 +533,6 @@ msm8960_sim MACH_MSM8960_SIM MSM8960_SIM 3230 | |||
529 | msm8960_rumi3 MACH_MSM8960_RUMI3 MSM8960_RUMI3 3231 | 533 | msm8960_rumi3 MACH_MSM8960_RUMI3 MSM8960_RUMI3 3231 |
530 | gsia18s MACH_GSIA18S GSIA18S 3234 | 534 | gsia18s MACH_GSIA18S GSIA18S 3234 |
531 | mx53_loco MACH_MX53_LOCO MX53_LOCO 3273 | 535 | mx53_loco MACH_MX53_LOCO MX53_LOCO 3273 |
532 | tx53 MACH_TX53 TX53 3279 | ||
533 | encore MACH_ENCORE ENCORE 3284 | ||
534 | wario MACH_WARIO WARIO 3288 | 536 | wario MACH_WARIO WARIO 3288 |
535 | cm_t3730 MACH_CM_T3730 CM_T3730 3290 | 537 | cm_t3730 MACH_CM_T3730 CM_T3730 3290 |
536 | hrefv60 MACH_HREFV60 HREFV60 3293 | 538 | hrefv60 MACH_HREFV60 HREFV60 3293 |
@@ -538,603 +540,24 @@ armlex4210 MACH_ARMLEX4210 ARMLEX4210 3361 | |||
538 | snowball MACH_SNOWBALL SNOWBALL 3363 | 540 | snowball MACH_SNOWBALL SNOWBALL 3363 |
539 | xilinx_ep107 MACH_XILINX_EP107 XILINX_EP107 3378 | 541 | xilinx_ep107 MACH_XILINX_EP107 XILINX_EP107 3378 |
540 | nuri MACH_NURI NURI 3379 | 542 | nuri MACH_NURI NURI 3379 |
541 | wtplug MACH_WTPLUG WTPLUG 3412 | ||
542 | veridis_a300 MACH_VERIDIS_A300 VERIDIS_A300 3448 | ||
543 | origen MACH_ORIGEN ORIGEN 3455 | 543 | origen MACH_ORIGEN ORIGEN 3455 |
544 | wm8650refboard MACH_WM8650REFBOARD WM8650REFBOARD 3472 | ||
545 | xarina MACH_XARINA XARINA 3476 | ||
546 | sdvr MACH_SDVR SDVR 3478 | ||
547 | acer_maya MACH_ACER_MAYA ACER_MAYA 3479 | ||
548 | pico MACH_PICO PICO 3480 | ||
549 | cwmx233 MACH_CWMX233 CWMX233 3481 | ||
550 | cwam1808 MACH_CWAM1808 CWAM1808 3482 | ||
551 | cwdm365 MACH_CWDM365 CWDM365 3483 | ||
552 | mx51_moray MACH_MX51_MORAY MX51_MORAY 3484 | ||
553 | thales_cbc MACH_THALES_CBC THALES_CBC 3485 | ||
554 | bluepoint MACH_BLUEPOINT BLUEPOINT 3486 | ||
555 | dir665 MACH_DIR665 DIR665 3487 | ||
556 | acmerover1 MACH_ACMEROVER1 ACMEROVER1 3488 | ||
557 | shooter_ct MACH_SHOOTER_CT SHOOTER_CT 3489 | ||
558 | bliss MACH_BLISS BLISS 3490 | ||
559 | blissc MACH_BLISSC BLISSC 3491 | ||
560 | thales_adc MACH_THALES_ADC THALES_ADC 3492 | ||
561 | ubisys_p9d_evp MACH_UBISYS_P9D_EVP UBISYS_P9D_EVP 3493 | ||
562 | atdgp318 MACH_ATDGP318 ATDGP318 3494 | ||
563 | dma210u MACH_DMA210U DMA210U 3495 | ||
564 | em_t3 MACH_EM_T3 EM_T3 3496 | ||
565 | htx3250 MACH_HTX3250 HTX3250 3497 | ||
566 | g50 MACH_G50 G50 3498 | ||
567 | eco5 MACH_ECO5 ECO5 3499 | ||
568 | wintergrasp MACH_WINTERGRASP WINTERGRASP 3500 | ||
569 | puro MACH_PURO PURO 3501 | ||
570 | shooter_k MACH_SHOOTER_K SHOOTER_K 3502 | ||
571 | nspire MACH_NSPIRE NSPIRE 3503 | 544 | nspire MACH_NSPIRE NSPIRE 3503 |
572 | mickxx MACH_MICKXX MICKXX 3504 | ||
573 | lxmb MACH_LXMB LXMB 3505 | ||
574 | adam MACH_ADAM ADAM 3507 | ||
575 | b1004 MACH_B1004 B1004 3508 | ||
576 | oboea MACH_OBOEA OBOEA 3509 | ||
577 | a1015 MACH_A1015 A1015 3510 | ||
578 | robin_vbdt30 MACH_ROBIN_VBDT30 ROBIN_VBDT30 3511 | ||
579 | tegra_enterprise MACH_TEGRA_ENTERPRISE TEGRA_ENTERPRISE 3512 | ||
580 | rfl108200_mk10 MACH_RFL108200_MK10 RFL108200_MK10 3513 | ||
581 | rfl108300_mk16 MACH_RFL108300_MK16 RFL108300_MK16 3514 | ||
582 | rover_v7 MACH_ROVER_V7 ROVER_V7 3515 | ||
583 | miphone MACH_MIPHONE MIPHONE 3516 | ||
584 | femtobts MACH_FEMTOBTS FEMTOBTS 3517 | ||
585 | monopoli MACH_MONOPOLI MONOPOLI 3518 | ||
586 | boss MACH_BOSS BOSS 3519 | ||
587 | davinci_dm368_vtam MACH_DAVINCI_DM368_VTAM DAVINCI_DM368_VTAM 3520 | ||
588 | clcon MACH_CLCON CLCON 3521 | ||
589 | nokia_rm696 MACH_NOKIA_RM696 NOKIA_RM696 3522 | 545 | nokia_rm696 MACH_NOKIA_RM696 NOKIA_RM696 3522 |
590 | tahiti MACH_TAHITI TAHITI 3523 | ||
591 | fighter MACH_FIGHTER FIGHTER 3524 | ||
592 | sgh_i710 MACH_SGH_I710 SGH_I710 3525 | ||
593 | integreproscb MACH_INTEGREPROSCB INTEGREPROSCB 3526 | ||
594 | monza MACH_MONZA MONZA 3527 | ||
595 | calimain MACH_CALIMAIN CALIMAIN 3528 | ||
596 | mx6q_sabreauto MACH_MX6Q_SABREAUTO MX6Q_SABREAUTO 3529 | ||
597 | gma01x MACH_GMA01X GMA01X 3530 | ||
598 | sbc51 MACH_SBC51 SBC51 3531 | ||
599 | fit MACH_FIT FIT 3532 | ||
600 | steelhead MACH_STEELHEAD STEELHEAD 3533 | ||
601 | panther MACH_PANTHER PANTHER 3534 | ||
602 | msm8960_liquid MACH_MSM8960_LIQUID MSM8960_LIQUID 3535 | ||
603 | lexikonct MACH_LEXIKONCT LEXIKONCT 3536 | ||
604 | ns2816_stb MACH_NS2816_STB NS2816_STB 3537 | ||
605 | sei_mm2_lpc3250 MACH_SEI_MM2_LPC3250 SEI_MM2_LPC3250 3538 | ||
606 | cmimx53 MACH_CMIMX53 CMIMX53 3539 | ||
607 | sandwich MACH_SANDWICH SANDWICH 3540 | ||
608 | chief MACH_CHIEF CHIEF 3541 | ||
609 | pogo_e02 MACH_POGO_E02 POGO_E02 3542 | ||
610 | mikrap_x168 MACH_MIKRAP_X168 MIKRAP_X168 3543 | 546 | mikrap_x168 MACH_MIKRAP_X168 MIKRAP_X168 3543 |
611 | htcmozart MACH_HTCMOZART HTCMOZART 3544 | ||
612 | htcgold MACH_HTCGOLD HTCGOLD 3545 | ||
613 | mt72xx MACH_MT72XX MT72XX 3546 | ||
614 | mx51_ivy MACH_MX51_IVY MX51_IVY 3547 | ||
615 | mx51_lvd MACH_MX51_LVD MX51_LVD 3548 | ||
616 | omap3_wiser2 MACH_OMAP3_WISER2 OMAP3_WISER2 3549 | ||
617 | dreamplug MACH_DREAMPLUG DREAMPLUG 3550 | ||
618 | cobas_c_111 MACH_COBAS_C_111 COBAS_C_111 3551 | ||
619 | cobas_u_411 MACH_COBAS_U_411 COBAS_U_411 3552 | ||
620 | hssd MACH_HSSD HSSD 3553 | ||
621 | iom35x MACH_IOM35X IOM35X 3554 | ||
622 | psom_omap MACH_PSOM_OMAP PSOM_OMAP 3555 | ||
623 | iphone_2g MACH_IPHONE_2G IPHONE_2G 3556 | ||
624 | iphone_3g MACH_IPHONE_3G IPHONE_3G 3557 | ||
625 | ipod_touch_1g MACH_IPOD_TOUCH_1G IPOD_TOUCH_1G 3558 | ||
626 | pharos_tpc MACH_PHAROS_TPC PHAROS_TPC 3559 | ||
627 | mx53_hydra MACH_MX53_HYDRA MX53_HYDRA 3560 | ||
628 | ns2816_dev_board MACH_NS2816_DEV_BOARD NS2816_DEV_BOARD 3561 | ||
629 | iphone_3gs MACH_IPHONE_3GS IPHONE_3GS 3562 | ||
630 | iphone_4 MACH_IPHONE_4 IPHONE_4 3563 | ||
631 | ipod_touch_4g MACH_IPOD_TOUCH_4G IPOD_TOUCH_4G 3564 | ||
632 | dragon_e1100 MACH_DRAGON_E1100 DRAGON_E1100 3565 | ||
633 | topside MACH_TOPSIDE TOPSIDE 3566 | ||
634 | irisiii MACH_IRISIII IRISIII 3567 | ||
635 | deto_macarm9 MACH_DETO_MACARM9 DETO_MACARM9 3568 | 547 | deto_macarm9 MACH_DETO_MACARM9 DETO_MACARM9 3568 |
636 | eti_d1 MACH_ETI_D1 ETI_D1 3569 | ||
637 | som3530sdk MACH_SOM3530SDK SOM3530SDK 3570 | ||
638 | oc_engine MACH_OC_ENGINE OC_ENGINE 3571 | ||
639 | apq8064_sim MACH_APQ8064_SIM APQ8064_SIM 3572 | ||
640 | alps MACH_ALPS ALPS 3575 | ||
641 | tny_t3730 MACH_TNY_T3730 TNY_T3730 3576 | ||
642 | geryon_nfe MACH_GERYON_NFE GERYON_NFE 3577 | ||
643 | ns2816_ref_board MACH_NS2816_REF_BOARD NS2816_REF_BOARD 3578 | ||
644 | silverstone MACH_SILVERSTONE SILVERSTONE 3579 | ||
645 | mtt2440 MACH_MTT2440 MTT2440 3580 | ||
646 | ynicdb MACH_YNICDB YNICDB 3581 | ||
647 | bct MACH_BCT BCT 3582 | ||
648 | tuscan MACH_TUSCAN TUSCAN 3583 | ||
649 | xbt_sam9g45 MACH_XBT_SAM9G45 XBT_SAM9G45 3584 | ||
650 | enbw_cmc MACH_ENBW_CMC ENBW_CMC 3585 | ||
651 | ch104mx257 MACH_CH104MX257 CH104MX257 3587 | ||
652 | openpri MACH_OPENPRI OPENPRI 3588 | ||
653 | am335xevm MACH_AM335XEVM AM335XEVM 3589 | ||
654 | picodmb MACH_PICODMB PICODMB 3590 | ||
655 | waluigi MACH_WALUIGI WALUIGI 3591 | ||
656 | punicag7 MACH_PUNICAG7 PUNICAG7 3592 | ||
657 | ipad_1g MACH_IPAD_1G IPAD_1G 3593 | ||
658 | appletv_2g MACH_APPLETV_2G APPLETV_2G 3594 | ||
659 | mach_ecog45 MACH_MACH_ECOG45 MACH_ECOG45 3595 | ||
660 | ait_cam_enc_4xx MACH_AIT_CAM_ENC_4XX AIT_CAM_ENC_4XX 3596 | ||
661 | runnymede MACH_RUNNYMEDE RUNNYMEDE 3597 | ||
662 | play MACH_PLAY PLAY 3598 | ||
663 | hw90260 MACH_HW90260 HW90260 3599 | ||
664 | tagh MACH_TAGH TAGH 3600 | ||
665 | filbert MACH_FILBERT FILBERT 3601 | ||
666 | getinge_netcomv3 MACH_GETINGE_NETCOMV3 GETINGE_NETCOMV3 3602 | ||
667 | cw20 MACH_CW20 CW20 3603 | ||
668 | cinema MACH_CINEMA CINEMA 3604 | ||
669 | cinema_tea MACH_CINEMA_TEA CINEMA_TEA 3605 | ||
670 | cinema_coffee MACH_CINEMA_COFFEE CINEMA_COFFEE 3606 | ||
671 | cinema_juice MACH_CINEMA_JUICE CINEMA_JUICE 3607 | ||
672 | mx53_mirage2 MACH_MX53_MIRAGE2 MX53_MIRAGE2 3609 | ||
673 | mx53_efikasb MACH_MX53_EFIKASB MX53_EFIKASB 3610 | ||
674 | stm_b2000 MACH_STM_B2000 STM_B2000 3612 | ||
675 | m28evk MACH_M28EVK M28EVK 3613 | 548 | m28evk MACH_M28EVK M28EVK 3613 |
676 | pda MACH_PDA PDA 3614 | ||
677 | meraki_mr58 MACH_MERAKI_MR58 MERAKI_MR58 3615 | ||
678 | kota2 MACH_KOTA2 KOTA2 3616 | 549 | kota2 MACH_KOTA2 KOTA2 3616 |
679 | letcool MACH_LETCOOL LETCOOL 3617 | ||
680 | mx27iat MACH_MX27IAT MX27IAT 3618 | ||
681 | apollo_td MACH_APOLLO_TD APOLLO_TD 3619 | ||
682 | arena MACH_ARENA ARENA 3620 | ||
683 | gsngateway MACH_GSNGATEWAY GSNGATEWAY 3621 | ||
684 | lf2000 MACH_LF2000 LF2000 3622 | ||
685 | bonito MACH_BONITO BONITO 3623 | 550 | bonito MACH_BONITO BONITO 3623 |
686 | asymptote MACH_ASYMPTOTE ASYMPTOTE 3624 | ||
687 | bst2brd MACH_BST2BRD BST2BRD 3625 | ||
688 | tx335s MACH_TX335S TX335S 3626 | ||
689 | pelco_tesla MACH_PELCO_TESLA PELCO_TESLA 3627 | ||
690 | rrhtestplat MACH_RRHTESTPLAT RRHTESTPLAT 3628 | ||
691 | vidtonic_pro MACH_VIDTONIC_PRO VIDTONIC_PRO 3629 | ||
692 | pl_apollo MACH_PL_APOLLO PL_APOLLO 3630 | ||
693 | pl_phoenix MACH_PL_PHOENIX PL_PHOENIX 3631 | ||
694 | m28cu3 MACH_M28CU3 M28CU3 3632 | ||
695 | vvbox_hd MACH_VVBOX_HD VVBOX_HD 3633 | ||
696 | coreware_sam9260_ MACH_COREWARE_SAM9260_ COREWARE_SAM9260_ 3634 | ||
697 | marmaduke MACH_MARMADUKE MARMADUKE 3635 | ||
698 | amg_xlcore_camera MACH_AMG_XLCORE_CAMERA AMG_XLCORE_CAMERA 3636 | ||
699 | omap3_egf MACH_OMAP3_EGF OMAP3_EGF 3637 | 551 | omap3_egf MACH_OMAP3_EGF OMAP3_EGF 3637 |
700 | smdk4212 MACH_SMDK4212 SMDK4212 3638 | 552 | smdk4212 MACH_SMDK4212 SMDK4212 3638 |
701 | dnp9200 MACH_DNP9200 DNP9200 3639 | ||
702 | tf101 MACH_TF101 TF101 3640 | ||
703 | omap3silvio MACH_OMAP3SILVIO OMAP3SILVIO 3641 | ||
704 | picasso2 MACH_PICASSO2 PICASSO2 3642 | ||
705 | vangogh2 MACH_VANGOGH2 VANGOGH2 3643 | ||
706 | olpc_xo_1_75 MACH_OLPC_XO_1_75 OLPC_XO_1_75 3644 | ||
707 | gx400 MACH_GX400 GX400 3645 | ||
708 | gs300 MACH_GS300 GS300 3646 | ||
709 | acer_a9 MACH_ACER_A9 ACER_A9 3647 | ||
710 | vivow_evm MACH_VIVOW_EVM VIVOW_EVM 3648 | ||
711 | veloce_cxq MACH_VELOCE_CXQ VELOCE_CXQ 3649 | ||
712 | veloce_cxm MACH_VELOCE_CXM VELOCE_CXM 3650 | ||
713 | p1852 MACH_P1852 P1852 3651 | ||
714 | naxy100 MACH_NAXY100 NAXY100 3652 | ||
715 | taishan MACH_TAISHAN TAISHAN 3653 | ||
716 | touchlink MACH_TOUCHLINK TOUCHLINK 3654 | ||
717 | stm32f103ze MACH_STM32F103ZE STM32F103ZE 3655 | ||
718 | mcx MACH_MCX MCX 3656 | ||
719 | stm_nmhdk_fli7610 MACH_STM_NMHDK_FLI7610 STM_NMHDK_FLI7610 3657 | ||
720 | top28x MACH_TOP28X TOP28X 3658 | ||
721 | okl4vp_microvisor MACH_OKL4VP_MICROVISOR OKL4VP_MICROVISOR 3659 | ||
722 | pop MACH_POP POP 3660 | ||
723 | layer MACH_LAYER LAYER 3661 | ||
724 | trondheim MACH_TRONDHEIM TRONDHEIM 3662 | ||
725 | eva MACH_EVA EVA 3663 | ||
726 | trust_taurus MACH_TRUST_TAURUS TRUST_TAURUS 3664 | ||
727 | ns2816_huashan MACH_NS2816_HUASHAN NS2816_HUASHAN 3665 | ||
728 | ns2816_yangcheng MACH_NS2816_YANGCHENG NS2816_YANGCHENG 3666 | ||
729 | p852 MACH_P852 P852 3667 | ||
730 | flea3 MACH_FLEA3 FLEA3 3668 | ||
731 | bowfin MACH_BOWFIN BOWFIN 3669 | ||
732 | mv88de3100 MACH_MV88DE3100 MV88DE3100 3670 | ||
733 | pia_am35x MACH_PIA_AM35X PIA_AM35X 3671 | ||
734 | cedar MACH_CEDAR CEDAR 3672 | ||
735 | picasso_e MACH_PICASSO_E PICASSO_E 3673 | ||
736 | samsung_e60 MACH_SAMSUNG_E60 SAMSUNG_E60 3674 | ||
737 | sdvr_mini MACH_SDVR_MINI SDVR_MINI 3676 | ||
738 | omap3_ij3k MACH_OMAP3_IJ3K OMAP3_IJ3K 3677 | ||
739 | modasmc1 MACH_MODASMC1 MODASMC1 3678 | ||
740 | apq8064_rumi3 MACH_APQ8064_RUMI3 APQ8064_RUMI3 3679 | ||
741 | matrix506 MACH_MATRIX506 MATRIX506 3680 | ||
742 | msm9615_mtp MACH_MSM9615_MTP MSM9615_MTP 3681 | ||
743 | dm36x_spawndc MACH_DM36X_SPAWNDC DM36X_SPAWNDC 3682 | ||
744 | sff792 MACH_SFF792 SFF792 3683 | ||
745 | am335xiaevm MACH_AM335XIAEVM AM335XIAEVM 3684 | ||
746 | g3c2440 MACH_G3C2440 G3C2440 3685 | ||
747 | tion270 MACH_TION270 TION270 3686 | ||
748 | w22q7arm02 MACH_W22Q7ARM02 W22Q7ARM02 3687 | ||
749 | omap_cat MACH_OMAP_CAT OMAP_CAT 3688 | ||
750 | at91sam9n12ek MACH_AT91SAM9N12EK AT91SAM9N12EK 3689 | ||
751 | morrison MACH_MORRISON MORRISON 3690 | ||
752 | svdu MACH_SVDU SVDU 3691 | ||
753 | lpp01 MACH_LPP01 LPP01 3692 | ||
754 | ubc283 MACH_UBC283 UBC283 3693 | ||
755 | zeppelin MACH_ZEPPELIN ZEPPELIN 3694 | ||
756 | motus MACH_MOTUS MOTUS 3695 | ||
757 | neomainboard MACH_NEOMAINBOARD NEOMAINBOARD 3696 | ||
758 | devkit3250 MACH_DEVKIT3250 DEVKIT3250 3697 | ||
759 | devkit7000 MACH_DEVKIT7000 DEVKIT7000 3698 | ||
760 | fmc_uic MACH_FMC_UIC FMC_UIC 3699 | ||
761 | fmc_dcm MACH_FMC_DCM FMC_DCM 3700 | ||
762 | batwm MACH_BATWM BATWM 3701 | ||
763 | atlas6cb MACH_ATLAS6CB ATLAS6CB 3702 | ||
764 | blue MACH_BLUE BLUE 3705 | ||
765 | colorado MACH_COLORADO COLORADO 3706 | ||
766 | popc MACH_POPC POPC 3707 | ||
767 | promwad_jade MACH_PROMWAD_JADE PROMWAD_JADE 3708 | ||
768 | amp MACH_AMP AMP 3709 | ||
769 | gnet_amp MACH_GNET_AMP GNET_AMP 3710 | ||
770 | toques MACH_TOQUES TOQUES 3711 | ||
771 | apx4devkit MACH_APX4DEVKIT APX4DEVKIT 3712 | 553 | apx4devkit MACH_APX4DEVKIT APX4DEVKIT 3712 |
772 | dct_storm MACH_DCT_STORM DCT_STORM 3713 | ||
773 | owl MACH_OWL OWL 3715 | ||
774 | cogent_csb1741 MACH_COGENT_CSB1741 COGENT_CSB1741 3716 | ||
775 | adillustra610 MACH_ADILLUSTRA610 ADILLUSTRA610 3718 | ||
776 | ecafe_na04 MACH_ECAFE_NA04 ECAFE_NA04 3719 | ||
777 | popct MACH_POPCT POPCT 3720 | ||
778 | omap3_helena MACH_OMAP3_HELENA OMAP3_HELENA 3721 | ||
779 | ach MACH_ACH ACH 3722 | ||
780 | module_dtb MACH_MODULE_DTB MODULE_DTB 3723 | ||
781 | oslo_elisabeth MACH_OSLO_ELISABETH OSLO_ELISABETH 3725 | ||
782 | tt01 MACH_TT01 TT01 3726 | ||
783 | msm8930_cdp MACH_MSM8930_CDP MSM8930_CDP 3727 | ||
784 | msm8930_mtp MACH_MSM8930_MTP MSM8930_MTP 3728 | ||
785 | msm8930_fluid MACH_MSM8930_FLUID MSM8930_FLUID 3729 | ||
786 | ltu11 MACH_LTU11 LTU11 3730 | ||
787 | am1808_spawnco MACH_AM1808_SPAWNCO AM1808_SPAWNCO 3731 | ||
788 | flx6410 MACH_FLX6410 FLX6410 3732 | ||
789 | mx6q_qsb MACH_MX6Q_QSB MX6Q_QSB 3733 | ||
790 | mx53_plt424 MACH_MX53_PLT424 MX53_PLT424 3734 | ||
791 | jasmine MACH_JASMINE JASMINE 3735 | ||
792 | l138_owlboard_plus MACH_L138_OWLBOARD_PLUS L138_OWLBOARD_PLUS 3736 | ||
793 | wr21 MACH_WR21 WR21 3737 | ||
794 | peaboy MACH_PEABOY PEABOY 3739 | ||
795 | mx28_plato MACH_MX28_PLATO MX28_PLATO 3740 | ||
796 | kacom2 MACH_KACOM2 KACOM2 3741 | ||
797 | slco MACH_SLCO SLCO 3742 | ||
798 | imx51pico MACH_IMX51PICO IMX51PICO 3743 | ||
799 | glink1 MACH_GLINK1 GLINK1 3744 | ||
800 | diamond MACH_DIAMOND DIAMOND 3745 | ||
801 | d9000 MACH_D9000 D9000 3746 | ||
802 | w5300e01 MACH_W5300E01 W5300E01 3747 | ||
803 | im6000 MACH_IM6000 IM6000 3748 | ||
804 | mx51_fred51 MACH_MX51_FRED51 MX51_FRED51 3749 | ||
805 | stm32f2 MACH_STM32F2 STM32F2 3750 | ||
806 | ville MACH_VILLE VILLE 3751 | ||
807 | ptip_murnau MACH_PTIP_MURNAU PTIP_MURNAU 3752 | ||
808 | ptip_classic MACH_PTIP_CLASSIC PTIP_CLASSIC 3753 | ||
809 | mx53grb MACH_MX53GRB MX53GRB 3754 | ||
810 | gagarin MACH_GAGARIN GAGARIN 3755 | ||
811 | nas2big MACH_NAS2BIG NAS2BIG 3757 | ||
812 | superfemto MACH_SUPERFEMTO SUPERFEMTO 3758 | ||
813 | teufel MACH_TEUFEL TEUFEL 3759 | ||
814 | dinara MACH_DINARA DINARA 3760 | ||
815 | vanquish MACH_VANQUISH VANQUISH 3761 | ||
816 | zipabox1 MACH_ZIPABOX1 ZIPABOX1 3762 | ||
817 | u9540 MACH_U9540 U9540 3763 | ||
818 | jet MACH_JET JET 3764 | ||
819 | smdk4412 MACH_SMDK4412 SMDK4412 3765 | 554 | smdk4412 MACH_SMDK4412 SMDK4412 3765 |
820 | elite MACH_ELITE ELITE 3766 | ||
821 | spear320_hmi MACH_SPEAR320_HMI SPEAR320_HMI 3767 | ||
822 | ontario MACH_ONTARIO ONTARIO 3768 | ||
823 | mx6q_sabrelite MACH_MX6Q_SABRELITE MX6Q_SABRELITE 3769 | ||
824 | vc200 MACH_VC200 VC200 3770 | ||
825 | msm7625a_ffa MACH_MSM7625A_FFA MSM7625A_FFA 3771 | ||
826 | msm7625a_surf MACH_MSM7625A_SURF MSM7625A_SURF 3772 | ||
827 | benthossbp MACH_BENTHOSSBP BENTHOSSBP 3773 | ||
828 | smdk5210 MACH_SMDK5210 SMDK5210 3774 | ||
829 | empq2300 MACH_EMPQ2300 EMPQ2300 3775 | ||
830 | minipos MACH_MINIPOS MINIPOS 3776 | ||
831 | omap5_sevm MACH_OMAP5_SEVM OMAP5_SEVM 3777 | ||
832 | shelter MACH_SHELTER SHELTER 3778 | ||
833 | omap3_devkit8500 MACH_OMAP3_DEVKIT8500 OMAP3_DEVKIT8500 3779 | ||
834 | edgetd MACH_EDGETD EDGETD 3780 | ||
835 | copperyard MACH_COPPERYARD COPPERYARD 3781 | ||
836 | edge_u MACH_EDGE_U EDGE_U 3783 | ||
837 | edge_td MACH_EDGE_TD EDGE_TD 3784 | ||
838 | wdss MACH_WDSS WDSS 3785 | ||
839 | dl_pb25 MACH_DL_PB25 DL_PB25 3786 | ||
840 | dss11 MACH_DSS11 DSS11 3787 | ||
841 | cpa MACH_CPA CPA 3788 | ||
842 | aptp2000 MACH_APTP2000 APTP2000 3789 | ||
843 | marzen MACH_MARZEN MARZEN 3790 | 555 | marzen MACH_MARZEN MARZEN 3790 |
844 | st_turbine MACH_ST_TURBINE ST_TURBINE 3791 | ||
845 | gtl_it3300 MACH_GTL_IT3300 GTL_IT3300 3792 | ||
846 | mx6_mule MACH_MX6_MULE MX6_MULE 3793 | ||
847 | v7pxa_dt MACH_V7PXA_DT V7PXA_DT 3794 | ||
848 | v7mmp_dt MACH_V7MMP_DT V7MMP_DT 3795 | ||
849 | dragon7 MACH_DRAGON7 DRAGON7 3796 | ||
850 | krome MACH_KROME KROME 3797 | 556 | krome MACH_KROME KROME 3797 |
851 | oratisdante MACH_ORATISDANTE ORATISDANTE 3798 | ||
852 | fathom MACH_FATHOM FATHOM 3799 | ||
853 | dns325 MACH_DNS325 DNS325 3800 | ||
854 | sarnen MACH_SARNEN SARNEN 3801 | ||
855 | ubisys_g1 MACH_UBISYS_G1 UBISYS_G1 3802 | ||
856 | mx53_pf1 MACH_MX53_PF1 MX53_PF1 3803 | ||
857 | asanti MACH_ASANTI ASANTI 3804 | ||
858 | volta MACH_VOLTA VOLTA 3805 | ||
859 | knight MACH_KNIGHT KNIGHT 3807 | ||
860 | beaglebone MACH_BEAGLEBONE BEAGLEBONE 3808 | ||
861 | becker MACH_BECKER BECKER 3809 | ||
862 | fc360 MACH_FC360 FC360 3810 | ||
863 | pmi2_xls MACH_PMI2_XLS PMI2_XLS 3811 | ||
864 | taranto MACH_TARANTO TARANTO 3812 | ||
865 | plutux MACH_PLUTUX PLUTUX 3813 | ||
866 | ipmp_medcom MACH_IPMP_MEDCOM IPMP_MEDCOM 3814 | ||
867 | absolut MACH_ABSOLUT ABSOLUT 3815 | ||
868 | awpb3 MACH_AWPB3 AWPB3 3816 | ||
869 | nfp32xx_dt MACH_NFP32XX_DT NFP32XX_DT 3817 | ||
870 | dl_pb53 MACH_DL_PB53 DL_PB53 3818 | ||
871 | acu_ii MACH_ACU_II ACU_II 3819 | ||
872 | avalon MACH_AVALON AVALON 3820 | ||
873 | sphinx MACH_SPHINX SPHINX 3821 | ||
874 | titan_t MACH_TITAN_T TITAN_T 3822 | ||
875 | harvest_boris MACH_HARVEST_BORIS HARVEST_BORIS 3823 | ||
876 | mach_msm7x30_m3s MACH_MACH_MSM7X30_M3S MACH_MSM7X30_M3S 3824 | ||
877 | smdk5250 MACH_SMDK5250 SMDK5250 3825 | ||
878 | imxt_lite MACH_IMXT_LITE IMXT_LITE 3826 | ||
879 | imxt_std MACH_IMXT_STD IMXT_STD 3827 | ||
880 | imxt_log MACH_IMXT_LOG IMXT_LOG 3828 | ||
881 | imxt_nav MACH_IMXT_NAV IMXT_NAV 3829 | ||
882 | imxt_full MACH_IMXT_FULL IMXT_FULL 3830 | ||
883 | ag09015 MACH_AG09015 AG09015 3831 | ||
884 | am3517_mt_ventoux MACH_AM3517_MT_VENTOUX AM3517_MT_VENTOUX 3832 | ||
885 | dp1arm9 MACH_DP1ARM9 DP1ARM9 3833 | ||
886 | picasso_m MACH_PICASSO_M PICASSO_M 3834 | ||
887 | video_gadget MACH_VIDEO_GADGET VIDEO_GADGET 3835 | ||
888 | mtt_om3x MACH_MTT_OM3X MTT_OM3X 3836 | ||
889 | mx6q_arm2 MACH_MX6Q_ARM2 MX6Q_ARM2 3837 | ||
890 | picosam9g45 MACH_PICOSAM9G45 PICOSAM9G45 3838 | ||
891 | vpm_dm365 MACH_VPM_DM365 VPM_DM365 3839 | ||
892 | bonfire MACH_BONFIRE BONFIRE 3840 | ||
893 | mt2p2d MACH_MT2P2D MT2P2D 3841 | ||
894 | sigpda01 MACH_SIGPDA01 SIGPDA01 3842 | ||
895 | cn27 MACH_CN27 CN27 3843 | ||
896 | mx25_cwtap MACH_MX25_CWTAP MX25_CWTAP 3844 | ||
897 | apf28 MACH_APF28 APF28 3845 | ||
898 | pelco_maxwell MACH_PELCO_MAXWELL PELCO_MAXWELL 3846 | ||
899 | ge_phoenix MACH_GE_PHOENIX GE_PHOENIX 3847 | ||
900 | empc_a500 MACH_EMPC_A500 EMPC_A500 3848 | ||
901 | ims_arm9 MACH_IMS_ARM9 IMS_ARM9 3849 | ||
902 | mini2416 MACH_MINI2416 MINI2416 3850 | ||
903 | mini2450 MACH_MINI2450 MINI2450 3851 | ||
904 | mini310 MACH_MINI310 MINI310 3852 | ||
905 | spear_hurricane MACH_SPEAR_HURRICANE SPEAR_HURRICANE 3853 | ||
906 | mt7208 MACH_MT7208 MT7208 3854 | ||
907 | lpc178x MACH_LPC178X LPC178X 3855 | ||
908 | farleys MACH_FARLEYS FARLEYS 3856 | ||
909 | efm32gg_dk3750 MACH_EFM32GG_DK3750 EFM32GG_DK3750 3857 | ||
910 | zeus_board MACH_ZEUS_BOARD ZEUS_BOARD 3858 | ||
911 | cc51 MACH_CC51 CC51 3859 | ||
912 | fxi_c210 MACH_FXI_C210 FXI_C210 3860 | ||
913 | msm8627_cdp MACH_MSM8627_CDP MSM8627_CDP 3861 | ||
914 | msm8627_mtp MACH_MSM8627_MTP MSM8627_MTP 3862 | ||
915 | armadillo800eva MACH_ARMADILLO800EVA ARMADILLO800EVA 3863 | 557 | armadillo800eva MACH_ARMADILLO800EVA ARMADILLO800EVA 3863 |
916 | primou MACH_PRIMOU PRIMOU 3864 | ||
917 | primoc MACH_PRIMOC PRIMOC 3865 | ||
918 | primoct MACH_PRIMOCT PRIMOCT 3866 | ||
919 | a9500 MACH_A9500 A9500 3867 | ||
920 | pluto MACH_PLUTO PLUTO 3869 | ||
921 | acfx100 MACH_ACFX100 ACFX100 3870 | ||
922 | msm8625_rumi3 MACH_MSM8625_RUMI3 MSM8625_RUMI3 3871 | ||
923 | valente MACH_VALENTE VALENTE 3872 | ||
924 | crfs_rfeye MACH_CRFS_RFEYE CRFS_RFEYE 3873 | ||
925 | rfeye MACH_RFEYE RFEYE 3874 | ||
926 | phidget_sbc3 MACH_PHIDGET_SBC3 PHIDGET_SBC3 3875 | ||
927 | tcw_mika MACH_TCW_MIKA TCW_MIKA 3876 | ||
928 | imx28_egf MACH_IMX28_EGF IMX28_EGF 3877 | ||
929 | valente_wx MACH_VALENTE_WX VALENTE_WX 3878 | ||
930 | huangshans MACH_HUANGSHANS HUANGSHANS 3879 | ||
931 | bosphorus1 MACH_BOSPHORUS1 BOSPHORUS1 3880 | ||
932 | prima MACH_PRIMA PRIMA 3881 | ||
933 | evita_ulk MACH_EVITA_ULK EVITA_ULK 3884 | ||
934 | merisc600 MACH_MERISC600 MERISC600 3885 | ||
935 | dolak MACH_DOLAK DOLAK 3886 | ||
936 | sbc53 MACH_SBC53 SBC53 3887 | ||
937 | elite_ulk MACH_ELITE_ULK ELITE_ULK 3888 | ||
938 | pov2 MACH_POV2 POV2 3889 | ||
939 | ipod_touch_2g MACH_IPOD_TOUCH_2G IPOD_TOUCH_2G 3890 | ||
940 | da850_pqab MACH_DA850_PQAB DA850_PQAB 3891 | ||
941 | fermi MACH_FERMI FERMI 3892 | ||
942 | ccardwmx28 MACH_CCARDWMX28 CCARDWMX28 3893 | ||
943 | ccardmx28 MACH_CCARDMX28 CCARDMX28 3894 | ||
944 | fs20_fcm2050 MACH_FS20_FCM2050 FS20_FCM2050 3895 | ||
945 | kinetis MACH_KINETIS KINETIS 3896 | ||
946 | kai MACH_KAI KAI 3897 | ||
947 | bcthb2 MACH_BCTHB2 BCTHB2 3898 | ||
948 | inels3_cu MACH_INELS3_CU INELS3_CU 3899 | ||
949 | da850_apollo MACH_DA850_APOLLO DA850_APOLLO 3901 | ||
950 | tracnas MACH_TRACNAS TRACNAS 3902 | ||
951 | mityarm335x MACH_MITYARM335X MITYARM335X 3903 | ||
952 | xcgz7x MACH_XCGZ7X XCGZ7X 3904 | ||
953 | cubox MACH_CUBOX CUBOX 3905 | ||
954 | terminator MACH_TERMINATOR TERMINATOR 3906 | ||
955 | eye03 MACH_EYE03 EYE03 3907 | ||
956 | kota3 MACH_KOTA3 KOTA3 3908 | ||
957 | pscpe MACH_PSCPE PSCPE 3910 | ||
958 | akt1100 MACH_AKT1100 AKT1100 3911 | ||
959 | pcaaxl2 MACH_PCAAXL2 PCAAXL2 3912 | ||
960 | primodd_ct MACH_PRIMODD_CT PRIMODD_CT 3913 | ||
961 | nsbc MACH_NSBC NSBC 3914 | ||
962 | meson2_skt MACH_MESON2_SKT MESON2_SKT 3915 | ||
963 | meson2_ref MACH_MESON2_REF MESON2_REF 3916 | ||
964 | ccardwmx28js MACH_CCARDWMX28JS CCARDWMX28JS 3917 | ||
965 | ccardmx28js MACH_CCARDMX28JS CCARDMX28JS 3918 | ||
966 | indico MACH_INDICO INDICO 3919 | ||
967 | msm8960dt MACH_MSM8960DT MSM8960DT 3920 | ||
968 | primods MACH_PRIMODS PRIMODS 3921 | ||
969 | beluga_m1388 MACH_BELUGA_M1388 BELUGA_M1388 3922 | ||
970 | primotd MACH_PRIMOTD PRIMOTD 3923 | ||
971 | varan_master MACH_VARAN_MASTER VARAN_MASTER 3924 | ||
972 | primodd MACH_PRIMODD PRIMODD 3925 | ||
973 | jetduo MACH_JETDUO JETDUO 3926 | ||
974 | mx53_umobo MACH_MX53_UMOBO MX53_UMOBO 3927 | 558 | mx53_umobo MACH_MX53_UMOBO MX53_UMOBO 3927 |
975 | trats MACH_TRATS TRATS 3928 | ||
976 | starcraft MACH_STARCRAFT STARCRAFT 3929 | ||
977 | qseven_tegra2 MACH_QSEVEN_TEGRA2 QSEVEN_TEGRA2 3930 | ||
978 | lichee_sun4i_devbd MACH_LICHEE_SUN4I_DEVBD LICHEE_SUN4I_DEVBD 3931 | ||
979 | movenow MACH_MOVENOW MOVENOW 3932 | ||
980 | golf_u MACH_GOLF_U GOLF_U 3933 | ||
981 | msm7627a_evb MACH_MSM7627A_EVB MSM7627A_EVB 3934 | ||
982 | rambo MACH_RAMBO RAMBO 3935 | ||
983 | golfu MACH_GOLFU GOLFU 3936 | ||
984 | mango310 MACH_MANGO310 MANGO310 3937 | ||
985 | dns343 MACH_DNS343 DNS343 3938 | ||
986 | var_som_om44 MACH_VAR_SOM_OM44 VAR_SOM_OM44 3939 | ||
987 | naon MACH_NAON NAON 3940 | ||
988 | vp4000 MACH_VP4000 VP4000 3941 | ||
989 | impcard MACH_IMPCARD IMPCARD 3942 | ||
990 | smoovcam MACH_SMOOVCAM SMOOVCAM 3943 | ||
991 | cobham3725 MACH_COBHAM3725 COBHAM3725 3944 | ||
992 | cobham3730 MACH_COBHAM3730 COBHAM3730 3945 | ||
993 | cobham3703 MACH_COBHAM3703 COBHAM3703 3946 | ||
994 | quetzal MACH_QUETZAL QUETZAL 3947 | ||
995 | apq8064_cdp MACH_APQ8064_CDP APQ8064_CDP 3948 | ||
996 | apq8064_mtp MACH_APQ8064_MTP APQ8064_MTP 3949 | ||
997 | apq8064_fluid MACH_APQ8064_FLUID APQ8064_FLUID 3950 | ||
998 | apq8064_liquid MACH_APQ8064_LIQUID APQ8064_LIQUID 3951 | ||
999 | mango210 MACH_MANGO210 MANGO210 3952 | ||
1000 | mango100 MACH_MANGO100 MANGO100 3953 | ||
1001 | mango24 MACH_MANGO24 MANGO24 3954 | ||
1002 | mango64 MACH_MANGO64 MANGO64 3955 | ||
1003 | nsa320 MACH_NSA320 NSA320 3956 | ||
1004 | elv_ccu2 MACH_ELV_CCU2 ELV_CCU2 3957 | ||
1005 | triton_x00 MACH_TRITON_X00 TRITON_X00 3958 | ||
1006 | triton_1500_2000 MACH_TRITON_1500_2000 TRITON_1500_2000 3959 | ||
1007 | pogoplugv4 MACH_POGOPLUGV4 POGOPLUGV4 3960 | ||
1008 | venus_cl MACH_VENUS_CL VENUS_CL 3961 | ||
1009 | vulcano_g20 MACH_VULCANO_G20 VULCANO_G20 3962 | ||
1010 | sgs_i9100 MACH_SGS_I9100 SGS_I9100 3963 | ||
1011 | stsv2 MACH_STSV2 STSV2 3964 | ||
1012 | csb1724 MACH_CSB1724 CSB1724 3965 | ||
1013 | omapl138_lcdk MACH_OMAPL138_LCDK OMAPL138_LCDK 3966 | ||
1014 | pvd_mx25 MACH_PVD_MX25 PVD_MX25 3968 | ||
1015 | meson6_skt MACH_MESON6_SKT MESON6_SKT 3969 | ||
1016 | meson6_ref MACH_MESON6_REF MESON6_REF 3970 | ||
1017 | pxm MACH_PXM PXM 3971 | ||
1018 | pogoplugv3 MACH_POGOPLUGV3 POGOPLUGV3 3973 | ||
1019 | mlp89626 MACH_MLP89626 MLP89626 3974 | ||
1020 | iomegahmndce MACH_IOMEGAHMNDCE IOMEGAHMNDCE 3975 | ||
1021 | pogoplugv3pci MACH_POGOPLUGV3PCI POGOPLUGV3PCI 3976 | ||
1022 | bntv250 MACH_BNTV250 BNTV250 3977 | ||
1023 | mx53_qseven MACH_MX53_QSEVEN MX53_QSEVEN 3978 | ||
1024 | gtl_it1100 MACH_GTL_IT1100 GTL_IT1100 3979 | ||
1025 | mx6q_sabresd MACH_MX6Q_SABRESD MX6Q_SABRESD 3980 | ||
1026 | mt4 MACH_MT4 MT4 3981 | 559 | mt4 MACH_MT4 MT4 3981 |
1027 | jumbo_d MACH_JUMBO_D JUMBO_D 3982 | ||
1028 | jumbo_i MACH_JUMBO_I JUMBO_I 3983 | ||
1029 | fs20_dmp MACH_FS20_DMP FS20_DMP 3984 | ||
1030 | dns320 MACH_DNS320 DNS320 3985 | ||
1031 | mx28bacos MACH_MX28BACOS MX28BACOS 3986 | ||
1032 | tl80 MACH_TL80 TL80 3987 | ||
1033 | polatis_nic_1001 MACH_POLATIS_NIC_1001 POLATIS_NIC_1001 3988 | ||
1034 | tely MACH_TELY TELY 3989 | ||
1035 | u8520 MACH_U8520 U8520 3990 | 560 | u8520 MACH_U8520 U8520 3990 |
1036 | manta MACH_MANTA MANTA 3991 | ||
1037 | mpq8064_cdp MACH_MPQ8064_CDP MPQ8064_CDP 3993 | ||
1038 | mpq8064_dtv MACH_MPQ8064_DTV MPQ8064_DTV 3995 | ||
1039 | dm368som MACH_DM368SOM DM368SOM 3996 | ||
1040 | gprisb2 MACH_GPRISB2 GPRISB2 3997 | ||
1041 | chammid MACH_CHAMMID CHAMMID 3998 | ||
1042 | seoul2 MACH_SEOUL2 SEOUL2 3999 | ||
1043 | omap4_nooktablet MACH_OMAP4_NOOKTABLET OMAP4_NOOKTABLET 4000 | ||
1044 | aalto MACH_AALTO AALTO 4001 | ||
1045 | metro MACH_METRO METRO 4002 | ||
1046 | cydm3730 MACH_CYDM3730 CYDM3730 4003 | ||
1047 | tqma53 MACH_TQMA53 TQMA53 4004 | ||
1048 | msm7627a_qrd3 MACH_MSM7627A_QRD3 MSM7627A_QRD3 4005 | ||
1049 | mx28_canby MACH_MX28_CANBY MX28_CANBY 4006 | ||
1050 | tiger MACH_TIGER TIGER 4007 | ||
1051 | pcats_9307_type_a MACH_PCATS_9307_TYPE_A PCATS_9307_TYPE_A 4008 | ||
1052 | pcats_9307_type_o MACH_PCATS_9307_TYPE_O PCATS_9307_TYPE_O 4009 | ||
1053 | pcats_9307_type_r MACH_PCATS_9307_TYPE_R PCATS_9307_TYPE_R 4010 | ||
1054 | streamplug MACH_STREAMPLUG STREAMPLUG 4011 | ||
1055 | icechicken_dev MACH_ICECHICKEN_DEV ICECHICKEN_DEV 4012 | ||
1056 | hedgehog MACH_HEDGEHOG HEDGEHOG 4013 | ||
1057 | yusend_obc MACH_YUSEND_OBC YUSEND_OBC 4014 | ||
1058 | imxninja MACH_IMXNINJA IMXNINJA 4015 | ||
1059 | omap4_jarod MACH_OMAP4_JAROD OMAP4_JAROD 4016 | ||
1060 | eco5_pk MACH_ECO5_PK ECO5_PK 4017 | ||
1061 | qj2440 MACH_QJ2440 QJ2440 4018 | ||
1062 | mx6q_mercury MACH_MX6Q_MERCURY MX6Q_MERCURY 4019 | ||
1063 | cm6810 MACH_CM6810 CM6810 4020 | ||
1064 | omap4_torpedo MACH_OMAP4_TORPEDO OMAP4_TORPEDO 4021 | ||
1065 | nsa310 MACH_NSA310 NSA310 4022 | ||
1066 | tmx536 MACH_TMX536 TMX536 4023 | ||
1067 | ktt20 MACH_KTT20 KTT20 4024 | ||
1068 | dragonix MACH_DRAGONIX DRAGONIX 4025 | ||
1069 | lungching MACH_LUNGCHING LUNGCHING 4026 | ||
1070 | bulogics MACH_BULOGICS BULOGICS 4027 | ||
1071 | mx535_sx MACH_MX535_SX MX535_SX 4028 | ||
1072 | ngui3250 MACH_NGUI3250 NGUI3250 4029 | ||
1073 | salutec_dac MACH_SALUTEC_DAC SALUTEC_DAC 4030 | ||
1074 | loco MACH_LOCO LOCO 4031 | ||
1075 | ctera_plug_usi MACH_CTERA_PLUG_USI CTERA_PLUG_USI 4032 | ||
1076 | scepter MACH_SCEPTER SCEPTER 4033 | ||
1077 | sga MACH_SGA SGA 4034 | ||
1078 | p_81_j5 MACH_P_81_J5 P_81_J5 4035 | ||
1079 | p_81_o4 MACH_P_81_O4 P_81_O4 4036 | ||
1080 | msm8625_surf MACH_MSM8625_SURF MSM8625_SURF 4037 | ||
1081 | carallon_shark MACH_CARALLON_SHARK CARALLON_SHARK 4038 | ||
1082 | ordog MACH_ORDOG ORDOG 4040 | ||
1083 | puente_io MACH_PUENTE_IO PUENTE_IO 4041 | ||
1084 | msm8625_evb MACH_MSM8625_EVB MSM8625_EVB 4042 | ||
1085 | ev_am1707 MACH_EV_AM1707 EV_AM1707 4043 | ||
1086 | ev_am1707e2 MACH_EV_AM1707E2 EV_AM1707E2 4044 | ||
1087 | ev_am3517e2 MACH_EV_AM3517E2 EV_AM3517E2 4045 | ||
1088 | calabria MACH_CALABRIA CALABRIA 4046 | ||
1089 | ev_imx287 MACH_EV_IMX287 EV_IMX287 4047 | ||
1090 | erau MACH_ERAU ERAU 4048 | ||
1091 | sichuan MACH_SICHUAN SICHUAN 4049 | ||
1092 | davinci_da850 MACH_DAVINCI_DA850 DAVINCI_DA850 4051 | ||
1093 | omap138_trunarc MACH_OMAP138_TRUNARC OMAP138_TRUNARC 4052 | ||
1094 | bcm4761 MACH_BCM4761 BCM4761 4053 | ||
1095 | picasso_e2 MACH_PICASSO_E2 PICASSO_E2 4054 | ||
1096 | picasso_mf MACH_PICASSO_MF PICASSO_MF 4055 | ||
1097 | miro MACH_MIRO MIRO 4056 | ||
1098 | at91sam9g20ewon3 MACH_AT91SAM9G20EWON3 AT91SAM9G20EWON3 4057 | ||
1099 | yoyo MACH_YOYO YOYO 4058 | ||
1100 | windjkl MACH_WINDJKL WINDJKL 4059 | ||
1101 | monarudo MACH_MONARUDO MONARUDO 4060 | ||
1102 | batan MACH_BATAN BATAN 4061 | ||
1103 | tadao MACH_TADAO TADAO 4062 | ||
1104 | baso MACH_BASO BASO 4063 | ||
1105 | mahon MACH_MAHON MAHON 4064 | ||
1106 | villec2 MACH_VILLEC2 VILLEC2 4065 | ||
1107 | asi1230 MACH_ASI1230 ASI1230 4066 | ||
1108 | alaska MACH_ALASKA ALASKA 4067 | ||
1109 | swarco_shdsl2 MACH_SWARCO_SHDSL2 SWARCO_SHDSL2 4068 | ||
1110 | oxrtu MACH_OXRTU OXRTU 4069 | ||
1111 | omap5_panda MACH_OMAP5_PANDA OMAP5_PANDA 4070 | ||
1112 | c8000 MACH_C8000 C8000 4072 | ||
1113 | bje_display3_5 MACH_BJE_DISPLAY3_5 BJE_DISPLAY3_5 4073 | ||
1114 | picomod7 MACH_PICOMOD7 PICOMOD7 4074 | ||
1115 | picocom5 MACH_PICOCOM5 PICOCOM5 4075 | ||
1116 | qblissa8 MACH_QBLISSA8 QBLISSA8 4076 | ||
1117 | armstonea8 MACH_ARMSTONEA8 ARMSTONEA8 4077 | ||
1118 | netdcu14 MACH_NETDCU14 NETDCU14 4078 | ||
1119 | at91sam9x5_epiphan MACH_AT91SAM9X5_EPIPHAN AT91SAM9X5_EPIPHAN 4079 | ||
1120 | p2u MACH_P2U P2U 4080 | ||
1121 | doris MACH_DORIS DORIS 4081 | ||
1122 | j49 MACH_J49 J49 4082 | ||
1123 | vdss2e MACH_VDSS2E VDSS2E 4083 | ||
1124 | vc300 MACH_VC300 VC300 4084 | ||
1125 | ns115_pad_test MACH_NS115_PAD_TEST NS115_PAD_TEST 4085 | ||
1126 | ns115_pad_ref MACH_NS115_PAD_REF NS115_PAD_REF 4086 | ||
1127 | ns115_phone_test MACH_NS115_PHONE_TEST NS115_PHONE_TEST 4087 | ||
1128 | ns115_phone_ref MACH_NS115_PHONE_REF NS115_PHONE_REF 4088 | ||
1129 | golfc MACH_GOLFC GOLFC 4089 | ||
1130 | xerox_olympus MACH_XEROX_OLYMPUS XEROX_OLYMPUS 4090 | ||
1131 | mx6sl_arm2 MACH_MX6SL_ARM2 MX6SL_ARM2 4091 | ||
1132 | csb1701_csb1726 MACH_CSB1701_CSB1726 CSB1701_CSB1726 4092 | ||
1133 | at91sam9xeek MACH_AT91SAM9XEEK AT91SAM9XEEK 4093 | ||
1134 | ebv210 MACH_EBV210 EBV210 4094 | ||
1135 | msm7627a_qrd7 MACH_MSM7627A_QRD7 MSM7627A_QRD7 4095 | ||
1136 | svthin MACH_SVTHIN SVTHIN 4096 | ||
1137 | duovero MACH_DUOVERO DUOVERO 4097 | ||
1138 | chupacabra MACH_CHUPACABRA CHUPACABRA 4098 | 561 | chupacabra MACH_CHUPACABRA CHUPACABRA 4098 |
1139 | scorpion MACH_SCORPION SCORPION 4099 | 562 | scorpion MACH_SCORPION SCORPION 4099 |
1140 | davinci_he_hmi10 MACH_DAVINCI_HE_HMI10 DAVINCI_HE_HMI10 4100 | 563 | davinci_he_hmi10 MACH_DAVINCI_HE_HMI10 DAVINCI_HE_HMI10 4100 |
@@ -1157,7 +580,6 @@ tam335x MACH_TAM335X TAM335X 4116 | |||
1157 | grouper MACH_GROUPER GROUPER 4117 | 580 | grouper MACH_GROUPER GROUPER 4117 |
1158 | mpcsa21_9g20 MACH_MPCSA21_9G20 MPCSA21_9G20 4118 | 581 | mpcsa21_9g20 MACH_MPCSA21_9G20 MPCSA21_9G20 4118 |
1159 | m6u_cpu MACH_M6U_CPU M6U_CPU 4119 | 582 | m6u_cpu MACH_M6U_CPU M6U_CPU 4119 |
1160 | davinci_dp10 MACH_DAVINCI_DP10 DAVINCI_DP10 4120 | ||
1161 | ginkgo MACH_GINKGO GINKGO 4121 | 583 | ginkgo MACH_GINKGO GINKGO 4121 |
1162 | cgt_qmx6 MACH_CGT_QMX6 CGT_QMX6 4122 | 584 | cgt_qmx6 MACH_CGT_QMX6 CGT_QMX6 4122 |
1163 | profpga MACH_PROFPGA PROFPGA 4123 | 585 | profpga MACH_PROFPGA PROFPGA 4123 |
@@ -1204,3 +626,384 @@ baileys MACH_BAILEYS BAILEYS 4169 | |||
1204 | familybox MACH_FAMILYBOX FAMILYBOX 4170 | 626 | familybox MACH_FAMILYBOX FAMILYBOX 4170 |
1205 | ensemble_mx35 MACH_ENSEMBLE_MX35 ENSEMBLE_MX35 4171 | 627 | ensemble_mx35 MACH_ENSEMBLE_MX35 ENSEMBLE_MX35 4171 |
1206 | sc_sps_1 MACH_SC_SPS_1 SC_SPS_1 4172 | 628 | sc_sps_1 MACH_SC_SPS_1 SC_SPS_1 4172 |
629 | ucsimply_sam9260 MACH_UCSIMPLY_SAM9260 UCSIMPLY_SAM9260 4173 | ||
630 | unicorn MACH_UNICORN UNICORN 4174 | ||
631 | m9g45a MACH_M9G45A M9G45A 4175 | ||
632 | mtwebif MACH_MTWEBIF MTWEBIF 4176 | ||
633 | playstone MACH_PLAYSTONE PLAYSTONE 4177 | ||
634 | chelsea MACH_CHELSEA CHELSEA 4178 | ||
635 | bayern MACH_BAYERN BAYERN 4179 | ||
636 | mitwo MACH_MITWO MITWO 4180 | ||
637 | mx25_noah MACH_MX25_NOAH MX25_NOAH 4181 | ||
638 | stm_b2020 MACH_STM_B2020 STM_B2020 4182 | ||
639 | annax_src MACH_ANNAX_SRC ANNAX_SRC 4183 | ||
640 | ionics_stratus MACH_IONICS_STRATUS IONICS_STRATUS 4184 | ||
641 | hugo MACH_HUGO HUGO 4185 | ||
642 | em300 MACH_EM300 EM300 4186 | ||
643 | mmp3_qseven MACH_MMP3_QSEVEN MMP3_QSEVEN 4187 | ||
644 | bosphorus2 MACH_BOSPHORUS2 BOSPHORUS2 4188 | ||
645 | tt2200 MACH_TT2200 TT2200 4189 | ||
646 | ocelot3 MACH_OCELOT3 OCELOT3 4190 | ||
647 | tek_cobra MACH_TEK_COBRA TEK_COBRA 4191 | ||
648 | protou MACH_PROTOU PROTOU 4192 | ||
649 | msm8625_evt MACH_MSM8625_EVT MSM8625_EVT 4193 | ||
650 | mx53_sellwood MACH_MX53_SELLWOOD MX53_SELLWOOD 4194 | ||
651 | somiq_am35 MACH_SOMIQ_AM35 SOMIQ_AM35 4195 | ||
652 | somiq_am37 MACH_SOMIQ_AM37 SOMIQ_AM37 4196 | ||
653 | k2_plc_cl MACH_K2_PLC_CL K2_PLC_CL 4197 | ||
654 | tc2 MACH_TC2 TC2 4198 | ||
655 | dulex_j MACH_DULEX_J DULEX_J 4199 | ||
656 | stm_b2044 MACH_STM_B2044 STM_B2044 4200 | ||
657 | deluxe_j MACH_DELUXE_J DELUXE_J 4201 | ||
658 | mango2443 MACH_MANGO2443 MANGO2443 4202 | ||
659 | cp2dcg MACH_CP2DCG CP2DCG 4203 | ||
660 | cp2dtg MACH_CP2DTG CP2DTG 4204 | ||
661 | cp2dug MACH_CP2DUG CP2DUG 4205 | ||
662 | var_som_am33 MACH_VAR_SOM_AM33 VAR_SOM_AM33 4206 | ||
663 | pepper MACH_PEPPER PEPPER 4207 | ||
664 | mango2450 MACH_MANGO2450 MANGO2450 4208 | ||
665 | valente_wx_c9 MACH_VALENTE_WX_C9 VALENTE_WX_C9 4209 | ||
666 | minitv MACH_MINITV MINITV 4210 | ||
667 | u8540 MACH_U8540 U8540 4211 | ||
668 | iv_atlas_i_z7e MACH_IV_ATLAS_I_Z7E IV_ATLAS_I_Z7E 4212 | ||
669 | mach_type_sky MACH_MACH_TYPE_SKY MACH_TYPE_SKY 4214 | ||
670 | bluesky MACH_BLUESKY BLUESKY 4215 | ||
671 | ngrouter MACH_NGROUTER NGROUTER 4216 | ||
672 | mx53_denetim MACH_MX53_DENETIM MX53_DENETIM 4217 | ||
673 | opal MACH_OPAL OPAL 4218 | ||
674 | gnet_us3gref MACH_GNET_US3GREF GNET_US3GREF 4219 | ||
675 | gnet_nc3g MACH_GNET_NC3G GNET_NC3G 4220 | ||
676 | gnet_ge3g MACH_GNET_GE3G GNET_GE3G 4221 | ||
677 | adp2 MACH_ADP2 ADP2 4222 | ||
678 | tqma28 MACH_TQMA28 TQMA28 4223 | ||
679 | kacom3 MACH_KACOM3 KACOM3 4224 | ||
680 | rrhdemo MACH_RRHDEMO RRHDEMO 4225 | ||
681 | protodug MACH_PROTODUG PROTODUG 4226 | ||
682 | lago MACH_LAGO LAGO 4227 | ||
683 | ktt30 MACH_KTT30 KTT30 4228 | ||
684 | ts43xx MACH_TS43XX TS43XX 4229 | ||
685 | mx6q_denso MACH_MX6Q_DENSO MX6Q_DENSO 4230 | ||
686 | comsat_gsmumts8 MACH_COMSAT_GSMUMTS8 COMSAT_GSMUMTS8 4231 | ||
687 | dreamx MACH_DREAMX DREAMX 4232 | ||
688 | thunderstonem MACH_THUNDERSTONEM THUNDERSTONEM 4233 | ||
689 | yoyopad MACH_YOYOPAD YOYOPAD 4234 | ||
690 | yoyopatient MACH_YOYOPATIENT YOYOPATIENT 4235 | ||
691 | a10l MACH_A10L A10L 4236 | ||
692 | mq60 MACH_MQ60 MQ60 4237 | ||
693 | linkstation_lsql MACH_LINKSTATION_LSQL LINKSTATION_LSQL 4238 | ||
694 | am3703gateway MACH_AM3703GATEWAY AM3703GATEWAY 4239 | ||
695 | accipiter MACH_ACCIPITER ACCIPITER 4240 | ||
696 | magnidug MACH_MAGNIDUG MAGNIDUG 4242 | ||
697 | hydra MACH_HYDRA HYDRA 4243 | ||
698 | sun3i MACH_SUN3I SUN3I 4244 | ||
699 | stm_b2078 MACH_STM_B2078 STM_B2078 4245 | ||
700 | at91sam9263deskv2 MACH_AT91SAM9263DESKV2 AT91SAM9263DESKV2 4246 | ||
701 | deluxe_r MACH_DELUXE_R DELUXE_R 4247 | ||
702 | p_98_v MACH_P_98_V P_98_V 4248 | ||
703 | p_98_c MACH_P_98_C P_98_C 4249 | ||
704 | davinci_am18xx_omn MACH_DAVINCI_AM18XX_OMN DAVINCI_AM18XX_OMN 4250 | ||
705 | socfpga_cyclone5 MACH_SOCFPGA_CYCLONE5 SOCFPGA_CYCLONE5 4251 | ||
706 | cabatuin MACH_CABATUIN CABATUIN 4252 | ||
707 | yoyopad_ft MACH_YOYOPAD_FT YOYOPAD_FT 4253 | ||
708 | dan2400evb MACH_DAN2400EVB DAN2400EVB 4254 | ||
709 | dan3400evb MACH_DAN3400EVB DAN3400EVB 4255 | ||
710 | edm_sf_imx6 MACH_EDM_SF_IMX6 EDM_SF_IMX6 4256 | ||
711 | edm_cf_imx6 MACH_EDM_CF_IMX6 EDM_CF_IMX6 4257 | ||
712 | vpos3xx MACH_VPOS3XX VPOS3XX 4258 | ||
713 | vulcano_9x5 MACH_VULCANO_9X5 VULCANO_9X5 4259 | ||
714 | spmp8000 MACH_SPMP8000 SPMP8000 4260 | ||
715 | catalina MACH_CATALINA CATALINA 4261 | ||
716 | rd88f5181l_fe MACH_RD88F5181L_FE RD88F5181L_FE 4262 | ||
717 | mx535_mx MACH_MX535_MX MX535_MX 4263 | ||
718 | armadillo840 MACH_ARMADILLO840 ARMADILLO840 4264 | ||
719 | spc9000baseboard MACH_SPC9000BASEBOARD SPC9000BASEBOARD 4265 | ||
720 | iris MACH_IRIS IRIS 4266 | ||
721 | protodcg MACH_PROTODCG PROTODCG 4267 | ||
722 | palmtree MACH_PALMTREE PALMTREE 4268 | ||
723 | novena MACH_NOVENA NOVENA 4269 | ||
724 | ma_um MACH_MA_UM MA_UM 4270 | ||
725 | ma_am MACH_MA_AM MA_AM 4271 | ||
726 | ems348 MACH_EMS348 EMS348 4272 | ||
727 | cm_fx6 MACH_CM_FX6 CM_FX6 4273 | ||
728 | arndale MACH_ARNDALE ARNDALE 4274 | ||
729 | q5xr5 MACH_Q5XR5 Q5XR5 4275 | ||
730 | willow MACH_WILLOW WILLOW 4276 | ||
731 | omap3621_odyv3 MACH_OMAP3621_ODYV3 OMAP3621_ODYV3 4277 | ||
732 | omapl138_presonus MACH_OMAPL138_PRESONUS OMAPL138_PRESONUS 4278 | ||
733 | dvf99 MACH_DVF99 DVF99 4279 | ||
734 | impression_j MACH_IMPRESSION_J IMPRESSION_J 4280 | ||
735 | qblissa9 MACH_QBLISSA9 QBLISSA9 4281 | ||
736 | robin_heliview10 MACH_ROBIN_HELIVIEW10 ROBIN_HELIVIEW10 4282 | ||
737 | sun7i MACH_SUN7I SUN7I 4283 | ||
738 | mx6q_hdmidongle MACH_MX6Q_HDMIDONGLE MX6Q_HDMIDONGLE 4284 | ||
739 | mx6_sid2 MACH_MX6_SID2 MX6_SID2 4285 | ||
740 | helios_v3 MACH_HELIOS_V3 HELIOS_V3 4286 | ||
741 | helios_v4 MACH_HELIOS_V4 HELIOS_V4 4287 | ||
742 | q7_imx6 MACH_Q7_IMX6 Q7_IMX6 4288 | ||
743 | odroidx MACH_ODROIDX ODROIDX 4289 | ||
744 | robpro MACH_ROBPRO ROBPRO 4290 | ||
745 | research59if_mk1 MACH_RESEARCH59IF_MK1 RESEARCH59IF_MK1 4291 | ||
746 | bobsleigh MACH_BOBSLEIGH BOBSLEIGH 4292 | ||
747 | dcshgwt3 MACH_DCSHGWT3 DCSHGWT3 4293 | ||
748 | gld1018 MACH_GLD1018 GLD1018 4294 | ||
749 | ev10 MACH_EV10 EV10 4295 | ||
750 | nitrogen6x MACH_NITROGEN6X NITROGEN6X 4296 | ||
751 | p_107_bb MACH_P_107_BB P_107_BB 4297 | ||
752 | evita_utl MACH_EVITA_UTL EVITA_UTL 4298 | ||
753 | falconwing MACH_FALCONWING FALCONWING 4299 | ||
754 | dct3 MACH_DCT3 DCT3 4300 | ||
755 | cpx2e_cell MACH_CPX2E_CELL CPX2E_CELL 4301 | ||
756 | amiro MACH_AMIRO AMIRO 4302 | ||
757 | mx6q_brassboard MACH_MX6Q_BRASSBOARD MX6Q_BRASSBOARD 4303 | ||
758 | dalmore MACH_DALMORE DALMORE 4304 | ||
759 | omap3_portal7cp MACH_OMAP3_PORTAL7CP OMAP3_PORTAL7CP 4305 | ||
760 | tegra_pluto MACH_TEGRA_PLUTO TEGRA_PLUTO 4306 | ||
761 | mx6sl_evk MACH_MX6SL_EVK MX6SL_EVK 4307 | ||
762 | m7 MACH_M7 M7 4308 | ||
763 | pxm2 MACH_PXM2 PXM2 4309 | ||
764 | haba_knx_lite MACH_HABA_KNX_LITE HABA_KNX_LITE 4310 | ||
765 | tai MACH_TAI TAI 4311 | ||
766 | prototd MACH_PROTOTD PROTOTD 4312 | ||
767 | dst_tonto MACH_DST_TONTO DST_TONTO 4313 | ||
768 | draco MACH_DRACO DRACO 4314 | ||
769 | dxr2 MACH_DXR2 DXR2 4315 | ||
770 | rut MACH_RUT RUT 4316 | ||
771 | am180x_wsc MACH_AM180X_WSC AM180X_WSC 4317 | ||
772 | deluxe_u MACH_DELUXE_U DELUXE_U 4318 | ||
773 | deluxe_ul MACH_DELUXE_UL DELUXE_UL 4319 | ||
774 | at91sam9260medths MACH_AT91SAM9260MEDTHS AT91SAM9260MEDTHS 4320 | ||
775 | matrix516 MACH_MATRIX516 MATRIX516 4321 | ||
776 | vid401x MACH_VID401X VID401X 4322 | ||
777 | helios_v5 MACH_HELIOS_V5 HELIOS_V5 4323 | ||
778 | playpaq2 MACH_PLAYPAQ2 PLAYPAQ2 4324 | ||
779 | igam MACH_IGAM IGAM 4325 | ||
780 | amico_i MACH_AMICO_I AMICO_I 4326 | ||
781 | amico_e MACH_AMICO_E AMICO_E 4327 | ||
782 | sentient_mm3_ck MACH_SENTIENT_MM3_CK SENTIENT_MM3_CK 4328 | ||
783 | smx6 MACH_SMX6 SMX6 4329 | ||
784 | pango MACH_PANGO PANGO 4330 | ||
785 | ns115_stick MACH_NS115_STICK NS115_STICK 4331 | ||
786 | bctrm3 MACH_BCTRM3 BCTRM3 4332 | ||
787 | doctorws MACH_DOCTORWS DOCTORWS 4333 | ||
788 | m2601 MACH_M2601 M2601 4334 | ||
789 | vgg1111 MACH_VGG1111 VGG1111 4337 | ||
790 | countach MACH_COUNTACH COUNTACH 4338 | ||
791 | visstrim_sm20 MACH_VISSTRIM_SM20 VISSTRIM_SM20 4339 | ||
792 | a639 MACH_A639 A639 4340 | ||
793 | spacemonkey MACH_SPACEMONKEY SPACEMONKEY 4341 | ||
794 | zpdu_stamp MACH_ZPDU_STAMP ZPDU_STAMP 4342 | ||
795 | htc_g7_clone MACH_HTC_G7_CLONE HTC_G7_CLONE 4343 | ||
796 | ft2080_corvus MACH_FT2080_CORVUS FT2080_CORVUS 4344 | ||
797 | fisland MACH_FISLAND FISLAND 4345 | ||
798 | zpdu MACH_ZPDU ZPDU 4346 | ||
799 | urt MACH_URT URT 4347 | ||
800 | conti_ovip MACH_CONTI_OVIP CONTI_OVIP 4348 | ||
801 | omapl138_nagra MACH_OMAPL138_NAGRA OMAPL138_NAGRA 4349 | ||
802 | da850_at3kp1 MACH_DA850_AT3KP1 DA850_AT3KP1 4350 | ||
803 | da850_at3kp2 MACH_DA850_AT3KP2 DA850_AT3KP2 4351 | ||
804 | surma MACH_SURMA SURMA 4352 | ||
805 | stm_b2092 MACH_STM_B2092 STM_B2092 4353 | ||
806 | mx535_ycr MACH_MX535_YCR MX535_YCR 4354 | ||
807 | m7_wl MACH_M7_WL M7_WL 4355 | ||
808 | m7_u MACH_M7_U M7_U 4356 | ||
809 | omap3_stndt_evm MACH_OMAP3_STNDT_EVM OMAP3_STNDT_EVM 4357 | ||
810 | m7_wlv MACH_M7_WLV M7_WLV 4358 | ||
811 | xam3517 MACH_XAM3517 XAM3517 4359 | ||
812 | a220 MACH_A220 A220 4360 | ||
813 | aclima_odie MACH_ACLIMA_ODIE ACLIMA_ODIE 4361 | ||
814 | vibble MACH_VIBBLE VIBBLE 4362 | ||
815 | k2_u MACH_K2_U K2_U 4363 | ||
816 | mx53_egf MACH_MX53_EGF MX53_EGF 4364 | ||
817 | novpek_imx53 MACH_NOVPEK_IMX53 NOVPEK_IMX53 4365 | ||
818 | novpek_imx6x MACH_NOVPEK_IMX6X NOVPEK_IMX6X 4366 | ||
819 | mx25_smartbox MACH_MX25_SMARTBOX MX25_SMARTBOX 4367 | ||
820 | eicg6410 MACH_EICG6410 EICG6410 4368 | ||
821 | picasso_e3 MACH_PICASSO_E3 PICASSO_E3 4369 | ||
822 | motonavigator MACH_MOTONAVIGATOR MOTONAVIGATOR 4370 | ||
823 | varioconnect2 MACH_VARIOCONNECT2 VARIOCONNECT2 4371 | ||
824 | deluxe_tw MACH_DELUXE_TW DELUXE_TW 4372 | ||
825 | kore3 MACH_KORE3 KORE3 4374 | ||
826 | mx6s_drs MACH_MX6S_DRS MX6S_DRS 4375 | ||
827 | cmimx6 MACH_CMIMX6 CMIMX6 4376 | ||
828 | roth MACH_ROTH ROTH 4377 | ||
829 | eq4ux MACH_EQ4UX EQ4UX 4378 | ||
830 | x1plus MACH_X1PLUS X1PLUS 4379 | ||
831 | modimx27 MACH_MODIMX27 MODIMX27 4380 | ||
832 | videon_hduac MACH_VIDEON_HDUAC VIDEON_HDUAC 4381 | ||
833 | blackbird MACH_BLACKBIRD BLACKBIRD 4382 | ||
834 | runmaster MACH_RUNMASTER RUNMASTER 4383 | ||
835 | ceres MACH_CERES CERES 4384 | ||
836 | nad435 MACH_NAD435 NAD435 4385 | ||
837 | ns115_proto_type MACH_NS115_PROTO_TYPE NS115_PROTO_TYPE 4386 | ||
838 | fs20_vcc MACH_FS20_VCC FS20_VCC 4387 | ||
839 | meson6tv_skt MACH_MESON6TV_SKT MESON6TV_SKT 4389 | ||
840 | keystone MACH_KEYSTONE KEYSTONE 4390 | ||
841 | pcm052 MACH_PCM052 PCM052 4391 | ||
842 | qrd_skud_prime MACH_QRD_SKUD_PRIME QRD_SKUD_PRIME 4393 | ||
843 | guf_santaro MACH_GUF_SANTARO GUF_SANTARO 4395 | ||
844 | sheepshead MACH_SHEEPSHEAD SHEEPSHEAD 4396 | ||
845 | mx6_iwg15m_mxm MACH_MX6_IWG15M_MXM MX6_IWG15M_MXM 4397 | ||
846 | mx6_iwg15m_q7 MACH_MX6_IWG15M_Q7 MX6_IWG15M_Q7 4398 | ||
847 | at91sam9263if8mic MACH_AT91SAM9263IF8MIC AT91SAM9263IF8MIC 4399 | ||
848 | marcopolo MACH_MARCOPOLO MARCOPOLO 4401 | ||
849 | mx535_sdcr MACH_MX535_SDCR MX535_SDCR 4402 | ||
850 | mx53_csb2733 MACH_MX53_CSB2733 MX53_CSB2733 4403 | ||
851 | diva MACH_DIVA DIVA 4404 | ||
852 | ncr_7744 MACH_NCR_7744 NCR_7744 4405 | ||
853 | macallan MACH_MACALLAN MACALLAN 4406 | ||
854 | wnr3500 MACH_WNR3500 WNR3500 4407 | ||
855 | pgavrf MACH_PGAVRF PGAVRF 4408 | ||
856 | helios_v6 MACH_HELIOS_V6 HELIOS_V6 4409 | ||
857 | lcct MACH_LCCT LCCT 4410 | ||
858 | csndug MACH_CSNDUG CSNDUG 4411 | ||
859 | wandboard_imx6 MACH_WANDBOARD_IMX6 WANDBOARD_IMX6 4412 | ||
860 | omap4_jet MACH_OMAP4_JET OMAP4_JET 4413 | ||
861 | tegra_roth MACH_TEGRA_ROTH TEGRA_ROTH 4414 | ||
862 | m7dcg MACH_M7DCG M7DCG 4415 | ||
863 | m7dug MACH_M7DUG M7DUG 4416 | ||
864 | m7dtg MACH_M7DTG M7DTG 4417 | ||
865 | ap42x MACH_AP42X AP42X 4418 | ||
866 | var_som_mx6 MACH_VAR_SOM_MX6 VAR_SOM_MX6 4419 | ||
867 | pdlu MACH_PDLU PDLU 4420 | ||
868 | hydrogen MACH_HYDROGEN HYDROGEN 4421 | ||
869 | npa211e MACH_NPA211E NPA211E 4422 | ||
870 | arcadia MACH_ARCADIA ARCADIA 4423 | ||
871 | arcadia_l MACH_ARCADIA_L ARCADIA_L 4424 | ||
872 | msm8930dt MACH_MSM8930DT MSM8930DT 4425 | ||
873 | ktam3874 MACH_KTAM3874 KTAM3874 4426 | ||
874 | cec4 MACH_CEC4 CEC4 4427 | ||
875 | ape6evm MACH_APE6EVM APE6EVM 4428 | ||
876 | tx6 MACH_TX6 TX6 4429 | ||
877 | cfa10037 MACH_CFA10037 CFA10037 4431 | ||
878 | ezp1000 MACH_EZP1000 EZP1000 4433 | ||
879 | wgr826v MACH_WGR826V WGR826V 4434 | ||
880 | exuma MACH_EXUMA EXUMA 4435 | ||
881 | fregate MACH_FREGATE FREGATE 4436 | ||
882 | osirisimx508 MACH_OSIRISIMX508 OSIRISIMX508 4437 | ||
883 | st_exigo MACH_ST_EXIGO ST_EXIGO 4438 | ||
884 | pismo MACH_PISMO PISMO 4439 | ||
885 | atc7 MACH_ATC7 ATC7 4440 | ||
886 | nspireclp MACH_NSPIRECLP NSPIRECLP 4441 | ||
887 | nspiretp MACH_NSPIRETP NSPIRETP 4442 | ||
888 | nspirecx MACH_NSPIRECX NSPIRECX 4443 | ||
889 | maya MACH_MAYA MAYA 4444 | ||
890 | wecct MACH_WECCT WECCT 4445 | ||
891 | m2s MACH_M2S M2S 4446 | ||
892 | msm8625q_evbd MACH_MSM8625Q_EVBD MSM8625Q_EVBD 4447 | ||
893 | tiny210 MACH_TINY210 TINY210 4448 | ||
894 | g3 MACH_G3 G3 4449 | ||
895 | hurricane MACH_HURRICANE HURRICANE 4450 | ||
896 | mx6_pod MACH_MX6_POD MX6_POD 4451 | ||
897 | elondcn MACH_ELONDCN ELONDCN 4452 | ||
898 | cwmx535 MACH_CWMX535 CWMX535 4453 | ||
899 | m7_wlj MACH_M7_WLJ M7_WLJ 4454 | ||
900 | qsp_arm MACH_QSP_ARM QSP_ARM 4455 | ||
901 | msm8625q_skud MACH_MSM8625Q_SKUD MSM8625Q_SKUD 4456 | ||
902 | htcmondrian MACH_HTCMONDRIAN HTCMONDRIAN 4457 | ||
903 | watson_ead MACH_WATSON_EAD WATSON_EAD 4458 | ||
904 | mitwoa MACH_MITWOA MITWOA 4459 | ||
905 | omap3_wolverine MACH_OMAP3_WOLVERINE OMAP3_WOLVERINE 4460 | ||
906 | mapletree MACH_MAPLETREE MAPLETREE 4461 | ||
907 | msm8625_fih_sae MACH_MSM8625_FIH_SAE MSM8625_FIH_SAE 4462 | ||
908 | epc35 MACH_EPC35 EPC35 4463 | ||
909 | smartrtu MACH_SMARTRTU SMARTRTU 4464 | ||
910 | rcm101 MACH_RCM101 RCM101 4465 | ||
911 | amx_imx53_mxx MACH_AMX_IMX53_MXX AMX_IMX53_MXX 4466 | ||
912 | acer_a12 MACH_ACER_A12 ACER_A12 4470 | ||
913 | sbc6x MACH_SBC6X SBC6X 4471 | ||
914 | u2 MACH_U2 U2 4472 | ||
915 | smdk4270 MACH_SMDK4270 SMDK4270 4473 | ||
916 | priscillag MACH_PRISCILLAG PRISCILLAG 4474 | ||
917 | priscillac MACH_PRISCILLAC PRISCILLAC 4475 | ||
918 | priscilla MACH_PRISCILLA PRISCILLA 4476 | ||
919 | innova_shpu_v2 MACH_INNOVA_SHPU_V2 INNOVA_SHPU_V2 4477 | ||
920 | mach_type_dep2410 MACH_MACH_TYPE_DEP2410 MACH_TYPE_DEP2410 4479 | ||
921 | bctre3 MACH_BCTRE3 BCTRE3 4480 | ||
922 | omap_m100 MACH_OMAP_M100 OMAP_M100 4481 | ||
923 | flo MACH_FLO FLO 4482 | ||
924 | nanobone MACH_NANOBONE NANOBONE 4483 | ||
925 | stm_b2105 MACH_STM_B2105 STM_B2105 4484 | ||
926 | omap4_bsc_bap_v3 MACH_OMAP4_BSC_BAP_V3 OMAP4_BSC_BAP_V3 4485 | ||
927 | ss1pam MACH_SS1PAM SS1PAM 4486 | ||
928 | primominiu MACH_PRIMOMINIU PRIMOMINIU 4488 | ||
929 | mrt_35hd_dualnas_e MACH_MRT_35HD_DUALNAS_E MRT_35HD_DUALNAS_E 4489 | ||
930 | kiwi MACH_KIWI KIWI 4490 | ||
931 | hw90496 MACH_HW90496 HW90496 4491 | ||
932 | mep2440 MACH_MEP2440 MEP2440 4492 | ||
933 | colibri_t30 MACH_COLIBRI_T30 COLIBRI_T30 4493 | ||
934 | cwv1 MACH_CWV1 CWV1 4494 | ||
935 | nsa325 MACH_NSA325 NSA325 4495 | ||
936 | dpxmtc MACH_DPXMTC DPXMTC 4497 | ||
937 | tt_stuttgart MACH_TT_STUTTGART TT_STUTTGART 4498 | ||
938 | miranda_apcii MACH_MIRANDA_APCII MIRANDA_APCII 4499 | ||
939 | mx6q_moderox MACH_MX6Q_MODEROX MX6Q_MODEROX 4500 | ||
940 | mudskipper MACH_MUDSKIPPER MUDSKIPPER 4501 | ||
941 | urania MACH_URANIA URANIA 4502 | ||
942 | stm_b2112 MACH_STM_B2112 STM_B2112 4503 | ||
943 | mx6q_ats_phoenix MACH_MX6Q_ATS_PHOENIX MX6Q_ATS_PHOENIX 4505 | ||
944 | stm_b2116 MACH_STM_B2116 STM_B2116 4506 | ||
945 | mythology MACH_MYTHOLOGY MYTHOLOGY 4507 | ||
946 | fc360v1 MACH_FC360V1 FC360V1 4508 | ||
947 | gps_sensor MACH_GPS_SENSOR GPS_SENSOR 4509 | ||
948 | gazelle MACH_GAZELLE GAZELLE 4510 | ||
949 | mpq8064_dma MACH_MPQ8064_DMA MPQ8064_DMA 4511 | ||
950 | wems_asd01 MACH_WEMS_ASD01 WEMS_ASD01 4512 | ||
951 | apalis_t30 MACH_APALIS_T30 APALIS_T30 4513 | ||
952 | armstonea9 MACH_ARMSTONEA9 ARMSTONEA9 4515 | ||
953 | omap_blazetablet MACH_OMAP_BLAZETABLET OMAP_BLAZETABLET 4516 | ||
954 | ar6mxq MACH_AR6MXQ AR6MXQ 4517 | ||
955 | ar6mxs MACH_AR6MXS AR6MXS 4518 | ||
956 | gwventana MACH_GWVENTANA GWVENTANA 4520 | ||
957 | igep0033 MACH_IGEP0033 IGEP0033 4521 | ||
958 | h52c1_concerto MACH_H52C1_CONCERTO H52C1_CONCERTO 4524 | ||
959 | fcmbrd MACH_FCMBRD FCMBRD 4525 | ||
960 | pcaaxs1 MACH_PCAAXS1 PCAAXS1 4526 | ||
961 | ls_orca MACH_LS_ORCA LS_ORCA 4527 | ||
962 | pcm051lb MACH_PCM051LB PCM051LB 4528 | ||
963 | mx6s_lp507_gvci MACH_MX6S_LP507_GVCI MX6S_LP507_GVCI 4529 | ||
964 | dido MACH_DIDO DIDO 4530 | ||
965 | swarco_itc3_9g20 MACH_SWARCO_ITC3_9G20 SWARCO_ITC3_9G20 4531 | ||
966 | robo_roady MACH_ROBO_ROADY ROBO_ROADY 4532 | ||
967 | rskrza1 MACH_RSKRZA1 RSKRZA1 4533 | ||
968 | swarco_sid MACH_SWARCO_SID SWARCO_SID 4534 | ||
969 | mx6_iwg15s_sbc MACH_MX6_IWG15S_SBC MX6_IWG15S_SBC 4535 | ||
970 | mx6q_camaro MACH_MX6Q_CAMARO MX6Q_CAMARO 4536 | ||
971 | hb6mxs MACH_HB6MXS HB6MXS 4537 | ||
972 | lager MACH_LAGER LAGER 4538 | ||
973 | lp8x4x MACH_LP8X4X LP8X4X 4539 | ||
974 | tegratab7 MACH_TEGRATAB7 TEGRATAB7 4540 | ||
975 | andromeda MACH_ANDROMEDA ANDROMEDA 4541 | ||
976 | bootes MACH_BOOTES BOOTES 4542 | ||
977 | nethmi MACH_NETHMI NETHMI 4543 | ||
978 | tegratab MACH_TEGRATAB TEGRATAB 4544 | ||
979 | som5_evb MACH_SOM5_EVB SOM5_EVB 4545 | ||
980 | venaticorum MACH_VENATICORUM VENATICORUM 4546 | ||
981 | stm_b2110 MACH_STM_B2110 STM_B2110 4547 | ||
982 | elux_hathor MACH_ELUX_HATHOR ELUX_HATHOR 4548 | ||
983 | helios_v7 MACH_HELIOS_V7 HELIOS_V7 4549 | ||
984 | xc10v1 MACH_XC10V1 XC10V1 4550 | ||
985 | cp2u MACH_CP2U CP2U 4551 | ||
986 | iap_f MACH_IAP_F IAP_F 4552 | ||
987 | iap_g MACH_IAP_G IAP_G 4553 | ||
988 | aae MACH_AAE AAE 4554 | ||
989 | pegasus MACH_PEGASUS PEGASUS 4555 | ||
990 | cygnus MACH_CYGNUS CYGNUS 4556 | ||
991 | centaurus MACH_CENTAURUS CENTAURUS 4557 | ||
992 | msm8930_qrd8930 MACH_MSM8930_QRD8930 MSM8930_QRD8930 4558 | ||
993 | quby_tim MACH_QUBY_TIM QUBY_TIM 4559 | ||
994 | zedi3250a MACH_ZEDI3250A ZEDI3250A 4560 | ||
995 | grus MACH_GRUS GRUS 4561 | ||
996 | apollo3 MACH_APOLLO3 APOLLO3 4562 | ||
997 | cowon_r7 MACH_COWON_R7 COWON_R7 4563 | ||
998 | tonga3 MACH_TONGA3 TONGA3 4564 | ||
999 | p535 MACH_P535 P535 4565 | ||
1000 | sa3874i MACH_SA3874I SA3874I 4566 | ||
1001 | mx6_navico_com MACH_MX6_NAVICO_COM MX6_NAVICO_COM 4567 | ||
1002 | proxmobil2 MACH_PROXMOBIL2 PROXMOBIL2 4568 | ||
1003 | ubinux1 MACH_UBINUX1 UBINUX1 4569 | ||
1004 | istos MACH_ISTOS ISTOS 4570 | ||
1005 | benvolio4 MACH_BENVOLIO4 BENVOLIO4 4571 | ||
1006 | eco5_bx2 MACH_ECO5_BX2 ECO5_BX2 4572 | ||
1007 | eukrea_cpuimx28sd MACH_EUKREA_CPUIMX28SD EUKREA_CPUIMX28SD 4573 | ||
1008 | domotab MACH_DOMOTAB DOMOTAB 4574 | ||
1009 | pfla03 MACH_PFLA03 PFLA03 4575 | ||