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