blob: fb5fe5affff1f3979279d030113872aee9755418 [file] [log] [blame]
Bin Meng6b697752018-09-26 06:55:06 -07001menu "RISC-V architecture"
Rick Chen64d4ead2017-12-26 13:55:52 +08002 depends on RISCV
3
4config SYS_ARCH
5 default "riscv"
6
7choice
8 prompt "Target select"
9 optional
10
Rick Chenb66af372018-05-29 09:54:40 +080011config TARGET_AX25_AE350
12 bool "Support ax25-ae350"
Rick Chen64d4ead2017-12-26 13:55:52 +080013
Padmarao Begari4216f342019-05-28 15:47:51 +053014config TARGET_MICROCHIP_ICICLE
15 bool "Support Microchip PolarFire-SoC Icicle Board"
16
Bin Meng8a8694d2018-09-26 06:55:21 -070017config TARGET_QEMU_VIRT
18 bool "Support QEMU Virt Board"
19
Anup Patel7a167f22019-02-25 08:15:19 +000020config TARGET_SIFIVE_FU540
21 bool "Support SiFive FU540 Board"
22
Rick Chen64d4ead2017-12-26 13:55:52 +080023endchoice
24
Trevor Woernerba64b8b2019-05-03 09:40:59 -040025config SYS_ICACHE_OFF
26 bool "Do not enable icache"
27 default n
28 help
29 Do not enable instruction cache in U-Boot.
30
Trevor Woerner43ec7e02019-05-03 09:41:00 -040031config SPL_SYS_ICACHE_OFF
32 bool "Do not enable icache in SPL"
33 depends on SPL
34 default SYS_ICACHE_OFF
35 help
36 Do not enable instruction cache in SPL.
37
Trevor Woernerba64b8b2019-05-03 09:40:59 -040038config SYS_DCACHE_OFF
39 bool "Do not enable dcache"
40 default n
41 help
42 Do not enable data cache in U-Boot.
43
Trevor Woerner43ec7e02019-05-03 09:41:00 -040044config SPL_SYS_DCACHE_OFF
45 bool "Do not enable dcache in SPL"
46 depends on SPL
47 default SYS_DCACHE_OFF
48 help
49 Do not enable data cache in SPL.
50
Rick Chen842d5802018-11-07 09:34:06 +080051# board-specific options below
Rick Chenb66af372018-05-29 09:54:40 +080052source "board/AndesTech/ax25-ae350/Kconfig"
Bin Meng8a8694d2018-09-26 06:55:21 -070053source "board/emulation/qemu-riscv/Kconfig"
Padmarao Begari4216f342019-05-28 15:47:51 +053054source "board/microchip/mpfs_icicle/Kconfig"
Anup Patel7a167f22019-02-25 08:15:19 +000055source "board/sifive/fu540/Kconfig"
Rick Chen64d4ead2017-12-26 13:55:52 +080056
Rick Chen842d5802018-11-07 09:34:06 +080057# platform-specific options below
58source "arch/riscv/cpu/ax25/Kconfig"
Anup Patel1240cd62019-02-25 08:14:10 +000059source "arch/riscv/cpu/generic/Kconfig"
Rick Chen842d5802018-11-07 09:34:06 +080060
61# architecture-specific options below
62
Rick Chen64d4ead2017-12-26 13:55:52 +080063choice
Lukas Auer54ebfe72018-11-22 11:26:12 +010064 prompt "Base ISA"
65 default ARCH_RV32I
Rick Chen64d4ead2017-12-26 13:55:52 +080066
Lukas Auer54ebfe72018-11-22 11:26:12 +010067config ARCH_RV32I
68 bool "RV32I"
Rick Chen64d4ead2017-12-26 13:55:52 +080069 select 32BIT
70 help
Lukas Auer54ebfe72018-11-22 11:26:12 +010071 Choose this option to target the RV32I base integer instruction set.
Rick Chen64d4ead2017-12-26 13:55:52 +080072
Lukas Auer54ebfe72018-11-22 11:26:12 +010073config ARCH_RV64I
74 bool "RV64I"
Rick Chen64d4ead2017-12-26 13:55:52 +080075 select 64BIT
Lukas Auer7ab1df02018-11-22 11:26:13 +010076 select PHYS_64BIT
Rick Chen64d4ead2017-12-26 13:55:52 +080077 help
Lukas Auer54ebfe72018-11-22 11:26:12 +010078 Choose this option to target the RV64I base integer instruction set.
Rick Chen64d4ead2017-12-26 13:55:52 +080079
80endchoice
81
Lukas Auerecc5d832018-12-12 06:12:23 -080082choice
83 prompt "Code Model"
84 default CMODEL_MEDLOW
85
86config CMODEL_MEDLOW
87 bool "medium low code model"
88 help
89 U-Boot and its statically defined symbols must lie within a single 2 GiB
90 address range and must lie between absolute addresses -2 GiB and +2 GiB.
91
92config CMODEL_MEDANY
93 bool "medium any code model"
94 help
95 U-Boot and its statically defined symbols must be within any single 2 GiB
96 address range.
97
98endchoice
99
Anup Patel27881772018-12-12 06:12:29 -0800100choice
101 prompt "Run Mode"
102 default RISCV_MMODE
103
104config RISCV_MMODE
105 bool "Machine"
106 help
107 Choose this option to build U-Boot for RISC-V M-Mode.
108
109config RISCV_SMODE
110 bool "Supervisor"
111 help
112 Choose this option to build U-Boot for RISC-V S-Mode.
113
114endchoice
115
Lukas Auer61346592019-08-21 21:14:43 +0200116choice
117 prompt "SPL Run Mode"
118 default SPL_RISCV_MMODE
119 depends on SPL
120
121config SPL_RISCV_MMODE
122 bool "Machine"
123 help
124 Choose this option to build U-Boot SPL for RISC-V M-Mode.
125
126config SPL_RISCV_SMODE
127 bool "Supervisor"
128 help
129 Choose this option to build U-Boot SPL for RISC-V S-Mode.
130
131endchoice
132
Lukas Auer002012f2018-11-22 11:26:14 +0100133config RISCV_ISA_C
134 bool "Emit compressed instructions"
135 default y
136 help
137 Adds "C" to the ISA subsets that the toolchain is allowed to emit
138 when building U-Boot, which results in compressed instructions in the
139 U-Boot binary.
140
141config RISCV_ISA_A
142 def_bool y
143
Rick Chen64d4ead2017-12-26 13:55:52 +0800144config 32BIT
145 bool
146
147config 64BIT
148 bool
149
Bin Mengb6ee5e12018-12-12 06:12:30 -0800150config SIFIVE_CLINT
151 bool
Lukas Auer61346592019-08-21 21:14:43 +0200152 depends on RISCV_MMODE || SPL_RISCV_MMODE
Bin Mengb6ee5e12018-12-12 06:12:30 -0800153 select REGMAP
154 select SYSCON
Lukas Auer61346592019-08-21 21:14:43 +0200155 select SPL_REGMAP if SPL
156 select SPL_SYSCON if SPL
Bin Mengb6ee5e12018-12-12 06:12:30 -0800157 help
158 The SiFive CLINT block holds memory-mapped control and status registers
159 associated with software and timer interrupts.
160
Rick Chen6df4ed02019-04-02 15:56:39 +0800161config ANDES_PLIC
162 bool
Lukas Auer61346592019-08-21 21:14:43 +0200163 depends on RISCV_MMODE || SPL_RISCV_MMODE
Rick Chen6df4ed02019-04-02 15:56:39 +0800164 select REGMAP
165 select SYSCON
Lukas Auer61346592019-08-21 21:14:43 +0200166 select SPL_REGMAP if SPL
167 select SPL_SYSCON if SPL
Rick Chen6df4ed02019-04-02 15:56:39 +0800168 help
169 The Andes PLIC block holds memory-mapped claim and pending registers
170 associated with software interrupt.
171
Rick Chen73766772019-04-02 15:56:40 +0800172config ANDES_PLMT
173 bool
Lukas Auer61346592019-08-21 21:14:43 +0200174 depends on RISCV_MMODE || SPL_RISCV_MMODE
Rick Chen73766772019-04-02 15:56:40 +0800175 select REGMAP
176 select SYSCON
Lukas Auer61346592019-08-21 21:14:43 +0200177 select SPL_REGMAP if SPL
178 select SPL_SYSCON if SPL
Rick Chen73766772019-04-02 15:56:40 +0800179 help
180 The Andes PLMT block holds memory-mapped mtime register
181 associated with timer tick.
182
Anup Patelf3c84792018-12-12 06:12:31 -0800183config RISCV_RDTIME
184 bool
Lukas Auer61346592019-08-21 21:14:43 +0200185 default y if RISCV_SMODE || SPL_RISCV_SMODE
Anup Patelf3c84792018-12-12 06:12:31 -0800186 help
187 The provides the riscv_get_time() API that is implemented using the
188 standard rdtime instruction. This is the case for S-mode U-Boot, and
189 is useful for processors that support rdtime in M-mode too.
190
Bin Mengdada2d12018-12-12 06:12:33 -0800191config SYS_MALLOC_F_LEN
192 default 0x1000
193
Lukas Auer83d573d2019-03-17 19:28:32 +0100194config SMP
195 bool "Symmetric Multi-Processing"
Bin Meng49975222020-04-16 08:09:31 -0700196 depends on SBI_V01 || !RISCV_SMODE
Lukas Auer83d573d2019-03-17 19:28:32 +0100197 help
198 This enables support for systems with more than one CPU. If
199 you say N here, U-Boot will run on single and multiprocessor
200 machines, but will use only one CPU of a multiprocessor
201 machine. If you say Y here, U-Boot will run on many, but not
202 all, single processor machines.
203
Bin Mengb161f902020-04-16 08:09:30 -0700204config SPL_SMP
205 bool "Symmetric Multi-Processing in SPL"
206 depends on SPL && SPL_RISCV_MMODE
207 default y
208 help
209 This enables support for systems with more than one CPU in SPL.
210 If you say N here, U-Boot SPL will run on single and multiprocessor
211 machines, but will use only one CPU of a multiprocessor
212 machine. If you say Y here, U-Boot SPL will run on many, but not
213 all, single processor machines.
214
Lukas Auer83d573d2019-03-17 19:28:32 +0100215config NR_CPUS
216 int "Maximum number of CPUs (2-32)"
217 range 2 32
Bin Mengb161f902020-04-16 08:09:30 -0700218 depends on SMP || SPL_SMP
Lukas Auer83d573d2019-03-17 19:28:32 +0100219 default 8
220 help
221 On multiprocessor machines, U-Boot sets up a stack for each CPU.
222 Stack memory is pre-allocated. U-Boot must therefore know the
223 maximum number of CPUs that may be present.
224
Bin Mengee3bcd02020-03-09 19:35:28 -0700225config SBI
226 bool
227 default y if RISCV_SMODE || SPL_RISCV_SMODE
228
Bin Menga75325e2020-04-16 08:09:32 -0700229choice
230 prompt "SBI support"
Bin Meng3aecc4b2020-04-16 08:09:33 -0700231 default SBI_V02
Bin Menga75325e2020-04-16 08:09:32 -0700232
Bin Meng887d8092020-03-09 19:35:30 -0700233config SBI_V01
234 bool "SBI v0.1 support"
Bin Meng887d8092020-03-09 19:35:30 -0700235 depends on SBI
236 help
237 This config allows kernel to use SBI v0.1 APIs. This will be
238 deprecated in future once legacy M-mode software are no longer in use.
239
Bin Menga75325e2020-04-16 08:09:32 -0700240config SBI_V02
241 bool "SBI v0.2 support"
242 depends on SBI
243 help
244 This config allows kernel to use SBI v0.2 APIs. SBI v0.2 is more
245 scalable and extendable to handle future needs for RISC-V supervisor
246 interfaces. For example, with SBI v0.2 HSM extension, only a single
247 hart need to boot and enter operating system. The booting hart can
248 bring up secondary harts one by one afterwards.
249
250 Choose this option if OpenSBI v0.7 or above release is used together
251 with U-Boot.
252
253endchoice
254
Lukas Auere79178b2019-03-17 19:28:34 +0100255config SBI_IPI
256 bool
Bin Mengee3bcd02020-03-09 19:35:28 -0700257 depends on SBI
Lukas Auer61346592019-08-21 21:14:43 +0200258 default y if RISCV_SMODE || SPL_RISCV_SMODE
Lukas Auere79178b2019-03-17 19:28:34 +0100259 depends on SMP
260
Rick Chene5e6c362019-04-30 13:49:33 +0800261config XIP
262 bool "XIP mode"
263 help
264 XIP (eXecute In Place) is a method for executing code directly
265 from a NOR flash memory without copying the code to ram.
266 Say yes here if U-Boot boots from flash directly.
267
Sean Andersone8b46a12019-12-25 00:27:44 -0500268config SHOW_REGS
269 bool "Show registers on unhandled exception"
270
Lukas Auera3596652019-03-17 19:28:37 +0100271config STACK_SIZE_SHIFT
272 int
Lukas Auer03813702019-10-20 20:53:47 +0200273 default 14
Lukas Auera3596652019-03-17 19:28:37 +0100274
Rick Chen64d4ead2017-12-26 13:55:52 +0800275endmenu