diff mbox series

[meta-ti,master/scarthgap,1/1] recipes-bsp: Add DM_FIRMWARE override for am62pxx display cluster

Message ID 20250506091015.4049616-2-c-shilwant@ti.com
State New
Headers show
Series Add DM_FIRMWARE override for AM62P display cluster | expand

Commit Message

Chirag Shilwant May 6, 2025, 9:10 a.m. UTC
* 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(+)

Comments

Denys Dmytriyenko May 6, 2025, 9:15 p.m. UTC | #1
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
>
Chirag Shilwant May 7, 2025, 1:18 p.m. UTC | #2
+ 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
>>
diff mbox series

Patch

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"