162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# For a description of the syntax of this configuration file, 462306a36Sopenharmony_ci# see Documentation/kbuild/kconfig-language.rst. 562306a36Sopenharmony_ci# 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciconfig OPENRISC 862306a36Sopenharmony_ci def_bool y 962306a36Sopenharmony_ci select ARCH_32BIT_OFF_T 1062306a36Sopenharmony_ci select ARCH_HAS_DMA_SET_UNCACHED 1162306a36Sopenharmony_ci select ARCH_HAS_DMA_CLEAR_UNCACHED 1262306a36Sopenharmony_ci select ARCH_HAS_SYNC_DMA_FOR_DEVICE 1362306a36Sopenharmony_ci select COMMON_CLK 1462306a36Sopenharmony_ci select OF 1562306a36Sopenharmony_ci select OF_EARLY_FLATTREE 1662306a36Sopenharmony_ci select IRQ_DOMAIN 1762306a36Sopenharmony_ci select GPIOLIB 1862306a36Sopenharmony_ci select HAVE_ARCH_TRACEHOOK 1962306a36Sopenharmony_ci select SPARSE_IRQ 2062306a36Sopenharmony_ci select GENERIC_IRQ_CHIP 2162306a36Sopenharmony_ci select GENERIC_IRQ_PROBE 2262306a36Sopenharmony_ci select GENERIC_IRQ_SHOW 2362306a36Sopenharmony_ci select GENERIC_PCI_IOMAP 2462306a36Sopenharmony_ci select GENERIC_IOREMAP 2562306a36Sopenharmony_ci select GENERIC_CPU_DEVICES 2662306a36Sopenharmony_ci select HAVE_PCI 2762306a36Sopenharmony_ci select HAVE_UID16 2862306a36Sopenharmony_ci select GENERIC_ATOMIC64 2962306a36Sopenharmony_ci select GENERIC_CLOCKEVENTS_BROADCAST 3062306a36Sopenharmony_ci select GENERIC_SMP_IDLE_THREAD 3162306a36Sopenharmony_ci select MODULES_USE_ELF_RELA 3262306a36Sopenharmony_ci select HAVE_DEBUG_STACKOVERFLOW 3362306a36Sopenharmony_ci select OR1K_PIC 3462306a36Sopenharmony_ci select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1 3562306a36Sopenharmony_ci select ARCH_USE_QUEUED_RWLOCKS 3662306a36Sopenharmony_ci select OMPIC if SMP 3762306a36Sopenharmony_ci select PCI_DOMAINS_GENERIC if PCI 3862306a36Sopenharmony_ci select PCI_MSI if PCI 3962306a36Sopenharmony_ci select ARCH_WANT_FRAME_POINTERS 4062306a36Sopenharmony_ci select GENERIC_IRQ_MULTI_HANDLER 4162306a36Sopenharmony_ci select MMU_GATHER_NO_RANGE if MMU 4262306a36Sopenharmony_ci select TRACE_IRQFLAGS_SUPPORT 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciconfig CPU_BIG_ENDIAN 4562306a36Sopenharmony_ci def_bool y 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ciconfig MMU 4862306a36Sopenharmony_ci def_bool y 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciconfig GENERIC_HWEIGHT 5162306a36Sopenharmony_ci def_bool y 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ciconfig NO_IOPORT_MAP 5462306a36Sopenharmony_ci def_bool y 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci# For now, use generic checksum functions 5762306a36Sopenharmony_ci#These can be reimplemented in assembly later if so inclined 5862306a36Sopenharmony_ciconfig GENERIC_CSUM 5962306a36Sopenharmony_ci def_bool y 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ciconfig STACKTRACE_SUPPORT 6262306a36Sopenharmony_ci def_bool y 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ciconfig LOCKDEP_SUPPORT 6562306a36Sopenharmony_ci def_bool y 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_cimenu "Processor type and features" 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_cichoice 7062306a36Sopenharmony_ci prompt "Subarchitecture" 7162306a36Sopenharmony_ci default OR1K_1200 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ciconfig OR1K_1200 7462306a36Sopenharmony_ci bool "OR1200" 7562306a36Sopenharmony_ci help 7662306a36Sopenharmony_ci Generic OpenRISC 1200 architecture 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ciendchoice 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ciconfig DCACHE_WRITETHROUGH 8162306a36Sopenharmony_ci bool "Have write through data caches" 8262306a36Sopenharmony_ci default n 8362306a36Sopenharmony_ci help 8462306a36Sopenharmony_ci Select this if your implementation features write through data caches. 8562306a36Sopenharmony_ci Selecting 'N' here will allow the kernel to force flushing of data 8662306a36Sopenharmony_ci caches at relevant times. Most OpenRISC implementations support write- 8762306a36Sopenharmony_ci through data caches. 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci If unsure say N here 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ciconfig OPENRISC_BUILTIN_DTB 9262306a36Sopenharmony_ci string "Builtin DTB" 9362306a36Sopenharmony_ci default "" 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_cimenu "Class II Instructions" 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ciconfig OPENRISC_HAVE_INST_FF1 9862306a36Sopenharmony_ci bool "Have instruction l.ff1" 9962306a36Sopenharmony_ci default y 10062306a36Sopenharmony_ci help 10162306a36Sopenharmony_ci Select this if your implementation has the Class II instruction l.ff1 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ciconfig OPENRISC_HAVE_INST_FL1 10462306a36Sopenharmony_ci bool "Have instruction l.fl1" 10562306a36Sopenharmony_ci default y 10662306a36Sopenharmony_ci help 10762306a36Sopenharmony_ci Select this if your implementation has the Class II instruction l.fl1 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ciconfig OPENRISC_HAVE_INST_MUL 11062306a36Sopenharmony_ci bool "Have instruction l.mul for hardware multiply" 11162306a36Sopenharmony_ci default y 11262306a36Sopenharmony_ci help 11362306a36Sopenharmony_ci Select this if your implementation has a hardware multiply instruction 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ciconfig OPENRISC_HAVE_INST_DIV 11662306a36Sopenharmony_ci bool "Have instruction l.div for hardware divide" 11762306a36Sopenharmony_ci default y 11862306a36Sopenharmony_ci help 11962306a36Sopenharmony_ci Select this if your implementation has a hardware divide instruction 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ciconfig OPENRISC_HAVE_INST_CMOV 12262306a36Sopenharmony_ci bool "Have instruction l.cmov for conditional move" 12362306a36Sopenharmony_ci default n 12462306a36Sopenharmony_ci help 12562306a36Sopenharmony_ci This config enables gcc to generate l.cmov instructions when compiling 12662306a36Sopenharmony_ci the kernel which in general will improve performance and reduce the 12762306a36Sopenharmony_ci binary size. 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci Select this if your implementation has support for the Class II 13062306a36Sopenharmony_ci l.cmov conistional move instruction. 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci Say N if you are unsure. 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ciconfig OPENRISC_HAVE_INST_ROR 13562306a36Sopenharmony_ci bool "Have instruction l.ror for rotate right" 13662306a36Sopenharmony_ci default n 13762306a36Sopenharmony_ci help 13862306a36Sopenharmony_ci This config enables gcc to generate l.ror instructions when compiling 13962306a36Sopenharmony_ci the kernel which in general will improve performance and reduce the 14062306a36Sopenharmony_ci binary size. 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci Select this if your implementation has support for the Class II 14362306a36Sopenharmony_ci l.ror rotate right instruction. 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci Say N if you are unsure. 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ciconfig OPENRISC_HAVE_INST_RORI 14862306a36Sopenharmony_ci bool "Have instruction l.rori for rotate right with immediate" 14962306a36Sopenharmony_ci default n 15062306a36Sopenharmony_ci help 15162306a36Sopenharmony_ci This config enables gcc to generate l.rori instructions when compiling 15262306a36Sopenharmony_ci the kernel which in general will improve performance and reduce the 15362306a36Sopenharmony_ci binary size. 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci Select this if your implementation has support for the Class II 15662306a36Sopenharmony_ci l.rori rotate right with immediate instruction. 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ci Say N if you are unsure. 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ciconfig OPENRISC_HAVE_INST_SEXT 16162306a36Sopenharmony_ci bool "Have instructions l.ext* for sign extension" 16262306a36Sopenharmony_ci default n 16362306a36Sopenharmony_ci help 16462306a36Sopenharmony_ci This config enables gcc to generate l.ext* instructions when compiling 16562306a36Sopenharmony_ci the kernel which in general will improve performance and reduce the 16662306a36Sopenharmony_ci binary size. 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ci Select this if your implementation has support for the Class II 16962306a36Sopenharmony_ci l.exths, l.extbs, l.exthz and l.extbz size extend instructions. 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci Say N if you are unsure. 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ciendmenu 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ciconfig NR_CPUS 17662306a36Sopenharmony_ci int "Maximum number of CPUs (2-32)" 17762306a36Sopenharmony_ci range 2 32 17862306a36Sopenharmony_ci depends on SMP 17962306a36Sopenharmony_ci default "2" 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ciconfig SMP 18262306a36Sopenharmony_ci bool "Symmetric Multi-Processing support" 18362306a36Sopenharmony_ci help 18462306a36Sopenharmony_ci This enables support for systems with more than one CPU. If you have 18562306a36Sopenharmony_ci a system with only one CPU, say N. If you have a system with more 18662306a36Sopenharmony_ci than one CPU, say Y. 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci If you don't know what to do here, say N. 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_cisource "kernel/Kconfig.hz" 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ciconfig OPENRISC_NO_SPR_SR_DSX 19362306a36Sopenharmony_ci bool "use SPR_SR_DSX software emulation" if OR1K_1200 19462306a36Sopenharmony_ci default y 19562306a36Sopenharmony_ci help 19662306a36Sopenharmony_ci SPR_SR_DSX bit is status register bit indicating whether 19762306a36Sopenharmony_ci the last exception has happened in delay slot. 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci OpenRISC architecture makes it optional to have it implemented 20062306a36Sopenharmony_ci in hardware and the OR1200 does not have it. 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ci Say N here if you know that your OpenRISC processor has 20362306a36Sopenharmony_ci SPR_SR_DSX bit implemented. Say Y if you are unsure. 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ciconfig OPENRISC_HAVE_SHADOW_GPRS 20662306a36Sopenharmony_ci bool "Support for shadow gpr files" if !SMP 20762306a36Sopenharmony_ci default y if SMP 20862306a36Sopenharmony_ci help 20962306a36Sopenharmony_ci Say Y here if your OpenRISC processor features shadowed 21062306a36Sopenharmony_ci register files. They will in such case be used as a 21162306a36Sopenharmony_ci scratch reg storage on exception entry. 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ci On SMP systems, this feature is mandatory. 21462306a36Sopenharmony_ci On a unicore system it's safe to say N here if you are unsure. 21562306a36Sopenharmony_ci 21662306a36Sopenharmony_ciconfig CMDLINE 21762306a36Sopenharmony_ci string "Default kernel command string" 21862306a36Sopenharmony_ci default "" 21962306a36Sopenharmony_ci help 22062306a36Sopenharmony_ci On some architectures there is currently no way for the boot loader 22162306a36Sopenharmony_ci to pass arguments to the kernel. For these architectures, you should 22262306a36Sopenharmony_ci supply some command-line options at build time by entering them 22362306a36Sopenharmony_ci here. 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_cimenu "Debugging options" 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ciconfig JUMP_UPON_UNHANDLED_EXCEPTION 22862306a36Sopenharmony_ci bool "Try to die gracefully" 22962306a36Sopenharmony_ci default y 23062306a36Sopenharmony_ci help 23162306a36Sopenharmony_ci Now this puts kernel into infinite loop after first oops. Till 23262306a36Sopenharmony_ci your kernel crashes this doesn't have any influence. 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ci Say Y if you are unsure. 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ciconfig OPENRISC_ESR_EXCEPTION_BUG_CHECK 23762306a36Sopenharmony_ci bool "Check for possible ESR exception bug" 23862306a36Sopenharmony_ci default n 23962306a36Sopenharmony_ci help 24062306a36Sopenharmony_ci This option enables some checks that might expose some problems 24162306a36Sopenharmony_ci in kernel. 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ci Say N if you are unsure. 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ciendmenu 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ciendmenu 248