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

config BCM2711
	bool "Broadcom BCM2711 SoC support"
	depends on ARCH_BCM283X

config BCM2711_32B
	bool "Broadcom BCM2711 SoC 32-bit support"
	depends on ARCH_BCM283X
	select BCM2711
	select ARMV7_LPAE
	select CPU_V7A
	select PHYS_64BIT

config BCM2711_64B
	bool "Broadcom BCM2711 SoC 64-bit support"
	depends on ARCH_BCM283X
	select BCM2711
	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 targeting 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 targeting 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 targeting 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 targeting 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 targeting the ARMv8/AArch64 ISA.
	select BCM2837_64B

config TARGET_RPI_4_32B
	bool "Raspberry Pi 4 32-bit build"
	help
	  Support for all BCM2711-based Raspberry Pi variants, such as
	  the RPi 4 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 4. 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.

	  Due to hardware incompatibilities, this can't be used with
	  BCM283/5/6/7.

	  This option creates a build targeting the ARMv7/AArch32 ISA.
	select BCM2711_32B

config TARGET_RPI_4
	bool "Raspberry Pi 4 64-bit build"
	help
	  Support for all BCM2711-based Raspberry Pi variants, such as
	  the RPi 4 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 4. 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.

	  Due to hardware incompatibilities, this can't be used with
	  BCM283/5/6/7.

	  Also, due to a bug in firmware, switching to 64bit mode doesn't
	  happen automatically based on the kernel's image filename. See
	  https://github.com/raspberrypi/firmware/issues/1193 for more details.
	  Until that is resolved, the configuration (config.txt) needs to
	  explicitly set: arm_64bit=1.

	  This option creates a build targeting the ARMv8/AArch64 ISA.
	select BCM2711_64B

config TARGET_RPI_ARM64
	bool "Raspberry Pi one binary 64-bit build"
	help
	  Support for all armv8 based Raspberry Pi variants, such as
	  the RPi 4 model B, in AArch64 (64-bit) mode.
	select ARM64

endchoice

config SYS_BOARD
	default "rpi"

config SYS_VENDOR
	default "raspberrypi"

config SYS_SOC
	default "bcm283x"

config SYS_CONFIG_NAME
	default "rpi"

source "board/raspberrypi/rpi/Kconfig"

endmenu
