[PATCH 4/7] binman: Add support for ATF BL31

Kever Yang kever.yang at rock-chips.com
Tue Aug 25 04:44:42 CEST 2020


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 <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.
> +
> +
> +
>   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)


Should this be 'bl31.elf' from ARM TF project instead of 'bl31.bin'?

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";
> +		};
> +	};
> +};




More information about the U-Boot mailing list