Message ID | 20250506091015.4049616-2-c-shilwant@ti.com |
---|---|
State | New |
Headers | show |
Series | Add DM_FIRMWARE override for AM62P display cluster | expand |
On Tue, May 06, 2025 at 02:40:15PM +0530, Chirag Shilwant wrote: > * For AM62P display cluster usecase, we need to pick > "dss_display_share.wkup-r5f0_0.release.strip.out" from ti-linux-firmware [0] > Hence, pick the display cluster firmware only when DISPLAY_CLUSTER_ENABLE is set to 1. > > * When DISPLAY_CLUSTER_ENABLE is not set to 1, fallback to pick the "ipc_echo_testb_mcu1_0_release_strip.xer5f" > DM firmware. Should a similar condition be added for am62axx to select between dm_edgeai_mcu1_0_release_strip.out and ipc_echo_testb_mcu1_0_release_strip.xer5f ? > [0]: https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/tree/ti-dm/am62pxx?h=11.00.12 > > Signed-off-by: Chirag Shilwant <c-shilwant@ti.com> > --- > meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb | 1 + > meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb b/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb > index a7d15e30..eaa82a62 100644 > --- a/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb > +++ b/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb > @@ -40,6 +40,7 @@ INSTALL_DM_FW_DIR = "${nonarch_base_libdir}/firmware/${DM_FW_DIR}" > > DM_FIRMWARE = "ipc_echo_testb_mcu1_0_release_strip.xer5f" > DM_FIRMWARE:am62axx = "dm_edgeai_mcu1_0_release_strip.out" > +DM_FIRMWARE:am62pxx = "${@oe.utils.conditional('DISPLAY_CLUSTER_ENABLE', '1', 'dss_display_share.wkup-r5f0_0.release.strip.out', 'ipc_echo_testb_mcu1_0_release_strip.xer5f', d)}" > > DM_FW_LIST = "" > DM_FW_LIST:j721e = "${DM_FIRMWARE}" > diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc > index 57bf7a4e..6b7e2bea 100644 > --- a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc > +++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc > @@ -46,6 +46,7 @@ DEPENDS:append:j784s4 = " ti-hsm-demo-fw" > > DM_FIRMWARE = "ipc_echo_testb_mcu1_0_release_strip.xer5f" > DM_FIRMWARE:am62axx = "dm_edgeai_mcu1_0_release_strip.out" > +DM_FIRMWARE:am62pxx = "${@oe.utils.conditional('DISPLAY_CLUSTER_ENABLE', '1', 'dss_display_share.wkup-r5f0_0.release.strip.out', 'ipc_echo_testb_mcu1_0_release_strip.xer5f', d)}" > > PLAT_SFX = "" > PLAT_SFX:j721e = "j721e" > -- > 2.34.1 >
+ Andrew On 07/05/25 02:45, Denys Dmytriyenko wrote: > On Tue, May 06, 2025 at 02:40:15PM +0530, Chirag Shilwant wrote: >> * For AM62P display cluster usecase, we need to pick >> "dss_display_share.wkup-r5f0_0.release.strip.out" from ti-linux-firmware [0] >> Hence, pick the display cluster firmware only when DISPLAY_CLUSTER_ENABLE is set to 1. >> >> * When DISPLAY_CLUSTER_ENABLE is not set to 1, fallback to pick the "ipc_echo_testb_mcu1_0_release_strip.xer5f" >> DM firmware. > Should a similar condition be added for am62axx to select between dm_edgeai_mcu1_0_release_strip.out > and ipc_echo_testb_mcu1_0_release_strip.xer5f ? Hmm, that's a good point. Apparently for AM62A, the TI SDK story is a bit different. The major delta between the two DM firmwares is the inclusion of TIOVX, VPAC & Vision Apps stack in dm_edgeai_mcu1_0_release_strip.out As all spins of AM62A (i.e. AM62A3, AM62A7, AM62A7-Q1, etc) are sold as a Analytics processor [0], we want customers to always use dm_edgeai_mcu1_0_release_strip.out by default & hence the SDKs (& eventually meta-ti-bsp) to always pick the EdgeAI DM firmware. Now, the answer to why upstream u-boot binman still uses ipc_echo_testb_mcu1_0_release_strip.xer5f as default (OR why does ipc_echo_testb* exist) is nicely explained by Andrew at [1] As highlighted in [1], we eventually want dm_edgeai_mcu1_0_release_strip.out to be our default in future even in upstream as well but until then if we want meta-ti-bsp to support the ipc_echo_testb_mcu1_0_release_strip.xer5f as well then my suggestion would be to have it other way around...something like below, DM_FIRMWARE:am62axx = "${@oe.utils.conditional('USE_IPC_ECHO_TEST_DM', '1', 'ipc_echo_testb_mcu1_0_release_strip.xer5f', 'dm_edgeai_mcu1_0_release_strip.out', d)}" This ensures that the additional local.conf step for setting "USE_IPC_ECHO_TEST_DM" is not needed for default offering but only for users who intend to use the ipc_echo_testb_mcu1_0_release_strip.xer5fDM firmware. For AM62P, both dss_display_share.wkup-r5f0_0.release.strip.out & ipc_echo_testb_mcu1_0_release_strip.xer5f are delivered as a part of standard offering to customers [2] & hence we added the DISPLAY_CLUSTER_ENABLE logic in meta-ti-bsp which helps in supporting both. [0]: https://www.ti.com/microcontrollers-mcus-processors/arm-based-processors/overview.html [1]: https://lore.kernel.org/all/534da8dc-f7bf-4ef3-b94d-3254a38b26a4@ti.com/ [2]: https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-AM62P/11.00.09.04 Chirag > > >> [0]: https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/tree/ti-dm/am62pxx?h=11.00.12 >> >> Signed-off-by: Chirag Shilwant <c-shilwant@ti.com> >> --- >> meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb | 1 + >> meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc | 1 + >> 2 files changed, 2 insertions(+) >> >> diff --git a/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb b/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb >> index a7d15e30..eaa82a62 100644 >> --- a/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb >> +++ b/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb >> @@ -40,6 +40,7 @@ INSTALL_DM_FW_DIR = "${nonarch_base_libdir}/firmware/${DM_FW_DIR}" >> >> DM_FIRMWARE = "ipc_echo_testb_mcu1_0_release_strip.xer5f" >> DM_FIRMWARE:am62axx = "dm_edgeai_mcu1_0_release_strip.out" >> +DM_FIRMWARE:am62pxx = "${@oe.utils.conditional('DISPLAY_CLUSTER_ENABLE', '1', 'dss_display_share.wkup-r5f0_0.release.strip.out', 'ipc_echo_testb_mcu1_0_release_strip.xer5f', d)}" >> >> DM_FW_LIST = "" >> DM_FW_LIST:j721e = "${DM_FIRMWARE}" >> diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc >> index 57bf7a4e..6b7e2bea 100644 >> --- a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc >> +++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc >> @@ -46,6 +46,7 @@ DEPENDS:append:j784s4 = " ti-hsm-demo-fw" >> >> DM_FIRMWARE = "ipc_echo_testb_mcu1_0_release_strip.xer5f" >> DM_FIRMWARE:am62axx = "dm_edgeai_mcu1_0_release_strip.out" >> +DM_FIRMWARE:am62pxx = "${@oe.utils.conditional('DISPLAY_CLUSTER_ENABLE', '1', 'dss_display_share.wkup-r5f0_0.release.strip.out', 'ipc_echo_testb_mcu1_0_release_strip.xer5f', d)}" >> >> PLAT_SFX = "" >> PLAT_SFX:j721e = "j721e" >> -- >> 2.34.1 >>
On 5/7/25 15:18, Chirag Shilwant via lists.yoctoproject.org wrote: > + Andrew > > On 07/05/25 02:45, Denys Dmytriyenko wrote: >> On Tue, May 06, 2025 at 02:40:15PM +0530, Chirag Shilwant wrote: >>> * For AM62P display cluster usecase, we need to pick >>> "dss_display_share.wkup-r5f0_0.release.strip.out" from >>> ti-linux-firmware [0] >>> Hence, pick the display cluster firmware only when >>> DISPLAY_CLUSTER_ENABLE is set to 1. >>> >>> * When DISPLAY_CLUSTER_ENABLE is not set to 1, fallback to pick the >>> "ipc_echo_testb_mcu1_0_release_strip.xer5f" >>> DM firmware. >> Should a similar condition be added for am62axx to select between >> dm_edgeai_mcu1_0_release_strip.out >> and ipc_echo_testb_mcu1_0_release_strip.xer5f ? > > > Hmm, that's a good point. Apparently for AM62A, the TI SDK story is a > bit different. > The major delta between the two DM firmwares is the inclusion of > TIOVX, VPAC & Vision Apps stack > in dm_edgeai_mcu1_0_release_strip.out > > As all spins of AM62A (i.e. AM62A3, AM62A7, AM62A7-Q1, etc) are sold > as a Analytics processor [0], > we want customers to always use dm_edgeai_mcu1_0_release_strip.out by > default & > hence the SDKs (& eventually meta-ti-bsp) to always pick the EdgeAI DM > firmware. I honestly had the impression TI lost interest in AM62Ax and seeing all these patches for better C7x support on the AM62Ax is great to see! We already use a mainline-based U-Boot 2025.04 for our AM62Ax SoM. Therefore, the AM62Ax DM firmware change broke our build and I had to force back the old firmware in our yocto layer. That's also the reason why I sent [1] to change binman upstream. It's not a big deal for me because it was easy to fix in our layer, but I would like to give the feedback that changing such an important firmware might break builds in downstream layers. Please also keep in mind that not everyone is using your latest SDK u-boot/linux tags and might need more time to update. So, adding flags to fallback to older DM firmwares sounds like a good solution until everyone has switched. Best Regards, Daniel > > > Now, the answer to why upstream u-boot binman still uses > ipc_echo_testb_mcu1_0_release_strip.xer5f > as default (OR why does ipc_echo_testb* exist) is nicely explained by > Andrew at [1] > > As highlighted in [1], we eventually want > dm_edgeai_mcu1_0_release_strip.out to be our default in future even > in upstream as well but until then if we want meta-ti-bsp to support > the ipc_echo_testb_mcu1_0_release_strip.xer5f > as well then my suggestion would be to have it other way > around...something like below, > > DM_FIRMWARE:am62axx = "${@oe.utils.conditional('USE_IPC_ECHO_TEST_DM', > '1', 'ipc_echo_testb_mcu1_0_release_strip.xer5f', > 'dm_edgeai_mcu1_0_release_strip.out', d)}" > > This ensures that the additional local.conf step for setting > "USE_IPC_ECHO_TEST_DM" is not needed for default offering > but only for users who intend to use the > ipc_echo_testb_mcu1_0_release_strip.xer5fDM firmware. > > > For AM62P, both dss_display_share.wkup-r5f0_0.release.strip.out & > ipc_echo_testb_mcu1_0_release_strip.xer5f > are delivered as a part of standard offering to customers [2] & hence > we added the DISPLAY_CLUSTER_ENABLE > logic in meta-ti-bsp which helps in supporting both. > > > [0]: > https://www.ti.com/microcontrollers-mcus-processors/arm-based-processors/overview.html > > [1]: > https://lore.kernel.org/all/534da8dc-f7bf-4ef3-b94d-3254a38b26a4@ti.com/ > > [2]: > https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-AM62P/11.00.09.04 > > > > Chirag > > > >> >> >>> [0]: >>> https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/tree/ti-dm/am62pxx?h=11.00.12 >>> >>> Signed-off-by: Chirag Shilwant <c-shilwant@ti.com> >>> --- >>> meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb | 1 + >>> meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc | 1 + >>> 2 files changed, 2 insertions(+) >>> >>> diff --git a/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb >>> b/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb >>> index a7d15e30..eaa82a62 100644 >>> --- a/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb >>> +++ b/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb >>> @@ -40,6 +40,7 @@ INSTALL_DM_FW_DIR = >>> "${nonarch_base_libdir}/firmware/${DM_FW_DIR}" >>> DM_FIRMWARE = "ipc_echo_testb_mcu1_0_release_strip.xer5f" >>> DM_FIRMWARE:am62axx = "dm_edgeai_mcu1_0_release_strip.out" >>> +DM_FIRMWARE:am62pxx = >>> "${@oe.utils.conditional('DISPLAY_CLUSTER_ENABLE', '1', >>> 'dss_display_share.wkup-r5f0_0.release.strip.out', >>> 'ipc_echo_testb_mcu1_0_release_strip.xer5f', d)}" >>> DM_FW_LIST = "" >>> DM_FW_LIST:j721e = "${DM_FIRMWARE}" >>> diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc >>> b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc >>> index 57bf7a4e..6b7e2bea 100644 >>> --- a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc >>> +++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc >>> @@ -46,6 +46,7 @@ DEPENDS:append:j784s4 = " ti-hsm-demo-fw" >>> DM_FIRMWARE = "ipc_echo_testb_mcu1_0_release_strip.xer5f" >>> DM_FIRMWARE:am62axx = "dm_edgeai_mcu1_0_release_strip.out" >>> +DM_FIRMWARE:am62pxx = >>> "${@oe.utils.conditional('DISPLAY_CLUSTER_ENABLE', '1', >>> 'dss_display_share.wkup-r5f0_0.release.strip.out', >>> 'ipc_echo_testb_mcu1_0_release_strip.xer5f', d)}" >>> PLAT_SFX = "" >>> PLAT_SFX:j721e = "j721e" >>> -- >>> 2.34.1 >>> > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#18541): https://lists.yoctoproject.org/g/meta-ti/message/18541 > Mute This Topic: https://lists.yoctoproject.org/mt/112645983/4454627 > Group Owner: meta-ti+owner@lists.yoctoproject.org > Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [d.schultz@phytec.de] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb b/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb index a7d15e30..eaa82a62 100644 --- a/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb +++ b/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb @@ -40,6 +40,7 @@ INSTALL_DM_FW_DIR = "${nonarch_base_libdir}/firmware/${DM_FW_DIR}" DM_FIRMWARE = "ipc_echo_testb_mcu1_0_release_strip.xer5f" DM_FIRMWARE:am62axx = "dm_edgeai_mcu1_0_release_strip.out" +DM_FIRMWARE:am62pxx = "${@oe.utils.conditional('DISPLAY_CLUSTER_ENABLE', '1', 'dss_display_share.wkup-r5f0_0.release.strip.out', 'ipc_echo_testb_mcu1_0_release_strip.xer5f', d)}" DM_FW_LIST = "" DM_FW_LIST:j721e = "${DM_FIRMWARE}" diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc index 57bf7a4e..6b7e2bea 100644 --- a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc +++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc @@ -46,6 +46,7 @@ DEPENDS:append:j784s4 = " ti-hsm-demo-fw" DM_FIRMWARE = "ipc_echo_testb_mcu1_0_release_strip.xer5f" DM_FIRMWARE:am62axx = "dm_edgeai_mcu1_0_release_strip.out" +DM_FIRMWARE:am62pxx = "${@oe.utils.conditional('DISPLAY_CLUSTER_ENABLE', '1', 'dss_display_share.wkup-r5f0_0.release.strip.out', 'ipc_echo_testb_mcu1_0_release_strip.xer5f', d)}" PLAT_SFX = "" PLAT_SFX:j721e = "j721e"
* For AM62P display cluster usecase, we need to pick "dss_display_share.wkup-r5f0_0.release.strip.out" from ti-linux-firmware [0] Hence, pick the display cluster firmware only when DISPLAY_CLUSTER_ENABLE is set to 1. * When DISPLAY_CLUSTER_ENABLE is not set to 1, fallback to pick the "ipc_echo_testb_mcu1_0_release_strip.xer5f" DM firmware. [0]: https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/tree/ti-dm/am62pxx?h=11.00.12 Signed-off-by: Chirag Shilwant <c-shilwant@ti.com> --- meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb | 1 + meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc | 1 + 2 files changed, 2 insertions(+)