mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-01-12 01:20:20 +00:00
ti-linux-fw: Split firmware in to machine packages
Firmware, like kernel modules, may be only relevant to a small subset of hardware. Shipping all firmware for all hardware can waste space. For this reason modules are split out into packages, and the same should be done for firmware. What we do currently is change the content of the package itself based on what device we are building for. Having a package change content for each machine means we cannot generate one image that supports multiple machines, nor host a common machine agnostic package repo. Instead we can generate different packages for the different firmwares and only include the firmware packages needed for each machine. Signed-off-by: Andrew Davis <afd@ti.com> Signed-off-by: Ryan Eatmon <reatmon@ti.com>
This commit is contained in:
committed by
Ryan Eatmon
parent
3ddf79b349
commit
a04e9fc6d9
@@ -18,4 +18,4 @@ TFA_BOARD = "j784s4"
|
||||
|
||||
OPTEEMACHINE = "k3-j784s4"
|
||||
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw cnm-wave-fw ti-eth-fw"
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw cnm-wave-fw ti-eth-fw-j784s4"
|
||||
|
||||
@@ -26,4 +26,4 @@ TFA_BOARD = "generic"
|
||||
|
||||
OPTEEMACHINE = "k3-j721e"
|
||||
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "ti-eth-fw"
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "ti-eth-fw-j7200"
|
||||
|
||||
@@ -40,4 +40,4 @@ TI_VXE_VXD_DRIVER = "ti-vxe-vxd-driver"
|
||||
TI_VXE_VXD_DRIVER:bsp-ti-6_6 = ""
|
||||
TI_VXE_VXD_DRIVER:bsp-ti-6_1 = ""
|
||||
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw vxd-dec-fw ti-eth-fw ${TI_VXE_VXD_DRIVER}"
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw vxd-dec-fw ti-eth-fw-j721e ${TI_VXE_VXD_DRIVER}"
|
||||
|
||||
@@ -21,4 +21,4 @@ TFA_BOARD = "j784s4"
|
||||
|
||||
OPTEEMACHINE = "k3-j784s4"
|
||||
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw cnm-wave-fw ti-eth-fw"
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw cnm-wave-fw ti-eth-fw-j784s4"
|
||||
|
||||
@@ -5,8 +5,6 @@ LIC_FILES_CHKSUM = "file://${THISDIR}/../../licenses/TI-TFL;md5=a1b59cb7ba626b9d
|
||||
|
||||
COMPATIBLE_MACHINE = "j721e|j7200|j784s4"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
inherit update-alternatives
|
||||
|
||||
require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
|
||||
@@ -17,50 +15,60 @@ PR = "${INC_PR}.0"
|
||||
# Secure Build
|
||||
inherit ti-secdev
|
||||
|
||||
PLAT_SFX = ""
|
||||
PLAT_SFX:j721e = "j721e"
|
||||
PLAT_SFX:j7200 = "j7200"
|
||||
PLAT_SFX:j784s4 = "j784s4"
|
||||
PACKAGES += " \
|
||||
${PN}-j721e \
|
||||
${PN}-j7200 \
|
||||
${PN}-j784s4 \
|
||||
"
|
||||
# Disable arch checking as firmware is likely to be a different arch from the Yocto build
|
||||
INSANE_SKIP:${PN}-j721e += "arch"
|
||||
INSANE_SKIP:${PN}-j7200 += "arch"
|
||||
INSANE_SKIP:${PN}-j784s4 += "arch"
|
||||
|
||||
ETH_FW_DIR = "ti-eth/${PLAT_SFX}"
|
||||
RDEPENDS:${PN} += " \
|
||||
${PN}-j721e \
|
||||
${PN}-j7200 \
|
||||
${PN}-j784s4 \
|
||||
"
|
||||
|
||||
INSTALL_ETH_FW_DIR = "${nonarch_base_libdir}/firmware/${ETH_FW_DIR}"
|
||||
PLATS = "\
|
||||
j721e \
|
||||
j7200 \
|
||||
j784s4 \
|
||||
"
|
||||
|
||||
ETH_FW = "app_remoteswitchcfg_server_strip.xer5f"
|
||||
|
||||
ETH_FW_LIST = ""
|
||||
ETH_FW_LIST:j721e = "${ETH_FW}"
|
||||
ETH_FW_LIST:j7200 = "${ETH_FW}"
|
||||
ETH_FW_LIST:j784s4 = "${ETH_FW}"
|
||||
|
||||
do_install() {
|
||||
# ETH firmware
|
||||
for FW_NAME in ${ETH_FW_LIST}
|
||||
for PLAT in ${PLATS}
|
||||
do
|
||||
${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${S}/${ETH_FW_DIR}/${FW_NAME} ${S}/${ETH_FW_DIR}/${FW_NAME}.signed
|
||||
done
|
||||
# Sign ETH firmware
|
||||
${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${S}/ti-eth/${PLAT}/${ETH_FW} ${S}/ti-eth/${PLAT}/${ETH_FW}.signed
|
||||
|
||||
# ETH firmware
|
||||
install -d ${D}${INSTALL_ETH_FW_DIR}
|
||||
for FW_NAME in ${ETH_FW_LIST}
|
||||
do
|
||||
install -m 0644 ${S}/${ETH_FW_DIR}/${FW_NAME} ${D}${INSTALL_ETH_FW_DIR}
|
||||
install -m 0644 ${S}/${ETH_FW_DIR}/${FW_NAME}.signed ${D}${INSTALL_ETH_FW_DIR}
|
||||
# Install ETH firmware
|
||||
install -d ${D}${nonarch_base_libdir}/firmware/ti-eth/${PLAT}
|
||||
install -m 0644 ${S}/ti-eth/${PLAT}/${ETH_FW} ${D}${nonarch_base_libdir}/firmware/ti-eth/${PLAT}
|
||||
install -m 0644 ${S}/ti-eth/${PLAT}/${ETH_FW}.signed ${D}${nonarch_base_libdir}/firmware/ti-eth/${PLAT}
|
||||
done
|
||||
}
|
||||
|
||||
FILES:${PN} = ""
|
||||
FILES:${PN}-j721e = "${nonarch_base_libdir}/firmware/ti-eth/j721e"
|
||||
FILES:${PN}-j7200 = "${nonarch_base_libdir}/firmware/ti-eth/j7200"
|
||||
FILES:${PN}-j784s4 = "${nonarch_base_libdir}/firmware/ti-eth/j784s4"
|
||||
|
||||
# Set up names for the firmwares
|
||||
ALTERNATIVE:${PN}:j721e = "\
|
||||
ALTERNATIVE:${PN}-j721e = "\
|
||||
j7-main-r5f0_0-fw \
|
||||
j7-main-r5f0_0-fw-sec \
|
||||
"
|
||||
|
||||
ALTERNATIVE:${PN}:j7200 = "\
|
||||
ALTERNATIVE:${PN}-j7200 = "\
|
||||
j7200-main-r5f0_0-fw \
|
||||
j7200-main-r5f0_0-fw-sec \
|
||||
"
|
||||
|
||||
ALTERNATIVE:${PN}:j784s4 = "\
|
||||
ALTERNATIVE:${PN}-j784s4 = "\
|
||||
j784s4-main-r5f0_0-fw \
|
||||
j784s4-main-r5f0_0-fw-sec \
|
||||
"
|
||||
@@ -76,13 +84,13 @@ ALTERNATIVE_LINK_NAME[j784s4-main-r5f0_0-fw] = "${nonarch_base_libdir}/firmw
|
||||
ALTERNATIVE_LINK_NAME[j784s4-main-r5f0_0-fw-sec] = "${nonarch_base_libdir}/firmware/j784s4-main-r5f0_0-fw-sec"
|
||||
|
||||
# Create the firmware alternatives
|
||||
ALTERNATIVE_TARGET[j7-main-r5f0_0-fw] = "${INSTALL_ETH_FW_DIR}/${ETH_FW}"
|
||||
ALTERNATIVE_TARGET[j7-main-r5f0_0-fw-sec] = "${INSTALL_ETH_FW_DIR}/${ETH_FW}.signed"
|
||||
ALTERNATIVE_TARGET[j7-main-r5f0_0-fw] = "${nonarch_base_libdir}/firmware/ti-eth/j721e/${ETH_FW}"
|
||||
ALTERNATIVE_TARGET[j7-main-r5f0_0-fw-sec] = "${nonarch_base_libdir}/firmware/ti-eth/j721e/${ETH_FW}.signed"
|
||||
|
||||
ALTERNATIVE_TARGET[j7200-main-r5f0_0-fw] = "${INSTALL_ETH_FW_DIR}/${ETH_FW}"
|
||||
ALTERNATIVE_TARGET[j7200-main-r5f0_0-fw-sec] = "${INSTALL_ETH_FW_DIR}/${ETH_FW}.signed"
|
||||
ALTERNATIVE_TARGET[j7200-main-r5f0_0-fw] = "${nonarch_base_libdir}/firmware/ti-eth/j7200/${ETH_FW}"
|
||||
ALTERNATIVE_TARGET[j7200-main-r5f0_0-fw-sec] = "${nonarch_base_libdir}/firmware/ti-eth/j7200/${ETH_FW}.signed"
|
||||
|
||||
ALTERNATIVE_TARGET[j784s4-main-r5f0_0-fw] = "${INSTALL_ETH_FW_DIR}/${ETH_FW}"
|
||||
ALTERNATIVE_TARGET[j784s4-main-r5f0_0-fw-sec] = "${INSTALL_ETH_FW_DIR}/${ETH_FW}.signed"
|
||||
ALTERNATIVE_TARGET[j784s4-main-r5f0_0-fw] = "${nonarch_base_libdir}/firmware/ti-eth/j784s4/${ETH_FW}"
|
||||
ALTERNATIVE_TARGET[j784s4-main-r5f0_0-fw-sec] = "${nonarch_base_libdir}/firmware/ti-eth/j784s4/${ETH_FW}.signed"
|
||||
|
||||
ALTERNATIVE_PRIORITY = "5"
|
||||
|
||||
Reference in New Issue
Block a user