blob: 8cfc7d0faaac1a98a00ac9e1b364f4016a05afaf [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 Auer002012f2018-11-22 11:26:14 +0100116config RISCV_ISA_C
117 bool "Emit compressed instructions"
118 default y
119 help
120 Adds "C" to the ISA subsets that the toolchain is allowed to emit
121 when building U-Boot, which results in compressed instructions in the
122 U-Boot binary.
123
124config RISCV_ISA_A
125 def_bool y
126
Rick Chen64d4ead2017-12-26 13:55:52 +0800127config 32BIT
128 bool
129
130config 64BIT
131 bool
132
Bin Mengb6ee5e12018-12-12 06:12:30 -0800133config SIFIVE_CLINT
134 bool
135 depends on RISCV_MMODE
136 select REGMAP
137 select SYSCON
138 help
139 The SiFive CLINT block holds memory-mapped control and status registers
140 associated with software and timer interrupts.
141
Rick Chen6df4ed02019-04-02 15:56:39 +0800142config ANDES_PLIC
143 bool
144 depends on RISCV_MMODE
145 select REGMAP
146 select SYSCON
147 help
148 The Andes PLIC block holds memory-mapped claim and pending registers
149 associated with software interrupt.
150
Rick Chen73766772019-04-02 15:56:40 +0800151config ANDES_PLMT
152 bool
153 depends on RISCV_MMODE
154 select REGMAP
155 select SYSCON
156 help
157 The Andes PLMT block holds memory-mapped mtime register
158 associated with timer tick.
159
Anup Patelf3c84792018-12-12 06:12:31 -0800160config RISCV_RDTIME
161 bool
162 default y if RISCV_SMODE
163 help
164 The provides the riscv_get_time() API that is implemented using the
165 standard rdtime instruction. This is the case for S-mode U-Boot, and
166 is useful for processors that support rdtime in M-mode too.
167
Bin Mengdada2d12018-12-12 06:12:33 -0800168config SYS_MALLOC_F_LEN
169 default 0x1000
170
Lukas Auer83d573d2019-03-17 19:28:32 +0100171config SMP
172 bool "Symmetric Multi-Processing"
173 help
174 This enables support for systems with more than one CPU. If
175 you say N here, U-Boot will run on single and multiprocessor
176 machines, but will use only one CPU of a multiprocessor
177 machine. If you say Y here, U-Boot will run on many, but not
178 all, single processor machines.
179
180config NR_CPUS
181 int "Maximum number of CPUs (2-32)"
182 range 2 32
183 depends on SMP
184 default 8
185 help
186 On multiprocessor machines, U-Boot sets up a stack for each CPU.
187 Stack memory is pre-allocated. U-Boot must therefore know the
188 maximum number of CPUs that may be present.
189
Lukas Auere79178b2019-03-17 19:28:34 +0100190config SBI_IPI
191 bool
192 default y if RISCV_SMODE
193 depends on SMP
194
Rick Chene5e6c362019-04-30 13:49:33 +0800195config XIP
196 bool "XIP mode"
197 help
198 XIP (eXecute In Place) is a method for executing code directly
199 from a NOR flash memory without copying the code to ram.
200 Say yes here if U-Boot boots from flash directly.
201
Lukas Auera3596652019-03-17 19:28:37 +0100202config STACK_SIZE_SHIFT
203 int
204 default 13
205
Rick Chen64d4ead2017-12-26 13:55:52 +0800206endmenu