]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/mach-bcm283x/Kconfig
armv7: Add workaround for USB erratum A-008997
[u-boot] / arch / arm / mach-bcm283x / Kconfig
index 1f3031d8123f28c3c81541e8bb27384a74c02576..69f7a4663cfd185b79ea9baf6fb481e3e70987f3 100644 (file)
@@ -1,10 +1,30 @@
 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
@@ -23,7 +43,6 @@ config TARGET_RPI
 
          This option creates a build targetting the ARM1176 ISA.
        select BCM2835
-       select CPU_ARM1176
 
 config TARGET_RPI_2
        bool "Raspberry Pi 2"
@@ -46,15 +65,56 @@ config TARGET_RPI_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"
@@ -63,7 +123,6 @@ config SYS_SOC
        default "bcm283x"
 
 config SYS_CONFIG_NAME
-       default "rpi" if TARGET_RPI
-       default "rpi_2" if TARGET_RPI_2
+       default "rpi"
 
 endmenu