config BR2_PACKAGE_RPI_FIRMWARE
	bool "rpi-firmware"
	depends on BR2_arm || BR2_aarch64
	help
	  RaspberryPi Firmware

	  Pre-compiled binaries of the current bootloader and GPU
	  firmware

	  https://github.com/raspberrypi/firmware

if BR2_PACKAGE_RPI_FIRMWARE

choice
	bool "rpi variant"
	help
	  The Raspberry Pi 4 introduced a slightly different naming
	  convention and set of boot files. This option controls which
	  format to use.

config BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI
	bool "rpi 0/1/2/3"
	help
	  The default set of files, for versions pre-4

config BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4
	bool "rpi 4"
	help
	  The Raspberry Pi 4 files
endchoice

choice
	bool "Firmware to boot"
	default BR2_PACKAGE_RPI_FIRMWARE_DEFAULT
	help
	  There are three different firmware files:
	    - the default firmware, that enables standard GPU
	      features;
	    - the extended firmware, that enables additional GPU
	      features (eg. more audio/video codecs);
	    - the cut-down firmware, for emergency situations, with
	      only features required to boot a Linux kernel.

config BR2_PACKAGE_RPI_FIRMWARE_DEFAULT
	bool "default"
	help
	  The default firmware, that enables standard GPU features.

config BR2_PACKAGE_RPI_FIRMWARE_X
	bool "extended ('x', more codecs)"
	help
	  The extended firmware, that enables additional GPU features
	  (eg. more audio/video codecs).

config BR2_PACKAGE_RPI_FIRMWARE_CD
	bool "cut-down ('cd', emergency)"
	help
	  The cut-down firmware, for emergency situations, with only
	  features required to boot a Linux kernel.

endchoice

config BR2_PACKAGE_RPI_FIRMWARE_BOOT
	string
	default ""      if BR2_PACKAGE_RPI_FIRMWARE_DEFAULT && BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI
	default "4"     if BR2_PACKAGE_RPI_FIRMWARE_DEFAULT && BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4
	default "_x"    if BR2_PACKAGE_RPI_FIRMWARE_X && BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI
	default "4x"    if BR2_PACKAGE_RPI_FIRMWARE_X && BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4
	default "_cd"   if BR2_PACKAGE_RPI_FIRMWARE_CD && BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI
	default "4cd"   if BR2_PACKAGE_RPI_FIRMWARE_CD && BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4

config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS
	bool "Install Device Tree Blobs (DTBs)"
	default y
	depends on !BR2_LINUX_KERNEL_DTS_SUPPORT
	help
	  If you are using a Linux kernel <= 3.18, you should say 'y'
	  here.

	  If you are using a Linux kernel >= 3.19, you should say 'n'
	  here, and enable BR2_LINUX_KERNEL_DTS_SUPPORT to let the
	  kernel build the DTB.

config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS
	bool "Install DTB overlays"
	default y
	depends on BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS \
		|| BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT \
		if BR2_LINUX_KERNEL_DTS_SUPPORT
	help
	  Say 'y' here if you need to load one or more of the DTB
	  overlays, to support HATs (Hardware Attached on Top, add-on
	  modules).

config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_VCDBG
	bool "vcdbg"
	depends on BR2_arm # prebuilt arm binary, rpi-userland
	depends on BR2_TOOLCHAIN_USES_GLIBC
	depends on BR2_INSTALL_LIBSTDCPP # rpi-userland
	select BR2_PACKAGE_RPI_USERLAND
	help
	  Install vcdbg, to help debug communication with the GPU.

comment "vcdbg needs a glibc toolchain w/ C++"
	depends on BR2_arm
	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP

endif # BR2_PACKAGE_RPI_FIRMWARE
