package/freescale-imx/firmware-imx: fix the VPU firmware location
authorFabio Estevam <festevam@gmail.com>
Wed, 13 Jan 2021 22:30:39 +0000 (19:30 -0300)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 14 Jan 2021 21:37:27 +0000 (22:37 +0100)
The mainline kernel searches the coda VPU firmware inside the following
locations [1]:

/lib/firmware/
/lib/firmware/vpu/

Currently Buildroot installs the coda firmware into /lib/firmware/imx/vpu,
which is not a valid location.

Fix it by installing the coda firmwares into /lib/firmware/vpu/ which
is a valid path for both mainline and NXP vendor kernels. Also create a
symlink to /lib/firmware/ so that mainline kernels do not need to wait
more than 60 seconds to search again inside /lib/firmware/vpu/.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8af7779f3cbc1f6720d15f00abc797493710d1ab

Reported-by: Romain Naour <romain.naour@gmail.com>
Suggested-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Acked-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/freescale-imx/firmware-imx/firmware-imx.mk

index 7d1f42f1d87b35707a6a85cb2e74d12051ebce8b..6fba4e8a0cb3618fef7bf81ac380ac74e630b7de 100644 (file)
@@ -116,9 +116,11 @@ endif
 FIRMWARE_IMX_VPU_FW_NAME = $(call qstrip,$(BR2_PACKAGE_FIRMWARE_IMX_VPU_FW_NAME))
 ifneq ($(FIRMWARE_IMX_VPU_FW_NAME),)
 define FIRMWARE_IMX_INSTALL_TARGET_VPU_FW
-       mkdir -p $(TARGET_DIR)/lib/firmware/imx/vpu
-       cp $(@D)/firmware/vpu/vpu_fw_$(FIRMWARE_IMX_VPU_FW_NAME)*.bin \
-               $(TARGET_DIR)/lib/firmware/imx/vpu/
+       mkdir -p $(TARGET_DIR)/lib/firmware/vpu
+       for i in $$(find $(@D)/firmware/vpu/vpu_fw_$(FIRMWARE_IMX_VPU_FW_NAME)*.bin); do \
+               cp $$i $(TARGET_DIR)/lib/firmware/vpu/ ; \
+               ln -sf vpu/$$(basename $$i) $(TARGET_DIR)/lib/firmware/$$(basename $$i) ; \
+       done
 endef
 endif