blob: a252cdbb7138d8c2aa3c1418ce390ccec260570b [file] [log] [blame]
Bin Meng117a4332018-09-26 06:55:06 -07001menu "RISC-V architecture"
Rick Chenf94c44e2017-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 Chen6f4dd622018-05-29 09:54:40 +080011config TARGET_AX25_AE350
12 bool "Support ax25-ae350"
Rick Chenf94c44e2017-12-26 13:55:52 +080013
Padmarao Begari39494822019-05-28 15:47:51 +053014config TARGET_MICROCHIP_ICICLE
15 bool "Support Microchip PolarFire-SoC Icicle Board"
16
Bin Meng510e3792018-09-26 06:55:21 -070017config TARGET_QEMU_VIRT
18 bool "Support QEMU Virt Board"
19
Anup Patel3fda0262019-02-25 08:15:19 +000020config TARGET_SIFIVE_FU540
21 bool "Support SiFive FU540 Board"
22
Rick Chenf94c44e2017-12-26 13:55:52 +080023endchoice
24
Trevor Woernera0aba8a2019-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 Woerner10015022019-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 Woernera0aba8a2019-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 Woerner10015022019-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 Chen52923c62018-11-07 09:34:06 +080051# board-specific options below
Rick Chen6f4dd622018-05-29 09:54:40 +080052source "board/AndesTech/ax25-ae350/Kconfig"
Bin Meng510e3792018-09-26 06:55:21 -070053source "board/emulation/qemu-riscv/Kconfig"
Padmarao Begari39494822019-05-28 15:47:51 +053054source "board/microchip/mpfs_icicle/Kconfig"
Anup Patel3fda0262019-02-25 08:15:19 +000055source "board/sifive/fu540/Kconfig"
Rick Chenf94c44e2017-12-26 13:55:52 +080056
Rick Chen52923c62018-11-07 09:34:06 +080057# platform-specific options below
58source "arch/riscv/cpu/ax25/Kconfig"
Anup Patelfdff1f92019-02-25 08:14:10 +000059source "arch/riscv/cpu/generic/Kconfig"
Rick Chen52923c62018-11-07 09:34:06 +080060
61# architecture-specific options below
62
Rick Chenf94c44e2017-12-26 13:55:52 +080063choice
Lukas Auer862e2e72018-11-22 11:26:12 +010064 prompt "Base ISA"
65 default ARCH_RV32I
Rick Chenf94c44e2017-12-26 13:55:52 +080066
Lukas Auer862e2e72018-11-22 11:26:12 +010067config ARCH_RV32I
68 bool "RV32I"
Rick Chenf94c44e2017-12-26 13:55:52 +080069 select 32BIT
70 help
Lukas Auer862e2e72018-11-22 11:26:12 +010071 Choose this option to target the RV32I base integer instruction set.
Rick Chenf94c44e2017-12-26 13:55:52 +080072
Lukas Auer862e2e72018-11-22 11:26:12 +010073config ARCH_RV64I
74 bool "RV64I"
Rick Chenf94c44e2017-12-26 13:55:52 +080075 select 64BIT
Lukas Auer71158562018-11-22 11:26:13 +010076 select PHYS_64BIT
Rick Chenf94c44e2017-12-26 13:55:52 +080077 help
Lukas Auer862e2e72018-11-22 11:26:12 +010078 Choose this option to target the RV64I base integer instruction set.
Rick Chenf94c44e2017-12-26 13:55:52 +080079
80endchoice
81
Lukas Auer8176ea42018-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 Patel3cfc8252018-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 Auerfbfd92b2019-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 Auerd57ffa62018-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 Chenf94c44e2017-12-26 13:55:52 +0800144config 32BIT
145 bool
146
147config 64BIT
148 bool
149
Bin Meng644a3cd2018-12-12 06:12:30 -0800150config SIFIVE_CLINT
151 bool
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200152 depends on RISCV_MMODE || SPL_RISCV_MMODE
Bin Meng644a3cd2018-12-12 06:12:30 -0800153 select REGMAP
154 select SYSCON
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200155 select SPL_REGMAP if SPL
156 select SPL_SYSCON if SPL
Bin Meng644a3cd2018-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 Chen0d389462019-04-02 15:56:39 +0800161config ANDES_PLIC
162 bool
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200163 depends on RISCV_MMODE || SPL_RISCV_MMODE
Rick Chen0d389462019-04-02 15:56:39 +0800164 select REGMAP
165 select SYSCON
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200166 select SPL_REGMAP if SPL
167 select SPL_SYSCON if SPL
Rick Chen0d389462019-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 Chena1f24872019-04-02 15:56:40 +0800172config ANDES_PLMT
173 bool
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200174 depends on RISCV_MMODE || SPL_RISCV_MMODE
Rick Chena1f24872019-04-02 15:56:40 +0800175 select REGMAP
176 select SYSCON
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200177 select SPL_REGMAP if SPL
178 select SPL_SYSCON if SPL
Rick Chena1f24872019-04-02 15:56:40 +0800179 help
180 The Andes PLMT block holds memory-mapped mtime register
181 associated with timer tick.
182
Anup Patel511107d2018-12-12 06:12:31 -0800183config RISCV_RDTIME
184 bool
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200185 default y if RISCV_SMODE || SPL_RISCV_SMODE
Anup Patel511107d2018-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 Meng92b64fe2018-12-12 06:12:33 -0800191config SYS_MALLOC_F_LEN
192 default 0x1000
193
Lukas Auerfa33f082019-03-17 19:28:32 +0100194config SMP
195 bool "Symmetric Multi-Processing"
Bin Meng6fa022e2020-04-16 08:09:31 -0700196 depends on SBI_V01 || !RISCV_SMODE
Lukas Auerfa33f082019-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 Meng191636e2020-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 Auerfa33f082019-03-17 19:28:32 +0100215config NR_CPUS
216 int "Maximum number of CPUs (2-32)"
217 range 2 32
Bin Meng191636e2020-04-16 08:09:30 -0700218 depends on SMP || SPL_SMP
Lukas Auerfa33f082019-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 Mengf58fc342020-03-09 19:35:28 -0700225config SBI
226 bool
227 default y if RISCV_SMODE || SPL_RISCV_SMODE
228
Bin Meng1b3c8d62020-03-09 19:35:30 -0700229config SBI_V01
230 bool "SBI v0.1 support"
231 default y
232 depends on SBI
233 help
234 This config allows kernel to use SBI v0.1 APIs. This will be
235 deprecated in future once legacy M-mode software are no longer in use.
236
Lukas Auerf152feb2019-03-17 19:28:34 +0100237config SBI_IPI
238 bool
Bin Mengf58fc342020-03-09 19:35:28 -0700239 depends on SBI
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200240 default y if RISCV_SMODE || SPL_RISCV_SMODE
Lukas Auerf152feb2019-03-17 19:28:34 +0100241 depends on SMP
242
Rick Chenbdce3892019-04-30 13:49:33 +0800243config XIP
244 bool "XIP mode"
245 help
246 XIP (eXecute In Place) is a method for executing code directly
247 from a NOR flash memory without copying the code to ram.
248 Say yes here if U-Boot boots from flash directly.
249
Sean Andersonfd1f6e92019-12-25 00:27:44 -0500250config SHOW_REGS
251 bool "Show registers on unhandled exception"
252
Lukas Auer3dea63c2019-03-17 19:28:37 +0100253config STACK_SIZE_SHIFT
254 int
Lukas Auer6b20dc12019-10-20 20:53:47 +0200255 default 14
Lukas Auer3dea63c2019-03-17 19:28:37 +0100256
Rick Chenf94c44e2017-12-26 13:55:52 +0800257endmenu