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