Hi Jonas, On Sat, 8 Feb 2025 at 18:47, Jonas Karlman <jo...@kwiboo.se> wrote: > > Hi Simon, > > On 2025-02-05 02:55, Simon Glass wrote: > > The TPL image must be built for each board we need to support. It is the > > only part of the image which is board-specific. > > Is this building for multiple targets required for A, B or recovery?, > the main topic for this series? If not it should be added later in the > series or possible in a follow-up series.
It's really a main topic for this series. See the 'alternatives' part where you swap in the correct TPL for the board you want to run on. VBE is designed to minimise the amount of separate binaries which are built. > > > > > This helps to save space and reduce the size of TPL, so that it can fit > > within the internal 192K IRAM. > > This should probably mention something about RK3399 here, Rockchip SoCs > have different amount of usable SRAM. OK > > Regards, > Jonas > > > > > As with other phases, the TPL devicetree is run through fdtgrep to > > remove unwanted nodes and properties and reduce its size. > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > --- > > > > arch/arm/dts/rockchip-u-boot.dtsi | 42 +++++++++++++++++++++---------- > > 1 file changed, 29 insertions(+), 13 deletions(-) > > > > diff --git a/arch/arm/dts/rockchip-u-boot.dtsi > > b/arch/arm/dts/rockchip-u-boot.dtsi > > index 0611533a310..f6348c532a4 100644 > > --- a/arch/arm/dts/rockchip-u-boot.dtsi > > +++ b/arch/arm/dts/rockchip-u-boot.dtsi > > @@ -254,23 +254,23 @@ > > pad-byte = <0xff>; > > skip-at-start = <0x8000>; > > > > - mkimage { > > - filename = "idbloader.img"; > > - args = "-n", CONFIG_SYS_SOC, "-T", "rksd"; > > - multiple-data-files; > > +#ifdef CONFIG_VPL > > + alternates-fdt { > > + fdt-list-dir = "dts/upstream/src/arm64/rockchip"; > > + filename-pattern = "alt-NAME.bin"; > > + fdt-phase = "tpl"; > > > > -#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL > > - rockchip-tpl { > > - }; > > -#elif defined(CONFIG_TPL) > > - u-boot-tpl { > > - }; > > -#endif > > - u-boot-spl { > > + mkimage { > > + filename = "idbloader.img"; > > + args = "-n", CONFIG_SYS_SOC, "-T", "rksd"; > > + multiple-data-files; > > + > > + u-boot-tpl { > > + symbols-base = <0>; > > + }; > > }; > > }; > > > > -#ifdef CONFIG_VPL > > vpl { > > type = "fit"; > > offset = <(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * > > 0x200 + 0x8000)>; > > @@ -361,6 +361,22 @@ > > # endif /* VBE method */ > > #else /* !VPL */ > > > > + mkimage { > > + filename = "idbloader.img"; > > + args = "-n", CONFIG_SYS_SOC, "-T", "rksd"; > > + multiple-data-files; > > + > > +#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL > > + rockchip-tpl { > > + }; > > +#elif defined(CONFIG_TPL) > > + u-boot-tpl { > > + }; > > +#endif > > + u-boot-spl { > > + }; > > + }; > > + > > #ifdef HAS_FIT > > fit { > > offset = <CONFIG_SPL_PAD_TO>; > Regards, Simon