diff --git a/meta-ti-bsp/conf/machine/include/am69.inc b/meta-ti-bsp/conf/machine/include/am69.inc
index da8a5a8b..1a19410a 100644
--- a/meta-ti-bsp/conf/machine/include/am69.inc
+++ b/meta-ti-bsp/conf/machine/include/am69.inc
@@ -18,4 +18,4 @@ TFA_BOARD = "j784s4"
 
 OPTEEMACHINE = "k3-j784s4"
 
-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw cnm-wave-fw ti-eth-fw"
+MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw cnm-wave-fw ti-eth-fw-j784s4"
diff --git a/meta-ti-bsp/conf/machine/include/j7200.inc b/meta-ti-bsp/conf/machine/include/j7200.inc
index b60b98e1..3cba71b6 100644
--- a/meta-ti-bsp/conf/machine/include/j7200.inc
+++ b/meta-ti-bsp/conf/machine/include/j7200.inc
@@ -26,4 +26,4 @@ TFA_BOARD = "generic"
 
 OPTEEMACHINE = "k3-j721e"
 
-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "ti-eth-fw"
+MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "ti-eth-fw-j7200"
diff --git a/meta-ti-bsp/conf/machine/include/j721e.inc b/meta-ti-bsp/conf/machine/include/j721e.inc
index b5ba448e..30aa2a69 100644
--- a/meta-ti-bsp/conf/machine/include/j721e.inc
+++ b/meta-ti-bsp/conf/machine/include/j721e.inc
@@ -40,4 +40,4 @@ TI_VXE_VXD_DRIVER = "ti-vxe-vxd-driver"
 TI_VXE_VXD_DRIVER:bsp-ti-6_6 = ""
 TI_VXE_VXD_DRIVER:bsp-ti-6_1 = ""
 
-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw vxd-dec-fw ti-eth-fw ${TI_VXE_VXD_DRIVER}"
+MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw vxd-dec-fw ti-eth-fw-j721e ${TI_VXE_VXD_DRIVER}"
diff --git a/meta-ti-bsp/conf/machine/include/j784s4.inc b/meta-ti-bsp/conf/machine/include/j784s4.inc
index fd3990a6..33224ee3 100644
--- a/meta-ti-bsp/conf/machine/include/j784s4.inc
+++ b/meta-ti-bsp/conf/machine/include/j784s4.inc
@@ -21,4 +21,4 @@ TFA_BOARD = "j784s4"
 
 OPTEEMACHINE = "k3-j784s4"
 
-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw cnm-wave-fw ti-eth-fw"
+MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "cadence-mhdp-fw cnm-wave-fw ti-eth-fw-j784s4"
diff --git a/meta-ti-bsp/recipes-bsp/ti-eth-fw/ti-eth-fw.bb b/meta-ti-bsp/recipes-bsp/ti-eth-fw/ti-eth-fw.bb
index 8037ac6c..04e43609 100644
--- a/meta-ti-bsp/recipes-bsp/ti-eth-fw/ti-eth-fw.bb
+++ b/meta-ti-bsp/recipes-bsp/ti-eth-fw/ti-eth-fw.bb
@@ -5,8 +5,6 @@ LIC_FILES_CHKSUM = "file://${THISDIR}/../../licenses/TI-TFL;md5=a1b59cb7ba626b9d
 
 COMPATIBLE_MACHINE = "j721e|j7200|j784s4"
 
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
 inherit update-alternatives
 
 require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
@@ -17,50 +15,60 @@ PR = "${INC_PR}.0"
 # Secure Build
 inherit ti-secdev
 
-PLAT_SFX = ""
-PLAT_SFX:j721e = "j721e"
-PLAT_SFX:j7200 = "j7200"
-PLAT_SFX:j784s4 = "j784s4"
-
-ETH_FW_DIR = "ti-eth/${PLAT_SFX}"
-
-INSTALL_ETH_FW_DIR = "${nonarch_base_libdir}/firmware/${ETH_FW_DIR}"
+PACKAGES += " \
+    ${PN}-j721e \
+    ${PN}-j7200 \
+    ${PN}-j784s4 \
+"
+# Disable arch checking as firmware is likely to be a different arch from the Yocto build
+INSANE_SKIP:${PN}-j721e += "arch"
+INSANE_SKIP:${PN}-j7200 += "arch"
+INSANE_SKIP:${PN}-j784s4 += "arch"
+
+RDEPENDS:${PN} += " \
+    ${PN}-j721e \
+    ${PN}-j7200 \
+    ${PN}-j784s4 \
+"
+
+PLATS = "\
+    j721e \
+    j7200 \
+    j784s4 \
+"
 
 ETH_FW = "app_remoteswitchcfg_server_strip.xer5f"
 
-ETH_FW_LIST = ""
-ETH_FW_LIST:j721e =   "${ETH_FW}"
-ETH_FW_LIST:j7200 =   "${ETH_FW}"
-ETH_FW_LIST:j784s4 =  "${ETH_FW}"
-
 do_install() {
-    # ETH firmware
-    for FW_NAME in ${ETH_FW_LIST}
+    for PLAT in ${PLATS}
     do
-        ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${S}/${ETH_FW_DIR}/${FW_NAME} ${S}/${ETH_FW_DIR}/${FW_NAME}.signed
-    done
+        # Sign ETH firmware
+        ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${S}/ti-eth/${PLAT}/${ETH_FW} ${S}/ti-eth/${PLAT}/${ETH_FW}.signed
 
-    # ETH firmware
-    install -d ${D}${INSTALL_ETH_FW_DIR}
-    for FW_NAME in ${ETH_FW_LIST}
-    do
-        install -m 0644 ${S}/${ETH_FW_DIR}/${FW_NAME}        ${D}${INSTALL_ETH_FW_DIR}
-        install -m 0644 ${S}/${ETH_FW_DIR}/${FW_NAME}.signed ${D}${INSTALL_ETH_FW_DIR}
+        # Install ETH firmware
+        install -d ${D}${nonarch_base_libdir}/firmware/ti-eth/${PLAT}
+        install -m 0644 ${S}/ti-eth/${PLAT}/${ETH_FW}        ${D}${nonarch_base_libdir}/firmware/ti-eth/${PLAT}
+        install -m 0644 ${S}/ti-eth/${PLAT}/${ETH_FW}.signed ${D}${nonarch_base_libdir}/firmware/ti-eth/${PLAT}
     done
 }
 
+FILES:${PN} = ""
+FILES:${PN}-j721e = "${nonarch_base_libdir}/firmware/ti-eth/j721e"
+FILES:${PN}-j7200 = "${nonarch_base_libdir}/firmware/ti-eth/j7200"
+FILES:${PN}-j784s4 = "${nonarch_base_libdir}/firmware/ti-eth/j784s4"
+
 # Set up names for the firmwares
-ALTERNATIVE:${PN}:j721e = "\
+ALTERNATIVE:${PN}-j721e = "\
                     j7-main-r5f0_0-fw \
                     j7-main-r5f0_0-fw-sec \
                     "
 
-ALTERNATIVE:${PN}:j7200 = "\
+ALTERNATIVE:${PN}-j7200 = "\
                     j7200-main-r5f0_0-fw \
                     j7200-main-r5f0_0-fw-sec \
                     "
 
-ALTERNATIVE:${PN}:j784s4 = "\
+ALTERNATIVE:${PN}-j784s4 = "\
                     j784s4-main-r5f0_0-fw \
                     j784s4-main-r5f0_0-fw-sec \
                     "
@@ -76,13 +84,13 @@ ALTERNATIVE_LINK_NAME[j784s4-main-r5f0_0-fw]     = "${nonarch_base_libdir}/firmw
 ALTERNATIVE_LINK_NAME[j784s4-main-r5f0_0-fw-sec] = "${nonarch_base_libdir}/firmware/j784s4-main-r5f0_0-fw-sec"
 
 # Create the firmware alternatives
-ALTERNATIVE_TARGET[j7-main-r5f0_0-fw]        = "${INSTALL_ETH_FW_DIR}/${ETH_FW}"
-ALTERNATIVE_TARGET[j7-main-r5f0_0-fw-sec]    = "${INSTALL_ETH_FW_DIR}/${ETH_FW}.signed"
+ALTERNATIVE_TARGET[j7-main-r5f0_0-fw]        = "${nonarch_base_libdir}/firmware/ti-eth/j721e/${ETH_FW}"
+ALTERNATIVE_TARGET[j7-main-r5f0_0-fw-sec]    = "${nonarch_base_libdir}/firmware/ti-eth/j721e/${ETH_FW}.signed"
 
-ALTERNATIVE_TARGET[j7200-main-r5f0_0-fw]     = "${INSTALL_ETH_FW_DIR}/${ETH_FW}"
-ALTERNATIVE_TARGET[j7200-main-r5f0_0-fw-sec] = "${INSTALL_ETH_FW_DIR}/${ETH_FW}.signed"
+ALTERNATIVE_TARGET[j7200-main-r5f0_0-fw]     = "${nonarch_base_libdir}/firmware/ti-eth/j7200/${ETH_FW}"
+ALTERNATIVE_TARGET[j7200-main-r5f0_0-fw-sec] = "${nonarch_base_libdir}/firmware/ti-eth/j7200/${ETH_FW}.signed"
 
-ALTERNATIVE_TARGET[j784s4-main-r5f0_0-fw]     = "${INSTALL_ETH_FW_DIR}/${ETH_FW}"
-ALTERNATIVE_TARGET[j784s4-main-r5f0_0-fw-sec] = "${INSTALL_ETH_FW_DIR}/${ETH_FW}.signed"
+ALTERNATIVE_TARGET[j784s4-main-r5f0_0-fw]     = "${nonarch_base_libdir}/firmware/ti-eth/j784s4/${ETH_FW}"
+ALTERNATIVE_TARGET[j784s4-main-r5f0_0-fw-sec] = "${nonarch_base_libdir}/firmware/ti-eth/j784s4/${ETH_FW}.signed"
 
 ALTERNATIVE_PRIORITY = "5"
