diff mbox series

[master/scarthgap,v2,2/5] ti-rtos-messageq-test-fw: Add a recipe to package prebuilt IPC firmware

Message ID 20250806170442.243461-3-b-padhi@ti.com
State New
Headers show
Series Add recipe to package MessageQ Application and Firmware | expand

Commit Message

Beleswar Padhi Aug. 6, 2025, 5:04 p.m. UTC
The messageq IPC firmware example for AM57xx SoCs is available in
ti-linux-firmware repository. Add a recipe to package the prebuilt
messageq firmware into the rootfs. Additionally, make sure the firmware
for IPU1 rproc is copied into boot partition as well for Early Boot use
cases.

Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
---
 .../recipes-bsp/ti-linux-fw/ti-linux-fw.inc   |  1 +
 .../ti-rtos-messageq-test-fw_git.bb           | 67 +++++++++++++++++++
 2 files changed, 68 insertions(+)
 create mode 100644 meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-messageq-test-fw_git.bb
diff mbox series

Patch

diff --git a/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc b/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc
index 47ce5616..6787018e 100644
--- a/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+++ b/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc
@@ -19,6 +19,7 @@  TI_SYSFW_VERSION = "11.01.05"
 TI_HSM_DEMO_FW_VERSION = "11.00.09"
 TAD5212_FW_VERSION = "1.0.0.0"
 TI_PKA_FW_VERSION = "2.1.0"
+TI_IPC_EXAMPLES_FW_VERSION = "3.52.00.01"
 
 TI_LINUX_FW_SRCREV ?= "e89a348f4618a26812fb353a04ed9532ef890a2f"
 SRCREV = "${TI_LINUX_FW_SRCREV}"
diff --git a/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-messageq-test-fw_git.bb b/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-messageq-test-fw_git.bb
new file mode 100644
index 00000000..980fe5cc
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-messageq-test-fw_git.bb
@@ -0,0 +1,67 @@ 
+SUMMARY = "TI MessageQ prebuilt binary firmware images"
+
+LICENSE = "TI-TFL"
+LIC_FILES_CHKSUM = "file://${THISDIR}/../../licenses/TI-TFL;md5=a1b59cb7ba626b9dbbcbf00f3fbc438a"
+
+COMPATIBLE_MACHINE = "am57xx"
+
+inherit update-alternatives
+inherit deploy
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+PV = "${TI_IPC_EXAMPLES_FW_VERSION}"
+PR = "${INC_PR}.0"
+
+INSTALL_IPC_FW_DIR = "${nonarch_base_libdir}/firmware/ipc"
+
+IPU_1_FW = "messageq_server_ipu1.xem4"
+IPU_2_FW = "messageq_server_ipu2.xem4"
+DSP_1_FW = "messageq_server_dsp1.xe66"
+DSP_2_FW = "messageq_server_dsp2.xe66"
+
+IPU_1_FW_DIR = "ti_platforms_evmDRA7XX_ipu1"
+IPU_2_FW_DIR = "ti_platforms_evmDRA7XX_ipu2"
+DSP_1_FW_DIR = "ti_platforms_evmDRA7XX_dsp1"
+DSP_2_FW_DIR = "ti_platforms_evmDRA7XX_dsp2"
+
+do_install() {
+    # Install Firmware
+    install -d ${D}${INSTALL_IPC_FW_DIR}/${IPU_1_FW_DIR}
+    install -d ${D}${INSTALL_IPC_FW_DIR}/${IPU_2_FW_DIR}
+    install -d ${D}${INSTALL_IPC_FW_DIR}/${DSP_1_FW_DIR}
+    install -d ${D}${INSTALL_IPC_FW_DIR}/${DSP_2_FW_DIR}
+
+    install -m 0644 ${S}/ti-ipc/am57xx/${IPU_1_FW} ${D}${INSTALL_IPC_FW_DIR}/${IPU_1_FW_DIR}
+    install -m 0644 ${S}/ti-ipc/am57xx/${IPU_2_FW} ${D}${INSTALL_IPC_FW_DIR}/${IPU_2_FW_DIR}
+    install -m 0644 ${S}/ti-ipc/am57xx/${DSP_1_FW} ${D}${INSTALL_IPC_FW_DIR}/${DSP_1_FW_DIR}
+    install -m 0644 ${S}/ti-ipc/am57xx/${DSP_2_FW} ${D}${INSTALL_IPC_FW_DIR}/${DSP_2_FW_DIR}
+}
+
+do_deploy() {
+    install -d ${DEPLOYDIR}/ipc
+    install -m 0644 ${S}/ti-ipc/am57xx/${IPU_1_FW} ${DEPLOYDIR}/ipc/dra7-ipu1-fw.xem4
+}
+
+addtask deploy after do_install
+
+# Set up names for the firmwares
+
+ALTERNATIVE:${PN} = "\
+                    dra7-ipu1-fw.xem4 \
+                    dra7-ipu2-fw.xem4 \
+                    dra7-dsp1-fw.xe66 \
+                    dra7-dsp2-fw.xe66 \
+                    "
+
+ALTERNATIVE_LINK_NAME[dra7-ipu1-fw.xem4] = "${nonarch_base_libdir}/firmware/dra7-ipu1-fw.xem4"
+ALTERNATIVE_LINK_NAME[dra7-ipu2-fw.xem4] = "${nonarch_base_libdir}/firmware/dra7-ipu2-fw.xem4"
+ALTERNATIVE_LINK_NAME[dra7-dsp1-fw.xe66] = "${nonarch_base_libdir}/firmware/dra7-dsp1-fw.xe66"
+ALTERNATIVE_LINK_NAME[dra7-dsp2-fw.xe66] = "${nonarch_base_libdir}/firmware/dra7-dsp2-fw.xe66"
+
+ALTERNATIVE_TARGET[dra7-ipu1-fw.xem4] = "${INSTALL_IPC_FW_DIR}/${IPU_1_FW_DIR}/${IPU_1_FW}"
+ALTERNATIVE_TARGET[dra7-ipu2-fw.xem4] = "${INSTALL_IPC_FW_DIR}/${IPU_2_FW_DIR}/${IPU_2_FW}"
+ALTERNATIVE_TARGET[dra7-dsp1-fw.xe66] = "${INSTALL_IPC_FW_DIR}/${DSP_1_FW_DIR}/${DSP_1_FW}"
+ALTERNATIVE_TARGET[dra7-dsp2-fw.xe66] = "${INSTALL_IPC_FW_DIR}/${DSP_2_FW_DIR}/${DSP_2_FW}"
+
+ALTERNATIVE_PRIORITY = "30"