Convert CONFIG_PHYSMEM to Kconfig
[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 SYS_CACHE_SHIFT_4
11         bool
12
13 config SYS_CACHE_SHIFT_5
14         bool
15
16 config SYS_CACHE_SHIFT_6
17         bool
18
19 config SYS_CACHE_SHIFT_7
20         bool
21
22 config SYS_CACHELINE_SIZE
23         int
24         default 128 if SYS_CACHE_SHIFT_7
25         default 64 if SYS_CACHE_SHIFT_6
26         default 32 if SYS_CACHE_SHIFT_5
27         default 16 if SYS_CACHE_SHIFT_4
28         # Fall-back for MIPS
29         default 32 if MIPS
30
31 config LINKER_LIST_ALIGN
32         int
33         default 32 if SANDBOX
34         default 8 if ARM64 || X86
35         default 4
36         help
37           Force the each linker list to be aligned to this boundary. This
38           is required if ll_entry_get() is used, since otherwise the linker
39           may add padding into the table, thus breaking it.
40           See linker_lists.rst for full details.
41
42 choice
43         prompt "Architecture select"
44         default SANDBOX
45
46 config ARC
47         bool "ARC architecture"
48         select ARC_TIMER
49         select CLK
50         select DM
51         select HAVE_PRIVATE_LIBGCC
52         select SUPPORT_OF_CONTROL
53         select SYS_CACHE_SHIFT_7
54         select TIMER
55
56 config ARM
57         bool "ARM architecture"
58         select ARCH_SUPPORTS_LTO
59         select CREATE_ARCH_SYMLINK
60         select HAVE_PRIVATE_LIBGCC if !ARM64
61         select SUPPORT_OF_CONTROL
62
63 config M68K
64         bool "M68000 architecture"
65         select HAVE_PRIVATE_LIBGCC
66         select NEEDS_MANUAL_RELOC
67         select SYS_BOOT_GET_CMDLINE
68         select SYS_BOOT_GET_KBD
69         select SYS_CACHE_SHIFT_4
70         select SUPPORT_OF_CONTROL
71
72 config MICROBLAZE
73         bool "MicroBlaze architecture"
74         select NEEDS_MANUAL_RELOC
75         select SUPPORT_OF_CONTROL
76         imply CMD_IRQ
77
78 config MIPS
79         bool "MIPS architecture"
80         select HAVE_ARCH_IOREMAP
81         select HAVE_PRIVATE_LIBGCC
82         select SUPPORT_OF_CONTROL
83
84 config NDS32
85         bool "NDS32 architecture"
86         select SUPPORT_OF_CONTROL
87
88 config NIOS2
89         bool "Nios II architecture"
90         select CPU
91         select DM
92         select OF_CONTROL
93         select SUPPORT_OF_CONTROL
94         imply CMD_DM
95
96 config PPC
97         bool "PowerPC architecture"
98         select HAVE_PRIVATE_LIBGCC
99         select SUPPORT_OF_CONTROL
100         select SYS_BOOT_GET_CMDLINE
101         select SYS_BOOT_GET_KBD
102
103 config RISCV
104         bool "RISC-V architecture"
105         select CREATE_ARCH_SYMLINK
106         select SUPPORT_OF_CONTROL
107         select OF_CONTROL
108         select DM
109         imply DM_SERIAL
110         imply DM_ETH
111         imply DM_MMC
112         imply DM_SPI
113         imply DM_SPI_FLASH
114         imply BLK
115         imply CLK
116         imply MTD
117         imply TIMER
118         imply CMD_DM
119         imply SPL_DM
120         imply SPL_OF_CONTROL
121         imply SPL_LIBCOMMON_SUPPORT
122         imply SPL_LIBGENERIC_SUPPORT
123         imply SPL_SERIAL
124         imply SPL_TIMER
125
126 config SANDBOX
127         bool "Sandbox"
128         select ARCH_SUPPORTS_LTO
129         select BOARD_LATE_INIT
130         select BZIP2
131         select CMD_POWEROFF
132         select DM
133         select DM_GPIO
134         select DM_I2C
135         select DM_KEYBOARD
136         select DM_MMC
137         select DM_SERIAL
138         select DM_SPI
139         select DM_SPI_FLASH
140         select GZIP_COMPRESSED
141         select HAVE_BLOCK_DEVICE
142         select LZO
143         select OF_BOARD_SETUP
144         select PCI_ENDPOINT
145         select SPI
146         select SUPPORT_OF_CONTROL
147         select SYSRESET_CMD_POWEROFF
148         select SYS_CACHE_SHIFT_4
149         select IRQ
150         select SUPPORT_EXTENSION_SCAN
151         imply BITREVERSE
152         select BLOBLIST
153         imply LTO
154         imply CMD_DM
155         imply CMD_EXCEPTION
156         imply CMD_GETTIME
157         imply CMD_HASH
158         imply CMD_IO
159         imply CMD_IOTRACE
160         imply CMD_LZMADEC
161         imply CMD_SATA
162         imply CMD_SF
163         imply CMD_SF_TEST
164         imply CRC32_VERIFY
165         imply FAT_WRITE
166         imply FIRMWARE
167         imply HASH_VERIFY
168         imply LZMA
169         imply SCSI
170         imply TEE
171         imply AVB_VERIFY
172         imply LIBAVB
173         imply CMD_AVB
174         imply SCP03
175         imply CMD_SCP03
176         imply UDP_FUNCTION_FASTBOOT
177         imply VIRTIO_MMIO
178         imply VIRTIO_PCI
179         imply VIRTIO_SANDBOX
180         imply VIRTIO_BLK
181         imply VIRTIO_NET
182         imply DM_SOUND
183         imply PCI_SANDBOX_EP
184         imply PCH
185         imply PHYLIB
186         imply DM_MDIO
187         imply DM_MDIO_MUX
188         imply ACPI_PMC
189         imply ACPI_PMC_SANDBOX
190         imply CMD_PMC
191         imply CMD_CLONE
192         imply SILENT_CONSOLE
193         imply BOOTARGS_SUBST
194         imply PHY_FIXED
195         imply DM_DSA
196         imply CMD_EXTENSION
197         imply KEYBOARD
198         imply PHYSMEM
199
200 config SH
201         bool "SuperH architecture"
202         select HAVE_PRIVATE_LIBGCC
203         select SUPPORT_OF_CONTROL
204
205 config X86
206         bool "x86 architecture"
207         select SUPPORT_SPL
208         select SUPPORT_TPL
209         select CREATE_ARCH_SYMLINK
210         select DM
211         select HAVE_ARCH_IOMAP
212         select HAVE_PRIVATE_LIBGCC
213         select OF_CONTROL
214         select PCI
215         select SUPPORT_OF_CONTROL
216         select SYS_CACHE_SHIFT_6
217         select TIMER
218         select USE_PRIVATE_LIBGCC
219         select X86_TSC_TIMER
220         select IRQ
221         imply HAS_ROM if X86_RESET_VECTOR
222         imply BLK
223         imply CMD_DM
224         imply CMD_FPGA_LOADMK
225         imply CMD_GETTIME
226         imply CMD_IO
227         imply CMD_IRQ
228         imply CMD_PCI
229         imply CMD_SF
230         imply CMD_SF_TEST
231         imply CMD_ZBOOT
232         imply DM_ETH
233         imply DM_GPIO
234         imply DM_KEYBOARD
235         imply DM_MMC
236         imply DM_RTC
237         imply DM_SCSI
238         imply DM_SERIAL
239         imply DM_SPI
240         imply DM_SPI_FLASH
241         imply DM_USB
242         imply DM_VIDEO
243         imply SYSRESET
244         imply SPL_SYSRESET
245         imply SYSRESET_X86
246         imply USB_ETHER_ASIX
247         imply USB_ETHER_SMSC95XX
248         imply USB_HOST_ETHER
249         imply PCH
250         imply PHYSMEM
251         imply RTC_MC146818
252         imply ACPIGEN if !QEMU
253         imply SYSINFO if GENERATE_SMBIOS_TABLE
254         imply SYSINFO_SMBIOS if GENERATE_SMBIOS_TABLE
255
256         # Thing to enable for when SPL/TPL are enabled: SPL
257         imply SPL_DM
258         imply SPL_OF_LIBFDT
259         imply SPL_DRIVERS_MISC
260         imply SPL_GPIO
261         imply SPL_PINCTRL
262         imply SPL_LIBCOMMON_SUPPORT
263         imply SPL_LIBGENERIC_SUPPORT
264         imply SPL_SERIAL
265         imply SPL_SPI_FLASH_SUPPORT
266         imply SPL_SPI
267         imply SPL_OF_CONTROL
268         imply SPL_TIMER
269         imply SPL_REGMAP
270         imply SPL_SYSCON
271         # TPL
272         imply TPL_DM
273         imply TPL_DRIVERS_MISC
274         imply TPL_GPIO
275         imply TPL_PINCTRL
276         imply TPL_LIBCOMMON_SUPPORT
277         imply TPL_LIBGENERIC_SUPPORT
278         imply TPL_SERIAL
279         imply TPL_OF_CONTROL
280         imply TPL_TIMER
281         imply TPL_REGMAP
282         imply TPL_SYSCON
283
284 config XTENSA
285         bool "Xtensa architecture"
286         select CREATE_ARCH_SYMLINK
287         select SUPPORT_OF_CONTROL
288
289 endchoice
290
291 config SYS_ARCH
292         string
293         help
294           This option should contain the architecture name to build the
295           appropriate arch/<CONFIG_SYS_ARCH> directory.
296           All the architectures should specify this option correctly.
297
298 config SYS_CPU
299         string
300         help
301           This option should contain the CPU name to build the correct
302           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU> directory.
303
304           This is optional.  For those targets without the CPU directory,
305           leave this option empty.
306
307 config SYS_SOC
308         string
309         help
310           This option should contain the SoC name to build the directory
311           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU>/<CONFIG_SYS_SOC>.
312
313           This is optional.  For those targets without the SoC directory,
314           leave this option empty.
315
316 config SYS_VENDOR
317         string
318         help
319           This option should contain the vendor name of the target board.
320           If it is set and
321           board/<CONFIG_SYS_VENDOR>/common/Makefile exists, the vendor common
322           directory is compiled.
323           If CONFIG_SYS_BOARD is also set, the sources under
324           board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> directory are compiled.
325
326           This is optional.  For those targets without the vendor directory,
327           leave this option empty.
328
329 config SYS_BOARD
330         string
331         help
332           This option should contain the name of the target board.
333           If it is set, either board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
334           or board/<CONFIG_SYS_BOARD> directory is compiled depending on
335           whether CONFIG_SYS_VENDOR is set or not.
336
337           This is optional.  For those targets without the board directory,
338           leave this option empty.
339
340 config SYS_CONFIG_NAME
341         string
342         help
343           This option should contain the base name of board header file.
344           The header file include/configs/<CONFIG_SYS_CONFIG_NAME>.h
345           should be included from include/config.h.
346
347 config SYS_DISABLE_DCACHE_OPS
348         bool
349         help
350          This option disables dcache flush and dcache invalidation
351          operations. For example, on coherent systems where cache
352          operatios are not required, enable this option to avoid them.
353          Note that, its up to the individual architectures to implement
354          this functionality.
355
356 config SKIP_LOWLEVEL_INIT
357         bool "Skip the calls to certain low level initialization functions"
358         depends on ARM || NDS32 || MIPS || RISCV
359         help
360           If enabled, then certain low level initializations (like setting up
361           the memory controller) are omitted and/or U-Boot does not relocate
362           itself into RAM.
363           Normally this variable MUST NOT be defined. The only exception is
364           when U-Boot is loaded (to RAM) by some other boot loader or by a
365           debugger which performs these initializations itself.
366
367 config SPL_SKIP_LOWLEVEL_INIT
368         bool "Skip the calls to certain low level initialization functions"
369         depends on SPL && (ARM || NDS32 || MIPS || RISCV)
370         help
371           If enabled, then certain low level initializations (like setting up
372           the memory controller) are omitted and/or U-Boot does not relocate
373           itself into RAM.
374           Normally this variable MUST NOT be defined. The only exception is
375           when U-Boot is loaded (to RAM) by some other boot loader or by a
376           debugger which performs these initializations itself.
377
378 config TPL_SKIP_LOWLEVEL_INIT
379         bool "Skip the calls to certain low level initialization functions"
380         depends on SPL && ARM
381         help
382           If enabled, then certain low level initializations (like setting up
383           the memory controller) are omitted and/or U-Boot does not relocate
384           itself into RAM.
385           Normally this variable MUST NOT be defined. The only exception is
386           when U-Boot is loaded (to RAM) by some other boot loader or by a
387           debugger which performs these initializations itself.
388
389 config SKIP_LOWLEVEL_INIT_ONLY
390         bool "Skip the call to lowlevel_init during early boot ONLY"
391         depends on ARM
392         help
393           This allows just the call to lowlevel_init() to be skipped. The
394           normal CP15 init (such as enabling the instruction cache) is still
395           performed.
396
397 config SPL_SKIP_LOWLEVEL_INIT_ONLY
398         bool "Skip the call to lowlevel_init during early boot ONLY"
399         depends on SPL && ARM
400         help
401           This allows just the call to lowlevel_init() to be skipped. The
402           normal CP15 init (such as enabling the instruction cache) is still
403           performed.
404
405 config TPL_SKIP_LOWLEVEL_INIT_ONLY
406         bool "Skip the call to lowlevel_init during early boot ONLY"
407         depends on TPL && ARM
408         help
409           This allows just the call to lowlevel_init() to be skipped. The
410           normal CP15 init (such as enabling the instruction cache) is still
411           performed.
412
413 source "arch/arc/Kconfig"
414 source "arch/arm/Kconfig"
415 source "arch/m68k/Kconfig"
416 source "arch/microblaze/Kconfig"
417 source "arch/mips/Kconfig"
418 source "arch/nds32/Kconfig"
419 source "arch/nios2/Kconfig"
420 source "arch/powerpc/Kconfig"
421 source "arch/sandbox/Kconfig"
422 source "arch/sh/Kconfig"
423 source "arch/x86/Kconfig"
424 source "arch/xtensa/Kconfig"
425 source "arch/riscv/Kconfig"