]>
Commit | Line | Data |
---|---|---|
adb91ec7 SW |
1 | config BCM2835 |
2 | bool "Broadcom BCM2835 SoC support" | |
3 | depends on ARCH_BCM283X | |
fe84ebf0 | 4 | select CPU_ARM1176 |
adb91ec7 SW |
5 | |
6 | config BCM2836 | |
7 | bool "Broadcom BCM2836 SoC support" | |
8 | depends on ARCH_BCM283X | |
fe84ebf0 | 9 | select ARMV7_LPAE |
acf15001 | 10 | select CPU_V7A |
adb91ec7 | 11 | |
f031f501 SW |
12 | config BCM2837 |
13 | bool "Broadcom BCM2837 SoC support" | |
14 | depends on ARCH_BCM283X | |
15 | ||
fe84ebf0 SW |
16 | config BCM2837_32B |
17 | bool "Broadcom BCM2837 SoC 32-bit support" | |
18 | depends on ARCH_BCM283X | |
19 | select BCM2837 | |
20 | select ARMV7_LPAE | |
acf15001 | 21 | select CPU_V7A |
fe84ebf0 SW |
22 | |
23 | config BCM2837_64B | |
24 | bool "Broadcom BCM2837 SoC 64-bit support" | |
25 | depends on ARCH_BCM283X | |
26 | select BCM2837 | |
27 | select ARM64 | |
28 | ||
c6bcf05f AG |
29 | config BCM2711 |
30 | bool "Broadcom BCM2711 SoC support" | |
31 | depends on ARCH_BCM283X | |
32 | ||
33 | config BCM2711_32B | |
34 | bool "Broadcom BCM2711 SoC 32-bit support" | |
35 | depends on ARCH_BCM283X | |
36 | select BCM2711 | |
37 | select ARMV7_LPAE | |
38 | select CPU_V7A | |
814e1a4b | 39 | select PHYS_64BIT |
c6bcf05f AG |
40 | |
41 | config BCM2711_64B | |
42 | bool "Broadcom BCM2711 SoC 64-bit support" | |
43 | depends on ARCH_BCM283X | |
44 | select BCM2711 | |
45 | select ARM64 | |
46 | ||
ddf6bd48 MY |
47 | menu "Broadcom BCM283X family" |
48 | depends on ARCH_BCM283X | |
49 | ||
50 | choice | |
51 | prompt "Broadcom BCM283X board select" | |
a26cd049 | 52 | optional |
ddf6bd48 MY |
53 | |
54 | config TARGET_RPI | |
95a2ddae SW |
55 | bool "Raspberry Pi (all BCM2835 variants)" |
56 | help | |
57 | Support for all ARM1176-/BCM2835-based Raspberry Pi variants, such as | |
58 | the A, A+, B, B+, Compute Module, and Zero. This option cannot | |
59 | support BCM2836/BCM2837-based Raspberry Pis such as the RPi 2 and | |
60 | RPi 3 due to different peripheral address maps. | |
61 | ||
d7cf868f | 62 | This option creates a build targeting the ARM1176 ISA. |
adb91ec7 | 63 | select BCM2835 |
ddf6bd48 | 64 | |
8993056f DK |
65 | config TARGET_RPI_0_W |
66 | bool "Raspberry Pi Zero W" | |
67 | help | |
68 | Support for all ARM1176-/BCM2835-based Raspberry Pi variants, such as | |
69 | the RPi Zero model W. | |
70 | ||
71 | This option assumes the VideoCore firmware is configured to use the | |
72 | mini UART (rather than PL011) for the serial console. This is the | |
73 | default on the RPi Zero W. To enable the UART console, the following | |
74 | non-default option must be present in config.txt: enable_uart=1. | |
75 | This is required for U-Boot to operate correctly, even if you only | |
76 | care about the HDMI/usbkbd console. | |
77 | ||
d7cf868f | 78 | This option creates a build targeting the ARMv7/AArch32 ISA. |
8993056f DK |
79 | select BCM2835 |
80 | ||
ddf6bd48 MY |
81 | config TARGET_RPI_2 |
82 | bool "Raspberry Pi 2" | |
95a2ddae SW |
83 | help |
84 | Support for all BCM2836-based Raspberry Pi variants, such as | |
85 | the RPi 2 model B. | |
86 | ||
87 | This option also supports BCM2837-based variants such as the RPi 3 | |
88 | Model B, when run in 32-bit mode, provided you have configured the | |
89 | VideoCore firmware to select the PL011 UART for the console by: | |
90 | a) config.txt should contain dtoverlay=pi3-miniuart-bt. | |
91 | b) You should run the following to tell the VC FW to process DT when | |
92 | booting, and copy u-boot.bin.img (rather than u-boot.bin) to the SD | |
93 | card as the kernel image: | |
94 | ||
95 | path/to/kernel/scripts/mkknlimg --dtok u-boot.bin u-boot.bin.img | |
96 | ||
97 | This works as of firmware.git commit 046effa13ebc "firmware: | |
98 | arm_loader: emmc clock depends on core clock See: | |
99 | https://github.com/raspberrypi/firmware/issues/572". | |
100 | ||
d7cf868f | 101 | This option creates a build targeting the ARMv7/AArch32 ISA. |
adb91ec7 | 102 | select BCM2836 |
ddf6bd48 | 103 | |
f031f501 SW |
104 | config TARGET_RPI_3_32B |
105 | bool "Raspberry Pi 3 32-bit build" | |
106 | help | |
107 | Support for all BCM2837-based Raspberry Pi variants, such as | |
108 | the RPi 3 model B, in AArch32 (32-bit) mode. | |
109 | ||
110 | This option assumes the VideoCore firmware is configured to use the | |
111 | mini UART (rather than PL011) for the serial console. This is the | |
112 | default on the RPi 3. To enable the UART console, the following non- | |
158c9c78 SW |
113 | default option must be present in config.txt: enable_uart=1. This is |
114 | required for U-Boot to operate correctly, even if you only care | |
115 | about the HDMI/usbkbd console. | |
f031f501 | 116 | |
d7cf868f | 117 | This option creates a build targeting the ARMv7/AArch32 ISA. |
fe84ebf0 | 118 | select BCM2837_32B |
f031f501 | 119 | |
d22a7657 SW |
120 | config TARGET_RPI_3 |
121 | bool "Raspberry Pi 3 64-bit build" | |
158c9c78 SW |
122 | help |
123 | Support for all BCM2837-based Raspberry Pi variants, such as | |
124 | the RPi 3 model B, in AArch64 (64-bit) mode. | |
125 | ||
126 | This option assumes the VideoCore firmware is configured to use the | |
127 | mini UART (rather than PL011) for the serial console. This is the | |
128 | default on the RPi 3. To enable the UART console, the following non- | |
129 | default option must be present in config.txt: enable_uart=1. This is | |
130 | required for U-Boot to operate correctly, even if you only care | |
131 | about the HDMI/usbkbd console. | |
132 | ||
133 | At the time of writing, the VC FW requires a non-default option in | |
134 | config.txt to request the ARM CPU boot in 64-bit mode: | |
135 | arm_control=0x200 | |
136 | ||
137 | The VC FW typically provides ARM "stub" code to set up the CPU and | |
138 | quiesce secondary SMP CPUs. This is not currently true in 64-bit | |
139 | mode. In order to boot U-Boot before the VC FW is enhanced, please | |
140 | see the commit description for the commit which added RPi3 support | |
141 | for a workaround. Since the instructions are temporary, they are not | |
142 | duplicated here. The VC FW enhancement is tracked in | |
143 | https://github.com/raspberrypi/firmware/issues/579. | |
144 | ||
d7cf868f | 145 | This option creates a build targeting the ARMv8/AArch64 ISA. |
fe84ebf0 | 146 | select BCM2837_64B |
d22a7657 | 147 | |
c6bcf05f AG |
148 | config TARGET_RPI_4_32B |
149 | bool "Raspberry Pi 4 32-bit build" | |
150 | help | |
151 | Support for all BCM2711-based Raspberry Pi variants, such as | |
152 | the RPi 4 model B, in AArch32 (32-bit) mode. | |
153 | ||
154 | This option assumes the VideoCore firmware is configured to use the | |
155 | mini UART (rather than PL011) for the serial console. This is the | |
156 | default on the RPi 4. To enable the UART console, the following non- | |
157 | default option must be present in config.txt: enable_uart=1. This is | |
158 | required for U-Boot to operate correctly, even if you only care | |
159 | about the HDMI/usbkbd console. | |
160 | ||
161 | Due to hardware incompatibilities, this can't be used with | |
162 | BCM283/5/6/7. | |
163 | ||
164 | This option creates a build targeting the ARMv7/AArch32 ISA. | |
165 | select BCM2711_32B | |
166 | ||
167 | config TARGET_RPI_4 | |
168 | bool "Raspberry Pi 4 64-bit build" | |
169 | help | |
170 | Support for all BCM2711-based Raspberry Pi variants, such as | |
171 | the RPi 4 model B, in AArch64 (64-bit) mode. | |
172 | ||
173 | This option assumes the VideoCore firmware is configured to use the | |
174 | mini UART (rather than PL011) for the serial console. This is the | |
175 | default on the RPi 4. To enable the UART console, the following non- | |
176 | default option must be present in config.txt: enable_uart=1. This is | |
177 | required for U-Boot to operate correctly, even if you only care | |
178 | about the HDMI/usbkbd console. | |
179 | ||
180 | Due to hardware incompatibilities, this can't be used with | |
181 | BCM283/5/6/7. | |
182 | ||
183 | Also, due to a bug in firmware, switching to 64bit mode doesn't | |
184 | happen automatically based on the kernel's image filename. See | |
185 | https://github.com/raspberrypi/firmware/issues/1193 for more details. | |
186 | Until that is resolved, the configuration (config.txt) needs to | |
187 | explicitly set: arm_64bit=1. | |
188 | ||
189 | This option creates a build targeting the ARMv8/AArch64 ISA. | |
190 | select BCM2711_64B | |
191 | ||
56940906 MB |
192 | config TARGET_RPI_ARM64 |
193 | bool "Raspberry Pi one binary 64-bit build" | |
194 | help | |
195 | Support for all armv8 based Raspberry Pi variants, such as | |
196 | the RPi 4 model B, in AArch64 (64-bit) mode. | |
197 | select ARM64 | |
198 | ||
ddf6bd48 MY |
199 | endchoice |
200 | ||
ddf6bd48 | 201 | config SYS_BOARD |
fe84ebf0 | 202 | default "rpi" |
ddf6bd48 MY |
203 | |
204 | config SYS_VENDOR | |
205 | default "raspberrypi" | |
206 | ||
207 | config SYS_SOC | |
d6c418e4 | 208 | default "bcm283x" |
ddf6bd48 MY |
209 | |
210 | config SYS_CONFIG_NAME | |
fe84ebf0 | 211 | default "rpi" |
ddf6bd48 | 212 | |
c6badda8 KE |
213 | source "board/raspberrypi/rpi/Kconfig" |
214 | ||
ddf6bd48 | 215 | endmenu |