From 79b65da183feebd2d86dfbe256699a9e0a4c3d57 Mon Sep 17 00:00:00 2001 From: Ming Liu Date: Mon, 27 Jun 2022 18:20:23 +0200 Subject: firmware-imx: create symbolic links for CODA VPU firmwares Create symbolic links in ${nonarch_base_libdir}/firmware for CODA VPU firmwares, otherwise CODA driver could not load them directly in probe function and hence fallback firmware loading being triggered, which is usually 40-60 seconds later after system boots up. Signed-off-by: Ming Liu (cherry picked from commit 8ba9c05e75e00fc025551d43cca9ddd3ca27c1c8) --- recipes-bsp/firmware-imx/firmware-imx_8.15.bb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'recipes-bsp/firmware-imx/firmware-imx_8.15.bb') diff --git a/recipes-bsp/firmware-imx/firmware-imx_8.15.bb b/recipes-bsp/firmware-imx/firmware-imx_8.15.bb index cfc98a73..f84ea1fa 100644 --- a/recipes-bsp/firmware-imx/firmware-imx_8.15.bb +++ b/recipes-bsp/firmware-imx/firmware-imx_8.15.bb @@ -65,6 +65,29 @@ do_install() { # which contains only files that matches the pattern. # python populate_packages:prepend() { + # CODA driver tries to locate VPU firmwares directly in ${nonarch_base_libdir}/firmware, to + # avoid fallback loading which is usually 40-60 seconds later after system boots up, let's + # create symbolic links in ${nonarch_base_libdir}/firmware for VPU firmwares. + def coda_vpu_links(file, pkg, pattern, format, basename): + # Only CODA VPU firmwares need this procedure + if 'imx8' in basename: + return + + dir = os.path.dirname(file) + dir = os.path.abspath(os.path.join(dir, os.pardir)) + cwd = os.getcwd() + + os.chdir(dir) + + name = os.path.basename(file) + os.symlink(os.path.join("vpu", name), name) + + oldfiles = d.getVar('FILES:' + pkg) + newfile = os.path.join(d.getVar('nonarch_base_libdir'), "firmware", name) + d.setVar('FILES:' + pkg, oldfiles + " " + newfile) + + os.chdir(cwd) + easrcdir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/easrc', d) do_split_packages(d, easrcdir, '^easrc-([^_]*).*\.bin', output_pattern='firmware-imx-easrc-%s', @@ -76,6 +99,7 @@ python populate_packages:prepend() { do_split_packages(d, vpudir, '^vpu_fw_([^_]*).*\.bin', output_pattern='firmware-imx-vpu-%s', description='Freescale IMX VPU Firmware [%s]', + hook=coda_vpu_links, extra_depends='', prepend=True) -- cgit v1.2.3-54-g00ecf