X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=arch%2Farm%2Fmach-bcm283x%2FKconfig;h=69f7a4663cfd185b79ea9baf6fb481e3e70987f3;hb=3e9f8f2f5101ee66804c29683fba90b8e307a314;hp=dc6770437ec6d97390ec24a02e8299909442fef3;hpb=adb91ec72b85e1e50e5593828732174576e19d44;p=u-boot diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig index dc6770437e..69f7a4663c 100644 --- a/arch/arm/mach-bcm283x/Kconfig +++ b/arch/arm/mach-bcm283x/Kconfig @@ -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 @@ -14,21 +34,87 @@ choice optional config TARGET_RPI - bool "Raspberry Pi" + bool "Raspberry Pi (all BCM2835 variants)" + help + Support for all ARM1176-/BCM2835-based Raspberry Pi variants, such as + the A, A+, B, B+, Compute Module, and Zero. This option cannot + support BCM2836/BCM2837-based Raspberry Pis such as the RPi 2 and + RPi 3 due to different peripheral address maps. + + This option creates a build targetting the ARM1176 ISA. select BCM2835 - select CPU_ARM1176 config TARGET_RPI_2 bool "Raspberry Pi 2" - select ARMV7_LPAE + help + Support for all BCM2836-based Raspberry Pi variants, such as + the RPi 2 model B. + + This option also supports BCM2837-based variants such as the RPi 3 + Model B, when run in 32-bit mode, provided you have configured the + VideoCore firmware to select the PL011 UART for the console by: + a) config.txt should contain dtoverlay=pi3-miniuart-bt. + b) You should run the following to tell the VC FW to process DT when + booting, and copy u-boot.bin.img (rather than u-boot.bin) to the SD + card as the kernel image: + + path/to/kernel/scripts/mkknlimg --dtok u-boot.bin u-boot.bin.img + + This works as of firmware.git commit 046effa13ebc "firmware: + arm_loader: emmc clock depends on core clock See: + https://github.com/raspberrypi/firmware/issues/572". + + This option creates a build targetting the ARMv7/AArch32 ISA. 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" @@ -37,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