Hi Jonas, On Sat, 8 Feb 2025 at 19:11, Jonas Karlman <jo...@kwiboo.se> wrote: > > Hi Simon, > > On 2025-02-05 02:55, Simon Glass wrote: > > This build-target is used to build an image which can run on multiple > > rk3399 boards, using VBE to boot. > > Since this target is intended to be used with VBE on LPDDR4 boards, can > you use a different target name, maybe rk3399-vbe-lpddr4 or similar? > > > > > To use it, the TPL binary for a particular board must be placed into the > > first part of the image. The rest of the image (i.e. VPL, SPL and > > U-Boot) are largely generic and can work on any supported board. > > I like the concept of this and I also think this can be supported using > current "traditional" TPL+SPL and FIT separation with fit,compatible and > FIT_BEST_MATCH, I will run some tests using that :-)
Yes, it should work. > > Also think with some cleanup work we should even be able to build a > generic Rockchip AArch64 U-Boot proper FIT, for now there is parts that > is too SoC dependent. Yes, I hope that all SoCs eventually go this way. > > > > > With VBE, memory-init happens in SPL so that this code is updatable in > > the field. Due to size constraints, the type of memory on the board is > > defined at build-time. So it is not possible to use the same VBE image > > on boards with different SDRAM (DDR3 vs LPDDR4 for example). This may > > become possible with newer boards with more SRAM. > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > --- > > > > arch/arm/dts/rk3399-generic-u-boot.dtsi | 32 ++++++ > > arch/arm/dts/rk3399-generic.dts | 30 ++++++ > > board/rockchip/evb_rk3399/MAINTAINERS | 5 + > > configs/rk3399-generic_defconfig | 133 ++++++++++++++++++++++++ > > 4 files changed, 200 insertions(+) > > create mode 100644 arch/arm/dts/rk3399-generic-u-boot.dtsi > > create mode 100644 arch/arm/dts/rk3399-generic.dts > > create mode 100644 configs/rk3399-generic_defconfig > > > > diff --git a/arch/arm/dts/rk3399-generic-u-boot.dtsi > > b/arch/arm/dts/rk3399-generic-u-boot.dtsi > > new file mode 100644 > > index 00000000000..732727d9b03 > > --- /dev/null > > +++ b/arch/arm/dts/rk3399-generic-u-boot.dtsi > > @@ -0,0 +1,32 @@ > > +// SPDX-License-Identifier: GPL-2.0+ > > +/* > > + * Copyright (C) 2019 Jagan Teki <ja...@amarulasolutions.com> > > + */ > > + > > +#include "rk3399-u-boot.dtsi" > > +#include "rk3399-sdram-lpddr4-100.dtsi" > > This is not generic and limits this to lpddr4 boards. In fact this isn't what I intended, so I'm going to change this file. > > > +/ { > > + chosen { > > + u-boot,spl-boot-order = "same-as-spl", &spi_flash, &sdmmc, > > &sdhci; > > + }; > > +}; > > + > > +&sdhci { > > + cap-mmc-highspeed; > > + mmc-ddr-1_8v; > > +}; > > + > > +&spi1 { > > + spi_flash: flash@0 { > > + bootph-all; > > + }; > > +}; > > + > > +&vdd_center { > > + regulator-min-microvolt = <950000>; > > + regulator-max-microvolt = <950000>; > > +}; > > + > > +&vdd_log { > > + regulator-init-microvolt = <950000>; > > +}; > > diff --git a/arch/arm/dts/rk3399-generic.dts > > b/arch/arm/dts/rk3399-generic.dts > > new file mode 100644 > > index 00000000000..f13bb7f6b4b > > --- /dev/null > > +++ b/arch/arm/dts/rk3399-generic.dts > > @@ -0,0 +1,30 @@ > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > > +/* > > + * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd. > > + * Copyright (c) 2018 Akash Gajjar <akash_gaj...@mentor.com> > > + * Copyright (c) 2019 Katsuhiro Suzuki <katsuh...@katsuster.net> > > + */ > > + > > +/dts-v1/; > > +#include "rk3399-rockpro64.dtsi" > > This is far from generic, please see my minimal generic dts at [1]. You > can possible build something using that and a vbe-lpddr4-rk3399 > defconfig or similar? Just a note on this...I like putting the SoC first (rk3399-generic) since it matches the devicetree naming. Also, if (as I hope) we end up with generic boards for all modern SoCs, we'll avoid having a directory full of 'generic-xxx' files. The differentiating piece is the SoC name, not that it is generic, so I think it should be first. Regards, Simon > > [1] > https://patchwork.ozlabs.org/project/uboot/patch/20250204072710.468610-3-jo...@kwiboo.se/ > > Regards, > Jonas > > > + > > +/ { > > + model = "RK3399 Generic"; > > + compatible = "pine64,rockpro64-v2.1", "pine64,rockpro64", > > "rockchip,rk3399"; > > +}; > > + > > +&i2c1 { > > + es8316: codec@11 { > > + compatible = "everest,es8316"; > > + reg = <0x11>; > > + clocks = <&cru SCLK_I2S_8CH_OUT>; > > + clock-names = "mclk"; > > + #sound-dai-cells = <0>; > > + > > + port { > > + es8316_p0_0: endpoint { > > + remote-endpoint = <&i2s1_p0_0>; > > + }; > > + }; > > + }; > > +}; > > [snip]