On 8/25/20 4:44 AM, Kever Yang wrote: > Hi Simon, > > On 2020/8/22 上午10:36, Simon Glass wrote: >> Add an entry for ARM Trusted Firmware's 'BL31' payload, which is the >> device's main firmware. Typically this is U-Boot. >> >> Signed-off-by: Simon Glass <s...@chromium.org> >> --- >> >> tools/binman/README.entries | 10 ++++++++++ >> tools/binman/etype/atf_bl31.py | 20 ++++++++++++++++++++ >> tools/binman/ftest.py | 9 +++++++++ >> tools/binman/test/165_atf_bl31.dts | 16 ++++++++++++++++ >> 4 files changed, 55 insertions(+) >> create mode 100644 tools/binman/etype/atf_bl31.py >> create mode 100644 tools/binman/test/165_atf_bl31.dts >> >> diff --git a/tools/binman/README.entries b/tools/binman/README.entries >> index 97bfae16116..85b8ec9fa73 100644 >> --- a/tools/binman/README.entries >> +++ b/tools/binman/README.entries >> @@ -11,6 +11,16 @@ features to produce new behaviours. >> +Entry: atf-bl31: Entry containing an ARM Trusted Firmware (ATF) >> BL31 blob >> +------------------------------------------------------------------------- >> >> + >> +Properties / Entry arguments: >> + - atf-bl31-path: Filename of file to read into entry >> + >> +This entry holds the run-time firmware started by ATF. >> + >> + >> + >> Entry: blob: Entry containing an arbitrary binary blob >> ------------------------------------------------------ >> diff --git a/tools/binman/etype/atf_bl31.py >> b/tools/binman/etype/atf_bl31.py >> new file mode 100644 >> index 00000000000..fd7223843b1 >> --- /dev/null >> +++ b/tools/binman/etype/atf_bl31.py >> @@ -0,0 +1,20 @@ >> +# SPDX-License-Identifier: GPL-2.0+ >> +# Copyright (c) 2016 Google, Inc >> +# Written by Simon Glass <s...@chromium.org> >> +# >> +# Entry-type module for Intel Management Engine binary blob >> +# >> + >> +from binman.etype.blob_named_by_arg import Entry_blob_named_by_arg >> + >> +class Entry_atf_bl31(Entry_blob_named_by_arg): >> + """Entry containing an ARM Trusted Firmware (ATF) BL31 blob >> + >> + Properties / Entry arguments: >> + - atf-bl31-path: Filename of file to read into entry >> + >> + This entry holds the run-time firmware started by ATF. >> + """ >> + def __init__(self, section, etype, node): >> + super().__init__(section, etype, node, 'atf-bl31') >> + self.external = True >> diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py >> index 8d687162185..30c9c764327 100644 >> --- a/tools/binman/ftest.py >> +++ b/tools/binman/ftest.py >> @@ -75,6 +75,7 @@ REFCODE_DATA = b'refcode' >> FSP_M_DATA = b'fsp_m' >> FSP_S_DATA = b'fsp_s' >> FSP_T_DATA = b'fsp_t' >> +ATF_BL31_DATA = b'bl31' >> # The expected size for the device tree in some tests >> EXTRACT_DTB_SIZE = 0x3c9 >> @@ -168,6 +169,7 @@ class TestFunctional(unittest.TestCase): >> os.path.join(cls._indir, 'files')) >> TestFunctional._MakeInputFile('compress', COMPRESS_DATA) >> + TestFunctional._MakeInputFile('bl31.bin', ATF_BL31_DATA) > > > Should this be 'bl31.elf' from ARM TF project instead of 'bl31.bin'?
The file that I need to include from the TF-A project is: <trusted-firmware-a>/build/sun50i_a64/debug/bl31.bin Best regards Heinrich > > Thanks, > > - Kever > >> # Travis-CI may have an old lz4 >> cls.have_lz4 = True >> @@ -3505,5 +3507,12 @@ class TestFunctional(unittest.TestCase): >> self.assertIn("Missing required properties/entry args: >> cros-ec-rw-path", >> str(e.exception)) >> + def testPackBl31(self): >> + """Test that an image with an ATF BL31 binary can be created""" >> + data = self._DoReadFile('165_atf_bl31.dts') >> + self.assertEqual(ATF_BL31_DATA, data[:len(ATF_BL31_DATA)]) >> + >> +ATF_BL31_DATA >> + >> if __name__ == "__main__": >> unittest.main() >> diff --git a/tools/binman/test/165_atf_bl31.dts >> b/tools/binman/test/165_atf_bl31.dts >> new file mode 100644 >> index 00000000000..2b7547d70f9 >> --- /dev/null >> +++ b/tools/binman/test/165_atf_bl31.dts >> @@ -0,0 +1,16 @@ >> +// SPDX-License-Identifier: GPL-2.0+ >> + >> +/dts-v1/; >> + >> +/ { >> + #address-cells = <1>; >> + #size-cells = <1>; >> + >> + binman { >> + size = <16>; >> + >> + atf-bl31 { >> + filename = "bl31.bin"; >> + }; >> + }; >> +}; > >