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