18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ciconfig XTENSA 38c2ecf20Sopenharmony_ci def_bool y 48c2ecf20Sopenharmony_ci select ARCH_32BIT_OFF_T 58c2ecf20Sopenharmony_ci select ARCH_HAS_BINFMT_FLAT if !MMU 68c2ecf20Sopenharmony_ci select ARCH_HAS_DMA_PREP_COHERENT if MMU 78c2ecf20Sopenharmony_ci select ARCH_HAS_SYNC_DMA_FOR_CPU if MMU 88c2ecf20Sopenharmony_ci select ARCH_HAS_SYNC_DMA_FOR_DEVICE if MMU 98c2ecf20Sopenharmony_ci select ARCH_HAS_DMA_SET_UNCACHED if MMU 108c2ecf20Sopenharmony_ci select ARCH_USE_QUEUED_RWLOCKS 118c2ecf20Sopenharmony_ci select ARCH_USE_QUEUED_SPINLOCKS 128c2ecf20Sopenharmony_ci select ARCH_WANT_FRAME_POINTERS 138c2ecf20Sopenharmony_ci select ARCH_WANT_IPC_PARSE_VERSION 148c2ecf20Sopenharmony_ci select BUILDTIME_TABLE_SORT 158c2ecf20Sopenharmony_ci select CLONE_BACKWARDS 168c2ecf20Sopenharmony_ci select COMMON_CLK 178c2ecf20Sopenharmony_ci select DMA_REMAP if MMU 188c2ecf20Sopenharmony_ci select GENERIC_ATOMIC64 198c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 208c2ecf20Sopenharmony_ci select GENERIC_IRQ_SHOW 218c2ecf20Sopenharmony_ci select GENERIC_PCI_IOMAP 228c2ecf20Sopenharmony_ci select GENERIC_SCHED_CLOCK 238c2ecf20Sopenharmony_ci select GENERIC_STRNCPY_FROM_USER if KASAN 248c2ecf20Sopenharmony_ci select HAVE_ARCH_AUDITSYSCALL 258c2ecf20Sopenharmony_ci select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL 268c2ecf20Sopenharmony_ci select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL 278c2ecf20Sopenharmony_ci select HAVE_ARCH_SECCOMP_FILTER 288c2ecf20Sopenharmony_ci select HAVE_ARCH_TRACEHOOK 298c2ecf20Sopenharmony_ci select HAVE_DEBUG_KMEMLEAK 308c2ecf20Sopenharmony_ci select HAVE_DMA_CONTIGUOUS 318c2ecf20Sopenharmony_ci select HAVE_EXIT_THREAD 328c2ecf20Sopenharmony_ci select HAVE_FUNCTION_TRACER 338c2ecf20Sopenharmony_ci select HAVE_FUTEX_CMPXCHG if !MMU && FUTEX 348c2ecf20Sopenharmony_ci select HAVE_HW_BREAKPOINT if PERF_EVENTS 358c2ecf20Sopenharmony_ci select HAVE_IRQ_TIME_ACCOUNTING 368c2ecf20Sopenharmony_ci select HAVE_OPROFILE 378c2ecf20Sopenharmony_ci select HAVE_PCI 388c2ecf20Sopenharmony_ci select HAVE_PERF_EVENTS 398c2ecf20Sopenharmony_ci select HAVE_STACKPROTECTOR 408c2ecf20Sopenharmony_ci select HAVE_SYSCALL_TRACEPOINTS 418c2ecf20Sopenharmony_ci select IRQ_DOMAIN 428c2ecf20Sopenharmony_ci select MODULES_USE_ELF_RELA 438c2ecf20Sopenharmony_ci select PERF_USE_VMALLOC 448c2ecf20Sopenharmony_ci select SET_FS 458c2ecf20Sopenharmony_ci select VIRT_TO_BUS 468c2ecf20Sopenharmony_ci help 478c2ecf20Sopenharmony_ci Xtensa processors are 32-bit RISC machines designed by Tensilica 488c2ecf20Sopenharmony_ci primarily for embedded systems. These processors are both 498c2ecf20Sopenharmony_ci configurable and extensible. The Linux port to the Xtensa 508c2ecf20Sopenharmony_ci architecture supports all processor configurations and extensions, 518c2ecf20Sopenharmony_ci with reasonable minimum requirements. The Xtensa Linux project has 528c2ecf20Sopenharmony_ci a home page at <http://www.linux-xtensa.org/>. 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ciconfig GENERIC_HWEIGHT 558c2ecf20Sopenharmony_ci def_bool y 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ciconfig ARCH_HAS_ILOG2_U32 588c2ecf20Sopenharmony_ci def_bool n 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ciconfig ARCH_HAS_ILOG2_U64 618c2ecf20Sopenharmony_ci def_bool n 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ciconfig NO_IOPORT_MAP 648c2ecf20Sopenharmony_ci def_bool n 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ciconfig HZ 678c2ecf20Sopenharmony_ci int 688c2ecf20Sopenharmony_ci default 100 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ciconfig LOCKDEP_SUPPORT 718c2ecf20Sopenharmony_ci def_bool y 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ciconfig STACKTRACE_SUPPORT 748c2ecf20Sopenharmony_ci def_bool y 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciconfig TRACE_IRQFLAGS_SUPPORT 778c2ecf20Sopenharmony_ci def_bool y 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ciconfig MMU 808c2ecf20Sopenharmony_ci def_bool n 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ciconfig HAVE_XTENSA_GPIO32 838c2ecf20Sopenharmony_ci def_bool n 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ciconfig KASAN_SHADOW_OFFSET 868c2ecf20Sopenharmony_ci hex 878c2ecf20Sopenharmony_ci default 0x6e400000 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_cimenu "Processor type and features" 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_cichoice 928c2ecf20Sopenharmony_ci prompt "Xtensa Processor Configuration" 938c2ecf20Sopenharmony_ci default XTENSA_VARIANT_FSF 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_FSF 968c2ecf20Sopenharmony_ci bool "fsf - default (not generic) configuration" 978c2ecf20Sopenharmony_ci select MMU 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_DC232B 1008c2ecf20Sopenharmony_ci bool "dc232b - Diamond 232L Standard Core Rev.B (LE)" 1018c2ecf20Sopenharmony_ci select MMU 1028c2ecf20Sopenharmony_ci select HAVE_XTENSA_GPIO32 1038c2ecf20Sopenharmony_ci help 1048c2ecf20Sopenharmony_ci This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE). 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_DC233C 1078c2ecf20Sopenharmony_ci bool "dc233c - Diamond 233L Standard Core Rev.C (LE)" 1088c2ecf20Sopenharmony_ci select MMU 1098c2ecf20Sopenharmony_ci select HAVE_XTENSA_GPIO32 1108c2ecf20Sopenharmony_ci help 1118c2ecf20Sopenharmony_ci This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE). 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_CUSTOM 1148c2ecf20Sopenharmony_ci bool "Custom Xtensa processor configuration" 1158c2ecf20Sopenharmony_ci select HAVE_XTENSA_GPIO32 1168c2ecf20Sopenharmony_ci help 1178c2ecf20Sopenharmony_ci Select this variant to use a custom Xtensa processor configuration. 1188c2ecf20Sopenharmony_ci You will be prompted for a processor variant CORENAME. 1198c2ecf20Sopenharmony_ciendchoice 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_CUSTOM_NAME 1228c2ecf20Sopenharmony_ci string "Xtensa Processor Custom Core Variant Name" 1238c2ecf20Sopenharmony_ci depends on XTENSA_VARIANT_CUSTOM 1248c2ecf20Sopenharmony_ci help 1258c2ecf20Sopenharmony_ci Provide the name of a custom Xtensa processor variant. 1268c2ecf20Sopenharmony_ci This CORENAME selects arch/xtensa/variant/CORENAME. 1278c2ecf20Sopenharmony_ci Don't forget you have to select MMU if you have one. 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_NAME 1308c2ecf20Sopenharmony_ci string 1318c2ecf20Sopenharmony_ci default "dc232b" if XTENSA_VARIANT_DC232B 1328c2ecf20Sopenharmony_ci default "dc233c" if XTENSA_VARIANT_DC233C 1338c2ecf20Sopenharmony_ci default "fsf" if XTENSA_VARIANT_FSF 1348c2ecf20Sopenharmony_ci default XTENSA_VARIANT_CUSTOM_NAME if XTENSA_VARIANT_CUSTOM 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_MMU 1378c2ecf20Sopenharmony_ci bool "Core variant has a Full MMU (TLB, Pages, Protection, etc)" 1388c2ecf20Sopenharmony_ci depends on XTENSA_VARIANT_CUSTOM 1398c2ecf20Sopenharmony_ci default y 1408c2ecf20Sopenharmony_ci select MMU 1418c2ecf20Sopenharmony_ci help 1428c2ecf20Sopenharmony_ci Build a Conventional Kernel with full MMU support, 1438c2ecf20Sopenharmony_ci ie: it supports a TLB with auto-loading, page protection. 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_HAVE_PERF_EVENTS 1468c2ecf20Sopenharmony_ci bool "Core variant has Performance Monitor Module" 1478c2ecf20Sopenharmony_ci depends on XTENSA_VARIANT_CUSTOM 1488c2ecf20Sopenharmony_ci default n 1498c2ecf20Sopenharmony_ci help 1508c2ecf20Sopenharmony_ci Enable if core variant has Performance Monitor Module with 1518c2ecf20Sopenharmony_ci External Registers Interface. 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ci If unsure, say N. 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ciconfig XTENSA_FAKE_NMI 1568c2ecf20Sopenharmony_ci bool "Treat PMM IRQ as NMI" 1578c2ecf20Sopenharmony_ci depends on XTENSA_VARIANT_HAVE_PERF_EVENTS 1588c2ecf20Sopenharmony_ci default n 1598c2ecf20Sopenharmony_ci help 1608c2ecf20Sopenharmony_ci If PMM IRQ is the only IRQ at EXCM level it is safe to 1618c2ecf20Sopenharmony_ci treat it as NMI, which improves accuracy of profiling. 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ci If there are other interrupts at or above PMM IRQ priority level 1648c2ecf20Sopenharmony_ci but not above the EXCM level, PMM IRQ still may be treated as NMI, 1658c2ecf20Sopenharmony_ci but only if these IRQs are not used. There will be a build warning 1668c2ecf20Sopenharmony_ci saying that this is not safe, and a bugcheck if one of these IRQs 1678c2ecf20Sopenharmony_ci actually fire. 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci If unsure, say N. 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ciconfig XTENSA_UNALIGNED_USER 1728c2ecf20Sopenharmony_ci bool "Unaligned memory access in user space" 1738c2ecf20Sopenharmony_ci help 1748c2ecf20Sopenharmony_ci The Xtensa architecture currently does not handle unaligned 1758c2ecf20Sopenharmony_ci memory accesses in hardware but through an exception handler. 1768c2ecf20Sopenharmony_ci Per default, unaligned memory accesses are disabled in user space. 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci Say Y here to enable unaligned memory access in user space. 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ciconfig HAVE_SMP 1818c2ecf20Sopenharmony_ci bool "System Supports SMP (MX)" 1828c2ecf20Sopenharmony_ci depends on XTENSA_VARIANT_CUSTOM 1838c2ecf20Sopenharmony_ci select XTENSA_MX 1848c2ecf20Sopenharmony_ci help 1858c2ecf20Sopenharmony_ci This option is used to indicate that the system-on-a-chip (SOC) 1868c2ecf20Sopenharmony_ci supports Multiprocessing. Multiprocessor support implemented above 1878c2ecf20Sopenharmony_ci the CPU core definition and currently needs to be selected manually. 1888c2ecf20Sopenharmony_ci 1898c2ecf20Sopenharmony_ci Multiprocessor support is implemented with external cache and 1908c2ecf20Sopenharmony_ci interrupt controllers. 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci The MX interrupt distributer adds Interprocessor Interrupts 1938c2ecf20Sopenharmony_ci and causes the IRQ numbers to be increased by 4 for devices 1948c2ecf20Sopenharmony_ci like the open cores ethernet driver and the serial interface. 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci You still have to select "Enable SMP" to enable SMP on this SOC. 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_ciconfig SMP 1998c2ecf20Sopenharmony_ci bool "Enable Symmetric multi-processing support" 2008c2ecf20Sopenharmony_ci depends on HAVE_SMP 2018c2ecf20Sopenharmony_ci select GENERIC_SMP_IDLE_THREAD 2028c2ecf20Sopenharmony_ci help 2038c2ecf20Sopenharmony_ci Enabled SMP Software; allows more than one CPU/CORE 2048c2ecf20Sopenharmony_ci to be activated during startup. 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ciconfig NR_CPUS 2078c2ecf20Sopenharmony_ci depends on SMP 2088c2ecf20Sopenharmony_ci int "Maximum number of CPUs (2-32)" 2098c2ecf20Sopenharmony_ci range 2 32 2108c2ecf20Sopenharmony_ci default "4" 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ciconfig HOTPLUG_CPU 2138c2ecf20Sopenharmony_ci bool "Enable CPU hotplug support" 2148c2ecf20Sopenharmony_ci depends on SMP 2158c2ecf20Sopenharmony_ci help 2168c2ecf20Sopenharmony_ci Say Y here to allow turning CPUs off and on. CPUs can be 2178c2ecf20Sopenharmony_ci controlled through /sys/devices/system/cpu. 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ci Say N if you want to disable CPU hotplug. 2208c2ecf20Sopenharmony_ci 2218c2ecf20Sopenharmony_ciconfig FAST_SYSCALL_XTENSA 2228c2ecf20Sopenharmony_ci bool "Enable fast atomic syscalls" 2238c2ecf20Sopenharmony_ci default n 2248c2ecf20Sopenharmony_ci help 2258c2ecf20Sopenharmony_ci fast_syscall_xtensa is a syscall that can make atomic operations 2268c2ecf20Sopenharmony_ci on UP kernel when processor has no s32c1i support. 2278c2ecf20Sopenharmony_ci 2288c2ecf20Sopenharmony_ci This syscall is deprecated. It may have issues when called with 2298c2ecf20Sopenharmony_ci invalid arguments. It is provided only for backwards compatibility. 2308c2ecf20Sopenharmony_ci Only enable it if your userspace software requires it. 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_ci If unsure, say N. 2338c2ecf20Sopenharmony_ci 2348c2ecf20Sopenharmony_ciconfig FAST_SYSCALL_SPILL_REGISTERS 2358c2ecf20Sopenharmony_ci bool "Enable spill registers syscall" 2368c2ecf20Sopenharmony_ci default n 2378c2ecf20Sopenharmony_ci help 2388c2ecf20Sopenharmony_ci fast_syscall_spill_registers is a syscall that spills all active 2398c2ecf20Sopenharmony_ci register windows of a calling userspace task onto its stack. 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_ci This syscall is deprecated. It may have issues when called with 2428c2ecf20Sopenharmony_ci invalid arguments. It is provided only for backwards compatibility. 2438c2ecf20Sopenharmony_ci Only enable it if your userspace software requires it. 2448c2ecf20Sopenharmony_ci 2458c2ecf20Sopenharmony_ci If unsure, say N. 2468c2ecf20Sopenharmony_ci 2478c2ecf20Sopenharmony_ciconfig USER_ABI_CALL0 2488c2ecf20Sopenharmony_ci bool 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_cichoice 2518c2ecf20Sopenharmony_ci prompt "Userspace ABI" 2528c2ecf20Sopenharmony_ci default USER_ABI_DEFAULT 2538c2ecf20Sopenharmony_ci help 2548c2ecf20Sopenharmony_ci Select supported userspace ABI. 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ci If unsure, choose the default ABI. 2578c2ecf20Sopenharmony_ci 2588c2ecf20Sopenharmony_ciconfig USER_ABI_DEFAULT 2598c2ecf20Sopenharmony_ci bool "Default ABI only" 2608c2ecf20Sopenharmony_ci help 2618c2ecf20Sopenharmony_ci Assume default userspace ABI. For XEA2 cores it is windowed ABI. 2628c2ecf20Sopenharmony_ci call0 ABI binaries may be run on such kernel, but signal delivery 2638c2ecf20Sopenharmony_ci will not work correctly for them. 2648c2ecf20Sopenharmony_ci 2658c2ecf20Sopenharmony_ciconfig USER_ABI_CALL0_ONLY 2668c2ecf20Sopenharmony_ci bool "Call0 ABI only" 2678c2ecf20Sopenharmony_ci select USER_ABI_CALL0 2688c2ecf20Sopenharmony_ci help 2698c2ecf20Sopenharmony_ci Select this option to support only call0 ABI in userspace. 2708c2ecf20Sopenharmony_ci Windowed ABI binaries will crash with a segfault caused by 2718c2ecf20Sopenharmony_ci an illegal instruction exception on the first 'entry' opcode. 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci Choose this option if you're planning to run only user code 2748c2ecf20Sopenharmony_ci built with call0 ABI. 2758c2ecf20Sopenharmony_ci 2768c2ecf20Sopenharmony_ciconfig USER_ABI_CALL0_PROBE 2778c2ecf20Sopenharmony_ci bool "Support both windowed and call0 ABI by probing" 2788c2ecf20Sopenharmony_ci select USER_ABI_CALL0 2798c2ecf20Sopenharmony_ci help 2808c2ecf20Sopenharmony_ci Select this option to support both windowed and call0 userspace 2818c2ecf20Sopenharmony_ci ABIs. When enabled all processes are started with PS.WOE disabled 2828c2ecf20Sopenharmony_ci and a fast user exception handler for an illegal instruction is 2838c2ecf20Sopenharmony_ci used to turn on PS.WOE bit on the first 'entry' opcode executed by 2848c2ecf20Sopenharmony_ci the userspace. 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ci This option should be enabled for the kernel that must support 2878c2ecf20Sopenharmony_ci both call0 and windowed ABIs in userspace at the same time. 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci Note that Xtensa ISA does not guarantee that entry opcode will 2908c2ecf20Sopenharmony_ci raise an illegal instruction exception on cores with XEA2 when 2918c2ecf20Sopenharmony_ci PS.WOE is disabled, check whether the target core supports it. 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ciendchoice 2948c2ecf20Sopenharmony_ci 2958c2ecf20Sopenharmony_ciendmenu 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ciconfig XTENSA_CALIBRATE_CCOUNT 2988c2ecf20Sopenharmony_ci def_bool n 2998c2ecf20Sopenharmony_ci help 3008c2ecf20Sopenharmony_ci On some platforms (XT2000, for example), the CPU clock rate can 3018c2ecf20Sopenharmony_ci vary. The frequency can be determined, however, by measuring 3028c2ecf20Sopenharmony_ci against a well known, fixed frequency, such as an UART oscillator. 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ciconfig SERIAL_CONSOLE 3058c2ecf20Sopenharmony_ci def_bool n 3068c2ecf20Sopenharmony_ci 3078c2ecf20Sopenharmony_ciconfig PLATFORM_HAVE_XIP 3088c2ecf20Sopenharmony_ci def_bool n 3098c2ecf20Sopenharmony_ci 3108c2ecf20Sopenharmony_cimenu "Platform options" 3118c2ecf20Sopenharmony_ci 3128c2ecf20Sopenharmony_cichoice 3138c2ecf20Sopenharmony_ci prompt "Xtensa System Type" 3148c2ecf20Sopenharmony_ci default XTENSA_PLATFORM_ISS 3158c2ecf20Sopenharmony_ci 3168c2ecf20Sopenharmony_ciconfig XTENSA_PLATFORM_ISS 3178c2ecf20Sopenharmony_ci bool "ISS" 3188c2ecf20Sopenharmony_ci select XTENSA_CALIBRATE_CCOUNT 3198c2ecf20Sopenharmony_ci select SERIAL_CONSOLE 3208c2ecf20Sopenharmony_ci help 3218c2ecf20Sopenharmony_ci ISS is an acronym for Tensilica's Instruction Set Simulator. 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ciconfig XTENSA_PLATFORM_XT2000 3248c2ecf20Sopenharmony_ci bool "XT2000" 3258c2ecf20Sopenharmony_ci select HAVE_IDE 3268c2ecf20Sopenharmony_ci help 3278c2ecf20Sopenharmony_ci XT2000 is the name of Tensilica's feature-rich emulation platform. 3288c2ecf20Sopenharmony_ci This hardware is capable of running a full Linux distribution. 3298c2ecf20Sopenharmony_ci 3308c2ecf20Sopenharmony_ciconfig XTENSA_PLATFORM_XTFPGA 3318c2ecf20Sopenharmony_ci bool "XTFPGA" 3328c2ecf20Sopenharmony_ci select ETHOC if ETHERNET 3338c2ecf20Sopenharmony_ci select PLATFORM_WANT_DEFAULT_MEM if !MMU 3348c2ecf20Sopenharmony_ci select SERIAL_CONSOLE 3358c2ecf20Sopenharmony_ci select XTENSA_CALIBRATE_CCOUNT 3368c2ecf20Sopenharmony_ci select PLATFORM_HAVE_XIP 3378c2ecf20Sopenharmony_ci help 3388c2ecf20Sopenharmony_ci XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605). 3398c2ecf20Sopenharmony_ci This hardware is capable of running a full Linux distribution. 3408c2ecf20Sopenharmony_ci 3418c2ecf20Sopenharmony_ciendchoice 3428c2ecf20Sopenharmony_ci 3438c2ecf20Sopenharmony_ciconfig PLATFORM_NR_IRQS 3448c2ecf20Sopenharmony_ci int 3458c2ecf20Sopenharmony_ci default 3 if XTENSA_PLATFORM_XT2000 3468c2ecf20Sopenharmony_ci default 0 3478c2ecf20Sopenharmony_ci 3488c2ecf20Sopenharmony_ciconfig XTENSA_CPU_CLOCK 3498c2ecf20Sopenharmony_ci int "CPU clock rate [MHz]" 3508c2ecf20Sopenharmony_ci depends on !XTENSA_CALIBRATE_CCOUNT 3518c2ecf20Sopenharmony_ci default 16 3528c2ecf20Sopenharmony_ci 3538c2ecf20Sopenharmony_ciconfig GENERIC_CALIBRATE_DELAY 3548c2ecf20Sopenharmony_ci bool "Auto calibration of the BogoMIPS value" 3558c2ecf20Sopenharmony_ci help 3568c2ecf20Sopenharmony_ci The BogoMIPS value can easily be derived from the CPU frequency. 3578c2ecf20Sopenharmony_ci 3588c2ecf20Sopenharmony_ciconfig CMDLINE_BOOL 3598c2ecf20Sopenharmony_ci bool "Default bootloader kernel arguments" 3608c2ecf20Sopenharmony_ci 3618c2ecf20Sopenharmony_ciconfig CMDLINE 3628c2ecf20Sopenharmony_ci string "Initial kernel command string" 3638c2ecf20Sopenharmony_ci depends on CMDLINE_BOOL 3648c2ecf20Sopenharmony_ci default "console=ttyS0,38400 root=/dev/ram" 3658c2ecf20Sopenharmony_ci help 3668c2ecf20Sopenharmony_ci On some architectures (EBSA110 and CATS), there is currently no way 3678c2ecf20Sopenharmony_ci for the boot loader to pass arguments to the kernel. For these 3688c2ecf20Sopenharmony_ci architectures, you should supply some command-line options at build 3698c2ecf20Sopenharmony_ci time by entering them here. As a minimum, you should specify the 3708c2ecf20Sopenharmony_ci memory size and the root device (e.g., mem=64M root=/dev/nfs). 3718c2ecf20Sopenharmony_ci 3728c2ecf20Sopenharmony_ciconfig USE_OF 3738c2ecf20Sopenharmony_ci bool "Flattened Device Tree support" 3748c2ecf20Sopenharmony_ci select OF 3758c2ecf20Sopenharmony_ci select OF_EARLY_FLATTREE 3768c2ecf20Sopenharmony_ci help 3778c2ecf20Sopenharmony_ci Include support for flattened device tree machine descriptions. 3788c2ecf20Sopenharmony_ci 3798c2ecf20Sopenharmony_ciconfig BUILTIN_DTB_SOURCE 3808c2ecf20Sopenharmony_ci string "DTB to build into the kernel image" 3818c2ecf20Sopenharmony_ci depends on OF 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_ciconfig PARSE_BOOTPARAM 3848c2ecf20Sopenharmony_ci bool "Parse bootparam block" 3858c2ecf20Sopenharmony_ci default y 3868c2ecf20Sopenharmony_ci help 3878c2ecf20Sopenharmony_ci Parse parameters passed to the kernel from the bootloader. It may 3888c2ecf20Sopenharmony_ci be disabled if the kernel is known to run without the bootloader. 3898c2ecf20Sopenharmony_ci 3908c2ecf20Sopenharmony_ci If unsure, say Y. 3918c2ecf20Sopenharmony_ci 3928c2ecf20Sopenharmony_ciconfig BLK_DEV_SIMDISK 3938c2ecf20Sopenharmony_ci tristate "Host file-based simulated block device support" 3948c2ecf20Sopenharmony_ci default n 3958c2ecf20Sopenharmony_ci depends on XTENSA_PLATFORM_ISS && BLOCK 3968c2ecf20Sopenharmony_ci help 3978c2ecf20Sopenharmony_ci Create block devices that map to files in the host file system. 3988c2ecf20Sopenharmony_ci Device binding to host file may be changed at runtime via proc 3998c2ecf20Sopenharmony_ci interface provided the device is not in use. 4008c2ecf20Sopenharmony_ci 4018c2ecf20Sopenharmony_ciconfig BLK_DEV_SIMDISK_COUNT 4028c2ecf20Sopenharmony_ci int "Number of host file-based simulated block devices" 4038c2ecf20Sopenharmony_ci range 1 10 4048c2ecf20Sopenharmony_ci depends on BLK_DEV_SIMDISK 4058c2ecf20Sopenharmony_ci default 2 4068c2ecf20Sopenharmony_ci help 4078c2ecf20Sopenharmony_ci This is the default minimal number of created block devices. 4088c2ecf20Sopenharmony_ci Kernel/module parameter 'simdisk_count' may be used to change this 4098c2ecf20Sopenharmony_ci value at runtime. More file names (but no more than 10) may be 4108c2ecf20Sopenharmony_ci specified as parameters, simdisk_count grows accordingly. 4118c2ecf20Sopenharmony_ci 4128c2ecf20Sopenharmony_ciconfig SIMDISK0_FILENAME 4138c2ecf20Sopenharmony_ci string "Host filename for the first simulated device" 4148c2ecf20Sopenharmony_ci depends on BLK_DEV_SIMDISK = y 4158c2ecf20Sopenharmony_ci default "" 4168c2ecf20Sopenharmony_ci help 4178c2ecf20Sopenharmony_ci Attach a first simdisk to a host file. Conventionally, this file 4188c2ecf20Sopenharmony_ci contains a root file system. 4198c2ecf20Sopenharmony_ci 4208c2ecf20Sopenharmony_ciconfig SIMDISK1_FILENAME 4218c2ecf20Sopenharmony_ci string "Host filename for the second simulated device" 4228c2ecf20Sopenharmony_ci depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1 4238c2ecf20Sopenharmony_ci default "" 4248c2ecf20Sopenharmony_ci help 4258c2ecf20Sopenharmony_ci Another simulated disk in a host file for a buildroot-independent 4268c2ecf20Sopenharmony_ci storage. 4278c2ecf20Sopenharmony_ci 4288c2ecf20Sopenharmony_ciconfig XTFPGA_LCD 4298c2ecf20Sopenharmony_ci bool "Enable XTFPGA LCD driver" 4308c2ecf20Sopenharmony_ci depends on XTENSA_PLATFORM_XTFPGA 4318c2ecf20Sopenharmony_ci default n 4328c2ecf20Sopenharmony_ci help 4338c2ecf20Sopenharmony_ci There's a 2x16 LCD on most of XTFPGA boards, kernel may output 4348c2ecf20Sopenharmony_ci progress messages there during bootup/shutdown. It may be useful 4358c2ecf20Sopenharmony_ci during board bringup. 4368c2ecf20Sopenharmony_ci 4378c2ecf20Sopenharmony_ci If unsure, say N. 4388c2ecf20Sopenharmony_ci 4398c2ecf20Sopenharmony_ciconfig XTFPGA_LCD_BASE_ADDR 4408c2ecf20Sopenharmony_ci hex "XTFPGA LCD base address" 4418c2ecf20Sopenharmony_ci depends on XTFPGA_LCD 4428c2ecf20Sopenharmony_ci default "0x0d0c0000" 4438c2ecf20Sopenharmony_ci help 4448c2ecf20Sopenharmony_ci Base address of the LCD controller inside KIO region. 4458c2ecf20Sopenharmony_ci Different boards from XTFPGA family have LCD controller at different 4468c2ecf20Sopenharmony_ci addresses. Please consult prototyping user guide for your board for 4478c2ecf20Sopenharmony_ci the correct address. Wrong address here may lead to hardware lockup. 4488c2ecf20Sopenharmony_ci 4498c2ecf20Sopenharmony_ciconfig XTFPGA_LCD_8BIT_ACCESS 4508c2ecf20Sopenharmony_ci bool "Use 8-bit access to XTFPGA LCD" 4518c2ecf20Sopenharmony_ci depends on XTFPGA_LCD 4528c2ecf20Sopenharmony_ci default n 4538c2ecf20Sopenharmony_ci help 4548c2ecf20Sopenharmony_ci LCD may be connected with 4- or 8-bit interface, 8-bit access may 4558c2ecf20Sopenharmony_ci only be used with 8-bit interface. Please consult prototyping user 4568c2ecf20Sopenharmony_ci guide for your board for the correct interface width. 4578c2ecf20Sopenharmony_ci 4588c2ecf20Sopenharmony_cicomment "Kernel memory layout" 4598c2ecf20Sopenharmony_ci 4608c2ecf20Sopenharmony_ciconfig INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 4618c2ecf20Sopenharmony_ci bool "Initialize Xtensa MMU inside the Linux kernel code" 4628c2ecf20Sopenharmony_ci depends on !XTENSA_VARIANT_FSF && !XTENSA_VARIANT_DC232B 4638c2ecf20Sopenharmony_ci default y if XTENSA_VARIANT_DC233C || XTENSA_VARIANT_CUSTOM 4648c2ecf20Sopenharmony_ci help 4658c2ecf20Sopenharmony_ci Earlier version initialized the MMU in the exception vector 4668c2ecf20Sopenharmony_ci before jumping to _startup in head.S and had an advantage that 4678c2ecf20Sopenharmony_ci it was possible to place a software breakpoint at 'reset' and 4688c2ecf20Sopenharmony_ci then enter your normal kernel breakpoints once the MMU was mapped 4698c2ecf20Sopenharmony_ci to the kernel mappings (0XC0000000). 4708c2ecf20Sopenharmony_ci 4718c2ecf20Sopenharmony_ci This unfortunately won't work for U-Boot and likely also wont 4728c2ecf20Sopenharmony_ci work for using KEXEC to have a hot kernel ready for doing a 4738c2ecf20Sopenharmony_ci KDUMP. 4748c2ecf20Sopenharmony_ci 4758c2ecf20Sopenharmony_ci So now the MMU is initialized in head.S but it's necessary to 4768c2ecf20Sopenharmony_ci use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup. 4778c2ecf20Sopenharmony_ci xt-gdb can't place a Software Breakpoint in the 0XD region prior 4788c2ecf20Sopenharmony_ci to mapping the MMU and after mapping even if the area of low memory 4798c2ecf20Sopenharmony_ci was mapped gdb wouldn't remove the breakpoint on hitting it as the 4808c2ecf20Sopenharmony_ci PC wouldn't match. Since Hardware Breakpoints are recommended for 4818c2ecf20Sopenharmony_ci Linux configurations it seems reasonable to just assume they exist 4828c2ecf20Sopenharmony_ci and leave this older mechanism for unfortunate souls that choose 4838c2ecf20Sopenharmony_ci not to follow Tensilica's recommendation. 4848c2ecf20Sopenharmony_ci 4858c2ecf20Sopenharmony_ci Selecting this will cause U-Boot to set the KERNEL Load and Entry 4868c2ecf20Sopenharmony_ci address at 0x00003000 instead of the mapped std of 0xD0003000. 4878c2ecf20Sopenharmony_ci 4888c2ecf20Sopenharmony_ci If in doubt, say Y. 4898c2ecf20Sopenharmony_ci 4908c2ecf20Sopenharmony_ciconfig XIP_KERNEL 4918c2ecf20Sopenharmony_ci bool "Kernel Execute-In-Place from ROM" 4928c2ecf20Sopenharmony_ci depends on PLATFORM_HAVE_XIP 4938c2ecf20Sopenharmony_ci help 4948c2ecf20Sopenharmony_ci Execute-In-Place allows the kernel to run from non-volatile storage 4958c2ecf20Sopenharmony_ci directly addressable by the CPU, such as NOR flash. This saves RAM 4968c2ecf20Sopenharmony_ci space since the text section of the kernel is not loaded from flash 4978c2ecf20Sopenharmony_ci to RAM. Read-write sections, such as the data section and stack, 4988c2ecf20Sopenharmony_ci are still copied to RAM. The XIP kernel is not compressed since 4998c2ecf20Sopenharmony_ci it has to run directly from flash, so it will take more space to 5008c2ecf20Sopenharmony_ci store it. The flash address used to link the kernel object files, 5018c2ecf20Sopenharmony_ci and for storing it, is configuration dependent. Therefore, if you 5028c2ecf20Sopenharmony_ci say Y here, you must know the proper physical address where to 5038c2ecf20Sopenharmony_ci store the kernel image depending on your own flash memory usage. 5048c2ecf20Sopenharmony_ci 5058c2ecf20Sopenharmony_ci Also note that the make target becomes "make xipImage" rather than 5068c2ecf20Sopenharmony_ci "make Image" or "make uImage". The final kernel binary to put in 5078c2ecf20Sopenharmony_ci ROM memory will be arch/xtensa/boot/xipImage. 5088c2ecf20Sopenharmony_ci 5098c2ecf20Sopenharmony_ci If unsure, say N. 5108c2ecf20Sopenharmony_ci 5118c2ecf20Sopenharmony_ciconfig MEMMAP_CACHEATTR 5128c2ecf20Sopenharmony_ci hex "Cache attributes for the memory address space" 5138c2ecf20Sopenharmony_ci depends on !MMU 5148c2ecf20Sopenharmony_ci default 0x22222222 5158c2ecf20Sopenharmony_ci help 5168c2ecf20Sopenharmony_ci These cache attributes are set up for noMMU systems. Each hex digit 5178c2ecf20Sopenharmony_ci specifies cache attributes for the corresponding 512MB memory 5188c2ecf20Sopenharmony_ci region: bits 0..3 -- for addresses 0x00000000..0x1fffffff, 5198c2ecf20Sopenharmony_ci bits 4..7 -- for addresses 0x20000000..0x3fffffff, and so on. 5208c2ecf20Sopenharmony_ci 5218c2ecf20Sopenharmony_ci Cache attribute values are specific for the MMU type. 5228c2ecf20Sopenharmony_ci For region protection MMUs: 5238c2ecf20Sopenharmony_ci 1: WT cached, 5248c2ecf20Sopenharmony_ci 2: cache bypass, 5258c2ecf20Sopenharmony_ci 4: WB cached, 5268c2ecf20Sopenharmony_ci f: illegal. 5278c2ecf20Sopenharmony_ci For full MMU: 5288c2ecf20Sopenharmony_ci bit 0: executable, 5298c2ecf20Sopenharmony_ci bit 1: writable, 5308c2ecf20Sopenharmony_ci bits 2..3: 5318c2ecf20Sopenharmony_ci 0: cache bypass, 5328c2ecf20Sopenharmony_ci 1: WB cache, 5338c2ecf20Sopenharmony_ci 2: WT cache, 5348c2ecf20Sopenharmony_ci 3: special (c and e are illegal, f is reserved). 5358c2ecf20Sopenharmony_ci For MPU: 5368c2ecf20Sopenharmony_ci 0: illegal, 5378c2ecf20Sopenharmony_ci 1: WB cache, 5388c2ecf20Sopenharmony_ci 2: WB, no-write-allocate cache, 5398c2ecf20Sopenharmony_ci 3: WT cache, 5408c2ecf20Sopenharmony_ci 4: cache bypass. 5418c2ecf20Sopenharmony_ci 5428c2ecf20Sopenharmony_ciconfig KSEG_PADDR 5438c2ecf20Sopenharmony_ci hex "Physical address of the KSEG mapping" 5448c2ecf20Sopenharmony_ci depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX && MMU 5458c2ecf20Sopenharmony_ci default 0x00000000 5468c2ecf20Sopenharmony_ci help 5478c2ecf20Sopenharmony_ci This is the physical address where KSEG is mapped. Please refer to 5488c2ecf20Sopenharmony_ci the chosen KSEG layout help for the required address alignment. 5498c2ecf20Sopenharmony_ci Unpacked kernel image (including vectors) must be located completely 5508c2ecf20Sopenharmony_ci within KSEG. 5518c2ecf20Sopenharmony_ci Physical memory below this address is not available to linux. 5528c2ecf20Sopenharmony_ci 5538c2ecf20Sopenharmony_ci If unsure, leave the default value here. 5548c2ecf20Sopenharmony_ci 5558c2ecf20Sopenharmony_ciconfig KERNEL_VIRTUAL_ADDRESS 5568c2ecf20Sopenharmony_ci hex "Kernel virtual address" 5578c2ecf20Sopenharmony_ci depends on MMU && XIP_KERNEL 5588c2ecf20Sopenharmony_ci default 0xd0003000 5598c2ecf20Sopenharmony_ci help 5608c2ecf20Sopenharmony_ci This is the virtual address where the XIP kernel is mapped. 5618c2ecf20Sopenharmony_ci XIP kernel may be mapped into KSEG or KIO region, virtual address 5628c2ecf20Sopenharmony_ci provided here must match kernel load address provided in 5638c2ecf20Sopenharmony_ci KERNEL_LOAD_ADDRESS. 5648c2ecf20Sopenharmony_ci 5658c2ecf20Sopenharmony_ciconfig KERNEL_LOAD_ADDRESS 5668c2ecf20Sopenharmony_ci hex "Kernel load address" 5678c2ecf20Sopenharmony_ci default 0x60003000 if !MMU 5688c2ecf20Sopenharmony_ci default 0x00003000 if MMU && INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 5698c2ecf20Sopenharmony_ci default 0xd0003000 if MMU && !INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 5708c2ecf20Sopenharmony_ci help 5718c2ecf20Sopenharmony_ci This is the address where the kernel is loaded. 5728c2ecf20Sopenharmony_ci It is virtual address for MMUv2 configurations and physical address 5738c2ecf20Sopenharmony_ci for all other configurations. 5748c2ecf20Sopenharmony_ci 5758c2ecf20Sopenharmony_ci If unsure, leave the default value here. 5768c2ecf20Sopenharmony_ci 5778c2ecf20Sopenharmony_cichoice 5788c2ecf20Sopenharmony_ci prompt "Relocatable vectors location" 5798c2ecf20Sopenharmony_ci default XTENSA_VECTORS_IN_TEXT 5808c2ecf20Sopenharmony_ci help 5818c2ecf20Sopenharmony_ci Choose whether relocatable vectors are merged into the kernel .text 5828c2ecf20Sopenharmony_ci or placed separately at runtime. This option does not affect 5838c2ecf20Sopenharmony_ci configurations without VECBASE register where vectors are always 5848c2ecf20Sopenharmony_ci placed at their hardware-defined locations. 5858c2ecf20Sopenharmony_ci 5868c2ecf20Sopenharmony_ciconfig XTENSA_VECTORS_IN_TEXT 5878c2ecf20Sopenharmony_ci bool "Merge relocatable vectors into kernel text" 5888c2ecf20Sopenharmony_ci depends on !MTD_XIP 5898c2ecf20Sopenharmony_ci help 5908c2ecf20Sopenharmony_ci This option puts relocatable vectors into the kernel .text section 5918c2ecf20Sopenharmony_ci with proper alignment. 5928c2ecf20Sopenharmony_ci This is a safe choice for most configurations. 5938c2ecf20Sopenharmony_ci 5948c2ecf20Sopenharmony_ciconfig XTENSA_VECTORS_SEPARATE 5958c2ecf20Sopenharmony_ci bool "Put relocatable vectors at fixed address" 5968c2ecf20Sopenharmony_ci help 5978c2ecf20Sopenharmony_ci This option puts relocatable vectors at specific virtual address. 5988c2ecf20Sopenharmony_ci Vectors are merged with the .init data in the kernel image and 5998c2ecf20Sopenharmony_ci are copied into their designated location during kernel startup. 6008c2ecf20Sopenharmony_ci Use it to put vectors into IRAM or out of FLASH on kernels with 6018c2ecf20Sopenharmony_ci XIP-aware MTD support. 6028c2ecf20Sopenharmony_ci 6038c2ecf20Sopenharmony_ciendchoice 6048c2ecf20Sopenharmony_ci 6058c2ecf20Sopenharmony_ciconfig VECTORS_ADDR 6068c2ecf20Sopenharmony_ci hex "Kernel vectors virtual address" 6078c2ecf20Sopenharmony_ci default 0x00000000 6088c2ecf20Sopenharmony_ci depends on XTENSA_VECTORS_SEPARATE 6098c2ecf20Sopenharmony_ci help 6108c2ecf20Sopenharmony_ci This is the virtual address of the (relocatable) vectors base. 6118c2ecf20Sopenharmony_ci It must be within KSEG if MMU is used. 6128c2ecf20Sopenharmony_ci 6138c2ecf20Sopenharmony_ciconfig XIP_DATA_ADDR 6148c2ecf20Sopenharmony_ci hex "XIP kernel data virtual address" 6158c2ecf20Sopenharmony_ci depends on XIP_KERNEL 6168c2ecf20Sopenharmony_ci default 0x00000000 6178c2ecf20Sopenharmony_ci help 6188c2ecf20Sopenharmony_ci This is the virtual address where XIP kernel data is copied. 6198c2ecf20Sopenharmony_ci It must be within KSEG if MMU is used. 6208c2ecf20Sopenharmony_ci 6218c2ecf20Sopenharmony_ciconfig PLATFORM_WANT_DEFAULT_MEM 6228c2ecf20Sopenharmony_ci def_bool n 6238c2ecf20Sopenharmony_ci 6248c2ecf20Sopenharmony_ciconfig DEFAULT_MEM_START 6258c2ecf20Sopenharmony_ci hex 6268c2ecf20Sopenharmony_ci prompt "PAGE_OFFSET/PHYS_OFFSET" if !MMU && PLATFORM_WANT_DEFAULT_MEM 6278c2ecf20Sopenharmony_ci default 0x60000000 if PLATFORM_WANT_DEFAULT_MEM 6288c2ecf20Sopenharmony_ci default 0x00000000 6298c2ecf20Sopenharmony_ci help 6308c2ecf20Sopenharmony_ci This is the base address used for both PAGE_OFFSET and PHYS_OFFSET 6318c2ecf20Sopenharmony_ci in noMMU configurations. 6328c2ecf20Sopenharmony_ci 6338c2ecf20Sopenharmony_ci If unsure, leave the default value here. 6348c2ecf20Sopenharmony_ci 6358c2ecf20Sopenharmony_cichoice 6368c2ecf20Sopenharmony_ci prompt "KSEG layout" 6378c2ecf20Sopenharmony_ci depends on MMU 6388c2ecf20Sopenharmony_ci default XTENSA_KSEG_MMU_V2 6398c2ecf20Sopenharmony_ci 6408c2ecf20Sopenharmony_ciconfig XTENSA_KSEG_MMU_V2 6418c2ecf20Sopenharmony_ci bool "MMUv2: 128MB cached + 128MB uncached" 6428c2ecf20Sopenharmony_ci help 6438c2ecf20Sopenharmony_ci MMUv2 compatible kernel memory map: TLB way 5 maps 128MB starting 6448c2ecf20Sopenharmony_ci at KSEG_PADDR to 0xd0000000 with cache and to 0xd8000000 6458c2ecf20Sopenharmony_ci without cache. 6468c2ecf20Sopenharmony_ci KSEG_PADDR must be aligned to 128MB. 6478c2ecf20Sopenharmony_ci 6488c2ecf20Sopenharmony_ciconfig XTENSA_KSEG_256M 6498c2ecf20Sopenharmony_ci bool "256MB cached + 256MB uncached" 6508c2ecf20Sopenharmony_ci depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 6518c2ecf20Sopenharmony_ci help 6528c2ecf20Sopenharmony_ci TLB way 6 maps 256MB starting at KSEG_PADDR to 0xb0000000 6538c2ecf20Sopenharmony_ci with cache and to 0xc0000000 without cache. 6548c2ecf20Sopenharmony_ci KSEG_PADDR must be aligned to 256MB. 6558c2ecf20Sopenharmony_ci 6568c2ecf20Sopenharmony_ciconfig XTENSA_KSEG_512M 6578c2ecf20Sopenharmony_ci bool "512MB cached + 512MB uncached" 6588c2ecf20Sopenharmony_ci depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 6598c2ecf20Sopenharmony_ci help 6608c2ecf20Sopenharmony_ci TLB way 6 maps 512MB starting at KSEG_PADDR to 0xa0000000 6618c2ecf20Sopenharmony_ci with cache and to 0xc0000000 without cache. 6628c2ecf20Sopenharmony_ci KSEG_PADDR must be aligned to 256MB. 6638c2ecf20Sopenharmony_ci 6648c2ecf20Sopenharmony_ciendchoice 6658c2ecf20Sopenharmony_ci 6668c2ecf20Sopenharmony_ciconfig HIGHMEM 6678c2ecf20Sopenharmony_ci bool "High Memory Support" 6688c2ecf20Sopenharmony_ci depends on MMU 6698c2ecf20Sopenharmony_ci help 6708c2ecf20Sopenharmony_ci Linux can use the full amount of RAM in the system by 6718c2ecf20Sopenharmony_ci default. However, the default MMUv2 setup only maps the 6728c2ecf20Sopenharmony_ci lowermost 128 MB of memory linearly to the areas starting 6738c2ecf20Sopenharmony_ci at 0xd0000000 (cached) and 0xd8000000 (uncached). 6748c2ecf20Sopenharmony_ci When there are more than 128 MB memory in the system not 6758c2ecf20Sopenharmony_ci all of it can be "permanently mapped" by the kernel. 6768c2ecf20Sopenharmony_ci The physical memory that's not permanently mapped is called 6778c2ecf20Sopenharmony_ci "high memory". 6788c2ecf20Sopenharmony_ci 6798c2ecf20Sopenharmony_ci If you are compiling a kernel which will never run on a 6808c2ecf20Sopenharmony_ci machine with more than 128 MB total physical RAM, answer 6818c2ecf20Sopenharmony_ci N here. 6828c2ecf20Sopenharmony_ci 6838c2ecf20Sopenharmony_ci If unsure, say Y. 6848c2ecf20Sopenharmony_ci 6858c2ecf20Sopenharmony_ciconfig FORCE_MAX_ZONEORDER 6868c2ecf20Sopenharmony_ci int "Maximum zone order" 6878c2ecf20Sopenharmony_ci default "11" 6888c2ecf20Sopenharmony_ci help 6898c2ecf20Sopenharmony_ci The kernel memory allocator divides physically contiguous memory 6908c2ecf20Sopenharmony_ci blocks into "zones", where each zone is a power of two number of 6918c2ecf20Sopenharmony_ci pages. This option selects the largest power of two that the kernel 6928c2ecf20Sopenharmony_ci keeps in the memory allocator. If you need to allocate very large 6938c2ecf20Sopenharmony_ci blocks of physically contiguous memory, then you may need to 6948c2ecf20Sopenharmony_ci increase this value. 6958c2ecf20Sopenharmony_ci 6968c2ecf20Sopenharmony_ci This config option is actually maximum order plus one. For example, 6978c2ecf20Sopenharmony_ci a value of 11 means that the largest free memory block is 2^10 pages. 6988c2ecf20Sopenharmony_ci 6998c2ecf20Sopenharmony_ciendmenu 7008c2ecf20Sopenharmony_ci 7018c2ecf20Sopenharmony_cimenu "Power management options" 7028c2ecf20Sopenharmony_ci 7038c2ecf20Sopenharmony_cisource "kernel/power/Kconfig" 7048c2ecf20Sopenharmony_ci 7058c2ecf20Sopenharmony_ciendmenu 706