xref: /openbmc/linux/arch/microblaze/Kconfig (revision fcbfe812)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2575ca288SMichal Simekconfig MICROBLAZE
3575ca288SMichal Simek	def_bool y
4942fa985SYury Norov	select ARCH_32BIT_OFF_T
517c46a6aSChristoph Hellwig	select ARCH_NO_SWAP
6d3b9f659SChristoph Hellwig	select ARCH_HAS_DMA_PREP_COHERENT
7957e3facSRiku Voipio	select ARCH_HAS_GCOV_PROFILE_ALL
85411ad27SChristoph Hellwig	select ARCH_HAS_SYNC_DMA_FOR_CPU
95411ad27SChristoph Hellwig	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
10355f65a3SMark Salter	select ARCH_MIGHT_HAVE_PC_PARPORT
11c1d7e01dSWill Deacon	select ARCH_WANT_IPC_PARSE_VERSION
1210916706SShile Zhang	select BUILDTIME_TABLE_SORT
13bb0eb050SDaniel Lezcano	select TIMER_OF
1425213388SMichal Simek	select CLONE_BACKWARDS3
1525213388SMichal Simek	select COMMON_CLK
1605cdf457SMichal Simek	select DMA_DIRECT_REMAP
1725213388SMichal Simek	select GENERIC_ATOMIC64
1825213388SMichal Simek	select GENERIC_CPU_DEVICES
1925213388SMichal Simek	select GENERIC_IDLE_POLL_SETUP
20b6e31629SThomas Gleixner	select GENERIC_IRQ_PROBE
219d61c18bSThomas Gleixner	select GENERIC_IRQ_SHOW
221b34d160SMichael S. Tsirkin	select GENERIC_PCI_IOMAP
23839396abSMichal Simek	select GENERIC_SCHED_CLOCK
24*fcbfe812SNiklas Schnelle	select HAS_IOPORT if PCI
257b13277bSGeorge Spelvin	select HAVE_ARCH_HASH
2625213388SMichal Simek	select HAVE_ARCH_KGDB
27282a181bSYiFei Zhu	select HAVE_ARCH_SECCOMP
2825213388SMichal Simek	select HAVE_DEBUG_KMEMLEAK
292602276dSMichal Simek	select HAVE_DMA_CONTIGUOUS
3025213388SMichal Simek	select HAVE_DYNAMIC_FTRACE
3125213388SMichal Simek	select HAVE_FTRACE_MCOUNT_RECORD
3225213388SMichal Simek	select HAVE_FUNCTION_GRAPH_TRACER
3325213388SMichal Simek	select HAVE_FUNCTION_TRACER
34eb01d42aSChristoph Hellwig	select HAVE_PCI
3525213388SMichal Simek	select IRQ_DOMAIN
360547dc78SZubair Lutfullah Kakakhel	select XILINX_INTC
37786d35d4SDavid Howells	select MODULES_USE_ELF_RELA
3825213388SMichal Simek	select OF
3925213388SMichal Simek	select OF_EARLY_FLATTREE
402eac9c2dSChristoph Hellwig	select PCI_DOMAINS_GENERIC if PCI
4120f1b79dSChristoph Hellwig	select PCI_SYSCALL if PCI
42fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS
4305cdf457SMichal Simek	select MMU_GATHER_NO_RANGE
446bf8be7fSMichal Simek	select SPARSE_IRQ
4563703f37SKefeng Wang	select ZONE_DMA
464aae683fSMasahiro Yamada	select TRACE_IRQFLAGS_SUPPORT
471e364921SMichal Simek	select GENERIC_IRQ_MULTI_HANDLER
48575ca288SMichal Simek
49206d3642SBabu Moger# Endianness selection
50206d3642SBabu Mogerchoice
51206d3642SBabu Moger	prompt "Endianness selection"
52428dbf15SBabu Moger	default CPU_LITTLE_ENDIAN
53206d3642SBabu Moger	help
54206d3642SBabu Moger	  microblaze architectures can be configured for either little or
55206d3642SBabu Moger	  big endian formats. Be sure to select the appropriate mode.
56206d3642SBabu Moger
57206d3642SBabu Mogerconfig CPU_BIG_ENDIAN
58206d3642SBabu Moger	bool "Big endian"
59206d3642SBabu Moger
60206d3642SBabu Mogerconfig CPU_LITTLE_ENDIAN
61206d3642SBabu Moger	bool "Little endian"
62206d3642SBabu Moger
63206d3642SBabu Mogerendchoice
64206d3642SBabu Moger
65575ca288SMichal Simekconfig ARCH_HAS_ILOG2_U32
66575ca288SMichal Simek	def_bool n
67575ca288SMichal Simek
68575ca288SMichal Simekconfig ARCH_HAS_ILOG2_U64
69575ca288SMichal Simek	def_bool n
70575ca288SMichal Simek
71575ca288SMichal Simekconfig GENERIC_HWEIGHT
72575ca288SMichal Simek	def_bool y
73575ca288SMichal Simek
74575ca288SMichal Simekconfig GENERIC_CALIBRATE_DELAY
75575ca288SMichal Simek	def_bool y
76575ca288SMichal Simek
7714f87389SRemis Lima Baimaconfig GENERIC_CSUM
7814f87389SRemis Lima Baima	def_bool y
7914f87389SRemis Lima Baima
8024b45a12SMichal Simekconfig STACKTRACE_SUPPORT
8124b45a12SMichal Simek	def_bool y
8224b45a12SMichal Simek
83bf2d8096SMichal Simekconfig LOCKDEP_SUPPORT
84bf2d8096SMichal Simek	def_bool y
85bf2d8096SMichal Simek
86c24cf712SMichal Simeksource "arch/microblaze/Kconfig.platform"
87575ca288SMichal Simek
88575ca288SMichal Simekmenu "Processor type and features"
89575ca288SMichal Simek
90575ca288SMichal Simeksource "kernel/Kconfig.hz"
91575ca288SMichal Simek
92575ca288SMichal Simekconfig MMU
9305cdf457SMichal Simek	def_bool y
94575ca288SMichal Simek
95575ca288SMichal Simekcomment "Boot options"
96575ca288SMichal Simek
97575ca288SMichal Simekconfig CMDLINE_BOOL
98575ca288SMichal Simek	bool "Default bootloader kernel arguments"
99575ca288SMichal Simek
100575ca288SMichal Simekconfig CMDLINE
101575ca288SMichal Simek	string "Default kernel command string"
102575ca288SMichal Simek	depends on CMDLINE_BOOL
103575ca288SMichal Simek	default "console=ttyUL0,115200"
104575ca288SMichal Simek	help
105575ca288SMichal Simek	  On some architectures there is currently no way for the boot loader
106575ca288SMichal Simek	  to pass arguments to the kernel. For these architectures, you should
107575ca288SMichal Simek	  supply some command-line options at build time by entering them
108575ca288SMichal Simek	  here.
109575ca288SMichal Simek
110575ca288SMichal Simekconfig CMDLINE_FORCE
111575ca288SMichal Simek	bool "Force default kernel command string"
112575ca288SMichal Simek	depends on CMDLINE_BOOL
113575ca288SMichal Simek	default n
114575ca288SMichal Simek	help
115575ca288SMichal Simek	  Set this to have arguments from the default kernel command string
116575ca288SMichal Simek	  override those passed by the boot loader.
117575ca288SMichal Simek
118575ca288SMichal Simekendmenu
119575ca288SMichal Simek
120b408e2c2SMichal Simekmenu "Kernel features"
121a116f6d5SMichal Simek
1224cbbbb43SMichal Simekconfig NR_CPUS
1234cbbbb43SMichal Simek	int
1244cbbbb43SMichal Simek	default "1"
1254cbbbb43SMichal Simek
126a116f6d5SMichal Simekconfig ADVANCED_OPTIONS
127a116f6d5SMichal Simek	bool "Prompt for advanced kernel configuration options"
128a116f6d5SMichal Simek	help
129a116f6d5SMichal Simek	  This option will enable prompting for a variety of advanced kernel
130a116f6d5SMichal Simek	  configuration options.  These options can cause the kernel to not
131a116f6d5SMichal Simek	  work if they are set incorrectly, but can be used to optimize certain
132a116f6d5SMichal Simek	  aspects of kernel memory management.
133a116f6d5SMichal Simek
134a116f6d5SMichal Simek	  Unless you know what you are doing, say N here.
135a116f6d5SMichal Simek
136a116f6d5SMichal Simekcomment "Default settings for advanced configuration options are used"
137a116f6d5SMichal Simek	depends on !ADVANCED_OPTIONS
138a116f6d5SMichal Simek
1392f2f371fSMichal Simekconfig HIGHMEM
1402f2f371fSMichal Simek	bool "High memory support"
1417ac1b26bSThomas Gleixner	select KMAP_LOCAL
1422f2f371fSMichal Simek	help
1432f2f371fSMichal Simek	  The address space of Microblaze processors is only 4 Gigabytes large
1442f2f371fSMichal Simek	  and it has to accommodate user address space, kernel address
1452f2f371fSMichal Simek	  space as well as some memory mapped IO. That means that, if you
1462f2f371fSMichal Simek	  have a large amount of physical memory and/or IO, not all of the
1472f2f371fSMichal Simek	  memory can be "permanently mapped" by the kernel. The physical
1482f2f371fSMichal Simek	  memory that is not permanently mapped is called "high memory".
1492f2f371fSMichal Simek
1502f2f371fSMichal Simek	  If unsure, say n.
151a116f6d5SMichal Simek
152a116f6d5SMichal Simekconfig LOWMEM_SIZE_BOOL
153a116f6d5SMichal Simek	bool "Set maximum low memory"
15405cdf457SMichal Simek	depends on ADVANCED_OPTIONS
155a116f6d5SMichal Simek	help
156a116f6d5SMichal Simek	  This option allows you to set the maximum amount of memory which
157a116f6d5SMichal Simek	  will be used as "low memory", that is, memory which the kernel can
158a116f6d5SMichal Simek	  access directly, without having to set up a kernel virtual mapping.
159a116f6d5SMichal Simek	  This can be useful in optimizing the layout of kernel virtual
160a116f6d5SMichal Simek	  memory.
161a116f6d5SMichal Simek
162a116f6d5SMichal Simek	  Say N here unless you know what you are doing.
163a116f6d5SMichal Simek
164a116f6d5SMichal Simekconfig LOWMEM_SIZE
165a116f6d5SMichal Simek	hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
166a116f6d5SMichal Simek	default "0x30000000"
167a116f6d5SMichal Simek
1680b9b0200SMichal Simekconfig MANUAL_RESET_VECTOR
1690b9b0200SMichal Simek	hex "Microblaze reset vector address setup"
1700b9b0200SMichal Simek	default "0x0"
1710b9b0200SMichal Simek	help
1720b9b0200SMichal Simek	  Set this option to have the kernel override the CPU Reset vector.
1730b9b0200SMichal Simek	  If zero, no change will be made to the MicroBlaze reset vector at
1740b9b0200SMichal Simek	  address 0x0.
1750b9b0200SMichal Simek	  If non-zero, a jump instruction to this address, will be written
1760b9b0200SMichal Simek	  to the reset vector at address 0x0.
1770b9b0200SMichal Simek	  If you are unsure, set it to default value 0x0.
1780b9b0200SMichal Simek
179a116f6d5SMichal Simekconfig KERNEL_START_BOOL
180a116f6d5SMichal Simek	bool "Set custom kernel base address"
181a116f6d5SMichal Simek	depends on ADVANCED_OPTIONS
182a116f6d5SMichal Simek	help
183a116f6d5SMichal Simek	  This option allows you to set the kernel virtual address at which
184a116f6d5SMichal Simek	  the kernel will map low memory (the kernel image will be linked at
185a116f6d5SMichal Simek	  this address).  This can be useful in optimizing the virtual memory
186a116f6d5SMichal Simek	  layout of the system.
187a116f6d5SMichal Simek
188a116f6d5SMichal Simek	  Say N here unless you know what you are doing.
189a116f6d5SMichal Simek
190a116f6d5SMichal Simekconfig KERNEL_START
191a116f6d5SMichal Simek	hex "Virtual address of kernel base" if KERNEL_START_BOOL
19205cdf457SMichal Simek	default "0xc0000000"
193a116f6d5SMichal Simek
194a116f6d5SMichal Simekconfig TASK_SIZE_BOOL
195a116f6d5SMichal Simek	bool "Set custom user task size"
19605cdf457SMichal Simek	depends on ADVANCED_OPTIONS
197a116f6d5SMichal Simek	help
198a116f6d5SMichal Simek	  This option allows you to set the amount of virtual address space
199a116f6d5SMichal Simek	  allocated to user tasks.  This can be useful in optimizing the
200a116f6d5SMichal Simek	  virtual memory layout of the system.
201a116f6d5SMichal Simek
202a116f6d5SMichal Simek	  Say N here unless you know what you are doing.
203a116f6d5SMichal Simek
204a116f6d5SMichal Simekconfig TASK_SIZE
205a116f6d5SMichal Simek	hex "Size of user task space" if TASK_SIZE_BOOL
206a116f6d5SMichal Simek	default "0x80000000"
207a116f6d5SMichal Simek
208a5e3aaa6SAppana Durga Kedareswara raoconfig MB_MANAGER
209a5e3aaa6SAppana Durga Kedareswara rao	bool "Support for Microblaze Manager"
210a5e3aaa6SAppana Durga Kedareswara rao	depends on ADVANCED_OPTIONS
211a5e3aaa6SAppana Durga Kedareswara rao	help
212a5e3aaa6SAppana Durga Kedareswara rao	  This option enables API for configuring the MicroBlaze manager
213a5e3aaa6SAppana Durga Kedareswara rao	  control register, which is consumed by the break handler to
214a5e3aaa6SAppana Durga Kedareswara rao	  block the break.
215a5e3aaa6SAppana Durga Kedareswara rao
216a5e3aaa6SAppana Durga Kedareswara rao	  Say N here unless you know what you are doing.
217a5e3aaa6SAppana Durga Kedareswara rao
218575ca288SMichal Simekendmenu
219