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 
 | 
  
 | 
choice 
 | 
    prompt "Broadcom BCM283X board select" 
 | 
    optional 
 | 
  
 | 
config TARGET_RPI 
 | 
    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 
 | 
  
 | 
config TARGET_RPI_2 
 | 
    bool "Raspberry Pi 2" 
 | 
    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 
 | 
  
 | 
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" 
 | 
  
 | 
config SYS_VENDOR 
 | 
    default "raspberrypi" 
 | 
  
 | 
config SYS_SOC 
 | 
    default "bcm283x" 
 | 
  
 | 
config SYS_CONFIG_NAME 
 | 
    default "rpi" 
 | 
  
 | 
endmenu 
 |