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_V7A

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_V7A

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_0_W
	bool "Raspberry Pi Zero W"
	help
	  Support for all ARM1176-/BCM2835-based Raspberry Pi variants, such as
	  the RPi Zero model W.

	  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 Zero W. 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 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

