1bdc0334ff
When booting, a Raspberry Pi will load the appropriate start files, depending on the provided configuration. For example, if the config.txt file contains ’gpu_mem=16’ the board will automatically load the cut-down startup files (start_cd.elf and fixup_cd.dat on non-Rpi4). Unfortunately, even when the appropriate version is selected in the configuration menu, if the rpi-firmware makefile takes the good files, it renames them to non-qualified, i.e. start.elf and fixup.dat. But as these are not the files searched by the Raspberry Pi, the board will not start. This patch will set the names of the files to load as constant in the config.txt file. This guarantees that the rpi firmware blobs do not take any other corner-case decision based on any other as-yet unknown conditions. This eases the maintenance, as only the names of the source files matter; the destination filenames are constants, and so are the filenames in config.txt. Fixes: #13026 Signed-off-by: Stéphane Veyret <sveyret@gmail.com> [yann.morin.1998@free.fr: - very minor fix in commit title - drop the non-conditional macro and move its content into RPI_FIRMWARE_INSTALL_IMAGES_CMDS ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
62 lines
2.4 KiB
Makefile
62 lines
2.4 KiB
Makefile
################################################################################
|
|
#
|
|
# rpi-firmware
|
|
#
|
|
################################################################################
|
|
|
|
RPI_FIRMWARE_VERSION = 5574077183389cd4c65077ba18b59144ed6ccd6d
|
|
RPI_FIRMWARE_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_VERSION))
|
|
RPI_FIRMWARE_LICENSE = BSD-3-Clause
|
|
RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom
|
|
RPI_FIRMWARE_INSTALL_IMAGES = YES
|
|
|
|
ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS),y)
|
|
define RPI_FIRMWARE_INSTALL_DTB
|
|
$(foreach dtb,$(wildcard $(@D)/boot/*.dtb), \
|
|
$(INSTALL) -D -m 0644 $(dtb) $(BINARIES_DIR)/rpi-firmware/$(notdir $(dtb))
|
|
)
|
|
endef
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS),y)
|
|
define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS
|
|
for ovldtb in $(@D)/boot/overlays/*.dtbo; do \
|
|
$(INSTALL) -D -m 0644 $${ovldtb} $(BINARIES_DIR)/rpi-firmware/overlays/$${ovldtb##*/} || exit 1; \
|
|
done
|
|
endef
|
|
else
|
|
# Still create the directory, so a genimage.cfg can include it independently of
|
|
# whether _INSTALL_DTB_OVERLAYS is selected or not.
|
|
define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS
|
|
$(INSTALL) -d $(BINARIES_DIR)/rpi-firmware/overlays
|
|
endef
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_VCDBG),y)
|
|
define RPI_FIRMWARE_INSTALL_TARGET_CMDS
|
|
$(INSTALL) -D -m 0700 $(@D)/$(if BR2_ARM_EABIHF,hardfp/)opt/vc/bin/vcdbg \
|
|
$(TARGET_DIR)/usr/sbin/vcdbg
|
|
$(INSTALL) -D -m 0644 $(@D)/$(if BR2_ARM_EABIHF,hardfp/)opt/vc/lib/libelftoolchain.so \
|
|
$(TARGET_DIR)/usr/lib/libelftoolchain.so
|
|
endef
|
|
endif # INSTALL_VCDBG
|
|
|
|
ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI),y)
|
|
# bootcode.bin is not used on rpi4, because it has been replaced by boot code in the onboard EEPROM
|
|
define RPI_FIRMWARE_INSTALL_BOOTCODE_BIN
|
|
$(INSTALL) -D -m 0644 $(@D)/boot/bootcode.bin $(BINARIES_DIR)/rpi-firmware/bootcode.bin
|
|
endef
|
|
endif
|
|
|
|
define RPI_FIRMWARE_INSTALL_IMAGES_CMDS
|
|
$(INSTALL) -D -m 0644 package/rpi-firmware/config.txt $(BINARIES_DIR)/rpi-firmware/config.txt
|
|
$(INSTALL) -D -m 0644 package/rpi-firmware/cmdline.txt $(BINARIES_DIR)/rpi-firmware/cmdline.txt
|
|
$(INSTALL) -D -m 0644 $(@D)/boot/start$(BR2_PACKAGE_RPI_FIRMWARE_BOOT).elf $(BINARIES_DIR)/rpi-firmware/start.elf
|
|
$(INSTALL) -D -m 0644 $(@D)/boot/fixup$(BR2_PACKAGE_RPI_FIRMWARE_BOOT).dat $(BINARIES_DIR)/rpi-firmware/fixup.dat
|
|
$(RPI_FIRMWARE_INSTALL_BOOTCODE_BIN)
|
|
$(RPI_FIRMWARE_INSTALL_DTB)
|
|
$(RPI_FIRMWARE_INSTALL_DTB_OVERLAYS)
|
|
endef
|
|
|
|
$(eval $(generic-package))
|