Message ID | 20210113120822.327-1-festevam@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | package/freescale-imx/firmware-imx: install the VPU firmware into a valid location | expand |
Hi Fabio, Le 13/01/2021 à 13:08, 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 to install the coda firmwares into /lib/firmware/vpu/ which > is a valid path for both mainline and NXP vendor kernels. Ok but it add a 60sec delay when we use the mainline kernel. Best regards, Romain > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8af7779f3cbc1f6720d15f00abc797493710d1ab > > Reported-by: Romain Naour <romain.naour@gmail.com> > Signed-off-by: Fabio Estevam <festevam@gmail.com> > --- > package/freescale-imx/firmware-imx/firmware-imx.mk | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk > index 7d1f42f1d87b..f65614c9a79c 100644 > --- a/package/freescale-imx/firmware-imx/firmware-imx.mk > +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk > @@ -116,9 +116,9 @@ 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 > + mkdir -p $(TARGET_DIR)/lib/firmware/vpu > cp $(@D)/firmware/vpu/vpu_fw_$(FIRMWARE_IMX_VPU_FW_NAME)*.bin \ > - $(TARGET_DIR)/lib/firmware/imx/vpu/ > + $(TARGET_DIR)/lib/firmware/vpu/ > endef > endif > >
Hi Romain,
On Wed, Jan 13, 2021 at 10:20 AM Romain Naour <romain.naour@smile.fr> wrote:
> Ok but it add a 60sec delay when we use the mainline kernel.
Yes, not a pleasant experience.
What if we copy the VPU firmware to both locations?
/lib/firmware/
/lib/firmware/vpu/
This way mainline kernel will fetch the VPU firmware faster and NXP
vendor can also work.
Hi Fabio, Le 13/01/2021 à 14:29, Fabio Estevam a écrit : > Hi Romain, > > On Wed, Jan 13, 2021 at 10:20 AM Romain Naour <romain.naour@smile.fr> wrote: > >> Ok but it add a 60sec delay when we use the mainline kernel. > > Yes, not a pleasant experience. > > What if we copy the VPU firmware to both locations? > > /lib/firmware/ > /lib/firmware/vpu/ > > This way mainline kernel will fetch the VPU firmware faster and NXP > vendor can also work. > I don't see any difference between NXP vendor and mainline kernel. See: https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/media/platform/coda/coda-common.c?h=imx_5.4.70_2.3.0#n2889 Can you check if there is any local change applied to your kernel or a specific configuration ? Best regards, Romain
Hi Romain, On Wed, Jan 13, 2021 at 4:11 PM Romain Naour <romain.naour@gmail.com> wrote: > I don't see any difference between NXP vendor and mainline kernel. > > See: > https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/media/platform/coda/coda-common.c?h=imx_5.4.70_2.3.0#n2889 > > Can you check if there is any local change applied to your kernel or a specific > configuration ? The NXP kernel does not use the coda driver. It uses drivers/mxc/vpu/mxc_vpu.c instead. Regards, Fabio Estevam
Hi Fabio, Le 13/01/2021 à 14:29, Fabio Estevam a écrit : > Hi Romain, > > On Wed, Jan 13, 2021 at 10:20 AM Romain Naour <romain.naour@smile.fr> wrote: > >> Ok but it add a 60sec delay when we use the mainline kernel. > > Yes, not a pleasant experience. > > What if we copy the VPU firmware to both locations? > > /lib/firmware/ > /lib/firmware/vpu/ > > This way mainline kernel will fetch the VPU firmware faster and NXP > vendor can also work. > What about a simlink ? Best regards, Romain
On Wed, Jan 13, 2021 at 5:02 PM Romain Naour <romain.naour@gmail.com> wrote:
> What about a simlink ?
Yes, that would work.
Actually, I tried it here, but it ended up with a symlink to the host
PC Buildroot path.
If you could give me a suggestion on how to properly implement the
symlink in firmware-imx.mk, I would appreciate it.
Thanks
Le 13/01/2021 à 21:16, Fabio Estevam a écrit : > On Wed, Jan 13, 2021 at 5:02 PM Romain Naour <romain.naour@gmail.com> wrote: > >> What about a simlink ? > > Yes, that would work. > > Actually, I tried it here, but it ended up with a symlink to the host > PC Buildroot path. > > If you could give me a suggestion on how to properly implement the > symlink in firmware-imx.mk, I would appreciate it. Something like this ? define FIRMWARE_IMX_INSTALL_TARGET_VPU_FW 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 Best regards, Romain > > Thanks >
On Wed, Jan 13, 2021 at 6:01 PM Romain Naour <romain.naour@gmail.com> wrote: > Something like this ? > > define FIRMWARE_IMX_INSTALL_TARGET_VPU_FW > 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 This works for me. I will send a v2 with your suggestion. Thanks!
diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk index 7d1f42f1d87b..f65614c9a79c 100644 --- a/package/freescale-imx/firmware-imx/firmware-imx.mk +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk @@ -116,9 +116,9 @@ 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 + mkdir -p $(TARGET_DIR)/lib/firmware/vpu cp $(@D)/firmware/vpu/vpu_fw_$(FIRMWARE_IMX_VPU_FW_NAME)*.bin \ - $(TARGET_DIR)/lib/firmware/imx/vpu/ + $(TARGET_DIR)/lib/firmware/vpu/ endef endif
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 to install the coda firmwares into /lib/firmware/vpu/ which is a valid path for both mainline and NXP vendor kernels. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8af7779f3cbc1f6720d15f00abc797493710d1ab Reported-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Fabio Estevam <festevam@gmail.com> --- package/freescale-imx/firmware-imx/firmware-imx.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)