diff mbox series

[v2] package/freescale-imx/firmware-imx: fix the VPU firmware location

Message ID 20210113223039.14401-1-festevam@gmail.com
State Accepted
Headers show
Series [v2] package/freescale-imx/firmware-imx: fix the VPU firmware location | expand

Commit Message

Fabio Estevam Jan. 13, 2021, 10:30 p.m. UTC
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>
---
Changes since v1:
- Create symlinks to /lib/firmware to speed up mainline kernels to
found the VPU firmware.

 package/freescale-imx/firmware-imx/firmware-imx.mk | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Comments

Romain Naour Jan. 14, 2021, 9:16 p.m. UTC | #1
Hi Fabio,

Le 13/01/2021 à 23:30, Fabio Estevam a écrit :
> 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>

Acked-by: Romain Naour <romain.naour@gmail.com>

Best regards,
Romain


> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> ---
> Changes since v1:
> - Create symlinks to /lib/firmware to speed up mainline kernels to
> found the VPU firmware.
> 
>  package/freescale-imx/firmware-imx/firmware-imx.mk | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
> index 7d1f42f1d87b..6fba4e8a0cb3 100644
> --- a/package/freescale-imx/firmware-imx/firmware-imx.mk
> +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
> @@ -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
>  
>
Thomas Petazzoni Jan. 14, 2021, 9:37 p.m. UTC | #2
On Wed, 13 Jan 2021 19:30:39 -0300
Fabio Estevam <festevam@gmail.com> wrote:

> 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>
> ---
> Changes since v1:
> - Create symlinks to /lib/firmware to speed up mainline kernels to
> found the VPU firmware.

Applied to master, thanks.

Thomas
Peter Korsgaard Jan. 18, 2021, 8:38 p.m. UTC | #3
>>>>> "Fabio" == Fabio Estevam <festevam@gmail.com> writes:

 > 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>
 > ---
 > Changes since v1:
 > - Create symlinks to /lib/firmware to speed up mainline kernels to
 > found the VPU firmware.

Committed to 2020.11.x, thanks.
diff mbox series

Patch

diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
index 7d1f42f1d87b..6fba4e8a0cb3 100644
--- a/package/freescale-imx/firmware-imx/firmware-imx.mk
+++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
@@ -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