diff options
author | David Brown <davidb@codeaurora.org> | 2011-03-17 01:13:16 -0400 |
---|---|---|
committer | David Brown <davidb@codeaurora.org> | 2011-03-17 01:13:16 -0400 |
commit | 92c260f755c42337c550d8ac1f8ccd1b32bffb20 (patch) | |
tree | 6d04fefc1adeecabfb2b00c201e0db78fa2b5529 /arch/arm/Kconfig | |
parent | 8e76a80960bf06c245160a484d5a363ca6b520bb (diff) | |
parent | 05e34754518b6a90d5c392790c032575fab12d66 (diff) |
Merge remote branch 'rmk/for-linus' into for-linus
* rmk/for-linus: (1557 commits)
ARM: 6806/1: irq: introduce entry and exit functions for chained handlers
ARM: 6781/1: Thumb-2: Work around buggy Thumb-2 short branch relocations in gas
ARM: 6747/1: P2V: Thumb2 support
ARM: 6798/1: aout-core: zero thread debug registers in a.out core dump
ARM: 6796/1: Footbridge: Fix I/O mappings for NOMMU mode
ARM: 6784/1: errata: no automatic Store Buffer drain on Cortex-A9
ARM: 6772/1: errata: possible fault MMU translations following an ASID switch
ARM: 6776/1: mach-ux500: activate fix for errata 753970
ARM: 6794/1: SPEAr: Append UL to device address macros.
ARM: 6793/1: SPEAr: Remove unused *_SIZE macros from spear*.h files
ARM: 6792/1: SPEAr: Replace SIZE macro's with SZ_4K macros
ARM: 6791/1: SPEAr3xx: Declare device structures after shirq code
ARM: 6790/1: SPEAr: Clock Framework: Rename usbd clock and align apb_clk entry
ARM: 6789/1: SPEAr3xx: Rename sdio to sdhci
ARM: 6788/1: SPEAr: Include mach/hardware.h instead of mach/spear.h
ARM: 6787/1: SPEAr: Reorder #includes in .h & .c files.
ARM: 6681/1: SPEAr: add debugfs support to clk API
ARM: 6703/1: SPEAr: update clk API support
ARM: 6679/1: SPEAr: make clk API functions more generic
ARM: 6737/1: SPEAr: formalized timer support
...
Conflicts:
arch/arm/mach-msm/board-msm7x27.c
arch/arm/mach-msm/board-msm7x30.c
arch/arm/mach-msm/board-qsd8x50.c
arch/arm/mach-msm/board-sapphire.c
arch/arm/mach-msm/include/mach/memory.h
Diffstat (limited to 'arch/arm/Kconfig')
-rw-r--r-- | arch/arm/Kconfig | 161 |
1 files changed, 145 insertions, 16 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4d266509b451..169db59f6bcb 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -7,7 +7,7 @@ config ARM | |||
7 | select HAVE_MEMBLOCK | 7 | select HAVE_MEMBLOCK |
8 | select RTC_LIB | 8 | select RTC_LIB |
9 | select SYS_SUPPORTS_APM_EMULATION | 9 | select SYS_SUPPORTS_APM_EMULATION |
10 | select GENERIC_ATOMIC64 if (!CPU_32v6K || !AEABI) | 10 | select GENERIC_ATOMIC64 if (CPU_V6 || !CPU_32v6K || !AEABI) |
11 | select HAVE_OPROFILE if (HAVE_PERF_EVENTS) | 11 | select HAVE_OPROFILE if (HAVE_PERF_EVENTS) |
12 | select HAVE_ARCH_KGDB | 12 | select HAVE_ARCH_KGDB |
13 | select HAVE_KPROBES if (!XIP_KERNEL && !THUMB2_KERNEL) | 13 | select HAVE_KPROBES if (!XIP_KERNEL && !THUMB2_KERNEL) |
@@ -24,7 +24,7 @@ config ARM | |||
24 | select HAVE_PERF_EVENTS | 24 | select HAVE_PERF_EVENTS |
25 | select PERF_USE_VMALLOC | 25 | select PERF_USE_VMALLOC |
26 | select HAVE_REGS_AND_STACK_ACCESS_API | 26 | select HAVE_REGS_AND_STACK_ACCESS_API |
27 | select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V7)) | 27 | select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)) |
28 | select HAVE_C_RECORDMCOUNT | 28 | select HAVE_C_RECORDMCOUNT |
29 | select HAVE_GENERIC_HARDIRQS | 29 | select HAVE_GENERIC_HARDIRQS |
30 | select HAVE_SPARSE_IRQ | 30 | select HAVE_SPARSE_IRQ |
@@ -63,6 +63,10 @@ config GENERIC_CLOCKEVENTS_BROADCAST | |||
63 | depends on GENERIC_CLOCKEVENTS | 63 | depends on GENERIC_CLOCKEVENTS |
64 | default y if SMP | 64 | default y if SMP |
65 | 65 | ||
66 | config KTIME_SCALAR | ||
67 | bool | ||
68 | default y | ||
69 | |||
66 | config HAVE_TCM | 70 | config HAVE_TCM |
67 | bool | 71 | bool |
68 | select GENERIC_ALLOCATOR | 72 | select GENERIC_ALLOCATOR |
@@ -178,11 +182,6 @@ config FIQ | |||
178 | config ARCH_MTD_XIP | 182 | config ARCH_MTD_XIP |
179 | bool | 183 | bool |
180 | 184 | ||
181 | config ARM_L1_CACHE_SHIFT_6 | ||
182 | bool | ||
183 | help | ||
184 | Setting ARM L1 cache line size to 64 Bytes. | ||
185 | |||
186 | config VECTORS_BASE | 185 | config VECTORS_BASE |
187 | hex | 186 | hex |
188 | default 0xffff0000 if MMU || CPU_HIGH_VECTOR | 187 | default 0xffff0000 if MMU || CPU_HIGH_VECTOR |
@@ -191,6 +190,22 @@ config VECTORS_BASE | |||
191 | help | 190 | help |
192 | The base address of exception vectors. | 191 | The base address of exception vectors. |
193 | 192 | ||
193 | config ARM_PATCH_PHYS_VIRT | ||
194 | bool "Patch physical to virtual translations at runtime (EXPERIMENTAL)" | ||
195 | depends on EXPERIMENTAL | ||
196 | depends on !XIP_KERNEL && MMU | ||
197 | depends on !ARCH_REALVIEW || !SPARSEMEM | ||
198 | help | ||
199 | Patch phys-to-virt translation functions at runtime according to | ||
200 | the position of the kernel in system memory. | ||
201 | |||
202 | This can only be used with non-XIP with MMU kernels where | ||
203 | the base of physical memory is at a 16MB boundary. | ||
204 | |||
205 | config ARM_PATCH_PHYS_VIRT_16BIT | ||
206 | def_bool y | ||
207 | depends on ARM_PATCH_PHYS_VIRT && ARCH_MSM | ||
208 | |||
194 | source "init/Kconfig" | 209 | source "init/Kconfig" |
195 | 210 | ||
196 | source "kernel/Kconfig.freezer" | 211 | source "kernel/Kconfig.freezer" |
@@ -346,7 +361,7 @@ config ARCH_FOOTBRIDGE | |||
346 | bool "FootBridge" | 361 | bool "FootBridge" |
347 | select CPU_SA110 | 362 | select CPU_SA110 |
348 | select FOOTBRIDGE | 363 | select FOOTBRIDGE |
349 | select ARCH_USES_GETTIMEOFFSET | 364 | select GENERIC_CLOCKEVENTS |
350 | help | 365 | help |
351 | Support for systems based on the DC21285 companion chip | 366 | Support for systems based on the DC21285 companion chip |
352 | ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. | 367 | ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. |
@@ -457,6 +472,7 @@ config ARCH_IXP4XX | |||
457 | 472 | ||
458 | config ARCH_DOVE | 473 | config ARCH_DOVE |
459 | bool "Marvell Dove" | 474 | bool "Marvell Dove" |
475 | select CPU_V6K | ||
460 | select PCI | 476 | select PCI |
461 | select ARCH_REQUIRE_GPIOLIB | 477 | select ARCH_REQUIRE_GPIOLIB |
462 | select GENERIC_CLOCKEVENTS | 478 | select GENERIC_CLOCKEVENTS |
@@ -876,6 +892,16 @@ config PLAT_SPEAR | |||
876 | help | 892 | help |
877 | Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx). | 893 | Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx). |
878 | 894 | ||
895 | config ARCH_VT8500 | ||
896 | bool "VIA/WonderMedia 85xx" | ||
897 | select CPU_ARM926T | ||
898 | select GENERIC_GPIO | ||
899 | select ARCH_HAS_CPUFREQ | ||
900 | select GENERIC_CLOCKEVENTS | ||
901 | select ARCH_REQUIRE_GPIOLIB | ||
902 | select HAVE_PWM | ||
903 | help | ||
904 | Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip. | ||
879 | endchoice | 905 | endchoice |
880 | 906 | ||
881 | # | 907 | # |
@@ -1008,6 +1034,8 @@ source "arch/arm/mach-versatile/Kconfig" | |||
1008 | 1034 | ||
1009 | source "arch/arm/mach-vexpress/Kconfig" | 1035 | source "arch/arm/mach-vexpress/Kconfig" |
1010 | 1036 | ||
1037 | source "arch/arm/mach-vt8500/Kconfig" | ||
1038 | |||
1011 | source "arch/arm/mach-w90x900/Kconfig" | 1039 | source "arch/arm/mach-w90x900/Kconfig" |
1012 | 1040 | ||
1013 | # Definitions to make life easier | 1041 | # Definitions to make life easier |
@@ -1049,7 +1077,7 @@ config XSCALE_PMU | |||
1049 | default y | 1077 | default y |
1050 | 1078 | ||
1051 | config CPU_HAS_PMU | 1079 | config CPU_HAS_PMU |
1052 | depends on (CPU_V6 || CPU_V7 || XSCALE_PMU) && \ | 1080 | depends on (CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && \ |
1053 | (!ARCH_OMAP3 || OMAP3_EMU) | 1081 | (!ARCH_OMAP3 || OMAP3_EMU) |
1054 | default y | 1082 | default y |
1055 | bool | 1083 | bool |
@@ -1065,7 +1093,7 @@ endif | |||
1065 | 1093 | ||
1066 | config ARM_ERRATA_411920 | 1094 | config ARM_ERRATA_411920 |
1067 | bool "ARM errata: Invalidation of the Instruction Cache operation can fail" | 1095 | bool "ARM errata: Invalidation of the Instruction Cache operation can fail" |
1068 | depends on CPU_V6 | 1096 | depends on CPU_V6 || CPU_V6K |
1069 | help | 1097 | help |
1070 | Invalidation of the Instruction Cache operation can | 1098 | Invalidation of the Instruction Cache operation can |
1071 | fail. This erratum is present in 1136 (before r1p4), 1156 and 1176. | 1099 | fail. This erratum is present in 1136 (before r1p4), 1156 and 1176. |
@@ -1141,7 +1169,7 @@ config ARM_ERRATA_742231 | |||
1141 | 1169 | ||
1142 | config PL310_ERRATA_588369 | 1170 | config PL310_ERRATA_588369 |
1143 | bool "Clean & Invalidate maintenance operations do not invalidate clean lines" | 1171 | bool "Clean & Invalidate maintenance operations do not invalidate clean lines" |
1144 | depends on CACHE_L2X0 && ARCH_OMAP4 | 1172 | depends on CACHE_L2X0 |
1145 | help | 1173 | help |
1146 | The PL310 L2 cache controller implements three types of Clean & | 1174 | The PL310 L2 cache controller implements three types of Clean & |
1147 | Invalidate maintenance operations: by Physical Address | 1175 | Invalidate maintenance operations: by Physical Address |
@@ -1150,8 +1178,7 @@ config PL310_ERRATA_588369 | |||
1150 | clean operation followed immediately by an invalidate operation, | 1178 | clean operation followed immediately by an invalidate operation, |
1151 | both performing to the same memory location. This functionality | 1179 | both performing to the same memory location. This functionality |
1152 | is not correctly implemented in PL310 as clean lines are not | 1180 | is not correctly implemented in PL310 as clean lines are not |
1153 | invalidated as a result of these operations. Note that this errata | 1181 | invalidated as a result of these operations. |
1154 | uses Texas Instrument's secure monitor api. | ||
1155 | 1182 | ||
1156 | config ARM_ERRATA_720789 | 1183 | config ARM_ERRATA_720789 |
1157 | bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID" | 1184 | bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID" |
@@ -1165,6 +1192,17 @@ config ARM_ERRATA_720789 | |||
1165 | tables. The workaround changes the TLB flushing routines to invalidate | 1192 | tables. The workaround changes the TLB flushing routines to invalidate |
1166 | entries regardless of the ASID. | 1193 | entries regardless of the ASID. |
1167 | 1194 | ||
1195 | config PL310_ERRATA_727915 | ||
1196 | bool "Background Clean & Invalidate by Way operation can cause data corruption" | ||
1197 | depends on CACHE_L2X0 | ||
1198 | help | ||
1199 | PL310 implements the Clean & Invalidate by Way L2 cache maintenance | ||
1200 | operation (offset 0x7FC). This operation runs in background so that | ||
1201 | PL310 can handle normal accesses while it is in progress. Under very | ||
1202 | rare circumstances, due to this erratum, write data can be lost when | ||
1203 | PL310 treats a cacheable write transaction during a Clean & | ||
1204 | Invalidate by Way operation. | ||
1205 | |||
1168 | config ARM_ERRATA_743622 | 1206 | config ARM_ERRATA_743622 |
1169 | bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption" | 1207 | bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption" |
1170 | depends on CPU_V7 | 1208 | depends on CPU_V7 |
@@ -1178,6 +1216,53 @@ config ARM_ERRATA_743622 | |||
1178 | visible impact on the overall performance or power consumption of the | 1216 | visible impact on the overall performance or power consumption of the |
1179 | processor. | 1217 | processor. |
1180 | 1218 | ||
1219 | config ARM_ERRATA_751472 | ||
1220 | bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation" | ||
1221 | depends on CPU_V7 && SMP | ||
1222 | help | ||
1223 | This option enables the workaround for the 751472 Cortex-A9 (prior | ||
1224 | to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the | ||
1225 | completion of a following broadcasted operation if the second | ||
1226 | operation is received by a CPU before the ICIALLUIS has completed, | ||
1227 | potentially leading to corrupted entries in the cache or TLB. | ||
1228 | |||
1229 | config ARM_ERRATA_753970 | ||
1230 | bool "ARM errata: cache sync operation may be faulty" | ||
1231 | depends on CACHE_PL310 | ||
1232 | help | ||
1233 | This option enables the workaround for the 753970 PL310 (r3p0) erratum. | ||
1234 | |||
1235 | Under some condition the effect of cache sync operation on | ||
1236 | the store buffer still remains when the operation completes. | ||
1237 | This means that the store buffer is always asked to drain and | ||
1238 | this prevents it from merging any further writes. The workaround | ||
1239 | is to replace the normal offset of cache sync operation (0x730) | ||
1240 | by another offset targeting an unmapped PL310 register 0x740. | ||
1241 | This has the same effect as the cache sync operation: store buffer | ||
1242 | drain and waiting for all buffers empty. | ||
1243 | |||
1244 | config ARM_ERRATA_754322 | ||
1245 | bool "ARM errata: possible faulty MMU translations following an ASID switch" | ||
1246 | depends on CPU_V7 | ||
1247 | help | ||
1248 | This option enables the workaround for the 754322 Cortex-A9 (r2p*, | ||
1249 | r3p*) erratum. A speculative memory access may cause a page table walk | ||
1250 | which starts prior to an ASID switch but completes afterwards. This | ||
1251 | can populate the micro-TLB with a stale entry which may be hit with | ||
1252 | the new ASID. This workaround places two dsb instructions in the mm | ||
1253 | switching code so that no page table walks can cross the ASID switch. | ||
1254 | |||
1255 | config ARM_ERRATA_754327 | ||
1256 | bool "ARM errata: no automatic Store Buffer drain" | ||
1257 | depends on CPU_V7 && SMP | ||
1258 | help | ||
1259 | This option enables the workaround for the 754327 Cortex-A9 (prior to | ||
1260 | r2p0) erratum. The Store Buffer does not have any automatic draining | ||
1261 | mechanism and therefore a livelock may occur if an external agent | ||
1262 | continuously polls a memory location waiting to observe an update. | ||
1263 | This workaround defines cpu_relax() as smp_mb(), preventing correctly | ||
1264 | written polling loops from denying visibility of updates to memory. | ||
1265 | |||
1181 | endmenu | 1266 | endmenu |
1182 | 1267 | ||
1183 | source "arch/arm/common/Kconfig" | 1268 | source "arch/arm/common/Kconfig" |
@@ -1251,6 +1336,7 @@ source "kernel/time/Kconfig" | |||
1251 | config SMP | 1336 | config SMP |
1252 | bool "Symmetric Multi-Processing (EXPERIMENTAL)" | 1337 | bool "Symmetric Multi-Processing (EXPERIMENTAL)" |
1253 | depends on EXPERIMENTAL | 1338 | depends on EXPERIMENTAL |
1339 | depends on CPU_V6K || CPU_V7 | ||
1254 | depends on GENERIC_CLOCKEVENTS | 1340 | depends on GENERIC_CLOCKEVENTS |
1255 | depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \ | 1341 | depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \ |
1256 | MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \ | 1342 | MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \ |
@@ -1362,7 +1448,7 @@ config HZ | |||
1362 | 1448 | ||
1363 | config THUMB2_KERNEL | 1449 | config THUMB2_KERNEL |
1364 | bool "Compile the kernel in Thumb-2 mode (EXPERIMENTAL)" | 1450 | bool "Compile the kernel in Thumb-2 mode (EXPERIMENTAL)" |
1365 | depends on CPU_V7 && !CPU_V6 && EXPERIMENTAL | 1451 | depends on CPU_V7 && !CPU_V6 && !CPU_V6K && EXPERIMENTAL |
1366 | select AEABI | 1452 | select AEABI |
1367 | select ARM_ASM_UNIFIED | 1453 | select ARM_ASM_UNIFIED |
1368 | help | 1454 | help |
@@ -1372,6 +1458,37 @@ config THUMB2_KERNEL | |||
1372 | 1458 | ||
1373 | If unsure, say N. | 1459 | If unsure, say N. |
1374 | 1460 | ||
1461 | config THUMB2_AVOID_R_ARM_THM_JUMP11 | ||
1462 | bool "Work around buggy Thumb-2 short branch relocations in gas" | ||
1463 | depends on THUMB2_KERNEL && MODULES | ||
1464 | default y | ||
1465 | help | ||
1466 | Various binutils versions can resolve Thumb-2 branches to | ||
1467 | locally-defined, preemptible global symbols as short-range "b.n" | ||
1468 | branch instructions. | ||
1469 | |||
1470 | This is a problem, because there's no guarantee the final | ||
1471 | destination of the symbol, or any candidate locations for a | ||
1472 | trampoline, are within range of the branch. For this reason, the | ||
1473 | kernel does not support fixing up the R_ARM_THM_JUMP11 (102) | ||
1474 | relocation in modules at all, and it makes little sense to add | ||
1475 | support. | ||
1476 | |||
1477 | The symptom is that the kernel fails with an "unsupported | ||
1478 | relocation" error when loading some modules. | ||
1479 | |||
1480 | Until fixed tools are available, passing | ||
1481 | -fno-optimize-sibling-calls to gcc should prevent gcc generating | ||
1482 | code which hits this problem, at the cost of a bit of extra runtime | ||
1483 | stack usage in some cases. | ||
1484 | |||
1485 | The problem is described in more detail at: | ||
1486 | https://bugs.launchpad.net/binutils-linaro/+bug/725126 | ||
1487 | |||
1488 | Only Thumb-2 kernels are affected. | ||
1489 | |||
1490 | Unless you are sure your tools don't have this problem, say Y. | ||
1491 | |||
1375 | config ARM_ASM_UNIFIED | 1492 | config ARM_ASM_UNIFIED |
1376 | bool | 1493 | bool |
1377 | 1494 | ||
@@ -1392,7 +1509,7 @@ config AEABI | |||
1392 | 1509 | ||
1393 | config OABI_COMPAT | 1510 | config OABI_COMPAT |
1394 | bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" | 1511 | bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" |
1395 | depends on AEABI && EXPERIMENTAL | 1512 | depends on AEABI && EXPERIMENTAL && !THUMB2_KERNEL |
1396 | default y | 1513 | default y |
1397 | help | 1514 | help |
1398 | This option preserves the old syscall interface along with the | 1515 | This option preserves the old syscall interface along with the |
@@ -1620,6 +1737,18 @@ config ZBOOT_ROM | |||
1620 | Say Y here if you intend to execute your compressed kernel image | 1737 | Say Y here if you intend to execute your compressed kernel image |
1621 | (zImage) directly from ROM or flash. If unsure, say N. | 1738 | (zImage) directly from ROM or flash. If unsure, say N. |
1622 | 1739 | ||
1740 | config ZBOOT_ROM_MMCIF | ||
1741 | bool "Include MMCIF loader in zImage (EXPERIMENTAL)" | ||
1742 | depends on ZBOOT_ROM && ARCH_SH7372 && EXPERIMENTAL | ||
1743 | help | ||
1744 | Say Y here to include experimental MMCIF loading code in the | ||
1745 | ROM-able zImage. With this enabled it is possible to write the | ||
1746 | the ROM-able zImage kernel image to an MMC card and boot the | ||
1747 | kernel straight from the reset vector. At reset the processor | ||
1748 | Mask ROM will load the first part of the the ROM-able zImage | ||
1749 | which in turn loads the rest the kernel image to RAM using the | ||
1750 | MMCIF hardware block. | ||
1751 | |||
1623 | config CMDLINE | 1752 | config CMDLINE |
1624 | string "Default kernel command string" | 1753 | string "Default kernel command string" |
1625 | default "" | 1754 | default "" |
@@ -1853,7 +1982,7 @@ config FPE_FASTFPE | |||
1853 | 1982 | ||
1854 | config VFP | 1983 | config VFP |
1855 | bool "VFP-format floating point maths" | 1984 | bool "VFP-format floating point maths" |
1856 | depends on CPU_V6 || CPU_ARM926T || CPU_V7 || CPU_FEROCEON | 1985 | depends on CPU_V6 || CPU_V6K || CPU_ARM926T || CPU_V7 || CPU_FEROCEON |
1857 | help | 1986 | help |
1858 | Say Y to include VFP support code in the kernel. This is needed | 1987 | Say Y to include VFP support code in the kernel. This is needed |
1859 | if your hardware includes a VFP unit. | 1988 | if your hardware includes a VFP unit. |