1 comment "Processor Type"
 
   7 # Select CPU types depending on the architecture selected.  This selects
 
   8 # which CPUs we support in the kernel image, and the compiler instruction
 
  13         bool "Support ARM610 processor"
 
  21           The ARM610 is the successor to the ARM3 processor
 
  22           and was produced by VLSI Technology Inc.
 
  24           Say Y if you want support for the ARM610 processor.
 
  29         bool "Support ARM710 processor" if !ARCH_CLPS7500 && ARCH_RPC
 
  30         default y if ARCH_CLPS7500
 
  37           A 32-bit RISC microprocessor based on the ARM7 processor core
 
  38           designed by Advanced RISC Machines Ltd. The ARM710 is the
 
  39           successor to the ARM610 processor. It was released in
 
  40           July 1994 by VLSI Technology Inc.
 
  42           Say Y if you want support for the ARM710 processor.
 
  47         bool "Support ARM720T processor" if !ARCH_CLPS711X && !ARCH_L7200 && !ARCH_CDB89712 && ARCH_INTEGRATOR
 
  48         default y if ARCH_CLPS711X || ARCH_L7200 || ARCH_CDB89712 || ARCH_H720X
 
  56           A 32-bit RISC processor with 8kByte Cache, Write Buffer and
 
  57           MMU built around an ARM7TDMI core.
 
  59           Say Y if you want support for the ARM720T processor.
 
  64         bool "Support ARM920T processor" if !ARCH_S3C2410
 
  65         depends on ARCH_INTEGRATOR || ARCH_S3C2410 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200
 
  66         default y if ARCH_S3C2410 || ARCH_AT91RM9200
 
  74           The ARM920T is licensed to be produced by numerous vendors,
 
  75           and is used in the Maverick EP9312 and the Samsung S3C2410.
 
  77           More information on the Maverick EP9312 at
 
  78           <http://linuxdevices.com/products/PD2382866068.html>.
 
  80           Say Y if you want support for the ARM920T processor.
 
  85         bool "Support ARM922T processor" if ARCH_INTEGRATOR
 
  86         depends on ARCH_LH7A40X || ARCH_INTEGRATOR
 
  87         default y if ARCH_LH7A40X
 
  95           The ARM922T is a version of the ARM920T, but with smaller
 
  96           instruction and data caches. It is used in Altera's
 
  97           Excalibur XA device family.
 
  99           Say Y if you want support for the ARM922T processor.
 
 104         bool "Support ARM925T processor" if ARCH_OMAP1
 
 105         depends on ARCH_OMAP15XX
 
 106         default y if ARCH_OMAP15XX
 
 109         select CPU_CACHE_V4WT
 
 110         select CPU_CACHE_VIVT
 
 114           The ARM925T is a mix between the ARM920T and ARM926T, but with
 
 115           different instruction and data caches. It is used in TI's OMAP
 
 118           Say Y if you want support for the ARM925T processor.
 
 123         bool "Support ARM926T processor"
 
 124         depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || MACH_REALVIEW_EB
 
 125         default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX
 
 127         select CPU_ABRT_EV5TJ
 
 128         select CPU_CACHE_VIVT
 
 132           This is a variant of the ARM920.  It has slightly different
 
 133           instruction sequences for cache and TLB operations.  Curiously,
 
 134           there is no documentation on it at the ARM corporate website.
 
 136           Say Y if you want support for the ARM926T processor.
 
 139 # ARM1020 - needs validating
 
 141         bool "Support ARM1020T (rev 0) processor"
 
 142         depends on ARCH_INTEGRATOR
 
 145         select CPU_CACHE_V4WT
 
 146         select CPU_CACHE_VIVT
 
 150           The ARM1020 is the 32K cached version of the ARM10 processor,
 
 151           with an addition of a floating-point unit.
 
 153           Say Y if you want support for the ARM1020 processor.
 
 156 # ARM1020E - needs validating
 
 158         bool "Support ARM1020E processor"
 
 159         depends on ARCH_INTEGRATOR
 
 162         select CPU_CACHE_V4WT
 
 163         select CPU_CACHE_VIVT
 
 170         bool "Support ARM1022E processor"
 
 171         depends on ARCH_INTEGRATOR
 
 174         select CPU_CACHE_VIVT
 
 175         select CPU_COPY_V4WB # can probably do better
 
 178           The ARM1022E is an implementation of the ARMv5TE architecture
 
 179           based upon the ARM10 integer core with a 16KiB L1 Harvard cache,
 
 180           embedded trace macrocell, and a floating-point unit.
 
 182           Say Y if you want support for the ARM1022E processor.
 
 187         bool "Support ARM1026EJ-S processor"
 
 188         depends on ARCH_INTEGRATOR
 
 190         select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10
 
 191         select CPU_CACHE_VIVT
 
 192         select CPU_COPY_V4WB # can probably do better
 
 195           The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
 
 196           based upon the ARM10 integer core.
 
 198           Say Y if you want support for the ARM1026EJ-S processor.
 
 203         bool "Support StrongARM(R) SA-110 processor" if !ARCH_EBSA110 && !FOOTBRIDGE && !ARCH_TBOX && !ARCH_SHARK && !ARCH_NEXUSPCI && ARCH_RPC
 
 204         default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_TBOX || ARCH_SHARK || ARCH_NEXUSPCI
 
 205         select CPU_32v3 if ARCH_RPC
 
 206         select CPU_32v4 if !ARCH_RPC
 
 208         select CPU_CACHE_V4WB
 
 209         select CPU_CACHE_VIVT
 
 213           The Intel StrongARM(R) SA-110 is a 32-bit microprocessor and
 
 214           is available at five speeds ranging from 100 MHz to 233 MHz.
 
 215           More information is available at
 
 216           <http://developer.intel.com/design/strong/sa110.htm>.
 
 218           Say Y if you want support for the SA-110 processor.
 
 224         depends on ARCH_SA1100
 
 228         select CPU_CACHE_V4WB
 
 229         select CPU_CACHE_VIVT
 
 235         depends on ARCH_IOP3XX || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000
 
 239         select CPU_CACHE_VIVT
 
 244         bool "Support ARM V6 processor"
 
 245         depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2
 
 249         select CPU_CACHE_VIPT
 
 255         bool "Support ARM V6K processor extensions" if !SMP
 
 259           Say Y here if your ARMv6 processor supports the 'K' extension.
 
 260           This enables the kernel to use some instructions not present
 
 261           on previous processors, and as such a kernel build with this
 
 262           enabled will not boot on processors with do not support these
 
 265 # Figure out what processor architecture version we should be using.
 
 266 # This defines the compiler instruction set which depends on the machine type.
 
 292 config CPU_ABRT_EV5TJ
 
 305 config CPU_CACHE_V4WT
 
 308 config CPU_CACHE_V4WB
 
 314 config CPU_CACHE_VIVT
 
 317 config CPU_CACHE_VIPT
 
 320 # The copy-page model
 
 333 # This selects the TLB model
 
 337           ARM Architecture Version 3 TLB.
 
 342           ARM Architecture Version 4 TLB with writethrough cache.
 
 347           ARM Architecture Version 4 TLB with writeback cache.
 
 352           ARM Architecture Version 4 TLB with writeback cache and invalidate
 
 353           instruction cache entry.
 
 358 comment "Processor Features"
 
 361         bool "Support Thumb user binaries"
 
 362         depends on CPU_ARM720T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_V6
 
 365           Say Y if you want to include kernel support for running user space
 
 368           The Thumb instruction set is a compressed form of the standard ARM
 
 369           instruction set resulting in smaller binaries at the expense of
 
 370           slightly less efficient code.
 
 372           If you don't know what this all is, saying Y is a safe choice.
 
 374 config CPU_BIG_ENDIAN
 
 375         bool "Build big-endian kernel"
 
 376         depends on ARCH_SUPPORTS_BIG_ENDIAN
 
 378           Say Y if you plan on running a kernel in big-endian mode.
 
 379           Note that your board must be properly built and your board
 
 380           port must properly enable any big-endian related features
 
 381           of your chipset/board/processor.
 
 383 config CPU_ICACHE_DISABLE
 
 384         bool "Disable I-Cache"
 
 385         depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6
 
 387           Say Y here to disable the processor instruction cache. Unless
 
 388           you have a reason not to or are unsure, say N.
 
 390 config CPU_DCACHE_DISABLE
 
 391         bool "Disable D-Cache"
 
 392         depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6
 
 394           Say Y here to disable the processor data cache. Unless
 
 395           you have a reason not to or are unsure, say N.
 
 397 config CPU_DCACHE_WRITETHROUGH
 
 398         bool "Force write through D-cache"
 
 399         depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE
 
 400         default y if CPU_ARM925T
 
 402           Say Y here to use the data cache in writethrough mode. Unless you
 
 403           specifically require this or are unsure, say N.
 
 405 config CPU_CACHE_ROUND_ROBIN
 
 406         bool "Round robin I and D cache replacement algorithm"
 
 407         depends on (CPU_ARM926T || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE)
 
 409           Say Y here to use the predictable round-robin cache replacement
 
 410           policy.  Unless you specifically require this or are unsure, say N.
 
 412 config CPU_BPREDICT_DISABLE
 
 413         bool "Disable branch prediction"
 
 414         depends on CPU_ARM1020 || CPU_V6
 
 416           Say Y here to disable branch prediction.  If unsure, say N.
 
 420         default y if SMP && (CPU_32v5 || CPU_32v4 || CPU_32v3)
 
 422           An SMP system using a pre-ARMv6 processor (there are apparently
 
 423           a few prototypes like that in existence) and therefore access to
 
 424           that required register must be emulated.
 
 428         depends on !TLS_REG_EMUL
 
 429         default y if SMP || CPU_32v7
 
 431           This selects support for the CP15 thread register.
 
 432           It is defined to be available on some ARMv6 processors (including
 
 433           all SMP capable ARMv6's) or later processors.  User space may
 
 434           assume directly accessing that register and always obtain the
 
 435           expected value only on ARMv7 and above.
 
 437 config NEEDS_SYSCALL_FOR_CMPXCHG
 
 439         default y if SMP && (CPU_32v5 || CPU_32v4 || CPU_32v3)
 
 441           SMP on a pre-ARMv6 processor?  Well OK then.
 
 442           Forget about fast user space cmpxchg support.
 
 443           It is just not possible.