11da177e4SLinus Torvaldscomment "Processor Type" 21da177e4SLinus Torvalds 31da177e4SLinus Torvaldsconfig CPU_32 41da177e4SLinus Torvalds bool 51da177e4SLinus Torvalds default y 61da177e4SLinus Torvalds 71da177e4SLinus Torvalds# Select CPU types depending on the architecture selected. This selects 81da177e4SLinus Torvalds# which CPUs we support in the kernel image, and the compiler instruction 91da177e4SLinus Torvalds# optimiser behaviour. 101da177e4SLinus Torvalds 111da177e4SLinus Torvalds# ARM610 121da177e4SLinus Torvaldsconfig CPU_ARM610 13c750815eSRussell King bool "Support ARM610 processor" if ARCH_RPC 141da177e4SLinus Torvalds select CPU_32v3 151da177e4SLinus Torvalds select CPU_CACHE_V3 161da177e4SLinus Torvalds select CPU_CACHE_VIVT 17fefdaa06SHyok S. Choi select CPU_CP15_MMU 18f9c21a6eSHyok S. Choi select CPU_COPY_V3 if MMU 19f9c21a6eSHyok S. Choi select CPU_TLB_V3 if MMU 2048d7927bSPaul Brook select CPU_PABRT_NOIFAR 211da177e4SLinus Torvalds help 221da177e4SLinus Torvalds The ARM610 is the successor to the ARM3 processor 231da177e4SLinus Torvalds and was produced by VLSI Technology Inc. 241da177e4SLinus Torvalds 251da177e4SLinus Torvalds Say Y if you want support for the ARM610 processor. 261da177e4SLinus Torvalds Otherwise, say N. 271da177e4SLinus Torvalds 2807e0da78SHyok S. Choi# ARM7TDMI 2907e0da78SHyok S. Choiconfig CPU_ARM7TDMI 3007e0da78SHyok S. Choi bool "Support ARM7TDMI processor" 316b237a35SRussell King depends on !MMU 3207e0da78SHyok S. Choi select CPU_32v4T 3307e0da78SHyok S. Choi select CPU_ABRT_LV4T 344a1fd556SCatalin Marinas select CPU_PABRT_NOIFAR 3507e0da78SHyok S. Choi select CPU_CACHE_V4 3607e0da78SHyok S. Choi help 3707e0da78SHyok S. Choi A 32-bit RISC microprocessor based on the ARM7 processor core 3807e0da78SHyok S. Choi which has no memory control unit and cache. 3907e0da78SHyok S. Choi 4007e0da78SHyok S. Choi Say Y if you want support for the ARM7TDMI processor. 4107e0da78SHyok S. Choi Otherwise, say N. 4207e0da78SHyok S. Choi 431da177e4SLinus Torvalds# ARM710 441da177e4SLinus Torvaldsconfig CPU_ARM710 45c750815eSRussell King bool "Support ARM710 processor" if ARCH_RPC 461da177e4SLinus Torvalds select CPU_32v3 471da177e4SLinus Torvalds select CPU_CACHE_V3 481da177e4SLinus Torvalds select CPU_CACHE_VIVT 49fefdaa06SHyok S. Choi select CPU_CP15_MMU 50f9c21a6eSHyok S. Choi select CPU_COPY_V3 if MMU 51f9c21a6eSHyok S. Choi select CPU_TLB_V3 if MMU 5248d7927bSPaul Brook select CPU_PABRT_NOIFAR 531da177e4SLinus Torvalds help 541da177e4SLinus Torvalds A 32-bit RISC microprocessor based on the ARM7 processor core 551da177e4SLinus Torvalds designed by Advanced RISC Machines Ltd. The ARM710 is the 561da177e4SLinus Torvalds successor to the ARM610 processor. It was released in 571da177e4SLinus Torvalds July 1994 by VLSI Technology Inc. 581da177e4SLinus Torvalds 591da177e4SLinus Torvalds Say Y if you want support for the ARM710 processor. 601da177e4SLinus Torvalds Otherwise, say N. 611da177e4SLinus Torvalds 621da177e4SLinus Torvalds# ARM720T 631da177e4SLinus Torvaldsconfig CPU_ARM720T 64c750815eSRussell King bool "Support ARM720T processor" if ARCH_INTEGRATOR 65260e98edSLennert Buytenhek select CPU_32v4T 661da177e4SLinus Torvalds select CPU_ABRT_LV4T 6748d7927bSPaul Brook select CPU_PABRT_NOIFAR 681da177e4SLinus Torvalds select CPU_CACHE_V4 691da177e4SLinus Torvalds select CPU_CACHE_VIVT 70fefdaa06SHyok S. Choi select CPU_CP15_MMU 71f9c21a6eSHyok S. Choi select CPU_COPY_V4WT if MMU 72f9c21a6eSHyok S. Choi select CPU_TLB_V4WT if MMU 731da177e4SLinus Torvalds help 741da177e4SLinus Torvalds A 32-bit RISC processor with 8kByte Cache, Write Buffer and 751da177e4SLinus Torvalds MMU built around an ARM7TDMI core. 761da177e4SLinus Torvalds 771da177e4SLinus Torvalds Say Y if you want support for the ARM720T processor. 781da177e4SLinus Torvalds Otherwise, say N. 791da177e4SLinus Torvalds 80b731c311SHyok S. Choi# ARM740T 81b731c311SHyok S. Choiconfig CPU_ARM740T 82b731c311SHyok S. Choi bool "Support ARM740T processor" if ARCH_INTEGRATOR 836b237a35SRussell King depends on !MMU 84b731c311SHyok S. Choi select CPU_32v4T 85b731c311SHyok S. Choi select CPU_ABRT_LV4T 864a1fd556SCatalin Marinas select CPU_PABRT_NOIFAR 87b731c311SHyok S. Choi select CPU_CACHE_V3 # although the core is v4t 88b731c311SHyok S. Choi select CPU_CP15_MPU 89b731c311SHyok S. Choi help 90b731c311SHyok S. Choi A 32-bit RISC processor with 8KB cache or 4KB variants, 91b731c311SHyok S. Choi write buffer and MPU(Protection Unit) built around 92b731c311SHyok S. Choi an ARM7TDMI core. 93b731c311SHyok S. Choi 94b731c311SHyok S. Choi Say Y if you want support for the ARM740T processor. 95b731c311SHyok S. Choi Otherwise, say N. 96b731c311SHyok S. Choi 9743f5f014SHyok S. Choi# ARM9TDMI 9843f5f014SHyok S. Choiconfig CPU_ARM9TDMI 9943f5f014SHyok S. Choi bool "Support ARM9TDMI processor" 1006b237a35SRussell King depends on !MMU 10143f5f014SHyok S. Choi select CPU_32v4T 1020f45d7f3SHyok S. Choi select CPU_ABRT_NOMMU 1034a1fd556SCatalin Marinas select CPU_PABRT_NOIFAR 10443f5f014SHyok S. Choi select CPU_CACHE_V4 10543f5f014SHyok S. Choi help 10643f5f014SHyok S. Choi A 32-bit RISC microprocessor based on the ARM9 processor core 10743f5f014SHyok S. Choi which has no memory control unit and cache. 10843f5f014SHyok S. Choi 10943f5f014SHyok S. Choi Say Y if you want support for the ARM9TDMI processor. 11043f5f014SHyok S. Choi Otherwise, say N. 11143f5f014SHyok S. Choi 1121da177e4SLinus Torvalds# ARM920T 1131da177e4SLinus Torvaldsconfig CPU_ARM920T 114c750815eSRussell King bool "Support ARM920T processor" if ARCH_INTEGRATOR 115260e98edSLennert Buytenhek select CPU_32v4T 1161da177e4SLinus Torvalds select CPU_ABRT_EV4T 11748d7927bSPaul Brook select CPU_PABRT_NOIFAR 1181da177e4SLinus Torvalds select CPU_CACHE_V4WT 1191da177e4SLinus Torvalds select CPU_CACHE_VIVT 120fefdaa06SHyok S. Choi select CPU_CP15_MMU 121f9c21a6eSHyok S. Choi select CPU_COPY_V4WB if MMU 122f9c21a6eSHyok S. Choi select CPU_TLB_V4WBI if MMU 1231da177e4SLinus Torvalds help 1241da177e4SLinus Torvalds The ARM920T is licensed to be produced by numerous vendors, 1251da177e4SLinus Torvalds and is used in the Maverick EP9312 and the Samsung S3C2410. 1261da177e4SLinus Torvalds 1271da177e4SLinus Torvalds More information on the Maverick EP9312 at 1281da177e4SLinus Torvalds <http://linuxdevices.com/products/PD2382866068.html>. 1291da177e4SLinus Torvalds 1301da177e4SLinus Torvalds Say Y if you want support for the ARM920T processor. 1311da177e4SLinus Torvalds Otherwise, say N. 1321da177e4SLinus Torvalds 1331da177e4SLinus Torvalds# ARM922T 1341da177e4SLinus Torvaldsconfig CPU_ARM922T 1351da177e4SLinus Torvalds bool "Support ARM922T processor" if ARCH_INTEGRATOR 136260e98edSLennert Buytenhek select CPU_32v4T 1371da177e4SLinus Torvalds select CPU_ABRT_EV4T 13848d7927bSPaul Brook select CPU_PABRT_NOIFAR 1391da177e4SLinus Torvalds select CPU_CACHE_V4WT 1401da177e4SLinus Torvalds select CPU_CACHE_VIVT 141fefdaa06SHyok S. Choi select CPU_CP15_MMU 142f9c21a6eSHyok S. Choi select CPU_COPY_V4WB if MMU 143f9c21a6eSHyok S. Choi select CPU_TLB_V4WBI if MMU 1441da177e4SLinus Torvalds help 1451da177e4SLinus Torvalds The ARM922T is a version of the ARM920T, but with smaller 1461da177e4SLinus Torvalds instruction and data caches. It is used in Altera's 147c53c9cf6SAndrew Victor Excalibur XA device family and Micrel's KS8695 Centaur. 1481da177e4SLinus Torvalds 1491da177e4SLinus Torvalds Say Y if you want support for the ARM922T processor. 1501da177e4SLinus Torvalds Otherwise, say N. 1511da177e4SLinus Torvalds 1521da177e4SLinus Torvalds# ARM925T 1531da177e4SLinus Torvaldsconfig CPU_ARM925T 154b288f75fSTony Lindgren bool "Support ARM925T processor" if ARCH_OMAP1 155260e98edSLennert Buytenhek select CPU_32v4T 1561da177e4SLinus Torvalds select CPU_ABRT_EV4T 15748d7927bSPaul Brook select CPU_PABRT_NOIFAR 1581da177e4SLinus Torvalds select CPU_CACHE_V4WT 1591da177e4SLinus Torvalds select CPU_CACHE_VIVT 160fefdaa06SHyok S. Choi select CPU_CP15_MMU 161f9c21a6eSHyok S. Choi select CPU_COPY_V4WB if MMU 162f9c21a6eSHyok S. Choi select CPU_TLB_V4WBI if MMU 1631da177e4SLinus Torvalds help 1641da177e4SLinus Torvalds The ARM925T is a mix between the ARM920T and ARM926T, but with 1651da177e4SLinus Torvalds different instruction and data caches. It is used in TI's OMAP 1661da177e4SLinus Torvalds device family. 1671da177e4SLinus Torvalds 1681da177e4SLinus Torvalds Say Y if you want support for the ARM925T processor. 1691da177e4SLinus Torvalds Otherwise, say N. 1701da177e4SLinus Torvalds 1711da177e4SLinus Torvalds# ARM926T 1721da177e4SLinus Torvaldsconfig CPU_ARM926T 173c750815eSRussell King bool "Support ARM926T processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB 1741da177e4SLinus Torvalds select CPU_32v5 1751da177e4SLinus Torvalds select CPU_ABRT_EV5TJ 17648d7927bSPaul Brook select CPU_PABRT_NOIFAR 1771da177e4SLinus Torvalds select CPU_CACHE_VIVT 178fefdaa06SHyok S. Choi select CPU_CP15_MMU 179f9c21a6eSHyok S. Choi select CPU_COPY_V4WB if MMU 180f9c21a6eSHyok S. Choi select CPU_TLB_V4WBI if MMU 1811da177e4SLinus Torvalds help 1821da177e4SLinus Torvalds This is a variant of the ARM920. It has slightly different 1831da177e4SLinus Torvalds instruction sequences for cache and TLB operations. Curiously, 1841da177e4SLinus Torvalds there is no documentation on it at the ARM corporate website. 1851da177e4SLinus Torvalds 1861da177e4SLinus Torvalds Say Y if you want support for the ARM926T processor. 1871da177e4SLinus Torvalds Otherwise, say N. 1881da177e4SLinus Torvalds 189d60674ebSHyok S. Choi# ARM940T 190d60674ebSHyok S. Choiconfig CPU_ARM940T 191d60674ebSHyok S. Choi bool "Support ARM940T processor" if ARCH_INTEGRATOR 1926b237a35SRussell King depends on !MMU 193d60674ebSHyok S. Choi select CPU_32v4T 1940f45d7f3SHyok S. Choi select CPU_ABRT_NOMMU 1954a1fd556SCatalin Marinas select CPU_PABRT_NOIFAR 196d60674ebSHyok S. Choi select CPU_CACHE_VIVT 197d60674ebSHyok S. Choi select CPU_CP15_MPU 198d60674ebSHyok S. Choi help 199d60674ebSHyok S. Choi ARM940T is a member of the ARM9TDMI family of general- 2003cb2fcccSMatt LaPlante purpose microprocessors with MPU and separate 4KB 201d60674ebSHyok S. Choi instruction and 4KB data cases, each with a 4-word line 202d60674ebSHyok S. Choi length. 203d60674ebSHyok S. Choi 204d60674ebSHyok S. Choi Say Y if you want support for the ARM940T processor. 205d60674ebSHyok S. Choi Otherwise, say N. 206d60674ebSHyok S. Choi 207f37f46ebSHyok S. Choi# ARM946E-S 208f37f46ebSHyok S. Choiconfig CPU_ARM946E 209f37f46ebSHyok S. Choi bool "Support ARM946E-S processor" if ARCH_INTEGRATOR 2106b237a35SRussell King depends on !MMU 211f37f46ebSHyok S. Choi select CPU_32v5 2120f45d7f3SHyok S. Choi select CPU_ABRT_NOMMU 2134a1fd556SCatalin Marinas select CPU_PABRT_NOIFAR 214f37f46ebSHyok S. Choi select CPU_CACHE_VIVT 215f37f46ebSHyok S. Choi select CPU_CP15_MPU 216f37f46ebSHyok S. Choi help 217f37f46ebSHyok S. Choi ARM946E-S is a member of the ARM9E-S family of high- 218f37f46ebSHyok S. Choi performance, 32-bit system-on-chip processor solutions. 219f37f46ebSHyok S. Choi The TCM and ARMv5TE 32-bit instruction set is supported. 220f37f46ebSHyok S. Choi 221f37f46ebSHyok S. Choi Say Y if you want support for the ARM946E-S processor. 222f37f46ebSHyok S. Choi Otherwise, say N. 223f37f46ebSHyok S. Choi 2241da177e4SLinus Torvalds# ARM1020 - needs validating 2251da177e4SLinus Torvaldsconfig CPU_ARM1020 226c750815eSRussell King bool "Support ARM1020T (rev 0) processor" if ARCH_INTEGRATOR 2271da177e4SLinus Torvalds select CPU_32v5 2281da177e4SLinus Torvalds select CPU_ABRT_EV4T 22948d7927bSPaul Brook select CPU_PABRT_NOIFAR 2301da177e4SLinus Torvalds select CPU_CACHE_V4WT 2311da177e4SLinus Torvalds select CPU_CACHE_VIVT 232fefdaa06SHyok S. Choi select CPU_CP15_MMU 233f9c21a6eSHyok S. Choi select CPU_COPY_V4WB if MMU 234f9c21a6eSHyok S. Choi select CPU_TLB_V4WBI if MMU 2351da177e4SLinus Torvalds help 2361da177e4SLinus Torvalds The ARM1020 is the 32K cached version of the ARM10 processor, 2371da177e4SLinus Torvalds with an addition of a floating-point unit. 2381da177e4SLinus Torvalds 2391da177e4SLinus Torvalds Say Y if you want support for the ARM1020 processor. 2401da177e4SLinus Torvalds Otherwise, say N. 2411da177e4SLinus Torvalds 2421da177e4SLinus Torvalds# ARM1020E - needs validating 2431da177e4SLinus Torvaldsconfig CPU_ARM1020E 244c750815eSRussell King bool "Support ARM1020E processor" if ARCH_INTEGRATOR 2451da177e4SLinus Torvalds select CPU_32v5 2461da177e4SLinus Torvalds select CPU_ABRT_EV4T 24748d7927bSPaul Brook select CPU_PABRT_NOIFAR 2481da177e4SLinus Torvalds select CPU_CACHE_V4WT 2491da177e4SLinus Torvalds select CPU_CACHE_VIVT 250fefdaa06SHyok S. Choi select CPU_CP15_MMU 251f9c21a6eSHyok S. Choi select CPU_COPY_V4WB if MMU 252f9c21a6eSHyok S. Choi select CPU_TLB_V4WBI if MMU 2531da177e4SLinus Torvalds depends on n 2541da177e4SLinus Torvalds 2551da177e4SLinus Torvalds# ARM1022E 2561da177e4SLinus Torvaldsconfig CPU_ARM1022 257c750815eSRussell King bool "Support ARM1022E processor" if ARCH_INTEGRATOR 2581da177e4SLinus Torvalds select CPU_32v5 2591da177e4SLinus Torvalds select CPU_ABRT_EV4T 26048d7927bSPaul Brook select CPU_PABRT_NOIFAR 2611da177e4SLinus Torvalds select CPU_CACHE_VIVT 262fefdaa06SHyok S. Choi select CPU_CP15_MMU 263f9c21a6eSHyok S. Choi select CPU_COPY_V4WB if MMU # can probably do better 264f9c21a6eSHyok S. Choi select CPU_TLB_V4WBI if MMU 2651da177e4SLinus Torvalds help 2661da177e4SLinus Torvalds The ARM1022E is an implementation of the ARMv5TE architecture 2671da177e4SLinus Torvalds based upon the ARM10 integer core with a 16KiB L1 Harvard cache, 2681da177e4SLinus Torvalds embedded trace macrocell, and a floating-point unit. 2691da177e4SLinus Torvalds 2701da177e4SLinus Torvalds Say Y if you want support for the ARM1022E processor. 2711da177e4SLinus Torvalds Otherwise, say N. 2721da177e4SLinus Torvalds 2731da177e4SLinus Torvalds# ARM1026EJ-S 2741da177e4SLinus Torvaldsconfig CPU_ARM1026 275c750815eSRussell King bool "Support ARM1026EJ-S processor" if ARCH_INTEGRATOR 2761da177e4SLinus Torvalds select CPU_32v5 2771da177e4SLinus Torvalds select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10 27848d7927bSPaul Brook select CPU_PABRT_NOIFAR 2791da177e4SLinus Torvalds select CPU_CACHE_VIVT 280fefdaa06SHyok S. Choi select CPU_CP15_MMU 281f9c21a6eSHyok S. Choi select CPU_COPY_V4WB if MMU # can probably do better 282f9c21a6eSHyok S. Choi select CPU_TLB_V4WBI if MMU 2831da177e4SLinus Torvalds help 2841da177e4SLinus Torvalds The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture 2851da177e4SLinus Torvalds based upon the ARM10 integer core. 2861da177e4SLinus Torvalds 2871da177e4SLinus Torvalds Say Y if you want support for the ARM1026EJ-S processor. 2881da177e4SLinus Torvalds Otherwise, say N. 2891da177e4SLinus Torvalds 2901da177e4SLinus Torvalds# SA110 2911da177e4SLinus Torvaldsconfig CPU_SA110 292c750815eSRussell King bool "Support StrongARM(R) SA-110 processor" if ARCH_RPC 2931da177e4SLinus Torvalds select CPU_32v3 if ARCH_RPC 2941da177e4SLinus Torvalds select CPU_32v4 if !ARCH_RPC 2951da177e4SLinus Torvalds select CPU_ABRT_EV4 29648d7927bSPaul Brook select CPU_PABRT_NOIFAR 2971da177e4SLinus Torvalds select CPU_CACHE_V4WB 2981da177e4SLinus Torvalds select CPU_CACHE_VIVT 299fefdaa06SHyok S. Choi select CPU_CP15_MMU 300f9c21a6eSHyok S. Choi select CPU_COPY_V4WB if MMU 301f9c21a6eSHyok S. Choi select CPU_TLB_V4WB if MMU 3021da177e4SLinus Torvalds help 3031da177e4SLinus Torvalds The Intel StrongARM(R) SA-110 is a 32-bit microprocessor and 3041da177e4SLinus Torvalds is available at five speeds ranging from 100 MHz to 233 MHz. 3051da177e4SLinus Torvalds More information is available at 3061da177e4SLinus Torvalds <http://developer.intel.com/design/strong/sa110.htm>. 3071da177e4SLinus Torvalds 3081da177e4SLinus Torvalds Say Y if you want support for the SA-110 processor. 3091da177e4SLinus Torvalds Otherwise, say N. 3101da177e4SLinus Torvalds 3111da177e4SLinus Torvalds# SA1100 3121da177e4SLinus Torvaldsconfig CPU_SA1100 3131da177e4SLinus Torvalds bool 3141da177e4SLinus Torvalds select CPU_32v4 3151da177e4SLinus Torvalds select CPU_ABRT_EV4 31648d7927bSPaul Brook select CPU_PABRT_NOIFAR 3171da177e4SLinus Torvalds select CPU_CACHE_V4WB 3181da177e4SLinus Torvalds select CPU_CACHE_VIVT 319fefdaa06SHyok S. Choi select CPU_CP15_MMU 320f9c21a6eSHyok S. Choi select CPU_TLB_V4WB if MMU 3211da177e4SLinus Torvalds 3221da177e4SLinus Torvalds# XScale 3231da177e4SLinus Torvaldsconfig CPU_XSCALE 3241da177e4SLinus Torvalds bool 3251da177e4SLinus Torvalds select CPU_32v5 3261da177e4SLinus Torvalds select CPU_ABRT_EV5T 32748d7927bSPaul Brook select CPU_PABRT_NOIFAR 3281da177e4SLinus Torvalds select CPU_CACHE_VIVT 329fefdaa06SHyok S. Choi select CPU_CP15_MMU 330f9c21a6eSHyok S. Choi select CPU_TLB_V4WBI if MMU 3311da177e4SLinus Torvalds 33223bdf86aSLennert Buytenhek# XScale Core Version 3 33323bdf86aSLennert Buytenhekconfig CPU_XSC3 33423bdf86aSLennert Buytenhek bool 33523bdf86aSLennert Buytenhek select CPU_32v5 33623bdf86aSLennert Buytenhek select CPU_ABRT_EV5T 3374a1fd556SCatalin Marinas select CPU_PABRT_NOIFAR 33823bdf86aSLennert Buytenhek select CPU_CACHE_VIVT 339fefdaa06SHyok S. Choi select CPU_CP15_MMU 340f9c21a6eSHyok S. Choi select CPU_TLB_V4WBI if MMU 34123bdf86aSLennert Buytenhek select IO_36 34223bdf86aSLennert Buytenhek 343e50d6409SAssaf Hoffman# Feroceon 344e50d6409SAssaf Hoffmanconfig CPU_FEROCEON 345e50d6409SAssaf Hoffman bool 346e50d6409SAssaf Hoffman select CPU_32v5 347e50d6409SAssaf Hoffman select CPU_ABRT_EV5T 34848d7927bSPaul Brook select CPU_PABRT_NOIFAR 349e50d6409SAssaf Hoffman select CPU_CACHE_VIVT 350e50d6409SAssaf Hoffman select CPU_CP15_MMU 3510ed15071SLennert Buytenhek select CPU_COPY_FEROCEON if MMU 35299c6dc11SLennert Buytenhek select CPU_TLB_FEROCEON if MMU 353e50d6409SAssaf Hoffman 354d910a0aaSTzachi Perelsteinconfig CPU_FEROCEON_OLD_ID 355d910a0aaSTzachi Perelstein bool "Accept early Feroceon cores with an ARM926 ID" 356d910a0aaSTzachi Perelstein depends on CPU_FEROCEON && !CPU_ARM926T 357d910a0aaSTzachi Perelstein default y 358d910a0aaSTzachi Perelstein help 359d910a0aaSTzachi Perelstein This enables the usage of some old Feroceon cores 360d910a0aaSTzachi Perelstein for which the CPU ID is equal to the ARM926 ID. 361d910a0aaSTzachi Perelstein Relevant for Feroceon-1850 and early Feroceon-2850. 362d910a0aaSTzachi Perelstein 3631da177e4SLinus Torvalds# ARMv6 3641da177e4SLinus Torvaldsconfig CPU_V6 365c750815eSRussell King bool "Support ARM V6 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB 3661da177e4SLinus Torvalds select CPU_32v6 3671da177e4SLinus Torvalds select CPU_ABRT_EV6 36848d7927bSPaul Brook select CPU_PABRT_NOIFAR 3691da177e4SLinus Torvalds select CPU_CACHE_V6 3701da177e4SLinus Torvalds select CPU_CACHE_VIPT 371fefdaa06SHyok S. Choi select CPU_CP15_MMU 3727b4c965aSCatalin Marinas select CPU_HAS_ASID if MMU 373f9c21a6eSHyok S. Choi select CPU_COPY_V6 if MMU 374f9c21a6eSHyok S. Choi select CPU_TLB_V6 if MMU 3751da177e4SLinus Torvalds 3764a5f79e7SRussell King# ARMv6k 3774a5f79e7SRussell Kingconfig CPU_32v6K 3784a5f79e7SRussell King bool "Support ARM V6K processor extensions" if !SMP 3794a5f79e7SRussell King depends on CPU_V6 38052c543f9SQuinn Jensen default y if SMP && !ARCH_MX3 3814a5f79e7SRussell King help 3824a5f79e7SRussell King Say Y here if your ARMv6 processor supports the 'K' extension. 3834a5f79e7SRussell King This enables the kernel to use some instructions not present 3844a5f79e7SRussell King on previous processors, and as such a kernel build with this 3854a5f79e7SRussell King enabled will not boot on processors with do not support these 3864a5f79e7SRussell King instructions. 3874a5f79e7SRussell King 38823688e99SCatalin Marinas# ARMv7 38923688e99SCatalin Marinasconfig CPU_V7 390c750815eSRussell King bool "Support ARM V7 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB 39123688e99SCatalin Marinas select CPU_32v6K 39223688e99SCatalin Marinas select CPU_32v7 39323688e99SCatalin Marinas select CPU_ABRT_EV7 39448d7927bSPaul Brook select CPU_PABRT_IFAR 39523688e99SCatalin Marinas select CPU_CACHE_V7 39623688e99SCatalin Marinas select CPU_CACHE_VIPT 39723688e99SCatalin Marinas select CPU_CP15_MMU 3982eb8c82bSCatalin Marinas select CPU_HAS_ASID if MMU 39923688e99SCatalin Marinas select CPU_COPY_V6 if MMU 4002ccdd1e7SCatalin Marinas select CPU_TLB_V7 if MMU 40123688e99SCatalin Marinas 4021da177e4SLinus Torvalds# Figure out what processor architecture version we should be using. 4031da177e4SLinus Torvalds# This defines the compiler instruction set which depends on the machine type. 4041da177e4SLinus Torvaldsconfig CPU_32v3 4051da177e4SLinus Torvalds bool 40660b6cf68SRussell King select TLS_REG_EMUL if SMP || !MMU 40748fa14f7SRussell King select NEEDS_SYSCALL_FOR_CMPXCHG if SMP 4081da177e4SLinus Torvalds 4091da177e4SLinus Torvaldsconfig CPU_32v4 4101da177e4SLinus Torvalds bool 41160b6cf68SRussell King select TLS_REG_EMUL if SMP || !MMU 41248fa14f7SRussell King select NEEDS_SYSCALL_FOR_CMPXCHG if SMP 4131da177e4SLinus Torvalds 414260e98edSLennert Buytenhekconfig CPU_32v4T 415260e98edSLennert Buytenhek bool 416260e98edSLennert Buytenhek select TLS_REG_EMUL if SMP || !MMU 417260e98edSLennert Buytenhek select NEEDS_SYSCALL_FOR_CMPXCHG if SMP 418260e98edSLennert Buytenhek 4191da177e4SLinus Torvaldsconfig CPU_32v5 4201da177e4SLinus Torvalds bool 42160b6cf68SRussell King select TLS_REG_EMUL if SMP || !MMU 42248fa14f7SRussell King select NEEDS_SYSCALL_FOR_CMPXCHG if SMP 4231da177e4SLinus Torvalds 4241da177e4SLinus Torvaldsconfig CPU_32v6 4251da177e4SLinus Torvalds bool 426367afaf8SCatalin Marinas select TLS_REG_EMUL if !CPU_32v6K && !MMU 4271da177e4SLinus Torvalds 42823688e99SCatalin Marinasconfig CPU_32v7 42923688e99SCatalin Marinas bool 43023688e99SCatalin Marinas 4311da177e4SLinus Torvalds# The abort model 4320f45d7f3SHyok S. Choiconfig CPU_ABRT_NOMMU 4330f45d7f3SHyok S. Choi bool 4340f45d7f3SHyok S. Choi 4351da177e4SLinus Torvaldsconfig CPU_ABRT_EV4 4361da177e4SLinus Torvalds bool 4371da177e4SLinus Torvalds 4381da177e4SLinus Torvaldsconfig CPU_ABRT_EV4T 4391da177e4SLinus Torvalds bool 4401da177e4SLinus Torvalds 4411da177e4SLinus Torvaldsconfig CPU_ABRT_LV4T 4421da177e4SLinus Torvalds bool 4431da177e4SLinus Torvalds 4441da177e4SLinus Torvaldsconfig CPU_ABRT_EV5T 4451da177e4SLinus Torvalds bool 4461da177e4SLinus Torvalds 4471da177e4SLinus Torvaldsconfig CPU_ABRT_EV5TJ 4481da177e4SLinus Torvalds bool 4491da177e4SLinus Torvalds 4501da177e4SLinus Torvaldsconfig CPU_ABRT_EV6 4511da177e4SLinus Torvalds bool 4521da177e4SLinus Torvalds 45323688e99SCatalin Marinasconfig CPU_ABRT_EV7 45423688e99SCatalin Marinas bool 45523688e99SCatalin Marinas 45648d7927bSPaul Brookconfig CPU_PABRT_IFAR 45748d7927bSPaul Brook bool 45848d7927bSPaul Brook 45948d7927bSPaul Brookconfig CPU_PABRT_NOIFAR 46048d7927bSPaul Brook bool 46148d7927bSPaul Brook 4621da177e4SLinus Torvalds# The cache model 4631da177e4SLinus Torvaldsconfig CPU_CACHE_V3 4641da177e4SLinus Torvalds bool 4651da177e4SLinus Torvalds 4661da177e4SLinus Torvaldsconfig CPU_CACHE_V4 4671da177e4SLinus Torvalds bool 4681da177e4SLinus Torvalds 4691da177e4SLinus Torvaldsconfig CPU_CACHE_V4WT 4701da177e4SLinus Torvalds bool 4711da177e4SLinus Torvalds 4721da177e4SLinus Torvaldsconfig CPU_CACHE_V4WB 4731da177e4SLinus Torvalds bool 4741da177e4SLinus Torvalds 4751da177e4SLinus Torvaldsconfig CPU_CACHE_V6 4761da177e4SLinus Torvalds bool 4771da177e4SLinus Torvalds 47823688e99SCatalin Marinasconfig CPU_CACHE_V7 47923688e99SCatalin Marinas bool 48023688e99SCatalin Marinas 4811da177e4SLinus Torvaldsconfig CPU_CACHE_VIVT 4821da177e4SLinus Torvalds bool 4831da177e4SLinus Torvalds 4841da177e4SLinus Torvaldsconfig CPU_CACHE_VIPT 4851da177e4SLinus Torvalds bool 4861da177e4SLinus Torvalds 487f9c21a6eSHyok S. Choiif MMU 4881da177e4SLinus Torvalds# The copy-page model 4891da177e4SLinus Torvaldsconfig CPU_COPY_V3 4901da177e4SLinus Torvalds bool 4911da177e4SLinus Torvalds 4921da177e4SLinus Torvaldsconfig CPU_COPY_V4WT 4931da177e4SLinus Torvalds bool 4941da177e4SLinus Torvalds 4951da177e4SLinus Torvaldsconfig CPU_COPY_V4WB 4961da177e4SLinus Torvalds bool 4971da177e4SLinus Torvalds 4980ed15071SLennert Buytenhekconfig CPU_COPY_FEROCEON 4990ed15071SLennert Buytenhek bool 5000ed15071SLennert Buytenhek 5011da177e4SLinus Torvaldsconfig CPU_COPY_V6 5021da177e4SLinus Torvalds bool 5031da177e4SLinus Torvalds 5041da177e4SLinus Torvalds# This selects the TLB model 5051da177e4SLinus Torvaldsconfig CPU_TLB_V3 5061da177e4SLinus Torvalds bool 5071da177e4SLinus Torvalds help 5081da177e4SLinus Torvalds ARM Architecture Version 3 TLB. 5091da177e4SLinus Torvalds 5101da177e4SLinus Torvaldsconfig CPU_TLB_V4WT 5111da177e4SLinus Torvalds bool 5121da177e4SLinus Torvalds help 5131da177e4SLinus Torvalds ARM Architecture Version 4 TLB with writethrough cache. 5141da177e4SLinus Torvalds 5151da177e4SLinus Torvaldsconfig CPU_TLB_V4WB 5161da177e4SLinus Torvalds bool 5171da177e4SLinus Torvalds help 5181da177e4SLinus Torvalds ARM Architecture Version 4 TLB with writeback cache. 5191da177e4SLinus Torvalds 5201da177e4SLinus Torvaldsconfig CPU_TLB_V4WBI 5211da177e4SLinus Torvalds bool 5221da177e4SLinus Torvalds help 5231da177e4SLinus Torvalds ARM Architecture Version 4 TLB with writeback cache and invalidate 5241da177e4SLinus Torvalds instruction cache entry. 5251da177e4SLinus Torvalds 52699c6dc11SLennert Buytenhekconfig CPU_TLB_FEROCEON 52799c6dc11SLennert Buytenhek bool 52899c6dc11SLennert Buytenhek help 52999c6dc11SLennert Buytenhek Feroceon TLB (v4wbi with non-outer-cachable page table walks). 53099c6dc11SLennert Buytenhek 5311da177e4SLinus Torvaldsconfig CPU_TLB_V6 5321da177e4SLinus Torvalds bool 5331da177e4SLinus Torvalds 5342ccdd1e7SCatalin Marinasconfig CPU_TLB_V7 5352ccdd1e7SCatalin Marinas bool 5362ccdd1e7SCatalin Marinas 537f9c21a6eSHyok S. Choiendif 538f9c21a6eSHyok S. Choi 539516793c6SRussell Kingconfig CPU_HAS_ASID 540516793c6SRussell King bool 541516793c6SRussell King help 542516793c6SRussell King This indicates whether the CPU has the ASID register; used to 543516793c6SRussell King tag TLB and possibly cache entries. 544516793c6SRussell King 545fefdaa06SHyok S. Choiconfig CPU_CP15 546fefdaa06SHyok S. Choi bool 547fefdaa06SHyok S. Choi help 548fefdaa06SHyok S. Choi Processor has the CP15 register. 549fefdaa06SHyok S. Choi 550fefdaa06SHyok S. Choiconfig CPU_CP15_MMU 551fefdaa06SHyok S. Choi bool 552fefdaa06SHyok S. Choi select CPU_CP15 553fefdaa06SHyok S. Choi help 554fefdaa06SHyok S. Choi Processor has the CP15 register, which has MMU related registers. 555fefdaa06SHyok S. Choi 556fefdaa06SHyok S. Choiconfig CPU_CP15_MPU 557fefdaa06SHyok S. Choi bool 558fefdaa06SHyok S. Choi select CPU_CP15 559fefdaa06SHyok S. Choi help 560fefdaa06SHyok S. Choi Processor has the CP15 register, which has MPU related registers. 561fefdaa06SHyok S. Choi 56223bdf86aSLennert Buytenhek# 56323bdf86aSLennert Buytenhek# CPU supports 36-bit I/O 56423bdf86aSLennert Buytenhek# 56523bdf86aSLennert Buytenhekconfig IO_36 56623bdf86aSLennert Buytenhek bool 56723bdf86aSLennert Buytenhek 5681da177e4SLinus Torvaldscomment "Processor Features" 5691da177e4SLinus Torvalds 5701da177e4SLinus Torvaldsconfig ARM_THUMB 5711da177e4SLinus Torvalds bool "Support Thumb user binaries" 572e50d6409SAssaf Hoffman 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_V6 || CPU_V7 || CPU_FEROCEON 5731da177e4SLinus Torvalds default y 5741da177e4SLinus Torvalds help 5751da177e4SLinus Torvalds Say Y if you want to include kernel support for running user space 5761da177e4SLinus Torvalds Thumb binaries. 5771da177e4SLinus Torvalds 5781da177e4SLinus Torvalds The Thumb instruction set is a compressed form of the standard ARM 5791da177e4SLinus Torvalds instruction set resulting in smaller binaries at the expense of 5801da177e4SLinus Torvalds slightly less efficient code. 5811da177e4SLinus Torvalds 5821da177e4SLinus Torvalds If you don't know what this all is, saying Y is a safe choice. 5831da177e4SLinus Torvalds 584d7f864beSCatalin Marinasconfig ARM_THUMBEE 585d7f864beSCatalin Marinas bool "Enable ThumbEE CPU extension" 586d7f864beSCatalin Marinas depends on CPU_V7 587d7f864beSCatalin Marinas help 588d7f864beSCatalin Marinas Say Y here if you have a CPU with the ThumbEE extension and code to 589d7f864beSCatalin Marinas make use of it. Say N for code that can run on CPUs without ThumbEE. 590d7f864beSCatalin Marinas 5911da177e4SLinus Torvaldsconfig CPU_BIG_ENDIAN 5921da177e4SLinus Torvalds bool "Build big-endian kernel" 5931da177e4SLinus Torvalds depends on ARCH_SUPPORTS_BIG_ENDIAN 5941da177e4SLinus Torvalds help 5951da177e4SLinus Torvalds Say Y if you plan on running a kernel in big-endian mode. 5961da177e4SLinus Torvalds Note that your board must be properly built and your board 5971da177e4SLinus Torvalds port must properly enable any big-endian related features 5981da177e4SLinus Torvalds of your chipset/board/processor. 5991da177e4SLinus Torvalds 6006afd6faeSHyok S. Choiconfig CPU_HIGH_VECTOR 6016340aa61SRobert P. J. Day depends on !MMU && CPU_CP15 && !CPU_ARM740T 6026afd6faeSHyok S. Choi bool "Select the High exception vector" 6036afd6faeSHyok S. Choi default n 6046afd6faeSHyok S. Choi help 6056afd6faeSHyok S. Choi Say Y here to select high exception vector(0xFFFF0000~). 6066afd6faeSHyok S. Choi The exception vector can be vary depending on the platform 6076afd6faeSHyok S. Choi design in nommu mode. If your platform needs to select 6086afd6faeSHyok S. Choi high exception vector, say Y. 6096afd6faeSHyok S. Choi Otherwise or if you are unsure, say N, and the low exception 6106afd6faeSHyok S. Choi vector (0x00000000~) will be used. 6116afd6faeSHyok S. Choi 6121da177e4SLinus Torvaldsconfig CPU_ICACHE_DISABLE 613f12d0d7cSHyok S. Choi bool "Disable I-Cache (I-bit)" 614f12d0d7cSHyok S. Choi depends on CPU_CP15 && !(CPU_ARM610 || CPU_ARM710 || CPU_ARM720T || CPU_ARM740T || CPU_XSCALE || CPU_XSC3) 6151da177e4SLinus Torvalds help 6161da177e4SLinus Torvalds Say Y here to disable the processor instruction cache. Unless 6171da177e4SLinus Torvalds you have a reason not to or are unsure, say N. 6181da177e4SLinus Torvalds 6191da177e4SLinus Torvaldsconfig CPU_DCACHE_DISABLE 620f12d0d7cSHyok S. Choi bool "Disable D-Cache (C-bit)" 621f12d0d7cSHyok S. Choi depends on CPU_CP15 6221da177e4SLinus Torvalds help 6231da177e4SLinus Torvalds Say Y here to disable the processor data cache. Unless 6241da177e4SLinus Torvalds you have a reason not to or are unsure, say N. 6251da177e4SLinus Torvalds 626f37f46ebSHyok S. Choiconfig CPU_DCACHE_SIZE 627f37f46ebSHyok S. Choi hex 628f37f46ebSHyok S. Choi depends on CPU_ARM740T || CPU_ARM946E 629f37f46ebSHyok S. Choi default 0x00001000 if CPU_ARM740T 630f37f46ebSHyok S. Choi default 0x00002000 # default size for ARM946E-S 631f37f46ebSHyok S. Choi help 632f37f46ebSHyok S. Choi Some cores are synthesizable to have various sized cache. For 633f37f46ebSHyok S. Choi ARM946E-S case, it can vary from 0KB to 1MB. 634f37f46ebSHyok S. Choi To support such cache operations, it is efficient to know the size 635f37f46ebSHyok S. Choi before compile time. 636f37f46ebSHyok S. Choi If your SoC is configured to have a different size, define the value 637f37f46ebSHyok S. Choi here with proper conditions. 638f37f46ebSHyok S. Choi 6391da177e4SLinus Torvaldsconfig CPU_DCACHE_WRITETHROUGH 6401da177e4SLinus Torvalds bool "Force write through D-cache" 641a7039bd6SLennert Buytenhek depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020) && !CPU_DCACHE_DISABLE 6421da177e4SLinus Torvalds default y if CPU_ARM925T 6431da177e4SLinus Torvalds help 6441da177e4SLinus Torvalds Say Y here to use the data cache in writethrough mode. Unless you 6451da177e4SLinus Torvalds specifically require this or are unsure, say N. 6461da177e4SLinus Torvalds 6471da177e4SLinus Torvaldsconfig CPU_CACHE_ROUND_ROBIN 6481da177e4SLinus Torvalds bool "Round robin I and D cache replacement algorithm" 649f37f46ebSHyok S. Choi depends on (CPU_ARM926T || CPU_ARM946E || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE) 6501da177e4SLinus Torvalds help 6511da177e4SLinus Torvalds Say Y here to use the predictable round-robin cache replacement 6521da177e4SLinus Torvalds policy. Unless you specifically require this or are unsure, say N. 6531da177e4SLinus Torvalds 6541da177e4SLinus Torvaldsconfig CPU_BPREDICT_DISABLE 6551da177e4SLinus Torvalds bool "Disable branch prediction" 65623688e99SCatalin Marinas depends on CPU_ARM1020 || CPU_V6 || CPU_XSC3 || CPU_V7 6571da177e4SLinus Torvalds help 6581da177e4SLinus Torvalds Say Y here to disable branch prediction. If unsure, say N. 6592d2669b6SNicolas Pitre 6604b0e07a5SNicolas Pitreconfig TLS_REG_EMUL 6614b0e07a5SNicolas Pitre bool 6624b0e07a5SNicolas Pitre help 66370489c88SNicolas Pitre An SMP system using a pre-ARMv6 processor (there are apparently 66470489c88SNicolas Pitre a few prototypes like that in existence) and therefore access to 66570489c88SNicolas Pitre that required register must be emulated. 6664b0e07a5SNicolas Pitre 6672d2669b6SNicolas Pitreconfig HAS_TLS_REG 6682d2669b6SNicolas Pitre bool 66970489c88SNicolas Pitre depends on !TLS_REG_EMUL 67070489c88SNicolas Pitre default y if SMP || CPU_32v7 6712d2669b6SNicolas Pitre help 6722d2669b6SNicolas Pitre This selects support for the CP15 thread register. 67370489c88SNicolas Pitre It is defined to be available on some ARMv6 processors (including 67470489c88SNicolas Pitre all SMP capable ARMv6's) or later processors. User space may 67570489c88SNicolas Pitre assume directly accessing that register and always obtain the 67670489c88SNicolas Pitre expected value only on ARMv7 and above. 6772d2669b6SNicolas Pitre 678dcef1f63SNicolas Pitreconfig NEEDS_SYSCALL_FOR_CMPXCHG 679dcef1f63SNicolas Pitre bool 680dcef1f63SNicolas Pitre help 681dcef1f63SNicolas Pitre SMP on a pre-ARMv6 processor? Well OK then. 682dcef1f63SNicolas Pitre Forget about fast user space cmpxchg support. 683dcef1f63SNicolas Pitre It is just not possible. 684dcef1f63SNicolas Pitre 685953233dcSCatalin Marinasconfig OUTER_CACHE 686953233dcSCatalin Marinas bool 687953233dcSCatalin Marinas default n 688382266adSCatalin Marinas 68999c6dc11SLennert Buytenhekconfig CACHE_FEROCEON_L2 69099c6dc11SLennert Buytenhek bool "Enable the Feroceon L2 cache controller" 691794d15b2SStanislav Samsonov depends on ARCH_KIRKWOOD || ARCH_MV78XX0 69299c6dc11SLennert Buytenhek default y 693382266adSCatalin Marinas select OUTER_CACHE 69499c6dc11SLennert Buytenhek help 69599c6dc11SLennert Buytenhek This option enables the Feroceon L2 cache controller. 69699c6dc11SLennert Buytenhek 6974360bb41SRonen Shitritconfig CACHE_FEROCEON_L2_WRITETHROUGH 6984360bb41SRonen Shitrit bool "Force Feroceon L2 cache write through" 6994360bb41SRonen Shitrit depends on CACHE_FEROCEON_L2 7004360bb41SRonen Shitrit default n 7014360bb41SRonen Shitrit help 7024360bb41SRonen Shitrit Say Y here to use the Feroceon L2 cache in writethrough mode. 7034360bb41SRonen Shitrit Unless you specifically require this, say N for writeback mode. 7044360bb41SRonen Shitrit 7051da177e4SLinus Torvaldsconfig CACHE_L2X0 706ba927951SCatalin Marinas bool "Enable the L2x0 outer cache controller" 707*cb88214dSSascha Hauer depends on REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || MACH_REALVIEW_PB1176 || \ 708*cb88214dSSascha Hauer REALVIEW_EB_A9MP || ARCH_MX35 || ARCH_MX31 709ba927951SCatalin Marinas default y 7101da177e4SLinus Torvalds select OUTER_CACHE 711ba927951SCatalin Marinas help 712ba927951SCatalin Marinas This option enables the L2x0 PrimeCell. 713905a09d5SEric Miao 714905a09d5SEric Miaoconfig CACHE_XSC3L2 715905a09d5SEric Miao bool "Enable the L2 cache on XScale3" 716905a09d5SEric Miao depends on CPU_XSC3 717905a09d5SEric Miao default y 718905a09d5SEric Miao select OUTER_CACHE 719905a09d5SEric Miao help 720905a09d5SEric Miao This option enables the L2 cache on XScale3. 721