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 DRIVER_GICV2
	select ARM64
	select CPU_ARMV8
	select ARMV8_MULTIENTRY if GENERATE_ACPI_TABLE
	select BLOBLIST if GENERATE_ACPI_TABLE
	select BLOBLIST_ALLOC if GENERATE_ACPI_TABLE
	select BLOBLIST_TABLES if GENERATE_ACPI_TABLE

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 DRIVER_GICV2
	select ARM64
	select CPU_ARMV8
	select ARMV8_MULTIENTRY if GENERATE_ACPI_TABLE
	select BLOBLIST if GENERATE_ACPI_TABLE
	select BLOBLIST_ALLOC if GENERATE_ACPI_TABLE
	select BLOBLIST_TABLES if GENERATE_ACPI_TABLE

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"

config BLOBLIST_SIZE_RELOC
	default 0x20000

source "board/raspberrypi/rpi/Kconfig"

endmenu
