28afe3980168d2a15d326559571dc78182c33bb3
[oweals/u-boot.git] / arch / Kconfig
1 config CREATE_ARCH_SYMLINK
2         bool
3
4 config HAVE_ARCH_IOREMAP
5         bool
6
7 choice
8         prompt "Architecture select"
9         default SANDBOX
10
11 config ARC
12         bool "ARC architecture"
13         select ARCH_EARLY_INIT_R
14         select ARC_TIMER
15         select CLK
16         select HAVE_PRIVATE_LIBGCC
17         select SUPPORT_OF_CONTROL
18         select TIMER
19
20 config ARM
21         bool "ARM architecture"
22         select CREATE_ARCH_SYMLINK
23         select HAVE_PRIVATE_LIBGCC if !ARM64
24         select SUPPORT_OF_CONTROL
25
26 config M68K
27         bool "M68000 architecture"
28         select HAVE_PRIVATE_LIBGCC
29         select SYS_BOOT_GET_CMDLINE
30         select SYS_BOOT_GET_KBD
31         select SUPPORT_OF_CONTROL
32
33 config MICROBLAZE
34         bool "MicroBlaze architecture"
35         select SUPPORT_OF_CONTROL
36         imply CMD_IRQ
37
38 config MIPS
39         bool "MIPS architecture"
40         select HAVE_ARCH_IOREMAP
41         select HAVE_PRIVATE_LIBGCC
42         select SUPPORT_OF_CONTROL
43
44 config NDS32
45         bool "NDS32 architecture"
46         select SUPPORT_OF_CONTROL
47
48 config NIOS2
49         bool "Nios II architecture"
50         select CPU
51         select DM
52         select OF_CONTROL
53         select SUPPORT_OF_CONTROL
54         imply CMD_DM
55
56 config PPC
57         bool "PowerPC architecture"
58         select HAVE_PRIVATE_LIBGCC
59         select SUPPORT_OF_CONTROL
60         select SYS_BOOT_GET_CMDLINE
61         select SYS_BOOT_GET_KBD
62
63 config RISCV
64         bool "RISC-V architecture"
65         select CREATE_ARCH_SYMLINK
66         select SUPPORT_OF_CONTROL
67         select OF_CONTROL
68         select DM
69         imply DM_SERIAL
70         imply DM_ETH
71         imply DM_MMC
72         imply DM_SPI
73         imply DM_SPI_FLASH
74         imply BLK
75         imply CLK
76         imply MTD
77         imply TIMER
78         imply CMD_DM
79
80 config SANDBOX
81         bool "Sandbox"
82         select BOARD_LATE_INIT
83         select DM
84         select DM_GPIO
85         select DM_I2C
86         select DM_KEYBOARD
87         select DM_MMC
88         select DM_SERIAL
89         select DM_SPI
90         select DM_SPI_FLASH
91         select HAVE_BLOCK_DEVICE
92         select LZO
93         select SPI
94         select SUPPORT_OF_CONTROL
95         imply BITREVERSE
96         select BLOBLIST
97         imply CMD_DM
98         imply CMD_GETTIME
99         imply CMD_HASH
100         imply CMD_IO
101         imply CMD_IOTRACE
102         imply CMD_LZMADEC
103         imply CMD_SATA
104         imply CMD_SF
105         imply CMD_SF_TEST
106         imply CRC32_VERIFY
107         imply FAT_WRITE
108         imply FIRMWARE
109         imply HASH_VERIFY
110         imply LZMA
111         imply SCSI
112         imply TEE
113         imply AVB_VERIFY
114         imply LIBAVB
115         imply CMD_AVB
116         imply UDP_FUNCTION_FASTBOOT
117         imply VIRTIO_MMIO
118         imply VIRTIO_PCI
119         imply VIRTIO_SANDBOX
120         imply VIRTIO_BLK
121         imply VIRTIO_NET
122         imply DM_SOUND
123         imply PCH
124
125 config SH
126         bool "SuperH architecture"
127         select HAVE_PRIVATE_LIBGCC
128
129 config X86
130         bool "x86 architecture"
131         select SUPPORT_SPL
132         select SUPPORT_TPL
133         select CREATE_ARCH_SYMLINK
134         select DM
135         select DM_PCI
136         select HAVE_ARCH_IOMAP
137         select HAVE_PRIVATE_LIBGCC
138         select OF_CONTROL
139         select PCI
140         select SUPPORT_OF_CONTROL
141         select TIMER
142         select USE_PRIVATE_LIBGCC
143         select X86_TSC_TIMER
144         imply BLK
145         imply CMD_DM
146         imply CMD_FPGA_LOADMK
147         imply CMD_GETTIME
148         imply CMD_IO
149         imply CMD_IRQ
150         imply CMD_PCI
151         imply CMD_SF
152         imply CMD_SF_TEST
153         imply CMD_ZBOOT
154         imply DM_ETH
155         imply DM_GPIO
156         imply DM_KEYBOARD
157         imply DM_MMC
158         imply DM_RTC
159         imply DM_SCSI
160         imply DM_SERIAL
161         imply DM_SPI
162         imply DM_SPI_FLASH
163         imply DM_USB
164         imply DM_VIDEO
165         imply SYSRESET
166         imply SPL_SYSRESET
167         imply SYSRESET_X86
168         imply USB_ETHER_ASIX
169         imply USB_ETHER_SMSC95XX
170         imply USB_HOST_ETHER
171         imply PCH
172         imply RTC_MC146818
173
174         # Thing to enable for when SPL/TPL are enabled: SPL
175         imply SPL_DM
176         imply SPL_OF_LIBFDT
177         imply SPL_DRIVERS_MISC_SUPPORT
178         imply SPL_GPIO_SUPPORT
179         imply SPL_LIBCOMMON_SUPPORT
180         imply SPL_LIBGENERIC_SUPPORT
181         imply SPL_SERIAL_SUPPORT
182         imply SPL_SPI_FLASH_SUPPORT
183         imply SPL_SPI_SUPPORT
184         imply SPL_OF_CONTROL
185         imply SPL_TIMER
186         imply SPL_REGMAP
187         imply SPL_SYSCON
188         # TPL
189         imply TPL_DM
190         imply TPL_OF_LIBFDT
191         imply TPL_DRIVERS_MISC_SUPPORT
192         imply TPL_GPIO_SUPPORT
193         imply TPL_LIBCOMMON_SUPPORT
194         imply TPL_LIBGENERIC_SUPPORT
195         imply TPL_SERIAL_SUPPORT
196         imply TPL_SPI_FLASH_SUPPORT
197         imply TPL_SPI_SUPPORT
198         imply TPL_OF_CONTROL
199         imply TPL_TIMER
200         imply TPL_REGMAP
201         imply TPL_SYSCON
202
203 config XTENSA
204         bool "Xtensa architecture"
205         select CREATE_ARCH_SYMLINK
206         select SUPPORT_OF_CONTROL
207
208 endchoice
209
210 config SYS_ARCH
211         string
212         help
213           This option should contain the architecture name to build the
214           appropriate arch/<CONFIG_SYS_ARCH> directory.
215           All the architectures should specify this option correctly.
216
217 config SYS_CPU
218         string
219         help
220           This option should contain the CPU name to build the correct
221           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU> directory.
222
223           This is optional.  For those targets without the CPU directory,
224           leave this option empty.
225
226 config SYS_SOC
227         string
228         help
229           This option should contain the SoC name to build the directory
230           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU>/<CONFIG_SYS_SOC>.
231
232           This is optional.  For those targets without the SoC directory,
233           leave this option empty.
234
235 config SYS_VENDOR
236         string
237         help
238           This option should contain the vendor name of the target board.
239           If it is set and
240           board/<CONFIG_SYS_VENDOR>/common/Makefile exists, the vendor common
241           directory is compiled.
242           If CONFIG_SYS_BOARD is also set, the sources under
243           board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> directory are compiled.
244
245           This is optional.  For those targets without the vendor directory,
246           leave this option empty.
247
248 config SYS_BOARD
249         string
250         help
251           This option should contain the name of the target board.
252           If it is set, either board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
253           or board/<CONFIG_SYS_BOARD> directory is compiled depending on
254           whether CONFIG_SYS_VENDOR is set or not.
255
256           This is optional.  For those targets without the board directory,
257           leave this option empty.
258
259 config SYS_CONFIG_NAME
260         string
261         help
262           This option should contain the base name of board header file.
263           The header file include/configs/<CONFIG_SYS_CONFIG_NAME>.h
264           should be included from include/config.h.
265
266 config SYS_DISABLE_DCACHE_OPS
267         bool
268         help
269          This option disables dcache flush and dcache invalidation
270          operations. For example, on coherent systems where cache
271          operatios are not required, enable this option to avoid them.
272          Note that, its up to the individual architectures to implement
273          this functionality.
274
275 source "arch/arc/Kconfig"
276 source "arch/arm/Kconfig"
277 source "arch/m68k/Kconfig"
278 source "arch/microblaze/Kconfig"
279 source "arch/mips/Kconfig"
280 source "arch/nds32/Kconfig"
281 source "arch/nios2/Kconfig"
282 source "arch/powerpc/Kconfig"
283 source "arch/sandbox/Kconfig"
284 source "arch/sh/Kconfig"
285 source "arch/x86/Kconfig"
286 source "arch/xtensa/Kconfig"
287 source "arch/riscv/Kconfig"