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