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 "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
	default "_x"    if BR2_PACKAGE_RPI_FIRMWARE_X
	default "_cd"   if BR2_PACKAGE_RPI_FIRMWARE_CD

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
	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
