blob: ccc2f20867709391120d8887413fc92db9be3c39 [file] [log] [blame]
Lokesh Vutla81b1a672018-04-26 18:21:26 +05301if CPU_V7A
Hans de Goede85437352014-11-14 09:34:30 +01002
3config CPU_V7_HAS_NONSEC
4 bool
5
6config CPU_V7_HAS_VIRT
7 bool
8
Masahiro Yamadad5415b22016-08-30 16:22:22 +09009config ARCH_SUPPORT_PSCI
10 bool
11
Hans de Goede85437352014-11-14 09:34:30 +010012config ARMV7_NONSEC
Masahiro Yamada78cd22a2016-08-12 10:26:50 +090013 bool "Enable support for booting in non-secure mode" if EXPERT
Hans de Goede85437352014-11-14 09:34:30 +010014 depends on CPU_V7_HAS_NONSEC
15 default y
16 ---help---
17 Say Y here to enable support for booting in non-secure / SVC mode.
18
Hans de Goede63fb5482014-11-14 09:34:31 +010019config ARMV7_BOOT_SEC_DEFAULT
Masahiro Yamada78cd22a2016-08-12 10:26:50 +090020 bool "Boot in secure mode by default" if EXPERT
Hans de Goede63fb5482014-11-14 09:34:31 +010021 depends on ARMV7_NONSEC
Trevor Woerner513f6402020-05-06 08:02:41 -040022 default y if ARCH_TEGRA
Hans de Goede63fb5482014-11-14 09:34:31 +010023 ---help---
24 Say Y here to boot in secure mode by default even if non-secure mode
25 is supported. This option is useful to boot kernels which do not
26 suppport booting in non-secure mode. Only set this if you need it.
Robert P. J. Day8d56db92016-07-15 13:44:45 -040027 This can be overridden at run-time by setting the bootm_boot_mode env.
Hans de Goede63fb5482014-11-14 09:34:31 +010028 variable to "sec" or "nonsec".
29
Tom Rini9df9fb12022-03-11 09:11:56 -050030config HAS_ARMV7_SECURE_BASE
31 bool "Enable support for a ahardware secure memory area"
32 default y if ARCH_LS1021A || ARCH_MX7 || ARCH_MX7ULP || ARCH_STM32MP \
33 || MACH_SUN6I || MACH_SUN7I || MACH_SUN8I || TEGRA124
34
35config ARMV7_SECURE_BASE
36 hex "Base address for secure mode memory"
37 depends on HAS_ARMV7_SECURE_BASE
38 default 0xfff00000 if TEGRA124
39 default 0x2ffc0000 if ARCH_STM32MP
40 default 0x2f000000 if ARCH_MX7ULP
41 default 0x10010000 if ARCH_LS1021A
42 default 0x00900000 if ARCH_MX7
43 default 0x00044000 if MACH_SUN8I
44 default 0x00020000 if MACH_SUN6I || MACH_SUN7I
45
46config ARMV7_SECURE_RESERVE_SIZE
47 hex
48 depends on TEGRA124 && HAS_ARMV7_SECURE_BASE
49 default 0x100000
50 help
51 Reserve top 1M for secure RAM
52
53config ARMV7_SECURE_MAX_SIZE
54 hex
55 depends on ARMV7_SECURE_BASE && ARCH_STM32MP || MACH_SUN6I \
56 || MACH_SUN7I || MACH_SUN8I
57 default 0xbc00 if MACH_SUN8I && !MACH_SUN8I_H3
58 default 0x3c00 if MACH_SUN8I && MACH_SUN8I_H3
59 default 0x10000
60
Hans de Goede85437352014-11-14 09:34:30 +010061config ARMV7_VIRT
Masahiro Yamada78cd22a2016-08-12 10:26:50 +090062 bool "Enable support for hardware virtualization" if EXPERT
Hans de Goede85437352014-11-14 09:34:30 +010063 depends on CPU_V7_HAS_VIRT && ARMV7_NONSEC
64 default y
65 ---help---
66 Say Y here to boot in hypervisor (HYP) mode when booting non-secure.
67
Masahiro Yamadad5415b22016-08-30 16:22:22 +090068config ARMV7_PSCI
69 bool "Enable PSCI support" if EXPERT
70 depends on ARMV7_NONSEC && ARCH_SUPPORT_PSCI
71 default y
72 help
73 Say Y here to enable PSCI support.
74
Patrick Delaunayf8a4df82020-06-17 18:19:18 +020075choice
76 prompt "Supported PSCI version"
77 depends on ARMV7_PSCI
Icenowy Zheng70548102020-08-01 02:56:45 +080078 default ARMV7_PSCI_0_1 if ARCH_SUNXI
Patrick Delaunayf8a4df82020-06-17 18:19:18 +020079 default ARMV7_PSCI_1_0
80 help
81 Select the supported PSCI version.
82
83config ARMV7_PSCI_1_0
84 bool "PSCI V1.0"
85
86config ARMV7_PSCI_0_2
87 bool "PSCI V0.2"
Icenowy Zheng70548102020-08-01 02:56:45 +080088
89config ARMV7_PSCI_0_1
90 bool "PSCI V0.1"
Patrick Delaunayf8a4df82020-06-17 18:19:18 +020091endchoice
92
Masahiro Yamada6abecc32016-08-30 16:22:23 +090093config ARMV7_PSCI_NR_CPUS
94 int "Maximum supported CPUs for PSCI"
95 depends on ARMV7_NONSEC
96 default 4
97 help
98 The maximum number of CPUs supported in the PSCI firmware.
99 It is no problem to set a larger value than the number of
100 CPUs in the actual hardware implementation.
101
Alexander Grafae6c2bc2016-03-16 15:41:21 +0100102config ARMV7_LPAE
Masahiro Yamada78cd22a2016-08-12 10:26:50 +0900103 bool "Use LPAE page table format" if EXPERT
Lokesh Vutla81b1a672018-04-26 18:21:26 +0530104 depends on CPU_V7A
Mark Kettenis0a7a0742018-06-15 23:47:14 +0200105 default y if ARMV7_VIRT
Alexander Grafae6c2bc2016-03-16 15:41:21 +0100106 ---help---
107 Say Y here to use the long descriptor page table format. This is
108 required if U-Boot runs in HYP mode.
109
Ralph Siemsen82890802023-05-12 21:36:49 -0400110config ARMV7_SET_CORTEX_SMPEN
111 bool
112 help
Michal Simek50fa1182023-05-17 09:17:16 +0200113 Enable the ARM Cortex ACTLR.SMP enable bit in U-Boot.
Ralph Siemsen82890802023-05-12 21:36:49 -0400114
Andre Przywara5fc25562022-01-23 00:27:19 +0000115config SPL_ARMV7_SET_CORTEX_SMPEN
116 bool
117 help
118 Enable the ARM Cortex ACTLR.SMP enable bit on SPL startup.
119
Hans de Goede85437352014-11-14 09:34:30 +0100120endif