[PATCH 4/7] binman: Add support for ATF BL31
Heinrich Schuchardt
xypron.glpk at gmx.de
Tue Aug 25 12:16:06 CEST 2020
On 22.08.20 04: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 <sjg at 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.
No, BL31 is started by U-Boot SPL on the Sunxi platform.
Best regards
Heinrich
> +
> +
> +
> 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 <sjg at 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)
>
> # 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";
> + };
> + };
> +};
>
More information about the U-Boot
mailing list