diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-01-17 10:08:32 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-02-02 16:23:26 -0500 |
commit | e399b1a4e1d205bdc816cb550d2064f2eb1ddc4c (patch) | |
tree | cf31e0aeafd972a8ea417dca1ff66c1e0315c907 /arch/arm/mm/Kconfig | |
parent | 000d9c78eb5cd7f18e3d6a381d66e606bc9b8196 (diff) |
ARM: v6k: introduce CPU_V6K option
Introduce a CPU_V6K configuration option for platforms to select if they
have a V6K CPU core. This allows us to identify whether we need to
support ARMv6 CPUs without the V6K SMP extensions at build time.
Currently CPU_V6K is just an alias for CPU_V6, and all places which
reference CPU_V6 are replaced by (CPU_V6 || CPU_V6K).
Select CPU_V6K from platforms which are known to be V6K-only.
Acked-by: Tony Lindgren <tony@atomide.com>
Tested-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/Kconfig')
-rw-r--r-- | arch/arm/mm/Kconfig | 47 |
1 files changed, 30 insertions, 17 deletions
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 9d30c6f804b9..559e9330bb18 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -402,16 +402,18 @@ config CPU_V6 | |||
402 | select CPU_TLB_V6 if MMU | 402 | select CPU_TLB_V6 if MMU |
403 | 403 | ||
404 | # ARMv6k | 404 | # ARMv6k |
405 | config CPU_32v6K | 405 | config CPU_V6K |
406 | bool "Support ARM V6K processor extensions" if !SMP | 406 | bool "Support ARM V6K processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB || MACH_REALVIEW_PBX || ARCH_DOVE |
407 | depends on CPU_V6 || CPU_V7 | 407 | select CPU_32v6 |
408 | default y if SMP && !(ARCH_MX3 || ARCH_OMAP2) | 408 | select CPU_32v6K if !ARCH_OMAP2 |
409 | help | 409 | select CPU_ABRT_EV6 |
410 | Say Y here if your ARMv6 processor supports the 'K' extension. | 410 | select CPU_PABRT_V6 |
411 | This enables the kernel to use some instructions not present | 411 | select CPU_CACHE_V6 |
412 | on previous processors, and as such a kernel build with this | 412 | select CPU_CACHE_VIPT |
413 | enabled will not boot on processors with do not support these | 413 | select CPU_CP15_MMU |
414 | instructions. | 414 | select CPU_HAS_ASID if MMU |
415 | select CPU_COPY_V6 if MMU | ||
416 | select CPU_TLB_V6 if MMU | ||
415 | 417 | ||
416 | # ARMv7 | 418 | # ARMv7 |
417 | config CPU_V7 | 419 | config CPU_V7 |
@@ -453,6 +455,17 @@ config CPU_32v6 | |||
453 | bool | 455 | bool |
454 | select TLS_REG_EMUL if !CPU_32v6K && !MMU | 456 | select TLS_REG_EMUL if !CPU_32v6K && !MMU |
455 | 457 | ||
458 | config CPU_32v6K | ||
459 | bool "Support ARM V6K processor extensions" if !SMP | ||
460 | depends on CPU_V6 || CPU_V6K || CPU_V7 | ||
461 | default y if SMP && !(ARCH_MX3 || ARCH_OMAP2) | ||
462 | help | ||
463 | Say Y here if your ARMv6 processor supports the 'K' extension. | ||
464 | This enables the kernel to use some instructions not present | ||
465 | on previous processors, and as such a kernel build with this | ||
466 | enabled will not boot on processors with do not support these | ||
467 | instructions. | ||
468 | |||
456 | config CPU_32v7 | 469 | config CPU_32v7 |
457 | bool | 470 | bool |
458 | 471 | ||
@@ -623,7 +636,7 @@ comment "Processor Features" | |||
623 | 636 | ||
624 | config ARM_THUMB | 637 | config ARM_THUMB |
625 | bool "Support Thumb user binaries" | 638 | bool "Support Thumb user binaries" |
626 | depends on CPU_ARM720T || CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_V6 || CPU_V7 || CPU_FEROCEON | 639 | depends on CPU_ARM720T || CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_V6 || CPU_V6K || CPU_V7 || CPU_FEROCEON |
627 | default y | 640 | default y |
628 | help | 641 | help |
629 | Say Y if you want to include kernel support for running user space | 642 | Say Y if you want to include kernel support for running user space |
@@ -681,7 +694,7 @@ config CPU_BIG_ENDIAN | |||
681 | config CPU_ENDIAN_BE8 | 694 | config CPU_ENDIAN_BE8 |
682 | bool | 695 | bool |
683 | depends on CPU_BIG_ENDIAN | 696 | depends on CPU_BIG_ENDIAN |
684 | default CPU_V6 || CPU_V7 | 697 | default CPU_V6 || CPU_V6K || CPU_V7 |
685 | help | 698 | help |
686 | Support for the BE-8 (big-endian) mode on ARMv6 and ARMv7 processors. | 699 | Support for the BE-8 (big-endian) mode on ARMv6 and ARMv7 processors. |
687 | 700 | ||
@@ -747,7 +760,7 @@ config CPU_CACHE_ROUND_ROBIN | |||
747 | 760 | ||
748 | config CPU_BPREDICT_DISABLE | 761 | config CPU_BPREDICT_DISABLE |
749 | bool "Disable branch prediction" | 762 | bool "Disable branch prediction" |
750 | depends on CPU_ARM1020 || CPU_V6 || CPU_MOHAWK || CPU_XSC3 || CPU_V7 || CPU_FA526 | 763 | depends on CPU_ARM1020 || CPU_V6 || CPU_V6K || CPU_MOHAWK || CPU_XSC3 || CPU_V7 || CPU_FA526 |
751 | help | 764 | help |
752 | Say Y here to disable branch prediction. If unsure, say N. | 765 | Say Y here to disable branch prediction. If unsure, say N. |
753 | 766 | ||
@@ -767,7 +780,7 @@ config NEEDS_SYSCALL_FOR_CMPXCHG | |||
767 | 780 | ||
768 | config DMA_CACHE_RWFO | 781 | config DMA_CACHE_RWFO |
769 | bool "Enable read/write for ownership DMA cache maintenance" | 782 | bool "Enable read/write for ownership DMA cache maintenance" |
770 | depends on CPU_V6 && SMP | 783 | depends on (CPU_V6 || CPU_V6K) && SMP |
771 | default y | 784 | default y |
772 | help | 785 | help |
773 | The Snoop Control Unit on ARM11MPCore does not detect the | 786 | The Snoop Control Unit on ARM11MPCore does not detect the |
@@ -823,7 +836,7 @@ config CACHE_L2X0 | |||
823 | config CACHE_PL310 | 836 | config CACHE_PL310 |
824 | bool | 837 | bool |
825 | depends on CACHE_L2X0 | 838 | depends on CACHE_L2X0 |
826 | default y if CPU_V7 && !CPU_V6 | 839 | default y if CPU_V7 && !(CPU_V6 || CPU_V6K) |
827 | help | 840 | help |
828 | This option enables optimisations for the PL310 cache | 841 | This option enables optimisations for the PL310 cache |
829 | controller. | 842 | controller. |
@@ -851,10 +864,10 @@ config ARM_L1_CACHE_SHIFT | |||
851 | default 5 | 864 | default 5 |
852 | 865 | ||
853 | config ARM_DMA_MEM_BUFFERABLE | 866 | config ARM_DMA_MEM_BUFFERABLE |
854 | bool "Use non-cacheable memory for DMA" if CPU_V6 && !CPU_V7 | 867 | bool "Use non-cacheable memory for DMA" if (CPU_V6 || CPU_V6K) && !CPU_V7 |
855 | depends on !(MACH_REALVIEW_PB1176 || REALVIEW_EB_ARM11MP || \ | 868 | depends on !(MACH_REALVIEW_PB1176 || REALVIEW_EB_ARM11MP || \ |
856 | MACH_REALVIEW_PB11MP) | 869 | MACH_REALVIEW_PB11MP) |
857 | default y if CPU_V6 || CPU_V7 | 870 | default y if CPU_V6 || CPU_V6K || CPU_V7 |
858 | help | 871 | help |
859 | Historically, the kernel has used strongly ordered mappings to | 872 | Historically, the kernel has used strongly ordered mappings to |
860 | provide DMA coherent memory. With the advent of ARMv7, mapping | 873 | provide DMA coherent memory. With the advent of ARMv7, mapping |