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