diff mbox series

[master/scarthgap,v2] ti-pka-fw: Add a recipe to package prebuilt PKA firmware

Message ID 20250730180302.7507-1-b-padhi@ti.com
State Superseded
Delegated to: Ryan Eatmon
Headers show
Series [master/scarthgap,v2] ti-pka-fw: Add a recipe to package prebuilt PKA firmware | expand

Commit Message

Beleswar Padhi July 30, 2025, 6:03 p.m. UTC
Add a recipe to install the PKA firmware in root filesystem needed by
sa2_ul driver for PKA operations across all K3 platforms.

Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
---
v2: Changelog:
1. Use MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS to package PKA firmware from
within meta-ti itself.
2. Update LICENCE name and LIC_FILES_CHKSUM to appropriate licence from
ti-linux-firmware.

Link to v1:
https://lore.kernel.org/all/20250730074831.2640806-1-b-padhi@ti.com/

 meta-ti-bsp/conf/machine/include/k3.inc       |  1 +
 .../recipes-bsp/ti-linux-fw/ti-linux-fw.inc   |  1 +
 .../recipes-bsp/ti-pka-fw/ti-pka-fw_git.bb    | 38 +++++++++++++++++++
 3 files changed, 40 insertions(+)
 create mode 100644 meta-ti-bsp/recipes-bsp/ti-pka-fw/ti-pka-fw_git.bb

Comments

Andrew Davis July 30, 2025, 6:11 p.m. UTC | #1
On 7/30/25 1:03 PM, Beleswar Padhi wrote:
> Add a recipe to install the PKA firmware in root filesystem needed by
> sa2_ul driver for PKA operations across all K3 platforms.
> 
> Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
> ---
> v2: Changelog:
> 1. Use MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS to package PKA firmware from
> within meta-ti itself.
> 2. Update LICENCE name and LIC_FILES_CHKSUM to appropriate licence from
> ti-linux-firmware.
> 
> Link to v1:
> https://lore.kernel.org/all/20250730074831.2640806-1-b-padhi@ti.com/
> 
>   meta-ti-bsp/conf/machine/include/k3.inc       |  1 +
>   .../recipes-bsp/ti-linux-fw/ti-linux-fw.inc   |  1 +
>   .../recipes-bsp/ti-pka-fw/ti-pka-fw_git.bb    | 38 +++++++++++++++++++
>   3 files changed, 40 insertions(+)
>   create mode 100644 meta-ti-bsp/recipes-bsp/ti-pka-fw/ti-pka-fw_git.bb
> 
> diff --git a/meta-ti-bsp/conf/machine/include/k3.inc b/meta-ti-bsp/conf/machine/include/k3.inc
> index 7ec6b51e..fdcf193d 100644
> --- a/meta-ti-bsp/conf/machine/include/k3.inc
> +++ b/meta-ti-bsp/conf/machine/include/k3.inc
> @@ -40,6 +40,7 @@ UBI_VOLNAME = "rootfs"
>   
>   # List common SoC features, may need to add touchscreen for specific machines
>   MACHINE_FEATURES = "apm usbgadget usbhost vfat ext2 alsa pci optee-ftpm"
> +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "ti-pka-fw"
>   
>   IMAGE_FSTYPES += "tar.xz wic.xz wic.bmap"
>   
> diff --git a/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc b/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc
> index 863d1a7e..7fe2c592 100644
> --- a/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc
> +++ b/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc
> @@ -18,6 +18,7 @@ TI_DM_FW_VERSION = "11.01.09"
>   TI_SYSFW_VERSION = "11.01.05"
>   TI_HSM_DEMO_FW_VERSION = "11.00.09"
>   TAD5212_FW_VERSION = "1.0.0.0"
> +TI_PKA_FW_VERSION = "2.1.0"
>   
>   TI_LINUX_FW_SRCREV ?= "f59a711599249ecac75fea38b7a15ef9137d650d"
>   SRCREV = "${TI_LINUX_FW_SRCREV}"
> diff --git a/meta-ti-bsp/recipes-bsp/ti-pka-fw/ti-pka-fw_git.bb b/meta-ti-bsp/recipes-bsp/ti-pka-fw/ti-pka-fw_git.bb
> new file mode 100644
> index 00000000..588bbb5e
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-bsp/ti-pka-fw/ti-pka-fw_git.bb
> @@ -0,0 +1,38 @@
> +SUMMARY = "PKA prebuilt binary firmware image"
> +
> +LICENSE = "TI-TFL | INSIDE Secure"
> +LIC_FILES_CHKSUM = "file://LICENCE.pka_fw;md5=dc20391b287874f0dce069cf87917206"
> +
> +COMPATIBLE_MACHINE = "k3"
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"

You don't need this line above, this package is not customized based
on the specific machine, works the same for all.

> +
> +inherit update-alternatives

No need for update-alternatives, this is the only firmware that
can be selected to run on the PKA IP. Drop this line and all
the "ALTERNATIVE*" lines below.

Andrew

> +
> +require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
> +
> +PV = "${TI_PKA_FW_VERSION}"
> +PR = "${INC_PR}.0"
> +
> +PKA_FW_DIR = "ti-pka"
> +
> +INSTALL_PKA_FW_DIR = "${nonarch_base_libdir}/firmware/${PKA_FW_DIR}"
> +
> +PKA_FW_NAME = "eip29t2_2.1.0.bin"
> +
> +do_install() {
> +    # Install Firmware
> +    install -d ${D}${INSTALL_PKA_FW_DIR}
> +    install -m 0644 ${S}/${PKA_FW_DIR}/${PKA_FW_NAME} ${D}${INSTALL_PKA_FW_DIR}
> +}
> +
> +# Set up names for the firmwares
> +ALTERNATIVE:${PN} = "eip29t2_2.1.0.bin"
> +
> +# Set up link names for the firmware
> +ALTERNATIVE_LINK_NAME[eip29t2_2.1.0.bin] = "${nonarch_base_libdir}/firmware/${PKA_FW_NAME}"
> +
> +# Create the firmware alternative
> +ALTERNATIVE_TARGET[eip29t2_2.1.0.bin] = "${INSTALL_PKA_FW_DIR}/${PKA_FW_NAME}"
> +
> +ALTERNATIVE_PRIORITY = "10"
diff mbox series

Patch

diff --git a/meta-ti-bsp/conf/machine/include/k3.inc b/meta-ti-bsp/conf/machine/include/k3.inc
index 7ec6b51e..fdcf193d 100644
--- a/meta-ti-bsp/conf/machine/include/k3.inc
+++ b/meta-ti-bsp/conf/machine/include/k3.inc
@@ -40,6 +40,7 @@  UBI_VOLNAME = "rootfs"
 
 # List common SoC features, may need to add touchscreen for specific machines
 MACHINE_FEATURES = "apm usbgadget usbhost vfat ext2 alsa pci optee-ftpm"
+MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "ti-pka-fw"
 
 IMAGE_FSTYPES += "tar.xz wic.xz wic.bmap"
 
diff --git a/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc b/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc
index 863d1a7e..7fe2c592 100644
--- a/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+++ b/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc
@@ -18,6 +18,7 @@  TI_DM_FW_VERSION = "11.01.09"
 TI_SYSFW_VERSION = "11.01.05"
 TI_HSM_DEMO_FW_VERSION = "11.00.09"
 TAD5212_FW_VERSION = "1.0.0.0"
+TI_PKA_FW_VERSION = "2.1.0"
 
 TI_LINUX_FW_SRCREV ?= "f59a711599249ecac75fea38b7a15ef9137d650d"
 SRCREV = "${TI_LINUX_FW_SRCREV}"
diff --git a/meta-ti-bsp/recipes-bsp/ti-pka-fw/ti-pka-fw_git.bb b/meta-ti-bsp/recipes-bsp/ti-pka-fw/ti-pka-fw_git.bb
new file mode 100644
index 00000000..588bbb5e
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/ti-pka-fw/ti-pka-fw_git.bb
@@ -0,0 +1,38 @@ 
+SUMMARY = "PKA prebuilt binary firmware image"
+
+LICENSE = "TI-TFL | INSIDE Secure"
+LIC_FILES_CHKSUM = "file://LICENCE.pka_fw;md5=dc20391b287874f0dce069cf87917206"
+
+COMPATIBLE_MACHINE = "k3"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit update-alternatives
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+PV = "${TI_PKA_FW_VERSION}"
+PR = "${INC_PR}.0"
+
+PKA_FW_DIR = "ti-pka"
+
+INSTALL_PKA_FW_DIR = "${nonarch_base_libdir}/firmware/${PKA_FW_DIR}"
+
+PKA_FW_NAME = "eip29t2_2.1.0.bin"
+
+do_install() {
+    # Install Firmware
+    install -d ${D}${INSTALL_PKA_FW_DIR}
+    install -m 0644 ${S}/${PKA_FW_DIR}/${PKA_FW_NAME} ${D}${INSTALL_PKA_FW_DIR}
+}
+
+# Set up names for the firmwares
+ALTERNATIVE:${PN} = "eip29t2_2.1.0.bin"
+
+# Set up link names for the firmware
+ALTERNATIVE_LINK_NAME[eip29t2_2.1.0.bin] = "${nonarch_base_libdir}/firmware/${PKA_FW_NAME}"
+
+# Create the firmware alternative
+ALTERNATIVE_TARGET[eip29t2_2.1.0.bin] = "${INSTALL_PKA_FW_DIR}/${PKA_FW_NAME}"
+
+ALTERNATIVE_PRIORITY = "10"