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