diff mbox series

[meta-ti,master/kirkstone,6/8] ti-rtos-firmware: Use a table instead of a list of copy commands

Message ID 20230207234239.30720-6-afd@ti.com
State Superseded
Delegated to: Ryan Eatmon
Headers show
Series [meta-ti,master/kirkstone,1/8] ti-rtos-firmware: Use ti-k3-secdev if TI_SECURE_DEV_PKG_K3 not defined | expand

Commit Message

Andrew Davis Feb. 7, 2023, 11:42 p.m. UTC
Using a table makes it easier to see what firmware is included with
each machine build. It also helps prevent errors here.

Since the same functions run across machines we now sign all the firmware
without needing to add a new signing function for each new machine.

Another fix is that we install the DM firmware to the deploy directory
for all machines that use need it. This was added for J7x machines
but missed for AM62x.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 .../ti-rtos-bin/ti-rtos-firmware.bb           | 276 +++++-------------
 1 file changed, 67 insertions(+), 209 deletions(-)

Comments

Ryan Eatmon Feb. 9, 2023, 1:29 p.m. UTC | #1
On 2/7/2023 17:42, Andrew Davis wrote:
> Using a table makes it easier to see what firmware is included with
> each machine build. It also helps prevent errors here.

I like the table.  It makes it clearer to see what is available on which 
platform.  Nice change.

> Since the same functions run across machines we now sign all the firmware
> without needing to add a new signing function for each new machine.
> 
> Another fix is that we install the DM firmware to the deploy directory
> for all machines that use need it. This was added for J7x machines
> but missed for AM62x.
> 
> Signed-off-by: Andrew Davis <afd@ti.com>
> ---

*snip*

> +
> +ETH_FW_LIST = ""
> +ETH_FW_LIST:am65xx = ""
> +ETH_FW_LIST:j721e =  "${ETH_FW}"
> +ETH_FW_LIST:j7200 =  "${ETH_FW}"
> +ETH_FW_LIST:j721s2 = "${ETH_FW}"

j721s2 does not have the ETH_FW, so this line is incorrect.  The lines 
that likely made you think it did are commented out in the current 
version of the file.


> +ETH_FW_LIST:am64xx = ""
> +ETH_FW_LIST:am62xx = ""
> +ETH_FW_LIST:j784s4 = "${ETH_FW}"
>
Andrew Davis Feb. 9, 2023, 6:11 p.m. UTC | #2
On 2/9/23 7:29 AM, Ryan Eatmon wrote:
> 
> 
> On 2/7/2023 17:42, Andrew Davis wrote:
>> Using a table makes it easier to see what firmware is included with
>> each machine build. It also helps prevent errors here.
> 
> I like the table.  It makes it clearer to see what is available on which platform.  Nice change.
> 
>> Since the same functions run across machines we now sign all the firmware
>> without needing to add a new signing function for each new machine.
>>
>> Another fix is that we install the DM firmware to the deploy directory
>> for all machines that use need it. This was added for J7x machines
>> but missed for AM62x.
>>
>> Signed-off-by: Andrew Davis <afd@ti.com>
>> ---
> 
> *snip*
> 
>> +
>> +ETH_FW_LIST = ""
>> +ETH_FW_LIST:am65xx = ""
>> +ETH_FW_LIST:j721e =  "${ETH_FW}"
>> +ETH_FW_LIST:j7200 =  "${ETH_FW}"
>> +ETH_FW_LIST:j721s2 = "${ETH_FW}"
> 
> j721s2 does not have the ETH_FW, so this line is incorrect.  The lines that likely made you think it did are commented out in the current version of the file.
> 

Ah, looks like the commented out line did get me here.

Better question is why my build testing didn't catch that,
have to check on that..

Anyway, could you fix this locally? Or I can send a delta
fix patch, or just respin the whole series, up to you.

Andrew

> 
>> +ETH_FW_LIST:am64xx = ""
>> +ETH_FW_LIST:am62xx = ""
>> +ETH_FW_LIST:j784s4 = "${ETH_FW}"
> 
>
Ryan Eatmon Feb. 10, 2023, 1:46 a.m. UTC | #3
On 2/9/2023 12:11, Andrew Davis wrote:
> On 2/9/23 7:29 AM, Ryan Eatmon wrote:
>>
>>
>> On 2/7/2023 17:42, Andrew Davis wrote:
>>> Using a table makes it easier to see what firmware is included with
>>> each machine build. It also helps prevent errors here.
>>
>> I like the table.  It makes it clearer to see what is available on 
>> which platform.  Nice change.
>>
>>> Since the same functions run across machines we now sign all the 
>>> firmware
>>> without needing to add a new signing function for each new machine.
>>>
>>> Another fix is that we install the DM firmware to the deploy directory
>>> for all machines that use need it. This was added for J7x machines
>>> but missed for AM62x.
>>>
>>> Signed-off-by: Andrew Davis <afd@ti.com>
>>> ---
>>
>> *snip*
>>
>>> +
>>> +ETH_FW_LIST = ""
>>> +ETH_FW_LIST:am65xx = ""
>>> +ETH_FW_LIST:j721e =  "${ETH_FW}"
>>> +ETH_FW_LIST:j7200 =  "${ETH_FW}"
>>> +ETH_FW_LIST:j721s2 = "${ETH_FW}"
>>
>> j721s2 does not have the ETH_FW, so this line is incorrect.  The lines 
>> that likely made you think it did are commented out in the current 
>> version of the file.
>>
> 
> Ah, looks like the commented out line did get me here.
> 
> Better question is why my build testing didn't catch that,
> have to check on that..
> 
> Anyway, could you fix this locally? Or I can send a delta
> fix patch, or just respin the whole series, up to you.

I can fix it locally.  If this is the only issue, then I have no 
problems fixing it.

> Andrew
> 
>>
>>> +ETH_FW_LIST:am64xx = ""
>>> +ETH_FW_LIST:am62xx = ""
>>> +ETH_FW_LIST:j784s4 = "${ETH_FW}"
>>
>>
Denys Dmytriyenko Feb. 10, 2023, 9:23 p.m. UTC | #4
On Thu, Feb 09, 2023 at 07:29:46AM -0600, Ryan Eatmon via lists.yoctoproject.org wrote:
> 
> 
> On 2/7/2023 17:42, Andrew Davis wrote:
> >Using a table makes it easier to see what firmware is included with
> >each machine build. It also helps prevent errors here.
> 
> I like the table.  It makes it clearer to see what is available on
> which platform.  Nice change.

Yeah, nicely done!
With the change I just realized that J721e is the only K3 SoC/platform with 
C66 (and C7 at the same time) cores, interesting... :)


> >Since the same functions run across machines we now sign all the firmware
> >without needing to add a new signing function for each new machine.
> >
> >Another fix is that we install the DM firmware to the deploy directory
> >for all machines that use need it. This was added for J7x machines
> >but missed for AM62x.
diff mbox series

Patch

diff --git a/meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb b/meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb
index 251b7310..5cb673f0 100644
--- a/meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb
+++ b/meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb
@@ -66,78 +66,32 @@  C7X_4_FW   = "ipc_echo_test_c7x_4_release_strip.xe71"
 
 ETH_FW = "app_remoteswitchcfg_server_strip.xer5f"
 
-# J721e HS support
-do_install:prepend:j721e-hs-evm() {
-        ( cd ${RTOS_DM_FW_DIR}; \
-                mv ${DM_FIRMWARE} ${DM_FIRMWARE}.unsigned; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${DM_FIRMWARE}.unsigned ${DM_FIRMWARE}; \
-        )
-        (
-          cd ${RTOS_IPC_FW_DIR}; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${MCU_2_0_FW} \
-                        ${MCU_2_0_FW}.signed; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${MCU_2_1_FW} \
-                        ${MCU_2_1_FW}.signed; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${MCU_3_0_FW} \
-                        ${MCU_3_0_FW}.signed; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${MCU_3_1_FW} \
-                        ${MCU_3_1_FW}.signed; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${C66_1_FW} \
-                        ${C66_1_FW}.signed; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${C66_2_FW} \
-                        ${C66_2_FW}.signed; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${C7X_1_FW} \
-                        ${C7X_1_FW}.signed; \
-        )
-        (
-          cd ${RTOS_ETH_FW_DIR}; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${ETH_FW} \
-                        ${ETH_FW}.signed;
-        )
-}
-
-# J7200 HS support
-do_install:prepend:j7200-hs-evm() {
-        ( cd ${RTOS_DM_FW_DIR}; \
-                mv ${DM_FIRMWARE} ${DM_FIRMWARE}.unsigned; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${DM_FIRMWARE}.unsigned ${DM_FIRMWARE}; \
-        )
-        (
-          cd ${RTOS_IPC_FW_DIR}; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${MCU_2_0_FW} \
-                        ${MCU_2_0_FW}.signed; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${MCU_2_1_FW} \
-                        ${MCU_2_1_FW}.signed; \
-        )
-        (
-          cd ${RTOS_ETH_FW_DIR}; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${ETH_FW} \
-                        ${ETH_FW}.signed;
-        )
-}
-
-# J721s2 HS support
-do_install:prepend:j721s2-hs-evm() {
-        ( cd ${RTOS_DM_FW_DIR}; \
-                mv ${DM_FIRMWARE} ${DM_FIRMWARE}.unsigned; \
-                ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${DM_FIRMWARE}.unsigned ${DM_FIRMWARE}; \
-        )
-        (
-          cd ${RTOS_IPC_FW_DIR}; \
-            ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${MCU_2_0_FW} \
-                ${MCU_2_0_FW}.signed; \
-            ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${MCU_2_1_FW} \
-                ${MCU_2_1_FW}.signed; \
-            ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${MCU_3_0_FW} \
-                ${MCU_3_0_FW}.signed; \
-            ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${MCU_3_1_FW} \
-                ${MCU_3_1_FW}.signed; \
-            ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${C7X_1_FW} \
-                ${C7X_1_FW}.signed; \
-            ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${C7X_2_FW} \
-                ${C7X_2_FW}.signed; \
-        )
-}
+DM_FW_LIST = ""
+DM_FW_LIST:am65xx = ""
+DM_FW_LIST:j721e =  "${DM_FIRMWARE}"
+DM_FW_LIST:j7200 =  "${DM_FIRMWARE}"
+DM_FW_LIST:j721s2 = "${DM_FIRMWARE}"
+DM_FW_LIST:am64xx = ""
+DM_FW_LIST:am62xx = "${DM_FIRMWARE}"
+DM_FW_LIST:j784s4 = "${DM_FIRMWARE}"
+
+IPC_FW_LIST = ""
+IPC_FW_LIST:am65xx = "${MCU_1_0_FW} ${MCU_1_1_FW}"
+IPC_FW_LIST:j721e =  "                            ${MCU_2_0_FW} ${MCU_2_1_FW} ${MCU_3_0_FW} ${MCU_3_1_FW} ${C66_1_FW} ${C66_2_FW} ${C7X_1_FW}"
+IPC_FW_LIST:j7200 =  "              ${MCU_1_1_FW} ${MCU_2_0_FW} ${MCU_2_1_FW}"
+IPC_FW_LIST:j721s2 = "                            ${MCU_2_0_FW} ${MCU_2_1_FW} ${MCU_2_0_FW} ${MCU_3_1_FW}                         ${C7X_1_FW} ${C7X_2_FW}"
+IPC_FW_LIST:am64xx = "${MCU_1_0_FW} ${MCU_1_1_FW} ${MCU_2_0_FW} ${MCU_2_1_FW} ${MCU_3_0_FW}"
+IPC_FW_LIST:am62xx = "                            ${MCU_2_0_FW}"
+IPC_FW_LIST:j784s4 = "              ${MCU_1_1_FW} ${MCU_2_0_FW} ${MCU_2_1_FW} ${MCU_3_0_FW} ${MCU_3_1_FW}                         ${C7X_1_FW} ${C7X_2_FW} ${C7X_3_FW} ${C7X_4_FW}"
+
+ETH_FW_LIST = ""
+ETH_FW_LIST:am65xx = ""
+ETH_FW_LIST:j721e =  "${ETH_FW}"
+ETH_FW_LIST:j7200 =  "${ETH_FW}"
+ETH_FW_LIST:j721s2 = "${ETH_FW}"
+ETH_FW_LIST:am64xx = ""
+ETH_FW_LIST:am62xx = ""
+ETH_FW_LIST:j784s4 = "${ETH_FW}"
 
 # Update the am64xx ipc binaries to be consistent with other platforms
 do_install:prepend:am64xx() {
@@ -157,158 +111,62 @@  do_install:prepend:am62xx() {
         )
 }
 
-#Install all R5 & DSP ipc echo test binaries in lib/firmware/pdk-ipc, with softlinks up a level
-do_install() {
-	:
-}
-
-do_install:j721e() {
-    install -d ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_1_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C66_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C66_2_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_1_FW} ${LEGACY_IPC_FW_DIR}
+# Sign the firmware
+do_install:prepend() {
     # DM Firmware
-    install -m 0644 ${RTOS_DM_FW_DIR}/${DM_FIRMWARE} ${LEGACY_DM_FW_DIR}
-    # ETH firmware
-    install -d ${LEGACY_ETH_FW_DIR}
-    install -m 0644 ${RTOS_ETH_FW_DIR}/${ETH_FW} ${LEGACY_ETH_FW_DIR}
-}
+    for FW_NAME in ${DM_FW_LIST}
+    do
+      ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${RTOS_DM_FW_DIR}/${FW_NAME} ${RTOS_DM_FW_DIR}/${FW_NAME}.signed
+    done
 
-do_install:append:j721e-hs-evm() {
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_0_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_1_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_0_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_1_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C66_1_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C66_2_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_1_FW}.signed ${LEGACY_IPC_FW_DIR}
-    # ETH firmware
-    install -m 0644 ${RTOS_ETH_FW_DIR}/${ETH_FW}.signed ${LEGACY_ETH_FW_DIR}
-}
+    # IPC Firmware
+    for FW_NAME in ${IPC_FW_LIST}
+    do
+      ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${RTOS_IPC_FW_DIR}/${FW_NAME} ${RTOS_IPC_FW_DIR}/${FW_NAME}.signed
+    done
 
-do_install:j7200-evm() {
-    install -d ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_1_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_1_FW} ${LEGACY_IPC_FW_DIR}
-    # DM Firmware
-    install -m 0644 ${RTOS_DM_FW_DIR}/${DM_FIRMWARE} ${LEGACY_DM_FW_DIR}
     # ETH firmware
-    install -d ${LEGACY_ETH_FW_DIR}
-    install -m 0644 ${RTOS_ETH_FW_DIR}/${ETH_FW} ${LEGACY_ETH_FW_DIR}
+    for FW_NAME in ${ETH_FW_LIST}
+    do
+        ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${RTOS_ETH_FW_DIR}/${FW_NAME} ${RTOS_ETH_FW_DIR}/${FW_NAME}.signed;
+    done
 }
 
-do_install:j7200-hs-evm() {
-    install -d ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_1_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_1_FW} ${LEGACY_IPC_FW_DIR}
-    # Signed Firmwares
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_0_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_1_FW}.signed ${LEGACY_IPC_FW_DIR}
-    # DM Firmware
-    install -m 0644 ${RTOS_DM_FW_DIR}/${DM_FIRMWARE} ${LEGACY_DM_FW_DIR}
-    # ETH firmware
-    install -d ${LEGACY_ETH_FW_DIR}
-    install -m 0644 ${RTOS_ETH_FW_DIR}/${ETH_FW} ${LEGACY_ETH_FW_DIR}
-    # ETH Signed firmware
-    install -m 0644 ${RTOS_ETH_FW_DIR}/${ETH_FW}.signed ${LEGACY_ETH_FW_DIR}
-}
-
-do_install:j721s2-evm() {
-    install -d ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_1_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_2_FW} ${LEGACY_IPC_FW_DIR}
+#Install all R5 & DSP ipc echo test binaries in lib/firmware/pdk-ipc, with softlinks up a level
+do_install() {
     # DM Firmware
-    install -m 0644 ${RTOS_DM_FW_DIR}/${DM_FIRMWARE} ${LEGACY_DM_FW_DIR}
-    # ETH firmware
-    # install -d ${LEGACY_ETH_FW_DIR}
-    # install -m 0644 ${RTOS_ETH_FW_DIR}/${ETH_FW} ${LEGACY_ETH_FW_DIR}
-}
-
-do_install:j721s2-hs-evm() {
+    install -d ${LEGACY_DM_FW_DIR}
+    for FW_NAME in ${DM_FW_LIST}
+    do
+      install -m 0644 ${RTOS_DM_FW_DIR}/${FW_NAME}        ${LEGACY_DM_FW_DIR}/${FW_NAME}.unsigned
+      install -m 0644 ${RTOS_DM_FW_DIR}/${FW_NAME}.signed ${LEGACY_DM_FW_DIR}/${FW_NAME}
+    done
+
+    # IPC Firmware
     install -d ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_1_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_2_FW} ${LEGACY_IPC_FW_DIR}
-    # Signed firmware
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_0_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_1_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_0_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_1_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_1_FW}.signed ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_2_FW}.signed ${LEGACY_IPC_FW_DIR}
-    # DM Firmware
-    install -m 0644 ${RTOS_DM_FW_DIR}/${DM_FIRMWARE} ${LEGACY_DM_FW_DIR}
-    # ETH firmware
-    # install -d ${LEGACY_ETH_FW_DIR}
-    # install -m 0644 ${RTOS_ETH_FW_DIR}/${ETH_FW} ${LEGACY_ETH_FW_DIR}
-}
+    for FW_NAME in ${IPC_FW_LIST}
+    do
+      install -m 0644 ${RTOS_IPC_FW_DIR}/${FW_NAME}        ${LEGACY_IPC_FW_DIR}
+      install -m 0644 ${RTOS_IPC_FW_DIR}/${FW_NAME}.signed ${LEGACY_IPC_FW_DIR}
+    done
 
-do_install:j784s4-evm() {
-    install -d ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_1_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_4_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_4_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_2_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_3_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${C7X_4_FW} ${LEGACY_IPC_FW_DIR}
-    # DM Firmware
-    install -m 0644 ${RTOS_DM_FW_DIR}/${DM_FIRMWARE} ${LEGACY_DM_FW_DIR}
     # ETH firmware
     install -d ${LEGACY_ETH_FW_DIR}
-    install -m 0644 ${RTOS_ETH_FW_DIR}/${ETH_FW} ${LEGACY_ETH_FW_DIR}
+    for FW_NAME in ${ETH_FW_LIST}
+    do
+      install -m 0644 ${RTOS_ETH_FW_DIR}/${FW_NAME}        ${LEGACY_ETH_FW_DIR}
+      install -m 0644 ${RTOS_ETH_FW_DIR}/${FW_NAME}.signed ${LEGACY_ETH_FW_DIR}
+    done
 }
 
-do_install:am65xx() {
-    install -d ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_1_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_1_1_FW} ${LEGACY_IPC_FW_DIR}
-}
-
-do_install:am64xx() {
-    install -d ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_1_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_1_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_0_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_1_FW} ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_3_0_FW} ${LEGACY_IPC_FW_DIR}
-}
-
-do_install:am62xx() {
-    install -d ${LEGACY_IPC_FW_DIR}
-    install -m 0644 ${RTOS_IPC_FW_DIR}/${MCU_2_0_FW} ${LEGACY_IPC_FW_DIR}
-    # DM Firmware
-    install -m 0644 ${RTOS_DM_FW_DIR}/${DM_FIRMWARE} ${LEGACY_DM_FW_DIR}
-}
-
-
 do_deploy() {
+    # DM Firmware is needed for rebuilding U-Boot
     install -d ${DEPLOYDIR}
-}
-
-do_deploy:am62xx() {
-    install -d ${DEPLOYDIR}
-    install -m 0644 ${RTOS_DM_FW_DIR}/${DM_FIRMWARE} ${DEPLOYDIR}
+    for FW_NAME in ${DM_FW_LIST}
+    do
+      install -m 0644 ${RTOS_DM_FW_DIR}/${FW_NAME}        ${DEPLOYDIR}/${FW_NAME}.unsigned
+      install -m 0644 ${RTOS_DM_FW_DIR}/${FW_NAME}.signed ${DEPLOYDIR}/${FW_NAME}
+    done
 }
 
 # Set up names for the firmwares