Kconfig (976e3645923bdd2fe7893aae33fd7a21098bfb28) | Kconfig (7af710d988775aadf440222ecbe0c10eecf3eb54) |
---|---|
1# SPDX-License-Identifier: GPL-2.0 2config XTENSA 3 def_bool y 4 select ARCH_32BIT_OFF_T 5 select ARCH_HAS_BINFMT_FLAT if !MMU 6 select ARCH_HAS_SYNC_DMA_FOR_CPU 7 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 8 select ARCH_USE_QUEUED_RWLOCKS --- 5 unchanged lines hidden (view full) --- 14 select COMMON_CLK 15 select DMA_REMAP if MMU 16 select GENERIC_ATOMIC64 17 select GENERIC_CLOCKEVENTS 18 select GENERIC_IRQ_SHOW 19 select GENERIC_PCI_IOMAP 20 select GENERIC_SCHED_CLOCK 21 select GENERIC_STRNCPY_FROM_USER if KASAN | 1# SPDX-License-Identifier: GPL-2.0 2config XTENSA 3 def_bool y 4 select ARCH_32BIT_OFF_T 5 select ARCH_HAS_BINFMT_FLAT if !MMU 6 select ARCH_HAS_SYNC_DMA_FOR_CPU 7 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 8 select ARCH_USE_QUEUED_RWLOCKS --- 5 unchanged lines hidden (view full) --- 14 select COMMON_CLK 15 select DMA_REMAP if MMU 16 select GENERIC_ATOMIC64 17 select GENERIC_CLOCKEVENTS 18 select GENERIC_IRQ_SHOW 19 select GENERIC_PCI_IOMAP 20 select GENERIC_SCHED_CLOCK 21 select GENERIC_STRNCPY_FROM_USER if KASAN |
22 select HAVE_ARCH_JUMP_LABEL 23 select HAVE_ARCH_KASAN if MMU | 22 select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL 23 select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL |
24 select HAVE_ARCH_TRACEHOOK 25 select HAVE_DEBUG_KMEMLEAK 26 select HAVE_DMA_CONTIGUOUS 27 select HAVE_EXIT_THREAD 28 select HAVE_FUNCTION_TRACER 29 select HAVE_FUTEX_CMPXCHG if !MMU 30 select HAVE_HW_BREAKPOINT if PERF_EVENTS 31 select HAVE_IRQ_TIME_ACCOUNTING --- 176 unchanged lines hidden (view full) --- 208 bool "Enable CPU hotplug support" 209 depends on SMP 210 help 211 Say Y here to allow turning CPUs off and on. CPUs can be 212 controlled through /sys/devices/system/cpu. 213 214 Say N if you want to disable CPU hotplug. 215 | 24 select HAVE_ARCH_TRACEHOOK 25 select HAVE_DEBUG_KMEMLEAK 26 select HAVE_DMA_CONTIGUOUS 27 select HAVE_EXIT_THREAD 28 select HAVE_FUNCTION_TRACER 29 select HAVE_FUTEX_CMPXCHG if !MMU 30 select HAVE_HW_BREAKPOINT if PERF_EVENTS 31 select HAVE_IRQ_TIME_ACCOUNTING --- 176 unchanged lines hidden (view full) --- 208 bool "Enable CPU hotplug support" 209 depends on SMP 210 help 211 Say Y here to allow turning CPUs off and on. CPUs can be 212 controlled through /sys/devices/system/cpu. 213 214 Say N if you want to disable CPU hotplug. 215 |
216config INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 217 bool "Initialize Xtensa MMU inside the Linux kernel code" 218 depends on !XTENSA_VARIANT_FSF && !XTENSA_VARIANT_DC232B 219 default y if XTENSA_VARIANT_DC233C || XTENSA_VARIANT_CUSTOM 220 help 221 Earlier version initialized the MMU in the exception vector 222 before jumping to _startup in head.S and had an advantage that 223 it was possible to place a software breakpoint at 'reset' and 224 then enter your normal kernel breakpoints once the MMU was mapped 225 to the kernel mappings (0XC0000000). 226 227 This unfortunately won't work for U-Boot and likely also wont 228 work for using KEXEC to have a hot kernel ready for doing a 229 KDUMP. 230 231 So now the MMU is initialized in head.S but it's necessary to 232 use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup. 233 xt-gdb can't place a Software Breakpoint in the 0XD region prior 234 to mapping the MMU and after mapping even if the area of low memory 235 was mapped gdb wouldn't remove the breakpoint on hitting it as the 236 PC wouldn't match. Since Hardware Breakpoints are recommended for 237 Linux configurations it seems reasonable to just assume they exist 238 and leave this older mechanism for unfortunate souls that choose 239 not to follow Tensilica's recommendation. 240 241 Selecting this will cause U-Boot to set the KERNEL Load and Entry 242 address at 0x00003000 instead of the mapped std of 0xD0003000. 243 244 If in doubt, say Y. 245 246config MEMMAP_CACHEATTR 247 hex "Cache attributes for the memory address space" 248 depends on !MMU 249 default 0x22222222 250 help 251 These cache attributes are set up for noMMU systems. Each hex digit 252 specifies cache attributes for the corresponding 512MB memory 253 region: bits 0..3 -- for addresses 0x00000000..0x1fffffff, 254 bits 4..7 -- for addresses 0x20000000..0x3fffffff, and so on. 255 256 Cache attribute values are specific for the MMU type. 257 For region protection MMUs: 258 1: WT cached, 259 2: cache bypass, 260 4: WB cached, 261 f: illegal. 262 For ful MMU: 263 bit 0: executable, 264 bit 1: writable, 265 bits 2..3: 266 0: cache bypass, 267 1: WB cache, 268 2: WT cache, 269 3: special (c and e are illegal, f is reserved). 270 For MPU: 271 0: illegal, 272 1: WB cache, 273 2: WB, no-write-allocate cache, 274 3: WT cache, 275 4: cache bypass. 276 277config KSEG_PADDR 278 hex "Physical address of the KSEG mapping" 279 depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX && MMU 280 default 0x00000000 281 help 282 This is the physical address where KSEG is mapped. Please refer to 283 the chosen KSEG layout help for the required address alignment. 284 Unpacked kernel image (including vectors) must be located completely 285 within KSEG. 286 Physical memory below this address is not available to linux. 287 288 If unsure, leave the default value here. 289 290config KERNEL_LOAD_ADDRESS 291 hex "Kernel load address" 292 default 0x60003000 if !MMU 293 default 0x00003000 if MMU && INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 294 default 0xd0003000 if MMU && !INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 295 help 296 This is the address where the kernel is loaded. 297 It is virtual address for MMUv2 configurations and physical address 298 for all other configurations. 299 300 If unsure, leave the default value here. 301 302config VECTORS_OFFSET 303 hex "Kernel vectors offset" 304 default 0x00003000 305 help 306 This is the offset of the kernel image from the relocatable vectors 307 base. 308 309 If unsure, leave the default value here. 310 311choice 312 prompt "KSEG layout" 313 depends on MMU 314 default XTENSA_KSEG_MMU_V2 315 316config XTENSA_KSEG_MMU_V2 317 bool "MMUv2: 128MB cached + 128MB uncached" 318 help 319 MMUv2 compatible kernel memory map: TLB way 5 maps 128MB starting 320 at KSEG_PADDR to 0xd0000000 with cache and to 0xd8000000 321 without cache. 322 KSEG_PADDR must be aligned to 128MB. 323 324config XTENSA_KSEG_256M 325 bool "256MB cached + 256MB uncached" 326 depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 327 help 328 TLB way 6 maps 256MB starting at KSEG_PADDR to 0xb0000000 329 with cache and to 0xc0000000 without cache. 330 KSEG_PADDR must be aligned to 256MB. 331 332config XTENSA_KSEG_512M 333 bool "512MB cached + 512MB uncached" 334 depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 335 help 336 TLB way 6 maps 512MB starting at KSEG_PADDR to 0xa0000000 337 with cache and to 0xc0000000 without cache. 338 KSEG_PADDR must be aligned to 256MB. 339 340endchoice 341 342config HIGHMEM 343 bool "High Memory Support" 344 depends on MMU 345 help 346 Linux can use the full amount of RAM in the system by 347 default. However, the default MMUv2 setup only maps the 348 lowermost 128 MB of memory linearly to the areas starting 349 at 0xd0000000 (cached) and 0xd8000000 (uncached). 350 When there are more than 128 MB memory in the system not 351 all of it can be "permanently mapped" by the kernel. 352 The physical memory that's not permanently mapped is called 353 "high memory". 354 355 If you are compiling a kernel which will never run on a 356 machine with more than 128 MB total physical RAM, answer 357 N here. 358 359 If unsure, say Y. 360 | |
361config FAST_SYSCALL_XTENSA 362 bool "Enable fast atomic syscalls" 363 default n 364 help 365 fast_syscall_xtensa is a syscall that can make atomic operations 366 on UP kernel when processor has no s32c1i support. 367 368 This syscall is deprecated. It may have issues when called with --- 70 unchanged lines hidden (view full) --- 439 help 440 On some platforms (XT2000, for example), the CPU clock rate can 441 vary. The frequency can be determined, however, by measuring 442 against a well known, fixed frequency, such as an UART oscillator. 443 444config SERIAL_CONSOLE 445 def_bool n 446 | 216config FAST_SYSCALL_XTENSA 217 bool "Enable fast atomic syscalls" 218 default n 219 help 220 fast_syscall_xtensa is a syscall that can make atomic operations 221 on UP kernel when processor has no s32c1i support. 222 223 This syscall is deprecated. It may have issues when called with --- 70 unchanged lines hidden (view full) --- 294 help 295 On some platforms (XT2000, for example), the CPU clock rate can 296 vary. The frequency can be determined, however, by measuring 297 against a well known, fixed frequency, such as an UART oscillator. 298 299config SERIAL_CONSOLE 300 def_bool n 301 |
302config PLATFORM_HAVE_XIP 303 def_bool n 304 |
|
447menu "Platform options" 448 449choice 450 prompt "Xtensa System Type" 451 default XTENSA_PLATFORM_ISS 452 453config XTENSA_PLATFORM_ISS 454 bool "ISS" --- 10 unchanged lines hidden (view full) --- 465 This hardware is capable of running a full Linux distribution. 466 467config XTENSA_PLATFORM_XTFPGA 468 bool "XTFPGA" 469 select ETHOC if ETHERNET 470 select PLATFORM_WANT_DEFAULT_MEM if !MMU 471 select SERIAL_CONSOLE 472 select XTENSA_CALIBRATE_CCOUNT | 305menu "Platform options" 306 307choice 308 prompt "Xtensa System Type" 309 default XTENSA_PLATFORM_ISS 310 311config XTENSA_PLATFORM_ISS 312 bool "ISS" --- 10 unchanged lines hidden (view full) --- 323 This hardware is capable of running a full Linux distribution. 324 325config XTENSA_PLATFORM_XTFPGA 326 bool "XTFPGA" 327 select ETHOC if ETHERNET 328 select PLATFORM_WANT_DEFAULT_MEM if !MMU 329 select SERIAL_CONSOLE 330 select XTENSA_CALIBRATE_CCOUNT |
331 select PLATFORM_HAVE_XIP |
|
473 help 474 XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605). 475 This hardware is capable of running a full Linux distribution. 476 477endchoice 478 479config PLATFORM_NR_IRQS 480 int --- 75 unchanged lines hidden (view full) --- 556config SIMDISK1_FILENAME 557 string "Host filename for the second simulated device" 558 depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1 559 default "" 560 help 561 Another simulated disk in a host file for a buildroot-independent 562 storage. 563 | 332 help 333 XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605). 334 This hardware is capable of running a full Linux distribution. 335 336endchoice 337 338config PLATFORM_NR_IRQS 339 int --- 75 unchanged lines hidden (view full) --- 415config SIMDISK1_FILENAME 416 string "Host filename for the second simulated device" 417 depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1 418 default "" 419 help 420 Another simulated disk in a host file for a buildroot-independent 421 storage. 422 |
564config FORCE_MAX_ZONEORDER 565 int "Maximum zone order" 566 default "11" 567 help 568 The kernel memory allocator divides physically contiguous memory 569 blocks into "zones", where each zone is a power of two number of 570 pages. This option selects the largest power of two that the kernel 571 keeps in the memory allocator. If you need to allocate very large 572 blocks of physically contiguous memory, then you may need to 573 increase this value. 574 575 This config option is actually maximum order plus one. For example, 576 a value of 11 means that the largest free memory block is 2^10 pages. 577 578config PLATFORM_WANT_DEFAULT_MEM 579 def_bool n 580 581config DEFAULT_MEM_START 582 hex 583 prompt "PAGE_OFFSET/PHYS_OFFSET" if !MMU && PLATFORM_WANT_DEFAULT_MEM 584 default 0x60000000 if PLATFORM_WANT_DEFAULT_MEM 585 default 0x00000000 586 help 587 This is the base address used for both PAGE_OFFSET and PHYS_OFFSET 588 in noMMU configurations. 589 590 If unsure, leave the default value here. 591 | |
592config XTFPGA_LCD 593 bool "Enable XTFPGA LCD driver" 594 depends on XTENSA_PLATFORM_XTFPGA 595 default n 596 help 597 There's a 2x16 LCD on most of XTFPGA boards, kernel may output 598 progress messages there during bootup/shutdown. It may be useful 599 during board bringup. --- 14 unchanged lines hidden (view full) --- 614 bool "Use 8-bit access to XTFPGA LCD" 615 depends on XTFPGA_LCD 616 default n 617 help 618 LCD may be connected with 4- or 8-bit interface, 8-bit access may 619 only be used with 8-bit interface. Please consult prototyping user 620 guide for your board for the correct interface width. 621 | 423config XTFPGA_LCD 424 bool "Enable XTFPGA LCD driver" 425 depends on XTENSA_PLATFORM_XTFPGA 426 default n 427 help 428 There's a 2x16 LCD on most of XTFPGA boards, kernel may output 429 progress messages there during bootup/shutdown. It may be useful 430 during board bringup. --- 14 unchanged lines hidden (view full) --- 445 bool "Use 8-bit access to XTFPGA LCD" 446 depends on XTFPGA_LCD 447 default n 448 help 449 LCD may be connected with 4- or 8-bit interface, 8-bit access may 450 only be used with 8-bit interface. Please consult prototyping user 451 guide for your board for the correct interface width. 452 |
453comment "Kernel memory layout" 454 455config INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 456 bool "Initialize Xtensa MMU inside the Linux kernel code" 457 depends on !XTENSA_VARIANT_FSF && !XTENSA_VARIANT_DC232B 458 default y if XTENSA_VARIANT_DC233C || XTENSA_VARIANT_CUSTOM 459 help 460 Earlier version initialized the MMU in the exception vector 461 before jumping to _startup in head.S and had an advantage that 462 it was possible to place a software breakpoint at 'reset' and 463 then enter your normal kernel breakpoints once the MMU was mapped 464 to the kernel mappings (0XC0000000). 465 466 This unfortunately won't work for U-Boot and likely also wont 467 work for using KEXEC to have a hot kernel ready for doing a 468 KDUMP. 469 470 So now the MMU is initialized in head.S but it's necessary to 471 use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup. 472 xt-gdb can't place a Software Breakpoint in the 0XD region prior 473 to mapping the MMU and after mapping even if the area of low memory 474 was mapped gdb wouldn't remove the breakpoint on hitting it as the 475 PC wouldn't match. Since Hardware Breakpoints are recommended for 476 Linux configurations it seems reasonable to just assume they exist 477 and leave this older mechanism for unfortunate souls that choose 478 not to follow Tensilica's recommendation. 479 480 Selecting this will cause U-Boot to set the KERNEL Load and Entry 481 address at 0x00003000 instead of the mapped std of 0xD0003000. 482 483 If in doubt, say Y. 484 485config XIP_KERNEL 486 bool "Kernel Execute-In-Place from ROM" 487 depends on PLATFORM_HAVE_XIP 488 help 489 Execute-In-Place allows the kernel to run from non-volatile storage 490 directly addressable by the CPU, such as NOR flash. This saves RAM 491 space since the text section of the kernel is not loaded from flash 492 to RAM. Read-write sections, such as the data section and stack, 493 are still copied to RAM. The XIP kernel is not compressed since 494 it has to run directly from flash, so it will take more space to 495 store it. The flash address used to link the kernel object files, 496 and for storing it, is configuration dependent. Therefore, if you 497 say Y here, you must know the proper physical address where to 498 store the kernel image depending on your own flash memory usage. 499 500 Also note that the make target becomes "make xipImage" rather than 501 "make Image" or "make uImage". The final kernel binary to put in 502 ROM memory will be arch/xtensa/boot/xipImage. 503 504 If unsure, say N. 505 506config MEMMAP_CACHEATTR 507 hex "Cache attributes for the memory address space" 508 depends on !MMU 509 default 0x22222222 510 help 511 These cache attributes are set up for noMMU systems. Each hex digit 512 specifies cache attributes for the corresponding 512MB memory 513 region: bits 0..3 -- for addresses 0x00000000..0x1fffffff, 514 bits 4..7 -- for addresses 0x20000000..0x3fffffff, and so on. 515 516 Cache attribute values are specific for the MMU type. 517 For region protection MMUs: 518 1: WT cached, 519 2: cache bypass, 520 4: WB cached, 521 f: illegal. 522 For ful MMU: 523 bit 0: executable, 524 bit 1: writable, 525 bits 2..3: 526 0: cache bypass, 527 1: WB cache, 528 2: WT cache, 529 3: special (c and e are illegal, f is reserved). 530 For MPU: 531 0: illegal, 532 1: WB cache, 533 2: WB, no-write-allocate cache, 534 3: WT cache, 535 4: cache bypass. 536 537config KSEG_PADDR 538 hex "Physical address of the KSEG mapping" 539 depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX && MMU 540 default 0x00000000 541 help 542 This is the physical address where KSEG is mapped. Please refer to 543 the chosen KSEG layout help for the required address alignment. 544 Unpacked kernel image (including vectors) must be located completely 545 within KSEG. 546 Physical memory below this address is not available to linux. 547 548 If unsure, leave the default value here. 549 550config KERNEL_VIRTUAL_ADDRESS 551 hex "Kernel virtual address" 552 depends on MMU && XIP_KERNEL 553 default 0xd0003000 554 help 555 This is the virtual address where the XIP kernel is mapped. 556 XIP kernel may be mapped into KSEG or KIO region, virtual address 557 provided here must match kernel load address provided in 558 KERNEL_LOAD_ADDRESS. 559 560config KERNEL_LOAD_ADDRESS 561 hex "Kernel load address" 562 default 0x60003000 if !MMU 563 default 0x00003000 if MMU && INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 564 default 0xd0003000 if MMU && !INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 565 help 566 This is the address where the kernel is loaded. 567 It is virtual address for MMUv2 configurations and physical address 568 for all other configurations. 569 570 If unsure, leave the default value here. 571 572config VECTORS_OFFSET 573 hex "Kernel vectors offset" 574 default 0x00003000 575 depends on !XIP_KERNEL 576 help 577 This is the offset of the kernel image from the relocatable vectors 578 base. 579 580 If unsure, leave the default value here. 581 582config XIP_DATA_ADDR 583 hex "XIP kernel data virtual address" 584 depends on XIP_KERNEL 585 default 0x00000000 586 help 587 This is the virtual address where XIP kernel data is copied. 588 It must be within KSEG if MMU is used. 589 590config PLATFORM_WANT_DEFAULT_MEM 591 def_bool n 592 593config DEFAULT_MEM_START 594 hex 595 prompt "PAGE_OFFSET/PHYS_OFFSET" if !MMU && PLATFORM_WANT_DEFAULT_MEM 596 default 0x60000000 if PLATFORM_WANT_DEFAULT_MEM 597 default 0x00000000 598 help 599 This is the base address used for both PAGE_OFFSET and PHYS_OFFSET 600 in noMMU configurations. 601 602 If unsure, leave the default value here. 603 604choice 605 prompt "KSEG layout" 606 depends on MMU 607 default XTENSA_KSEG_MMU_V2 608 609config XTENSA_KSEG_MMU_V2 610 bool "MMUv2: 128MB cached + 128MB uncached" 611 help 612 MMUv2 compatible kernel memory map: TLB way 5 maps 128MB starting 613 at KSEG_PADDR to 0xd0000000 with cache and to 0xd8000000 614 without cache. 615 KSEG_PADDR must be aligned to 128MB. 616 617config XTENSA_KSEG_256M 618 bool "256MB cached + 256MB uncached" 619 depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 620 help 621 TLB way 6 maps 256MB starting at KSEG_PADDR to 0xb0000000 622 with cache and to 0xc0000000 without cache. 623 KSEG_PADDR must be aligned to 256MB. 624 625config XTENSA_KSEG_512M 626 bool "512MB cached + 512MB uncached" 627 depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 628 help 629 TLB way 6 maps 512MB starting at KSEG_PADDR to 0xa0000000 630 with cache and to 0xc0000000 without cache. 631 KSEG_PADDR must be aligned to 256MB. 632 633endchoice 634 635config HIGHMEM 636 bool "High Memory Support" 637 depends on MMU 638 help 639 Linux can use the full amount of RAM in the system by 640 default. However, the default MMUv2 setup only maps the 641 lowermost 128 MB of memory linearly to the areas starting 642 at 0xd0000000 (cached) and 0xd8000000 (uncached). 643 When there are more than 128 MB memory in the system not 644 all of it can be "permanently mapped" by the kernel. 645 The physical memory that's not permanently mapped is called 646 "high memory". 647 648 If you are compiling a kernel which will never run on a 649 machine with more than 128 MB total physical RAM, answer 650 N here. 651 652 If unsure, say Y. 653 654config FORCE_MAX_ZONEORDER 655 int "Maximum zone order" 656 default "11" 657 help 658 The kernel memory allocator divides physically contiguous memory 659 blocks into "zones", where each zone is a power of two number of 660 pages. This option selects the largest power of two that the kernel 661 keeps in the memory allocator. If you need to allocate very large 662 blocks of physically contiguous memory, then you may need to 663 increase this value. 664 665 This config option is actually maximum order plus one. For example, 666 a value of 11 means that the largest free memory block is 2^10 pages. 667 |
|
622endmenu 623 624menu "Power management options" 625 626source "kernel/power/Kconfig" 627 628endmenu | 668endmenu 669 670menu "Power management options" 671 672source "kernel/power/Kconfig" 673 674endmenu |