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