binman: etype: dm: Add entry type for TI DM

K3 devices introduces the concept of centralized power, resource and
security management to System Firmware. This is to overcome challenges
by the traditional approach that implements system control functions on
each of the processing units.

The software interface for System Firmware is split into TIFS and DM. DM
(Device Manager) is responsible for resource and power management from
secure and non-secure hosts. This additional binary is necessary for
specific platforms' ROM boot images and is to be packaged into tispl.bin

Add an entry for DM. The entry can be used for the packaging of
tispl.bin by binman along with ATF and TEE.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Neha Malcom Francis 2023-12-05 15:12:18 +05:30 committed by Tom Rini
parent 838447aa7b
commit 23d2ef91ef
5 changed files with 57 additions and 0 deletions

View file

@ -1349,6 +1349,7 @@ cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
$(foreach f,$(BINMAN_INDIRS),-I $(f)) \
-a atf-bl31-path=${BL31} \
-a tee-os-path=${TEE} \
-a ti-dm-path=${TI_DM} \
-a opensbi-path=${OPENSBI} \
-a default-dt=$(default_dt) \
-a scp-path=$(SCP) \

View file

@ -1906,6 +1906,20 @@ the included board config binaries. Example::
.. _etype_ti_dm:
Entry: ti-dm: TI Device Manager (DM) blob
-----------------------------------------
Properties / Entry arguments:
- ti-dm-path: Filename of file to read into the entry, typically ti-dm.bin
This entry holds the device manager responsible for resource and power management
in K3 devices. See https://software-dl.ti.com/tisci/esd/latest/ for more information
about TI DM.
.. _etype_ti_secure:
Entry: ti-secure: Entry containing a TI x509 certificate binary

View file

@ -0,0 +1,22 @@
# SPDX-License-Identifier: GPL-2.0+
# Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
# Written by Neha Malcom Francis <n-francis@ti.com>
#
# Entry-type module for TI Device Manager (DM)
#
from binman.etype.blob_named_by_arg import Entry_blob_named_by_arg
class Entry_ti_dm(Entry_blob_named_by_arg):
"""TI Device Manager (DM) blob
Properties / Entry arguments:
- ti-dm-path: Filename of file to read into the entry, typically ti-dm.bin
This entry holds the device manager responsible for resource and power management
in K3 devices. See https://software-dl.ti.com/tisci/esd/latest/ for more information
about TI DM.
"""
def __init__(self, section, etype, node):
super().__init__(section, etype, node, 'ti-dm')
self.external = True

View file

@ -88,6 +88,7 @@ FSP_S_DATA = b'fsp_s'
FSP_T_DATA = b'fsp_t'
ATF_BL31_DATA = b'bl31'
TEE_OS_DATA = b'this is some tee OS data'
TI_DM_DATA = b'tidmtidm'
ATF_BL2U_DATA = b'bl2u'
OPENSBI_DATA = b'opensbi'
SCP_DATA = b'scp'
@ -221,6 +222,7 @@ class TestFunctional(unittest.TestCase):
TestFunctional._MakeInputFile('compress_big', COMPRESS_DATA_BIG)
TestFunctional._MakeInputFile('bl31.bin', ATF_BL31_DATA)
TestFunctional._MakeInputFile('tee-pager.bin', TEE_OS_DATA)
TestFunctional._MakeInputFile('dm.bin', TI_DM_DATA)
TestFunctional._MakeInputFile('bl2u.bin', ATF_BL2U_DATA)
TestFunctional._MakeInputFile('fw_dynamic.bin', OPENSBI_DATA)
TestFunctional._MakeInputFile('scp.bin', SCP_DATA)
@ -5455,6 +5457,11 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
data = self._DoReadFile('222_tee_os.dts')
self.assertEqual(TEE_OS_DATA, data[:len(TEE_OS_DATA)])
def testPackTiDm(self):
"""Test that an image with a TI DM binary can be created"""
data = self._DoReadFile('225_ti_dm.dts')
self.assertEqual(TI_DM_DATA, data[:len(TI_DM_DATA)])
def testFitFdtOper(self):
"""Check handling of a specified FIT operation"""
entry_args = {

View file

@ -0,0 +1,13 @@
// SPDX-License-Identifier: GPL-2.0+
/dts-v1/;
/ {
#address-cells = <1>;
#size-cells = <1>;
binman {
ti-dm {
filename = "dm.bin";
};
};
};