diff mbox series

[master/scarthgap,v2,1/5] ti-ipc-examples-linux: Add a recipe to build messageq app_host

Message ID 20250806170442.243461-2-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
Add a recipe to build the Application Host (for A15 core) to demonstrate
IPC with remote processors through messageq firmware. Also package this
in the /usr/bin directory for testing IPC. This recipe only builds the
app_host, and the firmwares are available in ti-linux-firmware
repository.

Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
---
 .../ipc/ti-ipc-examples-linux_git.bb          | 68 +++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb

Comments

Aniket Limaye Aug. 7, 2025, 8:10 a.m. UTC | #1
Beleswar,

On 06/08/25 22:34, Beleswar Padhi wrote:
> Add a recipe to build the Application Host (for A15 core) to demonstrate
> IPC with remote processors through messageq firmware. Also package this
> in the /usr/bin directory for testing IPC. This recipe only builds the
> app_host, and the firmwares are available in ti-linux-firmware
> repository.
> 
> Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
> ---
>   .../ipc/ti-ipc-examples-linux_git.bb          | 68 +++++++++++++++++++
>   1 file changed, 68 insertions(+)
>   create mode 100644 meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb
> 
> diff --git a/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb b/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb
> new file mode 100644
> index 00000000..3a64409e
> --- /dev/null
> +++ b/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb
> @@ -0,0 +1,68 @@
> +DESCRIPTION = "TI Inter Processor Communication (IPC) MessageQ Application for
> +Linux Host"
> +
> +require recipes-ti/ipc/ti-ipc-common.inc
> +require ti-ipc-rtos.inc
> +
> +LICENSE = "BSD-3-Clause"
> +LIC_FILES_CHKSUM = "file://${S_ipc-examples}/src/makefile;beginline=1;endline=30;md5=a52324bd5033bb49ea07bade1244ac9a"
> +
> +INSANE_SKIP:${PN} += "arch"

I guess this is not required since we are only building linux application?

Regards,
Aniket

> +
> +IPC_INSTALL_DIR = "${STAGING_DIR_TARGET}/usr/share/ti/ti-ipc-tree"
> +INHIBIT_PACKAGE_STRIP = "1"
> +
> +DEPENDS = "ti-ipc ti-ipc-rtos ti-xdctools-native zip-native"
> +
> +EX02_PATH = "examples/DRA7XX_linux_elf/ex02_messageq/host"
> +
> +do_compile() {
> +  cd ${S_ipc-examples}/src
> +  oe_runmake .examples \
> +    IPCTOOLS="${S_ipc-metadata}/src/etc"
> +
> +  for alt_platform in ${ALT_PLATFORM}; do
> +    oe_runmake .examples "PLATFORM=${alt_platform}" \
> +      IPCTOOLS="${S_ipc-metadata}/src/etc"
> +  done
> +
> +  if [  "${PLATFORM}" != "UNKNOWN" ]; then
> +    oe_runmake extract HOSTOS="linux" IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
> +
> +    if [ ! -z ${ALT_PLATFORM} ]; then
> +      oe_runmake extract PLATFORM="${ALT_PLATFORM}" HOSTOS="linux" \
> +         IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
> +    fi
> +    oe_runmake -C ${EX02_PATH} all HOSTOS="linux" \
> +      LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
> +      IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
> +
> +    if [ ! -z ${ALT_PLATFORM} ]; then
> +      oe_runmake -C ${EX02_PATH} all HOSTOS="linux" \
> +        LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
> +        IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
> +        PLATFORM="${ALT_PLATFORM}"
> +    fi
> +  fi
> +}
> +
> +do_install() {
> +  cd ${S_ipc-examples}/src
> +
> +  if [  "${PLATFORM}" != "UNKNOWN" ]; then
> +    # Install directory for linux examples
> +    install -d ${D}${bindir}/ipc/examples/ex02_messageq
> +    oe_runmake -C ${EX02_PATH} install IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
> +      LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
> +      HOSTOS="linux" EXEC_DIR="${D}/${bindir}/ipc/examples/ex02_messageq"
> +
> +    if [ ! -z ${ALT_PLATFORM} ]; then
> +      oe_runmake -C ${EX02_PATH} install IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
> +        LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
> +        HOSTOS="linux" EXEC_DIR="${D}/${bindir}/ipc/examples/ex02_messageq" \
> +        PLATFORM="${ALT_PLATFORM}"
> +    fi
> +  fi
> +}
> +
> +FILES:${PN} += "${bindir}/*"
Andrew Davis Aug. 7, 2025, 1:54 p.m. UTC | #2
On 8/6/25 12:04 PM, Beleswar Padhi wrote:
> Add a recipe to build the Application Host (for A15 core) to demonstrate
> IPC with remote processors through messageq firmware. Also package this
> in the /usr/bin directory for testing IPC. This recipe only builds the
> app_host, and the firmwares are available in ti-linux-firmware
> repository.
> 
> Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
> ---
>   .../ipc/ti-ipc-examples-linux_git.bb          | 68 +++++++++++++++++++
>   1 file changed, 68 insertions(+)
>   create mode 100644 meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb
> 
> diff --git a/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb b/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb
> new file mode 100644
> index 00000000..3a64409e
> --- /dev/null
> +++ b/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb
> @@ -0,0 +1,68 @@
> +DESCRIPTION = "TI Inter Processor Communication (IPC) MessageQ Application for
> +Linux Host"
> +
> +require recipes-ti/ipc/ti-ipc-common.inc
> +require ti-ipc-rtos.inc
> +
> +LICENSE = "BSD-3-Clause"
> +LIC_FILES_CHKSUM = "file://${S_ipc-examples}/src/makefile;beginline=1;endline=30;md5=a52324bd5033bb49ea07bade1244ac9a"
> +
> +INSANE_SKIP:${PN} += "arch"
> +
> +IPC_INSTALL_DIR = "${STAGING_DIR_TARGET}/usr/share/ti/ti-ipc-tree"
> +INHIBIT_PACKAGE_STRIP = "1"
> +
> +DEPENDS = "ti-ipc ti-ipc-rtos ti-xdctools-native zip-native"

Do we really depend on "ti-ipc-rtos"? Once we add pre-built IPUMM firmware
to linux-firmware, we should be able to drop the "ti-sysbios" recipe and
all the recipes that depend on it, including ti-ipc-rtos.

Andrew

> +
> +EX02_PATH = "examples/DRA7XX_linux_elf/ex02_messageq/host"
> +
> +do_compile() {
> +  cd ${S_ipc-examples}/src
> +  oe_runmake .examples \
> +    IPCTOOLS="${S_ipc-metadata}/src/etc"
> +
> +  for alt_platform in ${ALT_PLATFORM}; do
> +    oe_runmake .examples "PLATFORM=${alt_platform}" \
> +      IPCTOOLS="${S_ipc-metadata}/src/etc"
> +  done
> +
> +  if [  "${PLATFORM}" != "UNKNOWN" ]; then
> +    oe_runmake extract HOSTOS="linux" IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
> +
> +    if [ ! -z ${ALT_PLATFORM} ]; then
> +      oe_runmake extract PLATFORM="${ALT_PLATFORM}" HOSTOS="linux" \
> +         IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
> +    fi
> +    oe_runmake -C ${EX02_PATH} all HOSTOS="linux" \
> +      LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
> +      IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
> +
> +    if [ ! -z ${ALT_PLATFORM} ]; then
> +      oe_runmake -C ${EX02_PATH} all HOSTOS="linux" \
> +        LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
> +        IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
> +        PLATFORM="${ALT_PLATFORM}"
> +    fi
> +  fi
> +}
> +
> +do_install() {
> +  cd ${S_ipc-examples}/src
> +
> +  if [  "${PLATFORM}" != "UNKNOWN" ]; then
> +    # Install directory for linux examples
> +    install -d ${D}${bindir}/ipc/examples/ex02_messageq
> +    oe_runmake -C ${EX02_PATH} install IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
> +      LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
> +      HOSTOS="linux" EXEC_DIR="${D}/${bindir}/ipc/examples/ex02_messageq"
> +
> +    if [ ! -z ${ALT_PLATFORM} ]; then
> +      oe_runmake -C ${EX02_PATH} install IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
> +        LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
> +        HOSTOS="linux" EXEC_DIR="${D}/${bindir}/ipc/examples/ex02_messageq" \
> +        PLATFORM="${ALT_PLATFORM}"
> +    fi
> +  fi
> +}
> +
> +FILES:${PN} += "${bindir}/*"
diff mbox series

Patch

diff --git a/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb b/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb
new file mode 100644
index 00000000..3a64409e
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb
@@ -0,0 +1,68 @@ 
+DESCRIPTION = "TI Inter Processor Communication (IPC) MessageQ Application for
+Linux Host"
+
+require recipes-ti/ipc/ti-ipc-common.inc
+require ti-ipc-rtos.inc
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${S_ipc-examples}/src/makefile;beginline=1;endline=30;md5=a52324bd5033bb49ea07bade1244ac9a"
+
+INSANE_SKIP:${PN} += "arch"
+
+IPC_INSTALL_DIR = "${STAGING_DIR_TARGET}/usr/share/ti/ti-ipc-tree"
+INHIBIT_PACKAGE_STRIP = "1"
+
+DEPENDS = "ti-ipc ti-ipc-rtos ti-xdctools-native zip-native"
+
+EX02_PATH = "examples/DRA7XX_linux_elf/ex02_messageq/host"
+
+do_compile() {
+  cd ${S_ipc-examples}/src
+  oe_runmake .examples \
+    IPCTOOLS="${S_ipc-metadata}/src/etc"
+
+  for alt_platform in ${ALT_PLATFORM}; do
+    oe_runmake .examples "PLATFORM=${alt_platform}" \
+      IPCTOOLS="${S_ipc-metadata}/src/etc"
+  done
+
+  if [  "${PLATFORM}" != "UNKNOWN" ]; then
+    oe_runmake extract HOSTOS="linux" IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
+
+    if [ ! -z ${ALT_PLATFORM} ]; then
+      oe_runmake extract PLATFORM="${ALT_PLATFORM}" HOSTOS="linux" \
+         IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
+    fi
+    oe_runmake -C ${EX02_PATH} all HOSTOS="linux" \
+      LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
+      IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
+
+    if [ ! -z ${ALT_PLATFORM} ]; then
+      oe_runmake -C ${EX02_PATH} all HOSTOS="linux" \
+        LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
+        IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
+        PLATFORM="${ALT_PLATFORM}"
+    fi
+  fi
+}
+
+do_install() {
+  cd ${S_ipc-examples}/src
+
+  if [  "${PLATFORM}" != "UNKNOWN" ]; then
+    # Install directory for linux examples
+    install -d ${D}${bindir}/ipc/examples/ex02_messageq
+    oe_runmake -C ${EX02_PATH} install IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
+      LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
+      HOSTOS="linux" EXEC_DIR="${D}/${bindir}/ipc/examples/ex02_messageq"
+
+    if [ ! -z ${ALT_PLATFORM} ]; then
+      oe_runmake -C ${EX02_PATH} install IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
+        LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
+        HOSTOS="linux" EXEC_DIR="${D}/${bindir}/ipc/examples/ex02_messageq" \
+        PLATFORM="${ALT_PLATFORM}"
+    fi
+  fi
+}
+
+FILES:${PN} += "${bindir}/*"