162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ciconfig MICROBLAZE 362306a36Sopenharmony_ci def_bool y 462306a36Sopenharmony_ci select ARCH_32BIT_OFF_T 562306a36Sopenharmony_ci select ARCH_NO_SWAP 662306a36Sopenharmony_ci select ARCH_HAS_DMA_PREP_COHERENT 762306a36Sopenharmony_ci select ARCH_HAS_GCOV_PROFILE_ALL 862306a36Sopenharmony_ci select ARCH_HAS_SYNC_DMA_FOR_CPU 962306a36Sopenharmony_ci select ARCH_HAS_SYNC_DMA_FOR_DEVICE 1062306a36Sopenharmony_ci select ARCH_MIGHT_HAVE_PC_PARPORT 1162306a36Sopenharmony_ci select ARCH_WANT_IPC_PARSE_VERSION 1262306a36Sopenharmony_ci select BUILDTIME_TABLE_SORT 1362306a36Sopenharmony_ci select TIMER_OF 1462306a36Sopenharmony_ci select CLONE_BACKWARDS3 1562306a36Sopenharmony_ci select COMMON_CLK 1662306a36Sopenharmony_ci select DMA_DIRECT_REMAP 1762306a36Sopenharmony_ci select GENERIC_ATOMIC64 1862306a36Sopenharmony_ci select GENERIC_CPU_DEVICES 1962306a36Sopenharmony_ci select GENERIC_IDLE_POLL_SETUP 2062306a36Sopenharmony_ci select GENERIC_IRQ_PROBE 2162306a36Sopenharmony_ci select GENERIC_IRQ_SHOW 2262306a36Sopenharmony_ci select GENERIC_PCI_IOMAP 2362306a36Sopenharmony_ci select GENERIC_SCHED_CLOCK 2462306a36Sopenharmony_ci select HAS_IOPORT if PCI 2562306a36Sopenharmony_ci select HAVE_ARCH_HASH 2662306a36Sopenharmony_ci select HAVE_ARCH_KGDB 2762306a36Sopenharmony_ci select HAVE_ARCH_SECCOMP 2862306a36Sopenharmony_ci select HAVE_DEBUG_KMEMLEAK 2962306a36Sopenharmony_ci select HAVE_DMA_CONTIGUOUS 3062306a36Sopenharmony_ci select HAVE_DYNAMIC_FTRACE 3162306a36Sopenharmony_ci select HAVE_FTRACE_MCOUNT_RECORD 3262306a36Sopenharmony_ci select HAVE_FUNCTION_GRAPH_TRACER 3362306a36Sopenharmony_ci select HAVE_FUNCTION_TRACER 3462306a36Sopenharmony_ci select HAVE_PCI 3562306a36Sopenharmony_ci select IRQ_DOMAIN 3662306a36Sopenharmony_ci select XILINX_INTC 3762306a36Sopenharmony_ci select MODULES_USE_ELF_RELA 3862306a36Sopenharmony_ci select OF 3962306a36Sopenharmony_ci select OF_EARLY_FLATTREE 4062306a36Sopenharmony_ci select PCI_DOMAINS_GENERIC if PCI 4162306a36Sopenharmony_ci select PCI_SYSCALL if PCI 4262306a36Sopenharmony_ci select CPU_NO_EFFICIENT_FFS 4362306a36Sopenharmony_ci select MMU_GATHER_NO_RANGE 4462306a36Sopenharmony_ci select SPARSE_IRQ 4562306a36Sopenharmony_ci select ZONE_DMA 4662306a36Sopenharmony_ci select TRACE_IRQFLAGS_SUPPORT 4762306a36Sopenharmony_ci select GENERIC_IRQ_MULTI_HANDLER 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci# Endianness selection 5062306a36Sopenharmony_cichoice 5162306a36Sopenharmony_ci prompt "Endianness selection" 5262306a36Sopenharmony_ci default CPU_LITTLE_ENDIAN 5362306a36Sopenharmony_ci help 5462306a36Sopenharmony_ci microblaze architectures can be configured for either little or 5562306a36Sopenharmony_ci big endian formats. Be sure to select the appropriate mode. 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ciconfig CPU_BIG_ENDIAN 5862306a36Sopenharmony_ci bool "Big endian" 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ciconfig CPU_LITTLE_ENDIAN 6162306a36Sopenharmony_ci bool "Little endian" 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ciendchoice 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ciconfig ARCH_HAS_ILOG2_U32 6662306a36Sopenharmony_ci def_bool n 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ciconfig ARCH_HAS_ILOG2_U64 6962306a36Sopenharmony_ci def_bool n 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ciconfig GENERIC_HWEIGHT 7262306a36Sopenharmony_ci def_bool y 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ciconfig GENERIC_CALIBRATE_DELAY 7562306a36Sopenharmony_ci def_bool y 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciconfig GENERIC_CSUM 7862306a36Sopenharmony_ci def_bool y 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ciconfig STACKTRACE_SUPPORT 8162306a36Sopenharmony_ci def_bool y 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ciconfig LOCKDEP_SUPPORT 8462306a36Sopenharmony_ci def_bool y 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_cisource "arch/microblaze/Kconfig.platform" 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_cimenu "Processor type and features" 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_cisource "kernel/Kconfig.hz" 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ciconfig MMU 9362306a36Sopenharmony_ci def_bool y 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_cicomment "Boot options" 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ciconfig CMDLINE_BOOL 9862306a36Sopenharmony_ci bool "Default bootloader kernel arguments" 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ciconfig CMDLINE 10162306a36Sopenharmony_ci string "Default kernel command string" 10262306a36Sopenharmony_ci depends on CMDLINE_BOOL 10362306a36Sopenharmony_ci default "console=ttyUL0,115200" 10462306a36Sopenharmony_ci help 10562306a36Sopenharmony_ci On some architectures there is currently no way for the boot loader 10662306a36Sopenharmony_ci to pass arguments to the kernel. For these architectures, you should 10762306a36Sopenharmony_ci supply some command-line options at build time by entering them 10862306a36Sopenharmony_ci here. 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ciconfig CMDLINE_FORCE 11162306a36Sopenharmony_ci bool "Force default kernel command string" 11262306a36Sopenharmony_ci depends on CMDLINE_BOOL 11362306a36Sopenharmony_ci default n 11462306a36Sopenharmony_ci help 11562306a36Sopenharmony_ci Set this to have arguments from the default kernel command string 11662306a36Sopenharmony_ci override those passed by the boot loader. 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ciendmenu 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_cimenu "Kernel features" 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ciconfig NR_CPUS 12362306a36Sopenharmony_ci int 12462306a36Sopenharmony_ci default "1" 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ciconfig ADVANCED_OPTIONS 12762306a36Sopenharmony_ci bool "Prompt for advanced kernel configuration options" 12862306a36Sopenharmony_ci help 12962306a36Sopenharmony_ci This option will enable prompting for a variety of advanced kernel 13062306a36Sopenharmony_ci configuration options. These options can cause the kernel to not 13162306a36Sopenharmony_ci work if they are set incorrectly, but can be used to optimize certain 13262306a36Sopenharmony_ci aspects of kernel memory management. 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci Unless you know what you are doing, say N here. 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_cicomment "Default settings for advanced configuration options are used" 13762306a36Sopenharmony_ci depends on !ADVANCED_OPTIONS 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ciconfig HIGHMEM 14062306a36Sopenharmony_ci bool "High memory support" 14162306a36Sopenharmony_ci select KMAP_LOCAL 14262306a36Sopenharmony_ci help 14362306a36Sopenharmony_ci The address space of Microblaze processors is only 4 Gigabytes large 14462306a36Sopenharmony_ci and it has to accommodate user address space, kernel address 14562306a36Sopenharmony_ci space as well as some memory mapped IO. That means that, if you 14662306a36Sopenharmony_ci have a large amount of physical memory and/or IO, not all of the 14762306a36Sopenharmony_ci memory can be "permanently mapped" by the kernel. The physical 14862306a36Sopenharmony_ci memory that is not permanently mapped is called "high memory". 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci If unsure, say n. 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ciconfig LOWMEM_SIZE_BOOL 15362306a36Sopenharmony_ci bool "Set maximum low memory" 15462306a36Sopenharmony_ci depends on ADVANCED_OPTIONS 15562306a36Sopenharmony_ci help 15662306a36Sopenharmony_ci This option allows you to set the maximum amount of memory which 15762306a36Sopenharmony_ci will be used as "low memory", that is, memory which the kernel can 15862306a36Sopenharmony_ci access directly, without having to set up a kernel virtual mapping. 15962306a36Sopenharmony_ci This can be useful in optimizing the layout of kernel virtual 16062306a36Sopenharmony_ci memory. 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci Say N here unless you know what you are doing. 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ciconfig LOWMEM_SIZE 16562306a36Sopenharmony_ci hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL 16662306a36Sopenharmony_ci default "0x30000000" 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ciconfig MANUAL_RESET_VECTOR 16962306a36Sopenharmony_ci hex "Microblaze reset vector address setup" 17062306a36Sopenharmony_ci default "0x0" 17162306a36Sopenharmony_ci help 17262306a36Sopenharmony_ci Set this option to have the kernel override the CPU Reset vector. 17362306a36Sopenharmony_ci If zero, no change will be made to the MicroBlaze reset vector at 17462306a36Sopenharmony_ci address 0x0. 17562306a36Sopenharmony_ci If non-zero, a jump instruction to this address, will be written 17662306a36Sopenharmony_ci to the reset vector at address 0x0. 17762306a36Sopenharmony_ci If you are unsure, set it to default value 0x0. 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ciconfig KERNEL_START_BOOL 18062306a36Sopenharmony_ci bool "Set custom kernel base address" 18162306a36Sopenharmony_ci depends on ADVANCED_OPTIONS 18262306a36Sopenharmony_ci help 18362306a36Sopenharmony_ci This option allows you to set the kernel virtual address at which 18462306a36Sopenharmony_ci the kernel will map low memory (the kernel image will be linked at 18562306a36Sopenharmony_ci this address). This can be useful in optimizing the virtual memory 18662306a36Sopenharmony_ci layout of the system. 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci Say N here unless you know what you are doing. 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ciconfig KERNEL_START 19162306a36Sopenharmony_ci hex "Virtual address of kernel base" if KERNEL_START_BOOL 19262306a36Sopenharmony_ci default "0xc0000000" 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ciconfig TASK_SIZE_BOOL 19562306a36Sopenharmony_ci bool "Set custom user task size" 19662306a36Sopenharmony_ci depends on ADVANCED_OPTIONS 19762306a36Sopenharmony_ci help 19862306a36Sopenharmony_ci This option allows you to set the amount of virtual address space 19962306a36Sopenharmony_ci allocated to user tasks. This can be useful in optimizing the 20062306a36Sopenharmony_ci virtual memory layout of the system. 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ci Say N here unless you know what you are doing. 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ciconfig TASK_SIZE 20562306a36Sopenharmony_ci hex "Size of user task space" if TASK_SIZE_BOOL 20662306a36Sopenharmony_ci default "0x80000000" 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ciconfig MB_MANAGER 20962306a36Sopenharmony_ci bool "Support for Microblaze Manager" 21062306a36Sopenharmony_ci depends on ADVANCED_OPTIONS 21162306a36Sopenharmony_ci help 21262306a36Sopenharmony_ci This option enables API for configuring the MicroBlaze manager 21362306a36Sopenharmony_ci control register, which is consumed by the break handler to 21462306a36Sopenharmony_ci block the break. 21562306a36Sopenharmony_ci 21662306a36Sopenharmony_ci Say N here unless you know what you are doing. 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ciendmenu 219