blob: 85e15ebffa1dfbce3a3c01fb8f5f6400612a110c [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"
196 help
197 This enables support for systems with more than one CPU. If
198 you say N here, U-Boot will run on single and multiprocessor
199 machines, but will use only one CPU of a multiprocessor
200 machine. If you say Y here, U-Boot will run on many, but not
201 all, single processor machines.
202
203config NR_CPUS
204 int "Maximum number of CPUs (2-32)"
205 range 2 32
206 depends on SMP
207 default 8
208 help
209 On multiprocessor machines, U-Boot sets up a stack for each CPU.
210 Stack memory is pre-allocated. U-Boot must therefore know the
211 maximum number of CPUs that may be present.
212
Lukas Auerf152feb2019-03-17 19:28:34 +0100213config SBI_IPI
214 bool
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200215 default y if RISCV_SMODE || SPL_RISCV_SMODE
Lukas Auerf152feb2019-03-17 19:28:34 +0100216 depends on SMP
217
Rick Chenbdce3892019-04-30 13:49:33 +0800218config XIP
219 bool "XIP mode"
220 help
221 XIP (eXecute In Place) is a method for executing code directly
222 from a NOR flash memory without copying the code to ram.
223 Say yes here if U-Boot boots from flash directly.
224
Lukas Auer3dea63c2019-03-17 19:28:37 +0100225config STACK_SIZE_SHIFT
226 int
Lukas Auer6b20dc12019-10-20 20:53:47 +0200227 default 14
Lukas Auer3dea63c2019-03-17 19:28:37 +0100228
Lukas Auer8c59f202019-08-21 21:14:45 +0200229config SPL_LDSCRIPT
230 default "arch/riscv/cpu/u-boot-spl.lds"
231
Rick Chenf94c44e2017-12-26 13:55:52 +0800232endmenu