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