Merge https://source.denx.de/u-boot/custodians/u-boot-sh
[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         select IRQ
124         select SUPPORT_EXTENSION_SCAN
125         imply BITREVERSE
126         select BLOBLIST
127         imply CMD_DM
128         imply CMD_EXCEPTION
129         imply CMD_GETTIME
130         imply CMD_HASH
131         imply CMD_IO
132         imply CMD_IOTRACE
133         imply CMD_LZMADEC
134         imply CMD_SATA
135         imply CMD_SF
136         imply CMD_SF_TEST
137         imply CRC32_VERIFY
138         imply FAT_WRITE
139         imply FIRMWARE
140         imply HASH_VERIFY
141         imply LZMA
142         imply SCSI
143         imply TEE
144         imply AVB_VERIFY
145         imply LIBAVB
146         imply CMD_AVB
147         imply SCP03
148         imply CMD_SCP03
149         imply UDP_FUNCTION_FASTBOOT
150         imply VIRTIO_MMIO
151         imply VIRTIO_PCI
152         imply VIRTIO_SANDBOX
153         imply VIRTIO_BLK
154         imply VIRTIO_NET
155         imply DM_SOUND
156         imply PCI_SANDBOX_EP
157         imply PCH
158         imply PHYLIB
159         imply DM_MDIO
160         imply DM_MDIO_MUX
161         imply ACPI_PMC
162         imply ACPI_PMC_SANDBOX
163         imply CMD_PMC
164         imply CMD_CLONE
165         imply SILENT_CONSOLE
166         imply BOOTARGS_SUBST
167         imply PHY_FIXED
168         imply DM_DSA
169         imply CMD_EXTENSION
170
171 config SH
172         bool "SuperH architecture"
173         select HAVE_PRIVATE_LIBGCC
174         select SUPPORT_OF_CONTROL
175
176 config X86
177         bool "x86 architecture"
178         select SUPPORT_SPL
179         select SUPPORT_TPL
180         select CREATE_ARCH_SYMLINK
181         select DM
182         select DM_PCI
183         select HAVE_ARCH_IOMAP
184         select HAVE_PRIVATE_LIBGCC
185         select OF_CONTROL
186         select PCI
187         select SUPPORT_OF_CONTROL
188         select TIMER
189         select USE_PRIVATE_LIBGCC
190         select X86_TSC_TIMER
191         select IRQ
192         imply HAS_ROM if X86_RESET_VECTOR
193         imply BLK
194         imply CMD_DM
195         imply CMD_FPGA_LOADMK
196         imply CMD_GETTIME
197         imply CMD_IO
198         imply CMD_IRQ
199         imply CMD_PCI
200         imply CMD_SF
201         imply CMD_SF_TEST
202         imply CMD_ZBOOT
203         imply DM_ETH
204         imply DM_GPIO
205         imply DM_KEYBOARD
206         imply DM_MMC
207         imply DM_RTC
208         imply DM_SCSI
209         imply DM_SERIAL
210         imply DM_SPI
211         imply DM_SPI_FLASH
212         imply DM_USB
213         imply DM_VIDEO
214         imply SYSRESET
215         imply SPL_SYSRESET
216         imply SYSRESET_X86
217         imply USB_ETHER_ASIX
218         imply USB_ETHER_SMSC95XX
219         imply USB_HOST_ETHER
220         imply PCH
221         imply RTC_MC146818
222         imply ACPIGEN if !QEMU
223         imply SYSINFO if GENERATE_SMBIOS_TABLE
224         imply SYSINFO_SMBIOS if GENERATE_SMBIOS_TABLE
225
226         # Thing to enable for when SPL/TPL are enabled: SPL
227         imply SPL_DM
228         imply SPL_OF_LIBFDT
229         imply SPL_DRIVERS_MISC_SUPPORT
230         imply SPL_GPIO_SUPPORT
231         imply SPL_PINCTRL
232         imply SPL_LIBCOMMON_SUPPORT
233         imply SPL_LIBGENERIC_SUPPORT
234         imply SPL_SERIAL_SUPPORT
235         imply SPL_SPI_FLASH_SUPPORT
236         imply SPL_SPI_SUPPORT
237         imply SPL_OF_CONTROL
238         imply SPL_TIMER
239         imply SPL_REGMAP
240         imply SPL_SYSCON
241         # TPL
242         imply TPL_DM
243         imply TPL_DRIVERS_MISC_SUPPORT
244         imply TPL_GPIO_SUPPORT
245         imply TPL_PINCTRL
246         imply TPL_LIBCOMMON_SUPPORT
247         imply TPL_LIBGENERIC_SUPPORT
248         imply TPL_SERIAL_SUPPORT
249         imply TPL_OF_CONTROL
250         imply TPL_TIMER
251         imply TPL_REGMAP
252         imply TPL_SYSCON
253
254 config XTENSA
255         bool "Xtensa architecture"
256         select CREATE_ARCH_SYMLINK
257         select SUPPORT_OF_CONTROL
258
259 endchoice
260
261 config SYS_ARCH
262         string
263         help
264           This option should contain the architecture name to build the
265           appropriate arch/<CONFIG_SYS_ARCH> directory.
266           All the architectures should specify this option correctly.
267
268 config SYS_CPU
269         string
270         help
271           This option should contain the CPU name to build the correct
272           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU> directory.
273
274           This is optional.  For those targets without the CPU directory,
275           leave this option empty.
276
277 config SYS_SOC
278         string
279         help
280           This option should contain the SoC name to build the directory
281           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU>/<CONFIG_SYS_SOC>.
282
283           This is optional.  For those targets without the SoC directory,
284           leave this option empty.
285
286 config SYS_VENDOR
287         string
288         help
289           This option should contain the vendor name of the target board.
290           If it is set and
291           board/<CONFIG_SYS_VENDOR>/common/Makefile exists, the vendor common
292           directory is compiled.
293           If CONFIG_SYS_BOARD is also set, the sources under
294           board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> directory are compiled.
295
296           This is optional.  For those targets without the vendor directory,
297           leave this option empty.
298
299 config SYS_BOARD
300         string
301         help
302           This option should contain the name of the target board.
303           If it is set, either board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
304           or board/<CONFIG_SYS_BOARD> directory is compiled depending on
305           whether CONFIG_SYS_VENDOR is set or not.
306
307           This is optional.  For those targets without the board directory,
308           leave this option empty.
309
310 config SYS_CONFIG_NAME
311         string
312         help
313           This option should contain the base name of board header file.
314           The header file include/configs/<CONFIG_SYS_CONFIG_NAME>.h
315           should be included from include/config.h.
316
317 config SYS_DISABLE_DCACHE_OPS
318         bool
319         help
320          This option disables dcache flush and dcache invalidation
321          operations. For example, on coherent systems where cache
322          operatios are not required, enable this option to avoid them.
323          Note that, its up to the individual architectures to implement
324          this functionality.
325
326 source "arch/arc/Kconfig"
327 source "arch/arm/Kconfig"
328 source "arch/m68k/Kconfig"
329 source "arch/microblaze/Kconfig"
330 source "arch/mips/Kconfig"
331 source "arch/nds32/Kconfig"
332 source "arch/nios2/Kconfig"
333 source "arch/powerpc/Kconfig"
334 source "arch/sandbox/Kconfig"
335 source "arch/sh/Kconfig"
336 source "arch/x86/Kconfig"
337 source "arch/xtensa/Kconfig"
338 source "arch/riscv/Kconfig"