config BCM2835
bool "Broadcom BCM2835 SoC support"
depends on ARCH_BCM283X
+ select CPU_ARM1176
config BCM2836
bool "Broadcom BCM2836 SoC support"
depends on ARCH_BCM283X
+ select ARMV7_LPAE
+ select CPU_V7
+
+config BCM2837
+ bool "Broadcom BCM2837 SoC support"
+ depends on ARCH_BCM283X
+
+config BCM2837_32B
+ bool "Broadcom BCM2837 SoC 32-bit support"
+ depends on ARCH_BCM283X
+ select BCM2837
+ select ARMV7_LPAE
+ select CPU_V7
+
+config BCM2837_64B
+ bool "Broadcom BCM2837 SoC 64-bit support"
+ depends on ARCH_BCM283X
+ select BCM2837
+ select ARM64
menu "Broadcom BCM283X family"
depends on ARCH_BCM283X
This option creates a build targetting the ARM1176 ISA.
select BCM2835
- select CPU_ARM1176
config TARGET_RPI_2
bool "Raspberry Pi 2"
https://github.com/raspberrypi/firmware/issues/572".
This option creates a build targetting the ARMv7/AArch32 ISA.
- select ARMV7_LPAE
select BCM2836
- select CPU_V7
+
+config TARGET_RPI_3_32B
+ bool "Raspberry Pi 3 32-bit build"
+ help
+ Support for all BCM2837-based Raspberry Pi variants, such as
+ the RPi 3 model B, in AArch32 (32-bit) mode.
+
+ This option assumes the VideoCore firmware is configured to use the
+ mini UART (rather than PL011) for the serial console. This is the
+ default on the RPi 3. To enable the UART console, the following non-
+ default option must be present in config.txt: enable_uart=1. This is
+ required for U-Boot to operate correctly, even if you only care
+ about the HDMI/usbkbd console.
+
+ This option creates a build targetting the ARMv7/AArch32 ISA.
+ select BCM2837_32B
+
+config TARGET_RPI_3
+ bool "Raspberry Pi 3 64-bit build"
+ help
+ Support for all BCM2837-based Raspberry Pi variants, such as
+ the RPi 3 model B, in AArch64 (64-bit) mode.
+
+ This option assumes the VideoCore firmware is configured to use the
+ mini UART (rather than PL011) for the serial console. This is the
+ default on the RPi 3. To enable the UART console, the following non-
+ default option must be present in config.txt: enable_uart=1. This is
+ required for U-Boot to operate correctly, even if you only care
+ about the HDMI/usbkbd console.
+
+ At the time of writing, the VC FW requires a non-default option in
+ config.txt to request the ARM CPU boot in 64-bit mode:
+ arm_control=0x200
+
+ The VC FW typically provides ARM "stub" code to set up the CPU and
+ quiesce secondary SMP CPUs. This is not currently true in 64-bit
+ mode. In order to boot U-Boot before the VC FW is enhanced, please
+ see the commit description for the commit which added RPi3 support
+ for a workaround. Since the instructions are temporary, they are not
+ duplicated here. The VC FW enhancement is tracked in
+ https://github.com/raspberrypi/firmware/issues/579.
+
+ This option creates a build targetting the ARMv8/AArch64 ISA.
+ select BCM2837_64B
endchoice
config SYS_BOARD
- default "rpi" if TARGET_RPI
- default "rpi_2" if TARGET_RPI_2
+ default "rpi"
config SYS_VENDOR
default "raspberrypi"
default "bcm283x"
config SYS_CONFIG_NAME
- default "rpi" if TARGET_RPI
- default "rpi_2" if TARGET_RPI_2
+ default "rpi"
endmenu