aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/Kconfig
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2011-01-17 10:08:32 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-02-02 16:23:26 -0500
commite399b1a4e1d205bdc816cb550d2064f2eb1ddc4c (patch)
treecf31e0aeafd972a8ea417dca1ff66c1e0315c907 /arch/arm/mm/Kconfig
parent000d9c78eb5cd7f18e3d6a381d66e606bc9b8196 (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/Kconfig47
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
405config CPU_32v6K 405config 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
417config CPU_V7 419config 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
458config 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
456config CPU_32v7 469config CPU_32v7
457 bool 470 bool
458 471
@@ -623,7 +636,7 @@ comment "Processor Features"
623 636
624config ARM_THUMB 637config 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
681config CPU_ENDIAN_BE8 694config 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
748config CPU_BPREDICT_DISABLE 761config 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
768config DMA_CACHE_RWFO 781config 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
823config CACHE_PL310 836config 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
853config ARM_DMA_MEM_BUFFERABLE 866config 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