[PATCH v3 2/9] arm: dts: imx8mp: Add common u-boot dtsi

Heiko Schocher hs at denx.de
Sat Jul 10 14:23:51 CEST 2021


Hello Tim,

On 09.07.21 16:47, Tim Harvey wrote:
> On Wed, Jul 7, 2021 at 5:58 AM Teresa Remmet <t.remmet at phytec.de> wrote:
>>
>> Factor out the common node settings for dm-spl and dm-pre-reloc
>> and move them to imx8mp-u-boot.dtsi
>>
>> Signed-off-by: Teresa Remmet <t.remmet at phytec.de>
>> Reviewed-by: Fabio Estevam <festevam at gmail.com>
>> Reviewed-by: Heiko Schocher <hs at denx.de>
>> ---
>> Changes in v3:
>> - Moved binman nodes to common imx8mp-u-boot.dtsi
>> Changes in v2:
>> - none
>>
>>  arch/arm/dts/imx8mp-evk-u-boot.dtsi           | 143 +----------------
>>  .../imx8mp-phyboard-pollux-rdk-u-boot.dtsi    |  39 +----
>>  arch/arm/dts/imx8mp-u-boot.dtsi               | 149 ++++++++++++++++++
>>  3 files changed, 153 insertions(+), 178 deletions(-)
>>  create mode 100644 arch/arm/dts/imx8mp-u-boot.dtsi
>>
>> diff --git a/arch/arm/dts/imx8mp-evk-u-boot.dtsi b/arch/arm/dts/imx8mp-evk-u-boot.dtsi
>> index 4162f41cffb6..2abcf1f03d4f 100644
>> --- a/arch/arm/dts/imx8mp-evk-u-boot.dtsi
>> +++ b/arch/arm/dts/imx8mp-evk-u-boot.dtsi
>> @@ -3,11 +3,9 @@
>>   * Copyright 2019 NXP
>>   */
>>
>> -/ {
>> -       binman: binman {
>> -               multiple-images;
>> -       };
>> +#include "imx8mp-u-boot.dtsi"
>>
>> +/ {
>>         wdt-reboot {
>>                 compatible = "wdt-reboot";
>>                 wdt = <&wdog1>;
>> @@ -21,43 +19,6 @@
>>         };
>>  };
>>
>> -&{/soc at 0} {
>> -       u-boot,dm-pre-reloc;
>> -       u-boot,dm-spl;
>> -};
>> -
>> -&clk {
>> -       u-boot,dm-spl;
>> -       u-boot,dm-pre-reloc;
>> -};
>> -
>> -&osc_32k {
>> -       u-boot,dm-spl;
>> -       u-boot,dm-pre-reloc;
>> -};
>> -
>> -&osc_24m {
>> -       u-boot,dm-spl;
>> -       u-boot,dm-pre-reloc;
>> -};
>> -
>> -&aips1 {
>> -       u-boot,dm-spl;
>> -       u-boot,dm-pre-reloc;
>> -};
>> -
>> -&aips2 {
>> -       u-boot,dm-spl;
>> -};
>> -
>> -&aips3 {
>> -       u-boot,dm-spl;
>> -};
>> -
>> -&iomuxc {
>> -       u-boot,dm-spl;
>> -};
>> -
>>  &reg_usdhc2_vmmc {
>>         u-boot,off-on-delay-us = <20000>;
>>  };
>> @@ -156,104 +117,4 @@
>>         phy-reset-post-delay = <100>;
>>  };
>>
>> -&binman {
>> -        u-boot-spl-ddr {
>> -               filename = "u-boot-spl-ddr.bin";
>> -               pad-byte = <0xff>;
>> -               align-size = <4>;
>> -               align = <4>;
>>
>> -               u-boot-spl {
>> -                       align-end = <4>;
>> -               };
>> -
>> -               blob_1: blob-ext at 1 {
>> -                       filename = "lpddr4_pmu_train_1d_imem_202006.bin";
>> -                       size = <0x8000>;
>> -               };
>> -
>> -               blob_2: blob-ext at 2 {
>> -                       filename = "lpddr4_pmu_train_1d_dmem_202006.bin";
>> -                       size = <0x4000>;
>> -               };
>> -
>> -               blob_3: blob-ext at 3 {
>> -                       filename = "lpddr4_pmu_train_2d_imem_202006.bin";
>> -                       size = <0x8000>;
>> -               };
>> -
>> -               blob_4: blob-ext at 4 {
>> -                       filename = "lpddr4_pmu_train_2d_dmem_202006.bin";
>> -                       size = <0x4000>;
>> -               };
>> -       };
>> -
>> -
>> -       flash {
>> -               mkimage {
>> -                       args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x920000";
>> -
>> -                       blob {
>> -                               filename = "u-boot-spl-ddr.bin";
>> -                       };
>> -               };
>> -       };
>> -
>> -       itb {
>> -               filename = "u-boot.itb";
>> -
>> -               fit {
>> -                       description = "Configuration to load ATF before U-Boot";
>> -                       #address-cells = <1>;
>> -                       fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
>> -
>> -                       images {
>> -                               uboot {
>> -                                       description = "U-Boot (64-bit)";
>> -                                       type = "standalone";
>> -                                       arch = "arm64";
>> -                                       compression = "none";
>> -                                       load = <CONFIG_SYS_TEXT_BASE>;
>> -
>> -                                       uboot_blob: blob-ext {
>> -                                               filename = "u-boot-nodtb.bin";
>> -                                       };
>> -                               };
>> -
>> -                               atf {
>> -                                       description = "ARM Trusted Firmware";
>> -                                       type = "firmware";
>> -                                       arch = "arm64";
>> -                                       compression = "none";
>> -                                       load = <0x970000>;
>> -                                       entry = <0x970000>;
>> -
>> -                                       atf_blob: blob-ext {
>> -                                               filename = "bl31.bin";
>> -                                       };
>> -                               };
>> -
>> -                               fdt {
>> -                                       description = "NAME";
>> -                                       type = "flat_dt";
>> -                                       compression = "none";
>> -
>> -                                       uboot_fdt_blob: blob-ext {
>> -                                               filename = "u-boot.dtb";
>> -                                       };
>> -                               };
>> -                       };
>> -
>> -                       configurations {
>> -                               default = "conf";
>> -
>> -                               conf {
>> -                                       description = "NAME";
>> -                                       firmware = "uboot";
>> -                                       loadables = "atf";
>> -                                       fdt = "fdt";
>> -                               };
>> -                       };
>> -               };
>> -       };
>> -};
>> diff --git a/arch/arm/dts/imx8mp-phyboard-pollux-rdk-u-boot.dtsi b/arch/arm/dts/imx8mp-phyboard-pollux-rdk-u-boot.dtsi
>> index 20e7f63ff91f..6c1528934a98 100644
>> --- a/arch/arm/dts/imx8mp-phyboard-pollux-rdk-u-boot.dtsi
>> +++ b/arch/arm/dts/imx8mp-phyboard-pollux-rdk-u-boot.dtsi
>> @@ -4,6 +4,8 @@
>>   * Author: Teresa Remmet <t.remmet at phytec.de>
>>   */
>>
>> +#include "imx8mp-u-boot.dtsi"
>> +
>>  / {
>>         wdt-reboot {
>>                 compatible = "wdt-reboot";
>> @@ -12,43 +14,6 @@
>>         };
>>  };
>>
>> -&{/soc at 0} {
>> -       u-boot,dm-pre-reloc;
>> -       u-boot,dm-spl;
>> -};
>> -
>> -&clk {
>> -       u-boot,dm-spl;
>> -       u-boot,dm-pre-reloc;
>> -};
>> -
>> -&osc_32k {
>> -       u-boot,dm-spl;
>> -       u-boot,dm-pre-reloc;
>> -};
>> -
>> -&osc_24m {
>> -       u-boot,dm-spl;
>> -       u-boot,dm-pre-reloc;
>> -};
>> -
>> -&aips1 {
>> -       u-boot,dm-spl;
>> -       u-boot,dm-pre-reloc;
>> -};
>> -
>> -&aips2 {
>> -       u-boot,dm-spl;
>> -};
>> -
>> -&aips3 {
>> -       u-boot,dm-spl;
>> -};
>> -
>> -&iomuxc {
>> -       u-boot,dm-spl;
>> -};
>> -
>>  &reg_usdhc2_vmmc {
>>         u-boot,dm-spl;
>>  };
>> diff --git a/arch/arm/dts/imx8mp-u-boot.dtsi b/arch/arm/dts/imx8mp-u-boot.dtsi
>> new file mode 100644
>> index 000000000000..d61346da3032
>> --- /dev/null
>> +++ b/arch/arm/dts/imx8mp-u-boot.dtsi
>> @@ -0,0 +1,149 @@
>> +// SPDX-License-Identifier: GPL-2.0-or-later
>> +/*
>> + * Copyright (C) 2021 PHYTEC Messtechnik GmbH
>> + * Author: Teresa Remmet <t.remmet at phytec.de>
>> + */
>> +
>> +/ {
>> +       binman: binman {
>> +               multiple-images;
>> +       };
>> +};
>> +
>> +&{/soc at 0} {
>> +       u-boot,dm-pre-reloc;
>> +       u-boot,dm-spl;
>> +};
>> +
>> +&clk {
>> +       u-boot,dm-spl;
>> +       u-boot,dm-pre-reloc;
>> +};
>> +
>> +&osc_32k {
>> +       u-boot,dm-spl;
>> +       u-boot,dm-pre-reloc;
>> +};
>> +
>> +&osc_24m {
>> +       u-boot,dm-spl;
>> +       u-boot,dm-pre-reloc;
>> +};
>> +
>> +&aips1 {
>> +       u-boot,dm-spl;
>> +       u-boot,dm-pre-reloc;
>> +};
>> +
>> +&aips2 {
>> +       u-boot,dm-spl;
>> +};
>> +
>> +&aips3 {
>> +       u-boot,dm-spl;
>> +};
>> +
>> +&iomuxc {
>> +       u-boot,dm-spl;
>> +};
>> +
>> +&binman {
>> +        u-boot-spl-ddr {
>> +               filename = "u-boot-spl-ddr.bin";
>> +               pad-byte = <0xff>;
>> +               align-size = <4>;
>> +               align = <4>;
>> +
>> +               u-boot-spl {
>> +                       align-end = <4>;
>> +               };
>> +
>> +               blob_1: blob-ext at 1 {
>> +                       filename = "lpddr4_pmu_train_1d_imem_202006.bin";
>> +                       size = <0x8000>;
>> +               };
>> +
>> +               blob_2: blob-ext at 2 {
>> +                       filename = "lpddr4_pmu_train_1d_dmem_202006.bin";
>> +                       size = <0x4000>;
>> +               };
>> +
>> +               blob_3: blob-ext at 3 {
>> +                       filename = "lpddr4_pmu_train_2d_imem_202006.bin";
>> +                       size = <0x8000>;
>> +               };
>> +
>> +               blob_4: blob-ext at 4 {
>> +                       filename = "lpddr4_pmu_train_2d_dmem_202006.bin";
>> +                       size = <0x4000>;
>> +               };
>> +       };
>> +
>> +       flash {
>> +               mkimage {
>> +                       args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x920000";
>> +
>> +                       blob {
>> +                               filename = "u-boot-spl-ddr.bin";
>> +                       };
>> +               };
>> +       };
>> +
>> +       itb {
>> +               filename = "u-boot.itb";
>> +
>> +               fit {
>> +                       description = "Configuration to load ATF before U-Boot";
>> +                       #address-cells = <1>;
>> +                       fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
>> +
>> +                       images {
>> +                               uboot {
>> +                                       description = "U-Boot (64-bit)";
>> +                                       type = "standalone";
>> +                                       arch = "arm64";
>> +                                       compression = "none";
>> +                                       load = <CONFIG_SYS_TEXT_BASE>;
>> +
>> +                                       uboot_blob: blob-ext {
>> +                                               filename = "u-boot-nodtb.bin";
>> +                                       };
>> +                               };
>> +
>> +                               atf {
>> +                                       description = "ARM Trusted Firmware";
>> +                                       type = "firmware";
>> +                                       arch = "arm64";
>> +                                       compression = "none";
>> +                                       load = <0x970000>;
>> +                                       entry = <0x970000>;
>> +
>> +                                       atf_blob: blob-ext {
>> +                                               filename = "bl31.bin";
>> +                                       };
>> +                               };
>> +
>> +                               fdt {
>> +                                       description = "NAME";
>> +                                       type = "flat_dt";
>> +                                       compression = "none";
>> +
>> +                                       uboot_fdt_blob: blob-ext {
>> +                                               filename = "u-boot.dtb";
>> +                                       };
>> +                               };
>> +                       };
>> +
>> +                       configurations {
>> +                               default = "conf";
>> +
>> +                               conf {
>> +                                       description = "NAME";
>> +                                       firmware = "uboot";
>> +                                       loadables = "atf";
>> +                                       fdt = "fdt";
>> +                               };
>> +                       };
>> +               };
>> +       };
>> +};
>> --
>> 2.25.1
>>
> 
> Teresa,
> 
> I've noticed many of the imx8m boards migrating to using binman for
> image packaging.
> 
> Doesn't this change from having a single flash.bin encompasing the SPL
> and U-Boot proper to having split files? I noticed that happened with
> imx8mm_evk for example when it switched to binman.

Yes, but you can easy generate there a single image again.

> What are the benefits to using binman?

Beside the pros from binmal in general, I see the benefit in special
for imx8mp, that you can get all infos you need for signing the image
from within the image. No need to save some log output from U-Boot
build and parse this output ...

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de


More information about the U-Boot mailing list