select CPU_32v3
        select CPU_CACHE_V3
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V3 if MMU
        select CPU_TLB_V3 if MMU
        help
        select CPU_32v3
        select CPU_CACHE_V3
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V3 if MMU
        select CPU_TLB_V3 if MMU
        help
        select CPU_ABRT_LV4T
        select CPU_CACHE_V4
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V4WT if MMU
        select CPU_TLB_V4WT if MMU
        help
        select CPU_ABRT_EV4T
        select CPU_CACHE_V4WT
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V4WB if MMU
        select CPU_TLB_V4WBI if MMU
        help
        select CPU_ABRT_EV4T
        select CPU_CACHE_V4WT
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V4WB if MMU
        select CPU_TLB_V4WBI if MMU
        help
        select CPU_ABRT_EV4T
        select CPU_CACHE_V4WT
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V4WB if MMU
        select CPU_TLB_V4WBI if MMU
        help
        select CPU_32v5
        select CPU_ABRT_EV5TJ
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V4WB if MMU
        select CPU_TLB_V4WBI if MMU
        help
        select CPU_ABRT_EV4T
        select CPU_CACHE_V4WT
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V4WB if MMU
        select CPU_TLB_V4WBI if MMU
        help
        select CPU_ABRT_EV4T
        select CPU_CACHE_V4WT
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V4WB if MMU
        select CPU_TLB_V4WBI if MMU
        depends on n
        select CPU_32v5
        select CPU_ABRT_EV4T
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V4WB if MMU # can probably do better
        select CPU_TLB_V4WBI if MMU
        help
        select CPU_32v5
        select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V4WB if MMU # can probably do better
        select CPU_TLB_V4WBI if MMU
        help
        select CPU_ABRT_EV4
        select CPU_CACHE_V4WB
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_COPY_V4WB if MMU
        select CPU_TLB_V4WB if MMU
        help
        select CPU_ABRT_EV4
        select CPU_CACHE_V4WB
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_TLB_V4WB if MMU
 
 # XScale
        select CPU_32v5
        select CPU_ABRT_EV5T
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_TLB_V4WBI if MMU
 
 # XScale Core Version 3
        select CPU_32v5
        select CPU_ABRT_EV5T
        select CPU_CACHE_VIVT
+       select CPU_CP15_MMU
        select CPU_TLB_V4WBI if MMU
        select IO_36
 
        select CPU_ABRT_EV6
        select CPU_CACHE_V6
        select CPU_CACHE_VIPT
+       select CPU_CP15_MMU
        select CPU_COPY_V6 if MMU
        select CPU_TLB_V6 if MMU
 
 
 endif
 
+config CPU_CP15
+       bool
+       help
+         Processor has the CP15 register.
+
+config CPU_CP15_MMU
+       bool
+       select CPU_CP15
+       help
+         Processor has the CP15 register, which has MMU related registers.
+
+config CPU_CP15_MPU
+       bool
+       select CPU_CP15
+       help
+         Processor has the CP15 register, which has MPU related registers.
+
 #
 # CPU supports 36-bit I/O
 #