1config ARM 2 bool 3 default y 4 select ARCH_BINFMT_ELF_RANDOMIZE_PIE 5 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 6 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 7 select ARCH_HAVE_CUSTOM_GPIO_H 8 select ARCH_HAS_GCOV_PROFILE_ALL 9 select ARCH_MIGHT_HAVE_PC_PARPORT 10 select ARCH_SUPPORTS_ATOMIC_RMW 11 select ARCH_USE_BUILTIN_BSWAP 12 select ARCH_USE_CMPXCHG_LOCKREF 13 select ARCH_WANT_IPC_PARSE_VERSION 14 select BUILDTIME_EXTABLE_SORT if MMU 15 select CLONE_BACKWARDS 16 select CPU_PM if (SUSPEND || CPU_IDLE) 17 select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS 18 select GENERIC_ALLOCATOR 19 select GENERIC_ATOMIC64 if (CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI) 20 select GENERIC_CLOCKEVENTS_BROADCAST if SMP 21 select GENERIC_IDLE_POLL_SETUP 22 select GENERIC_IRQ_PROBE 23 select GENERIC_IRQ_SHOW 24 select GENERIC_PCI_IOMAP 25 select GENERIC_SCHED_CLOCK 26 select GENERIC_SMP_IDLE_THREAD 27 select GENERIC_STRNCPY_FROM_USER 28 select GENERIC_STRNLEN_USER 29 select HANDLE_DOMAIN_IRQ 30 select HARDIRQS_SW_RESEND 31 select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT) 32 select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6 33 select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL 34 select HAVE_ARCH_KGDB 35 select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT) 36 select HAVE_ARCH_TRACEHOOK 37 select HAVE_BPF_JIT 38 select HAVE_CC_STACKPROTECTOR 39 select HAVE_CONTEXT_TRACKING 40 select HAVE_C_RECORDMCOUNT 41 select HAVE_DEBUG_KMEMLEAK 42 select HAVE_DMA_API_DEBUG 43 select HAVE_DMA_ATTRS 44 select HAVE_DMA_CONTIGUOUS if MMU 45 select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL) 46 select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU 47 select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL) 48 select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL) 49 select HAVE_FUNCTION_TRACER if (!XIP_KERNEL) 50 select HAVE_GENERIC_DMA_COHERENT 51 select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)) 52 select HAVE_IDE if PCI || ISA || PCMCIA 53 select HAVE_IRQ_TIME_ACCOUNTING 54 select HAVE_KERNEL_GZIP 55 select HAVE_KERNEL_LZ4 56 select HAVE_KERNEL_LZMA 57 select HAVE_KERNEL_LZO 58 select HAVE_KERNEL_XZ 59 select HAVE_KPROBES if !XIP_KERNEL 60 select HAVE_KRETPROBES if (HAVE_KPROBES) 61 select HAVE_MEMBLOCK 62 select HAVE_MOD_ARCH_SPECIFIC if ARM_UNWIND 63 select HAVE_OPROFILE if (HAVE_PERF_EVENTS) 64 select HAVE_PERF_EVENTS 65 select HAVE_PERF_REGS 66 select HAVE_PERF_USER_STACK_DUMP 67 select HAVE_RCU_TABLE_FREE if (SMP && ARM_LPAE) 68 select HAVE_REGS_AND_STACK_ACCESS_API 69 select HAVE_SYSCALL_TRACEPOINTS 70 select HAVE_UID16 71 select HAVE_VIRT_CPU_ACCOUNTING_GEN 72 select IRQ_FORCED_THREADING 73 select MODULES_USE_ELF_REL 74 select NO_BOOTMEM 75 select OLD_SIGACTION 76 select OLD_SIGSUSPEND3 77 select PERF_USE_VMALLOC 78 select RTC_LIB 79 select SYS_SUPPORTS_APM_EMULATION 80 # Above selects are sorted alphabetically; please add new ones 81 # according to that. Thanks. 82 help 83 The ARM series is a line of low-power-consumption RISC chip designs 84 licensed by ARM Ltd and targeted at embedded applications and 85 handhelds such as the Compaq IPAQ. ARM-based PCs are no longer 86 manufactured, but legacy ARM-based PC hardware remains popular in 87 Europe. There is an ARM Linux project with a web page at 88 <http://www.arm.linux.org.uk/>. 89 90config ARM_HAS_SG_CHAIN 91 select ARCH_HAS_SG_CHAIN 92 bool 93 94config NEED_SG_DMA_LENGTH 95 bool 96 97config ARM_DMA_USE_IOMMU 98 bool 99 select ARM_HAS_SG_CHAIN 100 select NEED_SG_DMA_LENGTH 101 102if ARM_DMA_USE_IOMMU 103 104config ARM_DMA_IOMMU_ALIGNMENT 105 int "Maximum PAGE_SIZE order of alignment for DMA IOMMU buffers" 106 range 4 9 107 default 8 108 help 109 DMA mapping framework by default aligns all buffers to the smallest 110 PAGE_SIZE order which is greater than or equal to the requested buffer 111 size. This works well for buffers up to a few hundreds kilobytes, but 112 for larger buffers it just a waste of address space. Drivers which has 113 relatively small addressing window (like 64Mib) might run out of 114 virtual space with just a few allocations. 115 116 With this parameter you can specify the maximum PAGE_SIZE order for 117 DMA IOMMU buffers. Larger buffers will be aligned only to this 118 specified order. The order is expressed as a power of two multiplied 119 by the PAGE_SIZE. 120 121endif 122 123config MIGHT_HAVE_PCI 124 bool 125 126config SYS_SUPPORTS_APM_EMULATION 127 bool 128 129config HAVE_TCM 130 bool 131 select GENERIC_ALLOCATOR 132 133config HAVE_PROC_CPU 134 bool 135 136config NO_IOPORT_MAP 137 bool 138 139config EISA 140 bool 141 ---help--- 142 The Extended Industry Standard Architecture (EISA) bus was 143 developed as an open alternative to the IBM MicroChannel bus. 144 145 The EISA bus provided some of the features of the IBM MicroChannel 146 bus while maintaining backward compatibility with cards made for 147 the older ISA bus. The EISA bus saw limited use between 1988 and 148 1995 when it was made obsolete by the PCI bus. 149 150 Say Y here if you are building a kernel for an EISA-based machine. 151 152 Otherwise, say N. 153 154config SBUS 155 bool 156 157config STACKTRACE_SUPPORT 158 bool 159 default y 160 161config HAVE_LATENCYTOP_SUPPORT 162 bool 163 depends on !SMP 164 default y 165 166config LOCKDEP_SUPPORT 167 bool 168 default y 169 170config TRACE_IRQFLAGS_SUPPORT 171 bool 172 default y 173 174config RWSEM_XCHGADD_ALGORITHM 175 bool 176 default y 177 178config ARCH_HAS_ILOG2_U32 179 bool 180 181config ARCH_HAS_ILOG2_U64 182 bool 183 184config ARCH_HAS_BANDGAP 185 bool 186 187config GENERIC_HWEIGHT 188 bool 189 default y 190 191config GENERIC_CALIBRATE_DELAY 192 bool 193 default y 194 195config ARCH_MAY_HAVE_PC_FDC 196 bool 197 198config ZONE_DMA 199 bool 200 201config NEED_DMA_MAP_STATE 202 def_bool y 203 204config ARCH_SUPPORTS_UPROBES 205 def_bool y 206 207config ARCH_HAS_DMA_SET_COHERENT_MASK 208 bool 209 210config GENERIC_ISA_DMA 211 bool 212 213config FIQ 214 bool 215 216config NEED_RET_TO_USER 217 bool 218 219config ARCH_MTD_XIP 220 bool 221 222config VECTORS_BASE 223 hex 224 default 0xffff0000 if MMU || CPU_HIGH_VECTOR 225 default DRAM_BASE if REMAP_VECTORS_TO_RAM 226 default 0x00000000 227 help 228 The base address of exception vectors. This must be two pages 229 in size. 230 231config ARM_PATCH_PHYS_VIRT 232 bool "Patch physical to virtual translations at runtime" if EMBEDDED 233 default y 234 depends on !XIP_KERNEL && MMU 235 depends on !ARCH_REALVIEW || !SPARSEMEM 236 help 237 Patch phys-to-virt and virt-to-phys translation functions at 238 boot and module load time according to the position of the 239 kernel in system memory. 240 241 This can only be used with non-XIP MMU kernels where the base 242 of physical memory is at a 16MB boundary. 243 244 Only disable this option if you know that you do not require 245 this feature (eg, building a kernel for a single machine) and 246 you need to shrink the kernel to the minimal size. 247 248config NEED_MACH_IO_H 249 bool 250 help 251 Select this when mach/io.h is required to provide special 252 definitions for this platform. The need for mach/io.h should 253 be avoided when possible. 254 255config NEED_MACH_MEMORY_H 256 bool 257 help 258 Select this when mach/memory.h is required to provide special 259 definitions for this platform. The need for mach/memory.h should 260 be avoided when possible. 261 262config PHYS_OFFSET 263 hex "Physical address of main memory" if MMU 264 depends on !ARM_PATCH_PHYS_VIRT 265 default DRAM_BASE if !MMU 266 default 0x00000000 if ARCH_EBSA110 || \ 267 EP93XX_SDCE3_SYNC_PHYS_OFFSET || \ 268 ARCH_FOOTBRIDGE || \ 269 ARCH_INTEGRATOR || \ 270 ARCH_IOP13XX || \ 271 ARCH_KS8695 || \ 272 (ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET) 273 default 0x10000000 if ARCH_OMAP1 || ARCH_RPC 274 default 0x20000000 if ARCH_S5PV210 275 default 0x70000000 if REALVIEW_HIGH_PHYS_OFFSET 276 default 0xc0000000 if EP93XX_SDCE0_PHYS_OFFSET || ARCH_SA1100 277 default 0xd0000000 if EP93XX_SDCE1_PHYS_OFFSET 278 default 0xe0000000 if EP93XX_SDCE2_PHYS_OFFSET 279 default 0xf0000000 if EP93XX_SDCE3_ASYNC_PHYS_OFFSET 280 help 281 Please provide the physical address corresponding to the 282 location of main memory in your system. 283 284config GENERIC_BUG 285 def_bool y 286 depends on BUG 287 288source "init/Kconfig" 289 290source "kernel/Kconfig.freezer" 291 292menu "System Type" 293 294config MMU 295 bool "MMU-based Paged Memory Management Support" 296 default y 297 help 298 Select if you want MMU-based virtualised addressing space 299 support by paged memory management. If unsure, say 'Y'. 300 301# 302# The "ARM system type" choice list is ordered alphabetically by option 303# text. Please add new entries in the option alphabetic order. 304# 305choice 306 prompt "ARM system type" 307 default ARCH_VERSATILE if !MMU 308 default ARCH_MULTIPLATFORM if MMU 309 310config ARCH_MULTIPLATFORM 311 bool "Allow multiple platforms to be selected" 312 depends on MMU 313 select ARCH_WANT_OPTIONAL_GPIOLIB 314 select ARM_HAS_SG_CHAIN 315 select ARM_PATCH_PHYS_VIRT 316 select AUTO_ZRELADDR 317 select CLKSRC_OF 318 select COMMON_CLK 319 select GENERIC_CLOCKEVENTS 320 select MIGHT_HAVE_PCI 321 select MULTI_IRQ_HANDLER 322 select SPARSE_IRQ 323 select USE_OF 324 325config ARCH_REALVIEW 326 bool "ARM Ltd. RealView family" 327 select ARCH_WANT_OPTIONAL_GPIOLIB 328 select ARM_AMBA 329 select ARM_TIMER_SP804 330 select COMMON_CLK 331 select COMMON_CLK_VERSATILE 332 select GENERIC_CLOCKEVENTS 333 select GPIO_PL061 if GPIOLIB 334 select ICST 335 select NEED_MACH_MEMORY_H 336 select PLAT_VERSATILE 337 select PLAT_VERSATILE_SCHED_CLOCK 338 help 339 This enables support for ARM Ltd RealView boards. 340 341config ARCH_VERSATILE 342 bool "ARM Ltd. Versatile family" 343 select ARCH_WANT_OPTIONAL_GPIOLIB 344 select ARM_AMBA 345 select ARM_TIMER_SP804 346 select ARM_VIC 347 select CLKDEV_LOOKUP 348 select GENERIC_CLOCKEVENTS 349 select HAVE_MACH_CLKDEV 350 select ICST 351 select PLAT_VERSATILE 352 select PLAT_VERSATILE_CLOCK 353 select PLAT_VERSATILE_SCHED_CLOCK 354 select VERSATILE_FPGA_IRQ 355 help 356 This enables support for ARM Ltd Versatile board. 357 358config ARCH_AT91 359 bool "Atmel AT91" 360 select ARCH_REQUIRE_GPIOLIB 361 select CLKDEV_LOOKUP 362 select IRQ_DOMAIN 363 select NEED_MACH_IO_H if PCCARD 364 select PINCTRL 365 select PINCTRL_AT91 366 select USE_OF 367 help 368 This enables support for systems based on Atmel 369 AT91RM9200, AT91SAM9 and SAMA5 processors. 370 371config ARCH_CLPS711X 372 bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" 373 select ARCH_REQUIRE_GPIOLIB 374 select AUTO_ZRELADDR 375 select CLKSRC_MMIO 376 select COMMON_CLK 377 select CPU_ARM720T 378 select GENERIC_CLOCKEVENTS 379 select MFD_SYSCON 380 select SOC_BUS 381 help 382 Support for Cirrus Logic 711x/721x/731x based boards. 383 384config ARCH_GEMINI 385 bool "Cortina Systems Gemini" 386 select ARCH_REQUIRE_GPIOLIB 387 select CLKSRC_MMIO 388 select CPU_FA526 389 select GENERIC_CLOCKEVENTS 390 help 391 Support for the Cortina Systems Gemini family SoCs 392 393config ARCH_EBSA110 394 bool "EBSA-110" 395 select ARCH_USES_GETTIMEOFFSET 396 select CPU_SA110 397 select ISA 398 select NEED_MACH_IO_H 399 select NEED_MACH_MEMORY_H 400 select NO_IOPORT_MAP 401 help 402 This is an evaluation board for the StrongARM processor available 403 from Digital. It has limited hardware on-board, including an 404 Ethernet interface, two PCMCIA sockets, two serial ports and a 405 parallel port. 406 407config ARCH_EFM32 408 bool "Energy Micro efm32" 409 depends on !MMU 410 select ARCH_REQUIRE_GPIOLIB 411 select ARM_NVIC 412 select AUTO_ZRELADDR 413 select CLKSRC_OF 414 select COMMON_CLK 415 select CPU_V7M 416 select GENERIC_CLOCKEVENTS 417 select NO_DMA 418 select NO_IOPORT_MAP 419 select SPARSE_IRQ 420 select USE_OF 421 help 422 Support for Energy Micro's (now Silicon Labs) efm32 Giant Gecko 423 processors. 424 425config ARCH_EP93XX 426 bool "EP93xx-based" 427 select ARCH_HAS_HOLES_MEMORYMODEL 428 select ARCH_REQUIRE_GPIOLIB 429 select ARCH_USES_GETTIMEOFFSET 430 select ARM_AMBA 431 select ARM_VIC 432 select CLKDEV_LOOKUP 433 select CPU_ARM920T 434 help 435 This enables support for the Cirrus EP93xx series of CPUs. 436 437config ARCH_FOOTBRIDGE 438 bool "FootBridge" 439 select CPU_SA110 440 select FOOTBRIDGE 441 select GENERIC_CLOCKEVENTS 442 select HAVE_IDE 443 select NEED_MACH_IO_H if !MMU 444 select NEED_MACH_MEMORY_H 445 help 446 Support for systems based on the DC21285 companion chip 447 ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. 448 449config ARCH_NETX 450 bool "Hilscher NetX based" 451 select ARM_VIC 452 select CLKSRC_MMIO 453 select CPU_ARM926T 454 select GENERIC_CLOCKEVENTS 455 help 456 This enables support for systems based on the Hilscher NetX Soc 457 458config ARCH_IOP13XX 459 bool "IOP13xx-based" 460 depends on MMU 461 select CPU_XSC3 462 select NEED_MACH_MEMORY_H 463 select NEED_RET_TO_USER 464 select PCI 465 select PLAT_IOP 466 select VMSPLIT_1G 467 select SPARSE_IRQ 468 help 469 Support for Intel's IOP13XX (XScale) family of processors. 470 471config ARCH_IOP32X 472 bool "IOP32x-based" 473 depends on MMU 474 select ARCH_REQUIRE_GPIOLIB 475 select CPU_XSCALE 476 select GPIO_IOP 477 select NEED_RET_TO_USER 478 select PCI 479 select PLAT_IOP 480 help 481 Support for Intel's 80219 and IOP32X (XScale) family of 482 processors. 483 484config ARCH_IOP33X 485 bool "IOP33x-based" 486 depends on MMU 487 select ARCH_REQUIRE_GPIOLIB 488 select CPU_XSCALE 489 select GPIO_IOP 490 select NEED_RET_TO_USER 491 select PCI 492 select PLAT_IOP 493 help 494 Support for Intel's IOP33X (XScale) family of processors. 495 496config ARCH_IXP4XX 497 bool "IXP4xx-based" 498 depends on MMU 499 select ARCH_HAS_DMA_SET_COHERENT_MASK 500 select ARCH_REQUIRE_GPIOLIB 501 select ARCH_SUPPORTS_BIG_ENDIAN 502 select CLKSRC_MMIO 503 select CPU_XSCALE 504 select DMABOUNCE if PCI 505 select GENERIC_CLOCKEVENTS 506 select MIGHT_HAVE_PCI 507 select NEED_MACH_IO_H 508 select USB_EHCI_BIG_ENDIAN_DESC 509 select USB_EHCI_BIG_ENDIAN_MMIO 510 help 511 Support for Intel's IXP4XX (XScale) family of processors. 512 513config ARCH_DOVE 514 bool "Marvell Dove" 515 select ARCH_REQUIRE_GPIOLIB 516 select CPU_PJ4 517 select GENERIC_CLOCKEVENTS 518 select MIGHT_HAVE_PCI 519 select MVEBU_MBUS 520 select PINCTRL 521 select PINCTRL_DOVE 522 select PLAT_ORION_LEGACY 523 help 524 Support for the Marvell Dove SoC 88AP510 525 526config ARCH_MV78XX0 527 bool "Marvell MV78xx0" 528 select ARCH_REQUIRE_GPIOLIB 529 select CPU_FEROCEON 530 select GENERIC_CLOCKEVENTS 531 select MVEBU_MBUS 532 select PCI 533 select PLAT_ORION_LEGACY 534 help 535 Support for the following Marvell MV78xx0 series SoCs: 536 MV781x0, MV782x0. 537 538config ARCH_ORION5X 539 bool "Marvell Orion" 540 depends on MMU 541 select ARCH_REQUIRE_GPIOLIB 542 select CPU_FEROCEON 543 select GENERIC_CLOCKEVENTS 544 select MVEBU_MBUS 545 select PCI 546 select PLAT_ORION_LEGACY 547 help 548 Support for the following Marvell Orion 5x series SoCs: 549 Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182), 550 Orion-2 (5281), Orion-1-90 (6183). 551 552config ARCH_MMP 553 bool "Marvell PXA168/910/MMP2" 554 depends on MMU 555 select ARCH_REQUIRE_GPIOLIB 556 select CLKDEV_LOOKUP 557 select GENERIC_ALLOCATOR 558 select GENERIC_CLOCKEVENTS 559 select GPIO_PXA 560 select IRQ_DOMAIN 561 select MULTI_IRQ_HANDLER 562 select PINCTRL 563 select PLAT_PXA 564 select SPARSE_IRQ 565 help 566 Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line. 567 568config ARCH_KS8695 569 bool "Micrel/Kendin KS8695" 570 select ARCH_REQUIRE_GPIOLIB 571 select CLKSRC_MMIO 572 select CPU_ARM922T 573 select GENERIC_CLOCKEVENTS 574 select NEED_MACH_MEMORY_H 575 help 576 Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based 577 System-on-Chip devices. 578 579config ARCH_W90X900 580 bool "Nuvoton W90X900 CPU" 581 select ARCH_REQUIRE_GPIOLIB 582 select CLKDEV_LOOKUP 583 select CLKSRC_MMIO 584 select CPU_ARM926T 585 select GENERIC_CLOCKEVENTS 586 help 587 Support for Nuvoton (Winbond logic dept.) ARM9 processor, 588 At present, the w90x900 has been renamed nuc900, regarding 589 the ARM series product line, you can login the following 590 link address to know more. 591 592 <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ 593 ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller> 594 595config ARCH_LPC32XX 596 bool "NXP LPC32XX" 597 select ARCH_REQUIRE_GPIOLIB 598 select ARM_AMBA 599 select CLKDEV_LOOKUP 600 select CLKSRC_MMIO 601 select CPU_ARM926T 602 select GENERIC_CLOCKEVENTS 603 select HAVE_IDE 604 select USE_OF 605 help 606 Support for the NXP LPC32XX family of processors 607 608config ARCH_PXA 609 bool "PXA2xx/PXA3xx-based" 610 depends on MMU 611 select ARCH_MTD_XIP 612 select ARCH_REQUIRE_GPIOLIB 613 select ARM_CPU_SUSPEND if PM 614 select AUTO_ZRELADDR 615 select CLKDEV_LOOKUP 616 select CLKSRC_MMIO 617 select CLKSRC_OF 618 select GENERIC_CLOCKEVENTS 619 select GPIO_PXA 620 select HAVE_IDE 621 select MULTI_IRQ_HANDLER 622 select PLAT_PXA 623 select SPARSE_IRQ 624 help 625 Support for Intel/Marvell's PXA2xx/PXA3xx processor line. 626 627config ARCH_MSM 628 bool "Qualcomm MSM (non-multiplatform)" 629 select ARCH_REQUIRE_GPIOLIB 630 select COMMON_CLK 631 select GENERIC_CLOCKEVENTS 632 help 633 Support for Qualcomm MSM/QSD based systems. This runs on the 634 apps processor of the MSM/QSD and depends on a shared memory 635 interface to the modem processor which runs the baseband 636 stack and controls some vital subsystems 637 (clock and power control, etc). 638 639config ARCH_SHMOBILE_LEGACY 640 bool "Renesas ARM SoCs (non-multiplatform)" 641 select ARCH_SHMOBILE 642 select ARM_PATCH_PHYS_VIRT if MMU 643 select CLKDEV_LOOKUP 644 select CPU_V7 645 select GENERIC_CLOCKEVENTS 646 select HAVE_ARM_SCU if SMP 647 select HAVE_ARM_TWD if SMP 648 select HAVE_MACH_CLKDEV 649 select HAVE_SMP 650 select MIGHT_HAVE_CACHE_L2X0 651 select MULTI_IRQ_HANDLER 652 select NO_IOPORT_MAP 653 select PINCTRL 654 select PM_GENERIC_DOMAINS if PM 655 select SH_CLK_CPG 656 select SPARSE_IRQ 657 help 658 Support for Renesas ARM SoC platforms using a non-multiplatform 659 kernel. This includes the SH-Mobile, R-Mobile, EMMA-Mobile, R-Car 660 and RZ families. 661 662config ARCH_RPC 663 bool "RiscPC" 664 select ARCH_ACORN 665 select ARCH_MAY_HAVE_PC_FDC 666 select ARCH_SPARSEMEM_ENABLE 667 select ARCH_USES_GETTIMEOFFSET 668 select CPU_SA110 669 select FIQ 670 select HAVE_IDE 671 select HAVE_PATA_PLATFORM 672 select ISA_DMA_API 673 select NEED_MACH_IO_H 674 select NEED_MACH_MEMORY_H 675 select NO_IOPORT_MAP 676 select VIRT_TO_BUS 677 help 678 On the Acorn Risc-PC, Linux can support the internal IDE disk and 679 CD-ROM interface, serial and parallel port, and the floppy drive. 680 681config ARCH_SA1100 682 bool "SA1100-based" 683 select ARCH_MTD_XIP 684 select ARCH_REQUIRE_GPIOLIB 685 select ARCH_SPARSEMEM_ENABLE 686 select CLKDEV_LOOKUP 687 select CLKSRC_MMIO 688 select CPU_FREQ 689 select CPU_SA1100 690 select GENERIC_CLOCKEVENTS 691 select HAVE_IDE 692 select IRQ_DOMAIN 693 select ISA 694 select MULTI_IRQ_HANDLER 695 select NEED_MACH_MEMORY_H 696 select SPARSE_IRQ 697 help 698 Support for StrongARM 11x0 based boards. 699 700config ARCH_S3C24XX 701 bool "Samsung S3C24XX SoCs" 702 select ARCH_REQUIRE_GPIOLIB 703 select ATAGS 704 select CLKDEV_LOOKUP 705 select CLKSRC_SAMSUNG_PWM 706 select GENERIC_CLOCKEVENTS 707 select GPIO_SAMSUNG 708 select HAVE_S3C2410_I2C if I2C 709 select HAVE_S3C2410_WATCHDOG if WATCHDOG 710 select HAVE_S3C_RTC if RTC_CLASS 711 select MULTI_IRQ_HANDLER 712 select NEED_MACH_IO_H 713 select SAMSUNG_ATAGS 714 help 715 Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443 716 and S3C2450 SoCs based systems, such as the Simtec Electronics BAST 717 (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the 718 Samsung SMDK2410 development board (and derivatives). 719 720config ARCH_S3C64XX 721 bool "Samsung S3C64XX" 722 select ARCH_REQUIRE_GPIOLIB 723 select ARM_AMBA 724 select ARM_VIC 725 select ATAGS 726 select CLKDEV_LOOKUP 727 select CLKSRC_SAMSUNG_PWM 728 select COMMON_CLK_SAMSUNG 729 select CPU_V6K 730 select GENERIC_CLOCKEVENTS 731 select GPIO_SAMSUNG 732 select HAVE_S3C2410_I2C if I2C 733 select HAVE_S3C2410_WATCHDOG if WATCHDOG 734 select HAVE_TCM 735 select NO_IOPORT_MAP 736 select PLAT_SAMSUNG 737 select PM_GENERIC_DOMAINS if PM 738 select S3C_DEV_NAND 739 select S3C_GPIO_TRACK 740 select SAMSUNG_ATAGS 741 select SAMSUNG_WAKEMASK 742 select SAMSUNG_WDT_RESET 743 help 744 Samsung S3C64XX series based systems 745 746config ARCH_DAVINCI 747 bool "TI DaVinci" 748 select ARCH_HAS_HOLES_MEMORYMODEL 749 select ARCH_REQUIRE_GPIOLIB 750 select CLKDEV_LOOKUP 751 select GENERIC_ALLOCATOR 752 select GENERIC_CLOCKEVENTS 753 select GENERIC_IRQ_CHIP 754 select HAVE_IDE 755 select TI_PRIV_EDMA 756 select USE_OF 757 select ZONE_DMA 758 help 759 Support for TI's DaVinci platform. 760 761config ARCH_OMAP1 762 bool "TI OMAP1" 763 depends on MMU 764 select ARCH_HAS_HOLES_MEMORYMODEL 765 select ARCH_OMAP 766 select ARCH_REQUIRE_GPIOLIB 767 select CLKDEV_LOOKUP 768 select CLKSRC_MMIO 769 select GENERIC_CLOCKEVENTS 770 select GENERIC_IRQ_CHIP 771 select HAVE_IDE 772 select IRQ_DOMAIN 773 select NEED_MACH_IO_H if PCCARD 774 select NEED_MACH_MEMORY_H 775 help 776 Support for older TI OMAP1 (omap7xx, omap15xx or omap16xx) 777 778endchoice 779 780menu "Multiple platform selection" 781 depends on ARCH_MULTIPLATFORM 782 783comment "CPU Core family selection" 784 785config ARCH_MULTI_V4 786 bool "ARMv4 based platforms (FA526)" 787 depends on !ARCH_MULTI_V6_V7 788 select ARCH_MULTI_V4_V5 789 select CPU_FA526 790 791config ARCH_MULTI_V4T 792 bool "ARMv4T based platforms (ARM720T, ARM920T, ...)" 793 depends on !ARCH_MULTI_V6_V7 794 select ARCH_MULTI_V4_V5 795 select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \ 796 CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \ 797 CPU_ARM925T || CPU_ARM940T) 798 799config ARCH_MULTI_V5 800 bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)" 801 depends on !ARCH_MULTI_V6_V7 802 select ARCH_MULTI_V4_V5 803 select CPU_ARM926T if !(CPU_ARM946E || CPU_ARM1020 || \ 804 CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \ 805 CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_FEROCEON) 806 807config ARCH_MULTI_V4_V5 808 bool 809 810config ARCH_MULTI_V6 811 bool "ARMv6 based platforms (ARM11)" 812 select ARCH_MULTI_V6_V7 813 select CPU_V6K 814 815config ARCH_MULTI_V7 816 bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)" 817 default y 818 select ARCH_MULTI_V6_V7 819 select CPU_V7 820 select HAVE_SMP 821 822config ARCH_MULTI_V6_V7 823 bool 824 select MIGHT_HAVE_CACHE_L2X0 825 826config ARCH_MULTI_CPU_AUTO 827 def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7) 828 select ARCH_MULTI_V5 829 830endmenu 831 832config ARCH_VIRT 833 bool "Dummy Virtual Machine" if ARCH_MULTI_V7 834 select ARM_AMBA 835 select ARM_GIC 836 select ARM_PSCI 837 select HAVE_ARM_ARCH_TIMER 838 839# 840# This is sorted alphabetically by mach-* pathname. However, plat-* 841# Kconfigs may be included either alphabetically (according to the 842# plat- suffix) or along side the corresponding mach-* source. 843# 844source "arch/arm/mach-mvebu/Kconfig" 845 846source "arch/arm/mach-asm9260/Kconfig" 847 848source "arch/arm/mach-at91/Kconfig" 849 850source "arch/arm/mach-axxia/Kconfig" 851 852source "arch/arm/mach-bcm/Kconfig" 853 854source "arch/arm/mach-berlin/Kconfig" 855 856source "arch/arm/mach-clps711x/Kconfig" 857 858source "arch/arm/mach-cns3xxx/Kconfig" 859 860source "arch/arm/mach-davinci/Kconfig" 861 862source "arch/arm/mach-dove/Kconfig" 863 864source "arch/arm/mach-ep93xx/Kconfig" 865 866source "arch/arm/mach-footbridge/Kconfig" 867 868source "arch/arm/mach-gemini/Kconfig" 869 870source "arch/arm/mach-highbank/Kconfig" 871 872source "arch/arm/mach-hisi/Kconfig" 873 874source "arch/arm/mach-integrator/Kconfig" 875 876source "arch/arm/mach-iop32x/Kconfig" 877 878source "arch/arm/mach-iop33x/Kconfig" 879 880source "arch/arm/mach-iop13xx/Kconfig" 881 882source "arch/arm/mach-ixp4xx/Kconfig" 883 884source "arch/arm/mach-keystone/Kconfig" 885 886source "arch/arm/mach-ks8695/Kconfig" 887 888source "arch/arm/mach-meson/Kconfig" 889 890source "arch/arm/mach-msm/Kconfig" 891 892source "arch/arm/mach-moxart/Kconfig" 893 894source "arch/arm/mach-mv78xx0/Kconfig" 895 896source "arch/arm/mach-imx/Kconfig" 897 898source "arch/arm/mach-mediatek/Kconfig" 899 900source "arch/arm/mach-mxs/Kconfig" 901 902source "arch/arm/mach-netx/Kconfig" 903 904source "arch/arm/mach-nomadik/Kconfig" 905 906source "arch/arm/mach-nspire/Kconfig" 907 908source "arch/arm/plat-omap/Kconfig" 909 910source "arch/arm/mach-omap1/Kconfig" 911 912source "arch/arm/mach-omap2/Kconfig" 913 914source "arch/arm/mach-orion5x/Kconfig" 915 916source "arch/arm/mach-picoxcell/Kconfig" 917 918source "arch/arm/mach-pxa/Kconfig" 919source "arch/arm/plat-pxa/Kconfig" 920 921source "arch/arm/mach-mmp/Kconfig" 922 923source "arch/arm/mach-qcom/Kconfig" 924 925source "arch/arm/mach-realview/Kconfig" 926 927source "arch/arm/mach-rockchip/Kconfig" 928 929source "arch/arm/mach-sa1100/Kconfig" 930 931source "arch/arm/mach-socfpga/Kconfig" 932 933source "arch/arm/mach-spear/Kconfig" 934 935source "arch/arm/mach-sti/Kconfig" 936 937source "arch/arm/mach-s3c24xx/Kconfig" 938 939source "arch/arm/mach-s3c64xx/Kconfig" 940 941source "arch/arm/mach-s5pv210/Kconfig" 942 943source "arch/arm/mach-exynos/Kconfig" 944source "arch/arm/plat-samsung/Kconfig" 945 946source "arch/arm/mach-shmobile/Kconfig" 947 948source "arch/arm/mach-sunxi/Kconfig" 949 950source "arch/arm/mach-prima2/Kconfig" 951 952source "arch/arm/mach-tegra/Kconfig" 953 954source "arch/arm/mach-u300/Kconfig" 955 956source "arch/arm/mach-ux500/Kconfig" 957 958source "arch/arm/mach-versatile/Kconfig" 959 960source "arch/arm/mach-vexpress/Kconfig" 961source "arch/arm/plat-versatile/Kconfig" 962 963source "arch/arm/mach-vt8500/Kconfig" 964 965source "arch/arm/mach-w90x900/Kconfig" 966 967source "arch/arm/mach-zynq/Kconfig" 968 969# Definitions to make life easier 970config ARCH_ACORN 971 bool 972 973config PLAT_IOP 974 bool 975 select GENERIC_CLOCKEVENTS 976 977config PLAT_ORION 978 bool 979 select CLKSRC_MMIO 980 select COMMON_CLK 981 select GENERIC_IRQ_CHIP 982 select IRQ_DOMAIN 983 984config PLAT_ORION_LEGACY 985 bool 986 select PLAT_ORION 987 988config PLAT_PXA 989 bool 990 991config PLAT_VERSATILE 992 bool 993 994config ARM_TIMER_SP804 995 bool 996 select CLKSRC_MMIO 997 select CLKSRC_OF if OF 998 999source "arch/arm/firmware/Kconfig" 1000 1001source arch/arm/mm/Kconfig 1002 1003config IWMMXT 1004 bool "Enable iWMMXt support" 1005 depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 || CPU_PJ4B 1006 default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4 || CPU_PJ4B 1007 help 1008 Enable support for iWMMXt context switching at run time if 1009 running on a CPU that supports it. 1010 1011config MULTI_IRQ_HANDLER 1012 bool 1013 help 1014 Allow each machine to specify it's own IRQ handler at run time. 1015 1016if !MMU 1017source "arch/arm/Kconfig-nommu" 1018endif 1019 1020config PJ4B_ERRATA_4742 1021 bool "PJ4B Errata 4742: IDLE Wake Up Commands can Cause the CPU Core to Cease Operation" 1022 depends on CPU_PJ4B && MACH_ARMADA_370 1023 default y 1024 help 1025 When coming out of either a Wait for Interrupt (WFI) or a Wait for 1026 Event (WFE) IDLE states, a specific timing sensitivity exists between 1027 the retiring WFI/WFE instructions and the newly issued subsequent 1028 instructions. This sensitivity can result in a CPU hang scenario. 1029 Workaround: 1030 The software must insert either a Data Synchronization Barrier (DSB) 1031 or Data Memory Barrier (DMB) command immediately after the WFI/WFE 1032 instruction 1033 1034config ARM_ERRATA_326103 1035 bool "ARM errata: FSR write bit incorrect on a SWP to read-only memory" 1036 depends on CPU_V6 1037 help 1038 Executing a SWP instruction to read-only memory does not set bit 11 1039 of the FSR on the ARM 1136 prior to r1p0. This causes the kernel to 1040 treat the access as a read, preventing a COW from occurring and 1041 causing the faulting task to livelock. 1042 1043config ARM_ERRATA_411920 1044 bool "ARM errata: Invalidation of the Instruction Cache operation can fail" 1045 depends on CPU_V6 || CPU_V6K 1046 help 1047 Invalidation of the Instruction Cache operation can 1048 fail. This erratum is present in 1136 (before r1p4), 1156 and 1176. 1049 It does not affect the MPCore. This option enables the ARM Ltd. 1050 recommended workaround. 1051 1052config ARM_ERRATA_430973 1053 bool "ARM errata: Stale prediction on replaced interworking branch" 1054 depends on CPU_V7 1055 help 1056 This option enables the workaround for the 430973 Cortex-A8 1057 (r1p0..r1p2) erratum. If a code sequence containing an ARM/Thumb 1058 interworking branch is replaced with another code sequence at the 1059 same virtual address, whether due to self-modifying code or virtual 1060 to physical address re-mapping, Cortex-A8 does not recover from the 1061 stale interworking branch prediction. This results in Cortex-A8 1062 executing the new code sequence in the incorrect ARM or Thumb state. 1063 The workaround enables the BTB/BTAC operations by setting ACTLR.IBE 1064 and also flushes the branch target cache at every context switch. 1065 Note that setting specific bits in the ACTLR register may not be 1066 available in non-secure mode. 1067 1068config ARM_ERRATA_458693 1069 bool "ARM errata: Processor deadlock when a false hazard is created" 1070 depends on CPU_V7 1071 depends on !ARCH_MULTIPLATFORM 1072 help 1073 This option enables the workaround for the 458693 Cortex-A8 (r2p0) 1074 erratum. For very specific sequences of memory operations, it is 1075 possible for a hazard condition intended for a cache line to instead 1076 be incorrectly associated with a different cache line. This false 1077 hazard might then cause a processor deadlock. The workaround enables 1078 the L1 caching of the NEON accesses and disables the PLD instruction 1079 in the ACTLR register. Note that setting specific bits in the ACTLR 1080 register may not be available in non-secure mode. 1081 1082config ARM_ERRATA_460075 1083 bool "ARM errata: Data written to the L2 cache can be overwritten with stale data" 1084 depends on CPU_V7 1085 depends on !ARCH_MULTIPLATFORM 1086 help 1087 This option enables the workaround for the 460075 Cortex-A8 (r2p0) 1088 erratum. Any asynchronous access to the L2 cache may encounter a 1089 situation in which recent store transactions to the L2 cache are lost 1090 and overwritten with stale memory contents from external memory. The 1091 workaround disables the write-allocate mode for the L2 cache via the 1092 ACTLR register. Note that setting specific bits in the ACTLR register 1093 may not be available in non-secure mode. 1094 1095config ARM_ERRATA_742230 1096 bool "ARM errata: DMB operation may be faulty" 1097 depends on CPU_V7 && SMP 1098 depends on !ARCH_MULTIPLATFORM 1099 help 1100 This option enables the workaround for the 742230 Cortex-A9 1101 (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction 1102 between two write operations may not ensure the correct visibility 1103 ordering of the two writes. This workaround sets a specific bit in 1104 the diagnostic register of the Cortex-A9 which causes the DMB 1105 instruction to behave as a DSB, ensuring the correct behaviour of 1106 the two writes. 1107 1108config ARM_ERRATA_742231 1109 bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption" 1110 depends on CPU_V7 && SMP 1111 depends on !ARCH_MULTIPLATFORM 1112 help 1113 This option enables the workaround for the 742231 Cortex-A9 1114 (r2p0..r2p2) erratum. Under certain conditions, specific to the 1115 Cortex-A9 MPCore micro-architecture, two CPUs working in SMP mode, 1116 accessing some data located in the same cache line, may get corrupted 1117 data due to bad handling of the address hazard when the line gets 1118 replaced from one of the CPUs at the same time as another CPU is 1119 accessing it. This workaround sets specific bits in the diagnostic 1120 register of the Cortex-A9 which reduces the linefill issuing 1121 capabilities of the processor. 1122 1123config ARM_ERRATA_643719 1124 bool "ARM errata: LoUIS bit field in CLIDR register is incorrect" 1125 depends on CPU_V7 && SMP 1126 help 1127 This option enables the workaround for the 643719 Cortex-A9 (prior to 1128 r1p0) erratum. On affected cores the LoUIS bit field of the CLIDR 1129 register returns zero when it should return one. The workaround 1130 corrects this value, ensuring cache maintenance operations which use 1131 it behave as intended and avoiding data corruption. 1132 1133config ARM_ERRATA_720789 1134 bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID" 1135 depends on CPU_V7 1136 help 1137 This option enables the workaround for the 720789 Cortex-A9 (prior to 1138 r2p0) erratum. A faulty ASID can be sent to the other CPUs for the 1139 broadcasted CP15 TLB maintenance operations TLBIASIDIS and TLBIMVAIS. 1140 As a consequence of this erratum, some TLB entries which should be 1141 invalidated are not, resulting in an incoherency in the system page 1142 tables. The workaround changes the TLB flushing routines to invalidate 1143 entries regardless of the ASID. 1144 1145config ARM_ERRATA_743622 1146 bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption" 1147 depends on CPU_V7 1148 depends on !ARCH_MULTIPLATFORM 1149 help 1150 This option enables the workaround for the 743622 Cortex-A9 1151 (r2p*) erratum. Under very rare conditions, a faulty 1152 optimisation in the Cortex-A9 Store Buffer may lead to data 1153 corruption. This workaround sets a specific bit in the diagnostic 1154 register of the Cortex-A9 which disables the Store Buffer 1155 optimisation, preventing the defect from occurring. This has no 1156 visible impact on the overall performance or power consumption of the 1157 processor. 1158 1159config ARM_ERRATA_751472 1160 bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation" 1161 depends on CPU_V7 1162 depends on !ARCH_MULTIPLATFORM 1163 help 1164 This option enables the workaround for the 751472 Cortex-A9 (prior 1165 to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the 1166 completion of a following broadcasted operation if the second 1167 operation is received by a CPU before the ICIALLUIS has completed, 1168 potentially leading to corrupted entries in the cache or TLB. 1169 1170config ARM_ERRATA_754322 1171 bool "ARM errata: possible faulty MMU translations following an ASID switch" 1172 depends on CPU_V7 1173 help 1174 This option enables the workaround for the 754322 Cortex-A9 (r2p*, 1175 r3p*) erratum. A speculative memory access may cause a page table walk 1176 which starts prior to an ASID switch but completes afterwards. This 1177 can populate the micro-TLB with a stale entry which may be hit with 1178 the new ASID. This workaround places two dsb instructions in the mm 1179 switching code so that no page table walks can cross the ASID switch. 1180 1181config ARM_ERRATA_754327 1182 bool "ARM errata: no automatic Store Buffer drain" 1183 depends on CPU_V7 && SMP 1184 help 1185 This option enables the workaround for the 754327 Cortex-A9 (prior to 1186 r2p0) erratum. The Store Buffer does not have any automatic draining 1187 mechanism and therefore a livelock may occur if an external agent 1188 continuously polls a memory location waiting to observe an update. 1189 This workaround defines cpu_relax() as smp_mb(), preventing correctly 1190 written polling loops from denying visibility of updates to memory. 1191 1192config ARM_ERRATA_364296 1193 bool "ARM errata: Possible cache data corruption with hit-under-miss enabled" 1194 depends on CPU_V6 1195 help 1196 This options enables the workaround for the 364296 ARM1136 1197 r0p2 erratum (possible cache data corruption with 1198 hit-under-miss enabled). It sets the undocumented bit 31 in 1199 the auxiliary control register and the FI bit in the control 1200 register, thus disabling hit-under-miss without putting the 1201 processor into full low interrupt latency mode. ARM11MPCore 1202 is not affected. 1203 1204config ARM_ERRATA_764369 1205 bool "ARM errata: Data cache line maintenance operation by MVA may not succeed" 1206 depends on CPU_V7 && SMP 1207 help 1208 This option enables the workaround for erratum 764369 1209 affecting Cortex-A9 MPCore with two or more processors (all 1210 current revisions). Under certain timing circumstances, a data 1211 cache line maintenance operation by MVA targeting an Inner 1212 Shareable memory region may fail to proceed up to either the 1213 Point of Coherency or to the Point of Unification of the 1214 system. This workaround adds a DSB instruction before the 1215 relevant cache maintenance functions and sets a specific bit 1216 in the diagnostic control register of the SCU. 1217 1218config ARM_ERRATA_775420 1219 bool "ARM errata: A data cache maintenance operation which aborts, might lead to deadlock" 1220 depends on CPU_V7 1221 help 1222 This option enables the workaround for the 775420 Cortex-A9 (r2p2, 1223 r2p6,r2p8,r2p10,r3p0) erratum. In case a date cache maintenance 1224 operation aborts with MMU exception, it might cause the processor 1225 to deadlock. This workaround puts DSB before executing ISB if 1226 an abort may occur on cache maintenance. 1227 1228config ARM_ERRATA_798181 1229 bool "ARM errata: TLBI/DSB failure on Cortex-A15" 1230 depends on CPU_V7 && SMP 1231 help 1232 On Cortex-A15 (r0p0..r3p2) the TLBI*IS/DSB operations are not 1233 adequately shooting down all use of the old entries. This 1234 option enables the Linux kernel workaround for this erratum 1235 which sends an IPI to the CPUs that are running the same ASID 1236 as the one being invalidated. 1237 1238config ARM_ERRATA_773022 1239 bool "ARM errata: incorrect instructions may be executed from loop buffer" 1240 depends on CPU_V7 1241 help 1242 This option enables the workaround for the 773022 Cortex-A15 1243 (up to r0p4) erratum. In certain rare sequences of code, the 1244 loop buffer may deliver incorrect instructions. This 1245 workaround disables the loop buffer to avoid the erratum. 1246 1247endmenu 1248 1249source "arch/arm/common/Kconfig" 1250 1251menu "Bus support" 1252 1253config ISA 1254 bool 1255 help 1256 Find out whether you have ISA slots on your motherboard. ISA is the 1257 name of a bus system, i.e. the way the CPU talks to the other stuff 1258 inside your box. Other bus systems are PCI, EISA, MicroChannel 1259 (MCA) or VESA. ISA is an older system, now being displaced by PCI; 1260 newer boards don't support it. If you have ISA, say Y, otherwise N. 1261 1262# Select ISA DMA controller support 1263config ISA_DMA 1264 bool 1265 select ISA_DMA_API 1266 1267# Select ISA DMA interface 1268config ISA_DMA_API 1269 bool 1270 1271config PCI 1272 bool "PCI support" if MIGHT_HAVE_PCI 1273 help 1274 Find out whether you have a PCI motherboard. PCI is the name of a 1275 bus system, i.e. the way the CPU talks to the other stuff inside 1276 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or 1277 VESA. If you have PCI, say Y, otherwise N. 1278 1279config PCI_DOMAINS 1280 bool 1281 depends on PCI 1282 1283config PCI_NANOENGINE 1284 bool "BSE nanoEngine PCI support" 1285 depends on SA1100_NANOENGINE 1286 help 1287 Enable PCI on the BSE nanoEngine board. 1288 1289config PCI_SYSCALL 1290 def_bool PCI 1291 1292config PCI_HOST_ITE8152 1293 bool 1294 depends on PCI && MACH_ARMCORE 1295 default y 1296 select DMABOUNCE 1297 1298source "drivers/pci/Kconfig" 1299source "drivers/pci/pcie/Kconfig" 1300 1301source "drivers/pcmcia/Kconfig" 1302 1303endmenu 1304 1305menu "Kernel Features" 1306 1307config HAVE_SMP 1308 bool 1309 help 1310 This option should be selected by machines which have an SMP- 1311 capable CPU. 1312 1313 The only effect of this option is to make the SMP-related 1314 options available to the user for configuration. 1315 1316config SMP 1317 bool "Symmetric Multi-Processing" 1318 depends on CPU_V6K || CPU_V7 1319 depends on GENERIC_CLOCKEVENTS 1320 depends on HAVE_SMP 1321 depends on MMU || ARM_MPU 1322 help 1323 This enables support for systems with more than one CPU. If you have 1324 a system with only one CPU, say N. If you have a system with more 1325 than one CPU, say Y. 1326 1327 If you say N here, the kernel will run on uni- and multiprocessor 1328 machines, but will use only one CPU of a multiprocessor machine. If 1329 you say Y here, the kernel will run on many, but not all, 1330 uniprocessor machines. On a uniprocessor machine, the kernel 1331 will run faster if you say N here. 1332 1333 See also <file:Documentation/x86/i386/IO-APIC.txt>, 1334 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at 1335 <http://tldp.org/HOWTO/SMP-HOWTO.html>. 1336 1337 If you don't know what to do here, say N. 1338 1339config SMP_ON_UP 1340 bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)" 1341 depends on SMP && !XIP_KERNEL && MMU 1342 default y 1343 help 1344 SMP kernels contain instructions which fail on non-SMP processors. 1345 Enabling this option allows the kernel to modify itself to make 1346 these instructions safe. Disabling it allows about 1K of space 1347 savings. 1348 1349 If you don't know what to do here, say Y. 1350 1351config ARM_CPU_TOPOLOGY 1352 bool "Support cpu topology definition" 1353 depends on SMP && CPU_V7 1354 default y 1355 help 1356 Support ARM cpu topology definition. The MPIDR register defines 1357 affinity between processors which is then used to describe the cpu 1358 topology of an ARM System. 1359 1360config SCHED_MC 1361 bool "Multi-core scheduler support" 1362 depends on ARM_CPU_TOPOLOGY 1363 help 1364 Multi-core scheduler support improves the CPU scheduler's decision 1365 making when dealing with multi-core CPU chips at a cost of slightly 1366 increased overhead in some places. If unsure say N here. 1367 1368config SCHED_SMT 1369 bool "SMT scheduler support" 1370 depends on ARM_CPU_TOPOLOGY 1371 help 1372 Improves the CPU scheduler's decision making when dealing with 1373 MultiThreading at a cost of slightly increased overhead in some 1374 places. If unsure say N here. 1375 1376config HAVE_ARM_SCU 1377 bool 1378 help 1379 This option enables support for the ARM system coherency unit 1380 1381config HAVE_ARM_ARCH_TIMER 1382 bool "Architected timer support" 1383 depends on CPU_V7 1384 select ARM_ARCH_TIMER 1385 select GENERIC_CLOCKEVENTS 1386 help 1387 This option enables support for the ARM architected timer 1388 1389config HAVE_ARM_TWD 1390 bool 1391 depends on SMP 1392 select CLKSRC_OF if OF 1393 help 1394 This options enables support for the ARM timer and watchdog unit 1395 1396config MCPM 1397 bool "Multi-Cluster Power Management" 1398 depends on CPU_V7 && SMP 1399 help 1400 This option provides the common power management infrastructure 1401 for (multi-)cluster based systems, such as big.LITTLE based 1402 systems. 1403 1404config MCPM_QUAD_CLUSTER 1405 bool 1406 depends on MCPM 1407 help 1408 To avoid wasting resources unnecessarily, MCPM only supports up 1409 to 2 clusters by default. 1410 Platforms with 3 or 4 clusters that use MCPM must select this 1411 option to allow the additional clusters to be managed. 1412 1413config BIG_LITTLE 1414 bool "big.LITTLE support (Experimental)" 1415 depends on CPU_V7 && SMP 1416 select MCPM 1417 help 1418 This option enables support selections for the big.LITTLE 1419 system architecture. 1420 1421config BL_SWITCHER 1422 bool "big.LITTLE switcher support" 1423 depends on BIG_LITTLE && MCPM && HOTPLUG_CPU 1424 select ARM_CPU_SUSPEND 1425 select CPU_PM 1426 help 1427 The big.LITTLE "switcher" provides the core functionality to 1428 transparently handle transition between a cluster of A15's 1429 and a cluster of A7's in a big.LITTLE system. 1430 1431config BL_SWITCHER_DUMMY_IF 1432 tristate "Simple big.LITTLE switcher user interface" 1433 depends on BL_SWITCHER && DEBUG_KERNEL 1434 help 1435 This is a simple and dummy char dev interface to control 1436 the big.LITTLE switcher core code. It is meant for 1437 debugging purposes only. 1438 1439choice 1440 prompt "Memory split" 1441 depends on MMU 1442 default VMSPLIT_3G 1443 help 1444 Select the desired split between kernel and user memory. 1445 1446 If you are not absolutely sure what you are doing, leave this 1447 option alone! 1448 1449 config VMSPLIT_3G 1450 bool "3G/1G user/kernel split" 1451 config VMSPLIT_2G 1452 bool "2G/2G user/kernel split" 1453 config VMSPLIT_1G 1454 bool "1G/3G user/kernel split" 1455endchoice 1456 1457config PAGE_OFFSET 1458 hex 1459 default PHYS_OFFSET if !MMU 1460 default 0x40000000 if VMSPLIT_1G 1461 default 0x80000000 if VMSPLIT_2G 1462 default 0xC0000000 1463 1464config NR_CPUS 1465 int "Maximum number of CPUs (2-32)" 1466 range 2 32 1467 depends on SMP 1468 default "4" 1469 1470config HOTPLUG_CPU 1471 bool "Support for hot-pluggable CPUs" 1472 depends on SMP 1473 help 1474 Say Y here to experiment with turning CPUs off and on. CPUs 1475 can be controlled through /sys/devices/system/cpu. 1476 1477config ARM_PSCI 1478 bool "Support for the ARM Power State Coordination Interface (PSCI)" 1479 depends on CPU_V7 1480 help 1481 Say Y here if you want Linux to communicate with system firmware 1482 implementing the PSCI specification for CPU-centric power 1483 management operations described in ARM document number ARM DEN 1484 0022A ("Power State Coordination Interface System Software on 1485 ARM processors"). 1486 1487# The GPIO number here must be sorted by descending number. In case of 1488# a multiplatform kernel, we just want the highest value required by the 1489# selected platforms. 1490config ARCH_NR_GPIO 1491 int 1492 default 1024 if ARCH_SHMOBILE || ARCH_TEGRA 1493 default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || \ 1494 SOC_DRA7XX || ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210 1495 default 416 if ARCH_SUNXI 1496 default 392 if ARCH_U8500 1497 default 352 if ARCH_VT8500 1498 default 288 if ARCH_ROCKCHIP 1499 default 264 if MACH_H4700 1500 default 0 1501 help 1502 Maximum number of GPIOs in the system. 1503 1504 If unsure, leave the default value. 1505 1506source kernel/Kconfig.preempt 1507 1508config HZ_FIXED 1509 int 1510 default 200 if ARCH_EBSA110 || ARCH_S3C24XX || \ 1511 ARCH_S5PV210 || ARCH_EXYNOS4 1512 default AT91_TIMER_HZ if ARCH_AT91 1513 default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE_LEGACY 1514 default 0 1515 1516choice 1517 depends on HZ_FIXED = 0 1518 prompt "Timer frequency" 1519 1520config HZ_100 1521 bool "100 Hz" 1522 1523config HZ_200 1524 bool "200 Hz" 1525 1526config HZ_250 1527 bool "250 Hz" 1528 1529config HZ_300 1530 bool "300 Hz" 1531 1532config HZ_500 1533 bool "500 Hz" 1534 1535config HZ_1000 1536 bool "1000 Hz" 1537 1538endchoice 1539 1540config HZ 1541 int 1542 default HZ_FIXED if HZ_FIXED != 0 1543 default 100 if HZ_100 1544 default 200 if HZ_200 1545 default 250 if HZ_250 1546 default 300 if HZ_300 1547 default 500 if HZ_500 1548 default 1000 1549 1550config SCHED_HRTICK 1551 def_bool HIGH_RES_TIMERS 1552 1553config THUMB2_KERNEL 1554 bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY 1555 depends on (CPU_V7 || CPU_V7M) && !CPU_V6 && !CPU_V6K 1556 default y if CPU_THUMBONLY 1557 select AEABI 1558 select ARM_ASM_UNIFIED 1559 select ARM_UNWIND 1560 help 1561 By enabling this option, the kernel will be compiled in 1562 Thumb-2 mode. A compiler/assembler that understand the unified 1563 ARM-Thumb syntax is needed. 1564 1565 If unsure, say N. 1566 1567config THUMB2_AVOID_R_ARM_THM_JUMP11 1568 bool "Work around buggy Thumb-2 short branch relocations in gas" 1569 depends on THUMB2_KERNEL && MODULES 1570 default y 1571 help 1572 Various binutils versions can resolve Thumb-2 branches to 1573 locally-defined, preemptible global symbols as short-range "b.n" 1574 branch instructions. 1575 1576 This is a problem, because there's no guarantee the final 1577 destination of the symbol, or any candidate locations for a 1578 trampoline, are within range of the branch. For this reason, the 1579 kernel does not support fixing up the R_ARM_THM_JUMP11 (102) 1580 relocation in modules at all, and it makes little sense to add 1581 support. 1582 1583 The symptom is that the kernel fails with an "unsupported 1584 relocation" error when loading some modules. 1585 1586 Until fixed tools are available, passing 1587 -fno-optimize-sibling-calls to gcc should prevent gcc generating 1588 code which hits this problem, at the cost of a bit of extra runtime 1589 stack usage in some cases. 1590 1591 The problem is described in more detail at: 1592 https://bugs.launchpad.net/binutils-linaro/+bug/725126 1593 1594 Only Thumb-2 kernels are affected. 1595 1596 Unless you are sure your tools don't have this problem, say Y. 1597 1598config ARM_ASM_UNIFIED 1599 bool 1600 1601config AEABI 1602 bool "Use the ARM EABI to compile the kernel" 1603 help 1604 This option allows for the kernel to be compiled using the latest 1605 ARM ABI (aka EABI). This is only useful if you are using a user 1606 space environment that is also compiled with EABI. 1607 1608 Since there are major incompatibilities between the legacy ABI and 1609 EABI, especially with regard to structure member alignment, this 1610 option also changes the kernel syscall calling convention to 1611 disambiguate both ABIs and allow for backward compatibility support 1612 (selected with CONFIG_OABI_COMPAT). 1613 1614 To use this you need GCC version 4.0.0 or later. 1615 1616config OABI_COMPAT 1617 bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" 1618 depends on AEABI && !THUMB2_KERNEL 1619 help 1620 This option preserves the old syscall interface along with the 1621 new (ARM EABI) one. It also provides a compatibility layer to 1622 intercept syscalls that have structure arguments which layout 1623 in memory differs between the legacy ABI and the new ARM EABI 1624 (only for non "thumb" binaries). This option adds a tiny 1625 overhead to all syscalls and produces a slightly larger kernel. 1626 1627 The seccomp filter system will not be available when this is 1628 selected, since there is no way yet to sensibly distinguish 1629 between calling conventions during filtering. 1630 1631 If you know you'll be using only pure EABI user space then you 1632 can say N here. If this option is not selected and you attempt 1633 to execute a legacy ABI binary then the result will be 1634 UNPREDICTABLE (in fact it can be predicted that it won't work 1635 at all). If in doubt say N. 1636 1637config ARCH_HAS_HOLES_MEMORYMODEL 1638 bool 1639 1640config ARCH_SPARSEMEM_ENABLE 1641 bool 1642 1643config ARCH_SPARSEMEM_DEFAULT 1644 def_bool ARCH_SPARSEMEM_ENABLE 1645 1646config ARCH_SELECT_MEMORY_MODEL 1647 def_bool ARCH_SPARSEMEM_ENABLE 1648 1649config HAVE_ARCH_PFN_VALID 1650 def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM 1651 1652config HAVE_GENERIC_RCU_GUP 1653 def_bool y 1654 depends on ARM_LPAE 1655 1656config HIGHMEM 1657 bool "High Memory Support" 1658 depends on MMU 1659 help 1660 The address space of ARM processors is only 4 Gigabytes large 1661 and it has to accommodate user address space, kernel address 1662 space as well as some memory mapped IO. That means that, if you 1663 have a large amount of physical memory and/or IO, not all of the 1664 memory can be "permanently mapped" by the kernel. The physical 1665 memory that is not permanently mapped is called "high memory". 1666 1667 Depending on the selected kernel/user memory split, minimum 1668 vmalloc space and actual amount of RAM, you may not need this 1669 option which should result in a slightly faster kernel. 1670 1671 If unsure, say n. 1672 1673config HIGHPTE 1674 bool "Allocate 2nd-level pagetables from highmem" 1675 depends on HIGHMEM 1676 1677config HW_PERF_EVENTS 1678 bool "Enable hardware performance counter support for perf events" 1679 depends on PERF_EVENTS 1680 default y 1681 help 1682 Enable hardware performance counter support for perf events. If 1683 disabled, perf events will use software events only. 1684 1685config SYS_SUPPORTS_HUGETLBFS 1686 def_bool y 1687 depends on ARM_LPAE 1688 1689config HAVE_ARCH_TRANSPARENT_HUGEPAGE 1690 def_bool y 1691 depends on ARM_LPAE 1692 1693config ARCH_WANT_GENERAL_HUGETLB 1694 def_bool y 1695 1696source "mm/Kconfig" 1697 1698config FORCE_MAX_ZONEORDER 1699 int "Maximum zone order" if ARCH_SHMOBILE_LEGACY 1700 range 11 64 if ARCH_SHMOBILE_LEGACY 1701 default "12" if SOC_AM33XX 1702 default "9" if SA1111 || ARCH_EFM32 1703 default "11" 1704 help 1705 The kernel memory allocator divides physically contiguous memory 1706 blocks into "zones", where each zone is a power of two number of 1707 pages. This option selects the largest power of two that the kernel 1708 keeps in the memory allocator. If you need to allocate very large 1709 blocks of physically contiguous memory, then you may need to 1710 increase this value. 1711 1712 This config option is actually maximum order plus one. For example, 1713 a value of 11 means that the largest free memory block is 2^10 pages. 1714 1715config ALIGNMENT_TRAP 1716 bool 1717 depends on CPU_CP15_MMU 1718 default y if !ARCH_EBSA110 1719 select HAVE_PROC_CPU if PROC_FS 1720 help 1721 ARM processors cannot fetch/store information which is not 1722 naturally aligned on the bus, i.e., a 4 byte fetch must start at an 1723 address divisible by 4. On 32-bit ARM processors, these non-aligned 1724 fetch/store instructions will be emulated in software if you say 1725 here, which has a severe performance impact. This is necessary for 1726 correct operation of some network protocols. With an IP-only 1727 configuration it is safe to say N, otherwise say Y. 1728 1729config UACCESS_WITH_MEMCPY 1730 bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()" 1731 depends on MMU 1732 default y if CPU_FEROCEON 1733 help 1734 Implement faster copy_to_user and clear_user methods for CPU 1735 cores where a 8-word STM instruction give significantly higher 1736 memory write throughput than a sequence of individual 32bit stores. 1737 1738 A possible side effect is a slight increase in scheduling latency 1739 between threads sharing the same address space if they invoke 1740 such copy operations with large buffers. 1741 1742 However, if the CPU data cache is using a write-allocate mode, 1743 this option is unlikely to provide any performance gain. 1744 1745config SECCOMP 1746 bool 1747 prompt "Enable seccomp to safely compute untrusted bytecode" 1748 ---help--- 1749 This kernel feature is useful for number crunching applications 1750 that may need to compute untrusted bytecode during their 1751 execution. By using pipes or other transports made available to 1752 the process as file descriptors supporting the read/write 1753 syscalls, it's possible to isolate those applications in 1754 their own address space using seccomp. Once seccomp is 1755 enabled via prctl(PR_SET_SECCOMP), it cannot be disabled 1756 and the task is only allowed to execute a few safe syscalls 1757 defined by each seccomp mode. 1758 1759config SWIOTLB 1760 def_bool y 1761 1762config IOMMU_HELPER 1763 def_bool SWIOTLB 1764 1765config XEN_DOM0 1766 def_bool y 1767 depends on XEN 1768 1769config XEN 1770 bool "Xen guest support on ARM" 1771 depends on ARM && AEABI && OF 1772 depends on CPU_V7 && !CPU_V6 1773 depends on !GENERIC_ATOMIC64 1774 depends on MMU 1775 select ARCH_DMA_ADDR_T_64BIT 1776 select ARM_PSCI 1777 select SWIOTLB_XEN 1778 help 1779 Say Y if you want to run Linux in a Virtual Machine on Xen on ARM. 1780 1781endmenu 1782 1783menu "Boot options" 1784 1785config USE_OF 1786 bool "Flattened Device Tree support" 1787 select IRQ_DOMAIN 1788 select OF 1789 select OF_EARLY_FLATTREE 1790 select OF_RESERVED_MEM 1791 help 1792 Include support for flattened device tree machine descriptions. 1793 1794config ATAGS 1795 bool "Support for the traditional ATAGS boot data passing" if USE_OF 1796 default y 1797 help 1798 This is the traditional way of passing data to the kernel at boot 1799 time. If you are solely relying on the flattened device tree (or 1800 the ARM_ATAG_DTB_COMPAT option) then you may unselect this option 1801 to remove ATAGS support from your kernel binary. If unsure, 1802 leave this to y. 1803 1804config DEPRECATED_PARAM_STRUCT 1805 bool "Provide old way to pass kernel parameters" 1806 depends on ATAGS 1807 help 1808 This was deprecated in 2001 and announced to live on for 5 years. 1809 Some old boot loaders still use this way. 1810 1811# Compressed boot loader in ROM. Yes, we really want to ask about 1812# TEXT and BSS so we preserve their values in the config files. 1813config ZBOOT_ROM_TEXT 1814 hex "Compressed ROM boot loader base address" 1815 default "0" 1816 help 1817 The physical address at which the ROM-able zImage is to be 1818 placed in the target. Platforms which normally make use of 1819 ROM-able zImage formats normally set this to a suitable 1820 value in their defconfig file. 1821 1822 If ZBOOT_ROM is not enabled, this has no effect. 1823 1824config ZBOOT_ROM_BSS 1825 hex "Compressed ROM boot loader BSS address" 1826 default "0" 1827 help 1828 The base address of an area of read/write memory in the target 1829 for the ROM-able zImage which must be available while the 1830 decompressor is running. It must be large enough to hold the 1831 entire decompressed kernel plus an additional 128 KiB. 1832 Platforms which normally make use of ROM-able zImage formats 1833 normally set this to a suitable value in their defconfig file. 1834 1835 If ZBOOT_ROM is not enabled, this has no effect. 1836 1837config ZBOOT_ROM 1838 bool "Compressed boot loader in ROM/flash" 1839 depends on ZBOOT_ROM_TEXT != ZBOOT_ROM_BSS 1840 depends on !ARM_APPENDED_DTB && !XIP_KERNEL && !AUTO_ZRELADDR 1841 help 1842 Say Y here if you intend to execute your compressed kernel image 1843 (zImage) directly from ROM or flash. If unsure, say N. 1844 1845choice 1846 prompt "Include SD/MMC loader in zImage (EXPERIMENTAL)" 1847 depends on ZBOOT_ROM && ARCH_SH7372 1848 default ZBOOT_ROM_NONE 1849 help 1850 Include experimental SD/MMC loading code in the ROM-able zImage. 1851 With this enabled it is possible to write the ROM-able zImage 1852 kernel image to an MMC or SD card and boot the kernel straight 1853 from the reset vector. At reset the processor Mask ROM will load 1854 the first part of the ROM-able zImage which in turn loads the 1855 rest the kernel image to RAM. 1856 1857config ZBOOT_ROM_NONE 1858 bool "No SD/MMC loader in zImage (EXPERIMENTAL)" 1859 help 1860 Do not load image from SD or MMC 1861 1862config ZBOOT_ROM_MMCIF 1863 bool "Include MMCIF loader in zImage (EXPERIMENTAL)" 1864 help 1865 Load image from MMCIF hardware block. 1866 1867config ZBOOT_ROM_SH_MOBILE_SDHI 1868 bool "Include SuperH Mobile SDHI loader in zImage (EXPERIMENTAL)" 1869 help 1870 Load image from SDHI hardware block 1871 1872endchoice 1873 1874config ARM_APPENDED_DTB 1875 bool "Use appended device tree blob to zImage (EXPERIMENTAL)" 1876 depends on OF 1877 help 1878 With this option, the boot code will look for a device tree binary 1879 (DTB) appended to zImage 1880 (e.g. cat zImage <filename>.dtb > zImage_w_dtb). 1881 1882 This is meant as a backward compatibility convenience for those 1883 systems with a bootloader that can't be upgraded to accommodate 1884 the documented boot protocol using a device tree. 1885 1886 Beware that there is very little in terms of protection against 1887 this option being confused by leftover garbage in memory that might 1888 look like a DTB header after a reboot if no actual DTB is appended 1889 to zImage. Do not leave this option active in a production kernel 1890 if you don't intend to always append a DTB. Proper passing of the 1891 location into r2 of a bootloader provided DTB is always preferable 1892 to this option. 1893 1894config ARM_ATAG_DTB_COMPAT 1895 bool "Supplement the appended DTB with traditional ATAG information" 1896 depends on ARM_APPENDED_DTB 1897 help 1898 Some old bootloaders can't be updated to a DTB capable one, yet 1899 they provide ATAGs with memory configuration, the ramdisk address, 1900 the kernel cmdline string, etc. Such information is dynamically 1901 provided by the bootloader and can't always be stored in a static 1902 DTB. To allow a device tree enabled kernel to be used with such 1903 bootloaders, this option allows zImage to extract the information 1904 from the ATAG list and store it at run time into the appended DTB. 1905 1906choice 1907 prompt "Kernel command line type" if ARM_ATAG_DTB_COMPAT 1908 default ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER 1909 1910config ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER 1911 bool "Use bootloader kernel arguments if available" 1912 help 1913 Uses the command-line options passed by the boot loader instead of 1914 the device tree bootargs property. If the boot loader doesn't provide 1915 any, the device tree bootargs property will be used. 1916 1917config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND 1918 bool "Extend with bootloader kernel arguments" 1919 help 1920 The command-line arguments provided by the boot loader will be 1921 appended to the the device tree bootargs property. 1922 1923endchoice 1924 1925config CMDLINE 1926 string "Default kernel command string" 1927 default "" 1928 help 1929 On some architectures (EBSA110 and CATS), there is currently no way 1930 for the boot loader to pass arguments to the kernel. For these 1931 architectures, you should supply some command-line options at build 1932 time by entering them here. As a minimum, you should specify the 1933 memory size and the root device (e.g., mem=64M root=/dev/nfs). 1934 1935choice 1936 prompt "Kernel command line type" if CMDLINE != "" 1937 default CMDLINE_FROM_BOOTLOADER 1938 depends on ATAGS 1939 1940config CMDLINE_FROM_BOOTLOADER 1941 bool "Use bootloader kernel arguments if available" 1942 help 1943 Uses the command-line options passed by the boot loader. If 1944 the boot loader doesn't provide any, the default kernel command 1945 string provided in CMDLINE will be used. 1946 1947config CMDLINE_EXTEND 1948 bool "Extend bootloader kernel arguments" 1949 help 1950 The command-line arguments provided by the boot loader will be 1951 appended to the default kernel command string. 1952 1953config CMDLINE_FORCE 1954 bool "Always use the default kernel command string" 1955 help 1956 Always use the default kernel command string, even if the boot 1957 loader passes other arguments to the kernel. 1958 This is useful if you cannot or don't want to change the 1959 command-line options your boot loader passes to the kernel. 1960endchoice 1961 1962config XIP_KERNEL 1963 bool "Kernel Execute-In-Place from ROM" 1964 depends on !ARM_LPAE && !ARCH_MULTIPLATFORM 1965 help 1966 Execute-In-Place allows the kernel to run from non-volatile storage 1967 directly addressable by the CPU, such as NOR flash. This saves RAM 1968 space since the text section of the kernel is not loaded from flash 1969 to RAM. Read-write sections, such as the data section and stack, 1970 are still copied to RAM. The XIP kernel is not compressed since 1971 it has to run directly from flash, so it will take more space to 1972 store it. The flash address used to link the kernel object files, 1973 and for storing it, is configuration dependent. Therefore, if you 1974 say Y here, you must know the proper physical address where to 1975 store the kernel image depending on your own flash memory usage. 1976 1977 Also note that the make target becomes "make xipImage" rather than 1978 "make zImage" or "make Image". The final kernel binary to put in 1979 ROM memory will be arch/arm/boot/xipImage. 1980 1981 If unsure, say N. 1982 1983config XIP_PHYS_ADDR 1984 hex "XIP Kernel Physical Location" 1985 depends on XIP_KERNEL 1986 default "0x00080000" 1987 help 1988 This is the physical address in your flash memory the kernel will 1989 be linked for and stored to. This address is dependent on your 1990 own flash usage. 1991 1992config KEXEC 1993 bool "Kexec system call (EXPERIMENTAL)" 1994 depends on (!SMP || PM_SLEEP_SMP) 1995 help 1996 kexec is a system call that implements the ability to shutdown your 1997 current kernel, and to start another kernel. It is like a reboot 1998 but it is independent of the system firmware. And like a reboot 1999 you can start any kernel with it, not just Linux. 2000 2001 It is an ongoing process to be certain the hardware in a machine 2002 is properly shutdown, so do not be surprised if this code does not 2003 initially work for you. 2004 2005config ATAGS_PROC 2006 bool "Export atags in procfs" 2007 depends on ATAGS && KEXEC 2008 default y 2009 help 2010 Should the atags used to boot the kernel be exported in an "atags" 2011 file in procfs. Useful with kexec. 2012 2013config CRASH_DUMP 2014 bool "Build kdump crash kernel (EXPERIMENTAL)" 2015 help 2016 Generate crash dump after being started by kexec. This should 2017 be normally only set in special crash dump kernels which are 2018 loaded in the main kernel with kexec-tools into a specially 2019 reserved region and then later executed after a crash by 2020 kdump/kexec. The crash dump kernel must be compiled to a 2021 memory address not used by the main kernel 2022 2023 For more details see Documentation/kdump/kdump.txt 2024 2025config AUTO_ZRELADDR 2026 bool "Auto calculation of the decompressed kernel image address" 2027 help 2028 ZRELADDR is the physical address where the decompressed kernel 2029 image will be placed. If AUTO_ZRELADDR is selected, the address 2030 will be determined at run-time by masking the current IP with 2031 0xf8000000. This assumes the zImage being placed in the first 128MB 2032 from start of memory. 2033 2034endmenu 2035 2036menu "CPU Power Management" 2037 2038source "drivers/cpufreq/Kconfig" 2039 2040source "drivers/cpuidle/Kconfig" 2041 2042endmenu 2043 2044menu "Floating point emulation" 2045 2046comment "At least one emulation must be selected" 2047 2048config FPE_NWFPE 2049 bool "NWFPE math emulation" 2050 depends on (!AEABI || OABI_COMPAT) && !THUMB2_KERNEL 2051 ---help--- 2052 Say Y to include the NWFPE floating point emulator in the kernel. 2053 This is necessary to run most binaries. Linux does not currently 2054 support floating point hardware so you need to say Y here even if 2055 your machine has an FPA or floating point co-processor podule. 2056 2057 You may say N here if you are going to load the Acorn FPEmulator 2058 early in the bootup. 2059 2060config FPE_NWFPE_XP 2061 bool "Support extended precision" 2062 depends on FPE_NWFPE 2063 help 2064 Say Y to include 80-bit support in the kernel floating-point 2065 emulator. Otherwise, only 32 and 64-bit support is compiled in. 2066 Note that gcc does not generate 80-bit operations by default, 2067 so in most cases this option only enlarges the size of the 2068 floating point emulator without any good reason. 2069 2070 You almost surely want to say N here. 2071 2072config FPE_FASTFPE 2073 bool "FastFPE math emulation (EXPERIMENTAL)" 2074 depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 2075 ---help--- 2076 Say Y here to include the FAST floating point emulator in the kernel. 2077 This is an experimental much faster emulator which now also has full 2078 precision for the mantissa. It does not support any exceptions. 2079 It is very simple, and approximately 3-6 times faster than NWFPE. 2080 2081 It should be sufficient for most programs. It may be not suitable 2082 for scientific calculations, but you have to check this for yourself. 2083 If you do not feel you need a faster FP emulation you should better 2084 choose NWFPE. 2085 2086config VFP 2087 bool "VFP-format floating point maths" 2088 depends on CPU_V6 || CPU_V6K || CPU_ARM926T || CPU_V7 || CPU_FEROCEON 2089 help 2090 Say Y to include VFP support code in the kernel. This is needed 2091 if your hardware includes a VFP unit. 2092 2093 Please see <file:Documentation/arm/VFP/release-notes.txt> for 2094 release notes and additional status information. 2095 2096 Say N if your target does not have VFP hardware. 2097 2098config VFPv3 2099 bool 2100 depends on VFP 2101 default y if CPU_V7 2102 2103config NEON 2104 bool "Advanced SIMD (NEON) Extension support" 2105 depends on VFPv3 && CPU_V7 2106 help 2107 Say Y to include support code for NEON, the ARMv7 Advanced SIMD 2108 Extension. 2109 2110config KERNEL_MODE_NEON 2111 bool "Support for NEON in kernel mode" 2112 depends on NEON && AEABI 2113 help 2114 Say Y to include support for NEON in kernel mode. 2115 2116endmenu 2117 2118menu "Userspace binary formats" 2119 2120source "fs/Kconfig.binfmt" 2121 2122config ARTHUR 2123 tristate "RISC OS personality" 2124 depends on !AEABI 2125 help 2126 Say Y here to include the kernel code necessary if you want to run 2127 Acorn RISC OS/Arthur binaries under Linux. This code is still very 2128 experimental; if this sounds frightening, say N and sleep in peace. 2129 You can also say M here to compile this support as a module (which 2130 will be called arthur). 2131 2132endmenu 2133 2134menu "Power management options" 2135 2136source "kernel/power/Kconfig" 2137 2138config ARCH_SUSPEND_POSSIBLE 2139 depends on CPU_ARM920T || CPU_ARM926T || CPU_FEROCEON || CPU_SA1100 || \ 2140 CPU_V6 || CPU_V6K || CPU_V7 || CPU_V7M || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK 2141 def_bool y 2142 2143config ARM_CPU_SUSPEND 2144 def_bool PM_SLEEP 2145 2146config ARCH_HIBERNATION_POSSIBLE 2147 bool 2148 depends on MMU 2149 default y if ARCH_SUSPEND_POSSIBLE 2150 2151endmenu 2152 2153source "net/Kconfig" 2154 2155source "drivers/Kconfig" 2156 2157source "fs/Kconfig" 2158 2159source "arch/arm/Kconfig.debug" 2160 2161source "security/Kconfig" 2162 2163source "crypto/Kconfig" 2164 2165source "lib/Kconfig" 2166 2167source "arch/arm/kvm/Kconfig" 2168