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

Heiko Schocher
2021-07-10T12:24:02Z

Hello Tim,

On 09.07.21 16:47, Tim Harvey wrote:
> On Wed, Jul 7, 2021 at 5:58 AM Teresa Remmet <t.remmet@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@phytec.de>
>> Reviewed-by: Fabio Estevam <festevam@gmail.com>
>> Reviewed-by: Heiko Schocher <hs@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@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@1 {
>> - filename = "lpddr4_pmu_train_1d_imem_202006.bin";
>> - size = <0x8000>;
>> - };
>> -
>> - blob_2: blob-ext@2 {
>> - filename = "lpddr4_pmu_train_1d_dmem_202006.bin";
>> - size = <0x4000>;
>> - };
>> -
>> - blob_3: blob-ext@3 {
>> - filename = "lpddr4_pmu_train_2d_imem_202006.bin";
>> - size = <0x8000>;
>> - };
>> -
>> - blob_4: blob-ext@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@phytec.de>
>> */
>>
>> +#include "imx8mp-u-boot.dtsi"
>> +
>> / {
>> wdt-reboot {
>> compatible = "wdt-reboot";
>> @@ -12,43 +14,6 @@
>> };
>> };
>>
>> -&{/soc@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@phytec.de>
>> + */
>> +
>> +/ {
>> + binman: binman {
>> + multiple-images;
>> + };
>> +};
>> +
>> +&{/soc@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@1 {
>> + filename = "lpddr4_pmu_train_1d_imem_202006.bin";
>> + size = <0x8000>;
>> + };
>> +
>> + blob_2: blob-ext@2 {
>> + filename = "lpddr4_pmu_train_1d_dmem_202006.bin";
>> + size = <0x4000>;
>> + };
>> +
>> + blob_3: blob-ext@3 {
>> + filename = "lpddr4_pmu_train_2d_imem_202006.bin";
>> + size = <0x8000>;
>> + };
>> +
>> + blob_4: blob-ext@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@denx.de