config BR2_PACKAGE_RPI_FIRMWARE
	bool "rpi-firmware"
	depends on BR2_arm
	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)"
	depends on !BR2_LINUX_KERNEL_DTS_SUPPORT
	default y
	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"
	depends on BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS \
		|| BR2_LINUX_KERNEL_DTS_SUPPORT
	default y
	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_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 an (e)glibc toolchain w/ C++"
	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP

endif # BR2_PACKAGE_RPI_FIRMWARE
