All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denys Dmytriyenko <denis@denix.org>
To: afd@ti.com
Cc: Ryan Eatmon <reatmon@ti.com>,
	c-shilwant@ti.com, meta-ti@lists.yoctoproject.org,
	Denys Dmytriyenko <denys@konsulko.com>
Subject: Re: [meta-ti][scarthgap/master][PATCH 1/3] meta-ti-bsp: Split out ti-edgeai-fw from ti-rtos-echo-test-fw
Date: Tue, 1 Jul 2025 12:22:10 -0400	[thread overview]
Message-ID: <20250701162210.GU18383@denix.org> (raw)
In-Reply-To: <62a7bf55-e13c-4775-89d7-a3c0cfa9344d@ti.com>

On Tue, Jul 01, 2025 at 10:58:22AM -0500, Andrew Davis via lists.yoctoproject.org wrote:
> On 7/1/25 10:39 AM, Ryan Eatmon wrote:
> >
> >
> >On 7/1/2025 9:45 AM, Andrew Davis wrote:
> >>On 6/30/25 7:28 PM, Denys Dmytriyenko wrote:
> >>>On Mon, Jun 30, 2025 at 03:46:14PM +0530, Chirag Shilwant via lists.yoctoproject.org wrote:
> >>>>Hi Andrew,
> >>>>
> >>>>On 28/06/25 01:54, Andrew Davis via lists.yoctoproject.org wrote:
> >>>>>TI EdgeAI firmware is distinct from the other "echo test" firmware
> >>>>>provided by ti-rtos-echo-test-fw. It belongs in its own package.
> >>>>>Split out the EdgeAI firmware from the "echo test" firmware.
> >>>>
> >>>>
> >>>>Looks like the corresponding meta-arago patch for adding
> >>>>ti-edgeai-fw in filesystem
> >>>>is missing from the meta-arago lists.
> >>>>
> >>>>We have added ti-rtos-echo-test-fw in following recipes, so similar
> >>>>should be done
> >>>>for ti-edgeai-fw to ensure that CICD builds [0] have EdgeAI C7x IPC
> >>>>firmwares packaged.
> >>>>
> >>>>
> >>>>~/source/meta-arago$ find . | grep -rn "ti-rtos-echo-test-fw"
> >>>>meta-arago-test/recipes-core/packagegroups/ti-test.bb:117:
> >>>>ti-rtos-echo-test-fw \
> >>>>meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-console.bb:70:
> >>>>ti-rtos-echo-test-fw \
> >>>>meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-tisdk-addons.bb:61:UTILS:append:k3
> >>>>= " ti-rtos-echo-test-fw"
> >>>
> >>>Instead of doing it in images or packagegroups, a better alternative would
> >>>be to list FW images in either MACHINE_ESSENTIAL_EXTRA_RDEPENDS or
> >>>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS, as we already do for most of the FWs.
> >>>
> >>>That way it will work for any distro or image built for the same platform.
> >>>
> >>
> >>I like this idea in general for most firmware, but our remoteproc firmware
> >>is a little different in that is has multiple valid options and selection
> >>depends on use-case. The echo test firmware is probably only useful for test
> >>images, and EdgeAI firmware might only be useful for EdgeAI images, etc..
> >>
> >>So selection of remoteproc firmware should stay in distro layer IMHO
> >
> >Is it possible to specify that two packages cannot be built/installed at the same time?  I think there is a way.  For this specific case I think we should use that.
> >
> 
> In this case, we can build and install both at the same time, they both use update
> alternatives and should live happily together. EdgeAI firmware, if installed, will
> be higher priority so will be the default loaded by kernel, this matches existing
> behavior (once we add ti-edgeai-fw to the images).

Heh, we just cross-posted with the same comment.

But my point is - why not list all alternatives in *_RRECOMMENDS and let 
distros adjust priorities accordingly?

E.g. EdgeAI SDK can raise edgeai FW priority, otherwise echo FW will be used 
by default.



> Andrew
> 
> >
> >>Andrew
> >>
> >>>
> >>>>[0]: https://software-dl.ti.com/cicd-report/linux/index.html?section=platform&platform=am62axx
> >>>>
> >>>>
> >>>>
> >>>>-- 
> >>>>Chirag
> >>>>
> >>>>
> >>>>
> >>>>>Give this a higher ALTERNATIVE_PRIORITY so that if both are installed
> >>>>>the default will still be EdgeAI firmware for AM62A devices.
> >>>>>
> >>>>>Signed-off-by: Andrew Davis <afd@ti.com>
> >>>>>---
> >>>>>  .../recipes-bsp/ti-rtos-fw/ti-edgeai-fw.bb    | 58 +++++++++++++++++++
> >>>>>  .../ti-rtos-fw/ti-rtos-echo-test-fw.bb        | 29 +++++-----
> >>>>>  2 files changed, 72 insertions(+), 15 deletions(-)
> >>>>>  create mode 100644 meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-edgeai-fw.bb
> >>>>>
> >>>>>diff --git a/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-edgeai-fw.bb b/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-edgeai-fw.bb
> >>>>>new file mode 100644
> >>>>>index 00000000..67150968
> >>>>>--- /dev/null
> >>>>>+++ b/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-edgeai-fw.bb
> >>>>>@@ -0,0 +1,58 @@
> >>>>>+SUMMARY = "TI EdgeAI prebuilt binary firmware images"
> >>>>>+
> >>>>>+LICENSE = "TI-TFL"
> >>>>>+LIC_FILES_CHKSUM = "file://${THISDIR}/../../licenses/TI-TFL;md5=a1b59cb7ba626b9dbbcbf00f3fbc438a"
> >>>>>+
> >>>>>+COMPATIBLE_MACHINE = "am62axx"
> >>>>>+
> >>>>>+PACKAGE_ARCH = "${MACHINE_ARCH}"
> >>>>>+
> >>>>>+inherit update-alternatives
> >>>>>+
> >>>>>+PLAT_SFX = ""
> >>>>>+PLAT_SFX:am62axx = "am62axx"
> >>>>>+
> >>>>>+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
> >>>>>+
> >>>>>+PV = "${CORESDK_RTOS_VERSION}"
> >>>>>+PR = "${INC_PR}.1"
> >>>>>+
> >>>>>+# Secure Build
> >>>>>+inherit ti-secdev
> >>>>>+
> >>>>>+IPC_FW_DIR = "ti-ipc/${PLAT_SFX}"
> >>>>>+
> >>>>>+INSTALL_IPC_FW_DIR = "${nonarch_base_libdir}/firmware/${IPC_FW_DIR}"
> >>>>>+
> >>>>>+C7X_1_FW = "dsp_edgeai_c7x_1_release_strip.out"
> >>>>>+
> >>>>>+IPC_FW_LIST = ""
> >>>>>+IPC_FW_LIST:am62axx = "${C7X_1_FW}"
> >>>>>+
> >>>>>+do_install() {
> >>>>>+    # Sign Firmware
> >>>>>+    for FW_NAME in ${IPC_FW_LIST}
> >>>>>+    do
> >>>>>+        ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${S}/${IPC_FW_DIR}/${FW_NAME} ${S}/${IPC_FW_DIR}/${FW_NAME}.signed
> >>>>>+    done
> >>>>>+
> >>>>>+    # Install Firmware
> >>>>>+    install -d ${D}${INSTALL_IPC_FW_DIR}
> >>>>>+    for FW_NAME in ${IPC_FW_LIST}
> >>>>>+    do
> >>>>>+        install -m 0644 ${S}/${IPC_FW_DIR}/${FW_NAME} ${D}${INSTALL_IPC_FW_DIR}
> >>>>>+        install -m 0644 ${S}/${IPC_FW_DIR}/${FW_NAME}.signed ${D}${INSTALL_IPC_FW_DIR}
> >>>>>+    done
> >>>>>+}
> >>>>>+
> >>>>>+ALTERNATIVE:${PN}:am62axx = "\
> >>>>>+                    am62a-c71_0-fw        am62a-c71_0-fw-sec \
> >>>>>+                    "
> >>>>>+
> >>>>>+ALTERNATIVE_LINK_NAME[am62a-c71_0-fw]     = "${nonarch_base_libdir}/firmware/am62a-c71_0-fw"
> >>>>>+ALTERNATIVE_LINK_NAME[am62a-c71_0-fw-sec] = "${nonarch_base_libdir}/firmware/am62a-c71_0-fw-sec"
> >>>>>+
> >>>>>+ALTERNATIVE_TARGET[am62a-c71_0-fw]     = "${INSTALL_IPC_FW_DIR}/${C7X_1_FW}"
> >>>>>+ALTERNATIVE_TARGET[am62a-c71_0-fw-sec] = "${INSTALL_IPC_FW_DIR}/${C7X_1_FW}.signed"
> >>>>>+
> >>>>>+ALTERNATIVE_PRIORITY = "20"
> >>>>>diff --git a/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-echo-test-fw.bb b/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-echo-test-fw.bb
> >>>>>index 7fffc9de..3e4db129 100644
> >>>>>--- a/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-echo-test-fw.bb
> >>>>>+++ b/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-echo-test-fw.bb
> >>>>>@@ -36,21 +36,20 @@ IPC_FW_DIR = "ti-ipc/${PLAT_SFX}"
> >>>>>  INSTALL_IPC_FW_DIR = "${nonarch_base_libdir}/firmware/${IPC_FW_DIR}"
> >>>>>-MCU_1_0_FW =       "ipc_echo_test_mcu1_0_release_strip.xer5f"
> >>>>>-MCU_1_1_FW =       "ipc_echo_test_mcu1_1_release_strip.xer5f"
> >>>>>-MCU_2_0_FW =       "ipc_echo_test_mcu2_0_release_strip.xer5f"
> >>>>>-MCU_2_1_FW =       "ipc_echo_test_mcu2_1_release_strip.xer5f"
> >>>>>-MCU_3_0_FW =       "ipc_echo_test_mcu3_0_release_strip.xer5f"
> >>>>>-MCU_3_1_FW =       "ipc_echo_test_mcu3_1_release_strip.xer5f"
> >>>>>-MCU_4_0_FW =       "ipc_echo_test_mcu4_0_release_strip.xer5f"
> >>>>>-MCU_4_1_FW =       "ipc_echo_test_mcu4_1_release_strip.xer5f"
> >>>>>-C66_1_FW =         "ipc_echo_test_c66xdsp_1_release_strip.xe66"
> >>>>>-C66_2_FW =         "ipc_echo_test_c66xdsp_2_release_strip.xe66"
> >>>>>-C7X_1_FW =         "ipc_echo_test_c7x_1_release_strip.xe71"
> >>>>>-C7X_1_FW:am62axx = "dsp_edgeai_c7x_1_release_strip.out"
> >>>>>-C7X_2_FW =         "ipc_echo_test_c7x_2_release_strip.xe71"
> >>>>>-C7X_3_FW =         "ipc_echo_test_c7x_3_release_strip.xe71"
> >>>>>-C7X_4_FW =         "ipc_echo_test_c7x_4_release_strip.xe71"
> >>>>>+MCU_1_0_FW = "ipc_echo_test_mcu1_0_release_strip.xer5f"
> >>>>>+MCU_1_1_FW = "ipc_echo_test_mcu1_1_release_strip.xer5f"
> >>>>>+MCU_2_0_FW = "ipc_echo_test_mcu2_0_release_strip.xer5f"
> >>>>>+MCU_2_1_FW = "ipc_echo_test_mcu2_1_release_strip.xer5f"
> >>>>>+MCU_3_0_FW = "ipc_echo_test_mcu3_0_release_strip.xer5f"
> >>>>>+MCU_3_1_FW = "ipc_echo_test_mcu3_1_release_strip.xer5f"
> >>>>>+MCU_4_0_FW = "ipc_echo_test_mcu4_0_release_strip.xer5f"
> >>>>>+MCU_4_1_FW = "ipc_echo_test_mcu4_1_release_strip.xer5f"
> >>>>>+C66_1_FW   = "ipc_echo_test_c66xdsp_1_release_strip.xe66"
> >>>>>+C66_2_FW   = "ipc_echo_test_c66xdsp_2_release_strip.xe66"
> >>>>>+C7X_1_FW   = "ipc_echo_test_c7x_1_release_strip.xe71"
> >>>>>+C7X_2_FW   = "ipc_echo_test_c7x_2_release_strip.xe71"
> >>>>>+C7X_3_FW   = "ipc_echo_test_c7x_3_release_strip.xe71"
> >>>>>+C7X_4_FW   = "ipc_echo_test_c7x_4_release_strip.xe71"
> >>>>>  IPC_FW_LIST = ""
> >>>>>  IPC_FW_LIST:am65xx =  "${MCU_1_0_FW} ${MCU_1_1_FW}"


  reply	other threads:[~2025-07-01 16:22 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-27 20:24 [meta-ti][scarthgap/master][PATCH 1/3] meta-ti-bsp: Split out ti-edgeai-fw from ti-rtos-echo-test-fw Andrew Davis
2025-06-27 20:24 ` [meta-ti][scarthgap/master][PATCH 2/3] ti-linux-fw: Remove default SUMMARY line Andrew Davis
2025-06-27 20:24 ` [meta-ti][scarthgap/master][PATCH 3/3] meta-ti-bsp: Factor out a firmware common options helper Andrew Davis
2025-06-30 10:16 ` [meta-ti][scarthgap/master][PATCH 1/3] meta-ti-bsp: Split out ti-edgeai-fw from ti-rtos-echo-test-fw Chirag Shilwant
2025-07-01  0:28   ` Denys Dmytriyenko
2025-07-01 14:45     ` Andrew Davis
2025-07-01 15:39       ` Ryan Eatmon
2025-07-01 15:58         ` Andrew Davis
2025-07-01 16:22           ` Denys Dmytriyenko [this message]
2025-07-01 16:04         ` Denys Dmytriyenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250701162210.GU18383@denix.org \
    --to=denis@denix.org \
    --cc=afd@ti.com \
    --cc=c-shilwant@ti.com \
    --cc=denys@konsulko.com \
    --cc=meta-ti@lists.yoctoproject.org \
    --cc=reatmon@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.