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