Hi Jonas, On Wed, 5 Feb 2025 at 02:51, Jonas Karlman <jo...@kwiboo.se> wrote: > > Hi Simon, > > It does not look like this is based on the master branch and cannot be > applied for review/testing. Please rebase on top of the master branch. > > Some quick feedback: > - Some of these could/should be a standalone patch, i.e. os=u-boot fix.
OK, I'll move them earlier in case you want to apply them sooner. > - All experimental VBE/VPL addition to rockchip-u-boot.dtsi should > probably be moved to a separate file not to clutter the regular binman > image. OK > - rk3399-generic is not generic, it is just pinepro64 with a new name? It is loosely based on firefly-rk3399 which is a board I have in my lab. > Please see [1] for the addition of a generic target I sent out, matching > existing minimal generic targets for rk35xx. > > Will get back with a more in depth feedback later. Thanks for looking at this. Regards, Simon > > [1] https://lore.kernel.org/r/20250204072710.468610-3-jo...@kwiboo.se/ > > Regards, > Jonas > > On 2025-02-05 02:54, Simon Glass wrote: > > This series completes the work to enable VBE on a suitable board. Most > > of it is rockchip-specific patches to support the VPL phase, i.e. the > > one which decides which boot patch to take (A, B or recovery). > > > > A good chunk of this series is adding an image for VBE, by creating a > > new Binman image. Future work in Binman may make this more automated / > > easier, but for now it is written out in full. The work is undertaken > > piecemeal so it is easier to review the steps. > > > > VBE allows similar boards to share firmware images, with perhaps just > > TPL (around 75K) being different for each board. Using a common image > > for VPL, SPL and U-Boot saves a lot of space in the image and makes > > builds easier. Of course, each board still needs a separate devicetree. > > > > Here is the layout of the image: > > > > Name Image-pos Size Entry-type > > Offset Uncomp-size > > ---------------------------------------------------------------------------------------------- > > image 0 1b960cf section > > 0 > > alternates-fdt 8000 31000 alternates-fdt > > 8000 > > mkimage 8000 31000 mkimage > > 0 > > u-boot-tpl 8048 12a11 u-boot-tpl > > 48 > > vpl 208000 16200 fit > > 208000 > > image-vpl 209400 a5a3 section > > 1400 > > section 209400 a5a3 section > > 0 > > u-boot-vpl-nodtb 10348 u-boot-vpl-nodtb > > 0 > > u-boot-vpl-bss-pad 20 u-boot-vpl-bss-pad > > 10348 > > @fdt-SEQ 0 0 section > > 0 > > vbe-a 800000 39b200 section > > 800000 > > spl-a 800000 100000 fit > > 0 > > spl 801400 10c97 section > > 1400 > > section 801400 10c97 section > > 0 > > u-boot-spl-nodtb 1a908 u-boot-spl-nodtb > > 0 > > u-boot-spl-bss-pad 1b0 u-boot-spl-bss-pad > > 1a908 > > @fdt-SEQ 0 0 section > > 0 > > u-boot-a 900000 29b200 fit > > 100000 > > spl 902400 10c97 section > > 2400 > > section 902400 10c97 section > > 0 > > u-boot-spl-nodtb 1a908 u-boot-spl-nodtb > > 0 > > u-boot-spl-bss-pad 1b0 u-boot-spl-bss-pad > > 1a908 > > u-boot 913200 e4250 section > > 13200 > > u-boot-nodtb 913200 e4250 u-boot-nodtb > > 0 > > @atf-SEQ 0 0 section > > 0 > > atf-bl31 0 0 atf-bl31 > > 0 > > @tee-SEQ 0 0 section > > 0 > > tee-os 0 0 tee-os > > 0 > > @fdt-SEQ 0 0 section > > 0 > > vbe-b 1000000 39b200 section > > 1000000 > > spl-b 1000000 100000 fit > > 0 > > spl 1001400 10c97 section > > 1400 > > section 1001400 10c97 section > > 0 > > u-boot-spl-nodtb 1a908 u-boot-spl-nodtb > > 0 > > u-boot-spl-bss-pad 1b0 u-boot-spl-bss-pad > > 1a908 > > @fdt-SEQ 0 0 section > > 0 > > u-boot-b 1100000 29b200 fit > > 100000 > > spl 1102400 10c97 section > > 2400 > > section 1102400 10c97 section > > 0 > > u-boot-spl-nodtb 1a908 u-boot-spl-nodtb > > 0 > > u-boot-spl-bss-pad 1b0 u-boot-spl-bss-pad > > 1a908 > > u-boot 1113200 e4250 section > > 13200 > > u-boot-nodtb 1113200 e4250 u-boot-nodtb > > 0 > > @atf-SEQ 0 0 section > > 0 > > atf-bl31 0 0 atf-bl31 > > 0 > > @tee-SEQ 0 0 section > > 0 > > tee-os 0 0 tee-os > > 0 > > @fdt-SEQ 0 0 section > > 0 > > vbe-recovery 1800000 39b200 section > > 1800000 > > spl-recovery 1800000 100000 fit > > 0 > > spl 1801400 10c97 section > > 1400 > > section 1801400 10c97 section > > 0 > > u-boot-spl-nodtb 1a908 u-boot-spl-nodtb > > 0 > > u-boot-spl-bss-pad 1b0 u-boot-spl-bss-pad > > 1a908 > > @fdt-SEQ 0 0 section > > 0 > > u-boot-recovery 1900000 29b200 fit > > 100000 > > spl 1902400 10c97 section > > 2400 > > section 1902400 10c97 section > > 0 > > u-boot-spl-nodtb 1a908 u-boot-spl-nodtb > > 0 > > u-boot-spl-bss-pad 1b0 u-boot-spl-bss-pad > > 1a908 > > u-boot 1913200 e4250 section > > 13200 > > u-boot-nodtb 1913200 e4250 u-boot-nodtb > > 0 > > @atf-SEQ 0 0 section > > 0 > > atf-bl31 0 0 atf-bl31 > > 0 > > @tee-SEQ 0 0 section > > 0 > > tee-os 0 0 tee-os > > 0 > > @fdt-SEQ 0 0 section > > 0 > > fdtmap 1b9b200 2ecf fdtmap > > 1b9b200 > > > > Unfortunately I got a bit lost trying to figure out the bloblist code, > > despite my being the original author. So for now I have included a > > revert of a recent patch, so that the logic can be simplified and more > > in keeping with the original intent. We may in fact need a symbol which > > specifically says which phase creates the bloblist, but I'm not > > completely sure of what the reverted patch was trying to achieve. > > > > This is (mostly) the final VBE series, but there are a few loose ends to > > tidy up: > > > > - cache is disabled in SPL, which slows the boot a little > > - pinctrl init needs to be tidied up to avoid warnings > > > > Other things may become apparently after more usage / testing. > > > > > > Simon Glass (29): > > arm: Support a separate stack for VPL > > spl: Adjust xPL symbols > > spl: Allow VBE to handle xPL size > > vbe: Show the margin when using SPL_RELOC > > rockchip: Allow RAM init to happen in SPL on rk3399 > > rockchip: dts: Factor out arch and compression > > rockchip: Add an fdtmap > > rockchip: Add more space below the stack pointer with kevin > > rockchip: dts: Create a template for the FIT > > rockchip: dts: Un-indent the FIT template > > rockchip: dts: Correct the OS for U-Boot > > rockchip: Specify the phase in the image > > rockchip: Provide a bootstd configuration > > rockchip: Add SPL into the main FIT > > rockchip: Include a compatible string in each configuration > > rockchip: Set the skip-at-start property correctly > > rockchip: Add a template for SPL > > rockchip: Add a VPL image > > rockchip: Add TPL alternatives > > rockchip: Update rk3399 bootph-tags for VPL > > rockchip: Provide a VPL phase on rk3399 > > rockchip: Add symbols for spl_reloc > > rockchip: Adjust rk3399 TPL-stack to the same as SPL > > rockchip: Allow SPL to set up SDRAM > > rockchip: Add a generic rk3399 board > > rockchip: Add documentation for VBE > > gitlab: Add an VBE board to the sjg lab > > Revert "bloblist: Load the bloblist from the previous loader" > > bloblist: Allow relocation at the end of the SPL phase > > > > .gitlab-ci.yml | 6 + > > arch/arm/dts/rk3399-generic-u-boot.dtsi | 32 ++ > > arch/arm/dts/rk3399-generic.dts | 30 ++ > > arch/arm/dts/rk3399-u-boot.dtsi | 9 +- > > arch/arm/dts/rockchip-u-boot.dtsi | 455 +++++++++++++----- > > arch/arm/include/asm/spl.h | 1 + > > arch/arm/lib/crt0_64.S | 4 +- > > arch/arm/mach-rockchip/Kconfig | 25 +- > > arch/arm/mach-rockchip/Makefile | 6 +- > > arch/arm/mach-rockchip/rk3399/Kconfig | 11 +- > > arch/arm/mach-rockchip/spl-boot-order.c | 3 +- > > arch/arm/mach-rockchip/spl.c | 3 + > > arch/arm/mach-rockchip/tpl.c | 12 +- > > arch/arm/mach-rockchip/u-boot-tpl-v8.lds | 13 + > > arch/arm/mach-rockchip/u-boot-vpl-v8.lds | 107 ++++ > > arch/arm/mach-rockchip/vpl.c | 53 ++ > > board/rockchip/evb_rk3399/MAINTAINERS | 5 + > > cmd/vbe.c | 8 +- > > common/Kconfig | 20 + > > common/bloblist.c | 77 ++- > > common/spl/Kconfig | 1 + > > common/spl/Kconfig.vpl | 13 + > > common/spl/spl.c | 11 + > > common/spl/spl_reloc.c | 14 +- > > configs/anbernic-rgxx3-rk3566_defconfig | 2 +- > > configs/bpi-r2-pro-rk3568_defconfig | 2 +- > > configs/chromebit_mickey_defconfig | 2 +- > > configs/chromebook_bob_defconfig | 4 +- > > configs/chromebook_jerry_defconfig | 2 +- > > configs/chromebook_kevin_defconfig | 4 +- > > configs/chromebook_minnie_defconfig | 2 +- > > configs/chromebook_speedy_defconfig | 2 +- > > configs/cm3588-nas-rk3588_defconfig | 2 +- > > configs/coolpi-4b-rk3588s_defconfig | 2 +- > > configs/coolpi-cm5-evb-rk3588_defconfig | 2 +- > > configs/coolpi-cm5-genbook-rk3588_defconfig | 2 +- > > configs/eaidk-610-rk3399_defconfig | 2 +- > > configs/evb-px30_defconfig | 2 +- > > configs/evb-px5_defconfig | 2 +- > > configs/evb-rk3036_defconfig | 2 +- > > configs/evb-rk3229_defconfig | 2 +- > > configs/evb-rk3288_defconfig | 2 +- > > configs/evb-rk3308_defconfig | 2 +- > > configs/evb-rk3328_defconfig | 2 +- > > configs/evb-rk3399_defconfig | 2 +- > > configs/evb-rk3568_defconfig | 2 +- > > configs/evb-rk3588_defconfig | 2 +- > > configs/ficus-rk3399_defconfig | 2 +- > > configs/firefly-px30_defconfig | 2 +- > > configs/firefly-rk3288_defconfig | 2 +- > > configs/firefly-rk3399_defconfig | 2 +- > > configs/generic-rk3568_defconfig | 2 +- > > configs/generic-rk3588_defconfig | 2 +- > > configs/jaguar-rk3588_defconfig | 2 +- > > configs/khadas-edge-captain-rk3399_defconfig | 2 +- > > configs/khadas-edge-rk3399_defconfig | 2 +- > > configs/khadas-edge-v-rk3399_defconfig | 2 +- > > configs/kylin-rk3036_defconfig | 2 +- > > configs/leez-rk3399_defconfig | 2 +- > > configs/lubancat-2-rk3568_defconfig | 2 +- > > configs/miqi-rk3288_defconfig | 2 +- > > configs/mk808_defconfig | 2 +- > > configs/nanopc-t4-rk3399_defconfig | 2 +- > > configs/nanopc-t6-rk3588_defconfig | 2 +- > > configs/nanopi-m4-2gb-rk3399_defconfig | 2 +- > > configs/nanopi-m4-rk3399_defconfig | 2 +- > > configs/nanopi-m4b-rk3399_defconfig | 2 +- > > configs/nanopi-neo4-rk3399_defconfig | 2 +- > > configs/nanopi-r2c-plus-rk3328_defconfig | 2 +- > > configs/nanopi-r2c-rk3328_defconfig | 2 +- > > configs/nanopi-r2s-plus-rk3328_defconfig | 2 +- > > configs/nanopi-r2s-rk3328_defconfig | 2 +- > > configs/nanopi-r4s-rk3399_defconfig | 2 +- > > configs/nanopi-r5c-rk3568_defconfig | 2 +- > > configs/nanopi-r5s-rk3568_defconfig | 2 +- > > configs/nanopi-r6c-rk3588s_defconfig | 2 +- > > configs/nanopi-r6s-rk3588s_defconfig | 2 +- > > configs/neu2-io-rv1126_defconfig | 2 +- > > configs/neu6a-io-rk3588_defconfig | 2 +- > > configs/neu6b-io-rk3588_defconfig | 2 +- > > configs/nova-rk3588s_defconfig | 2 +- > > configs/odroid-go2_defconfig | 2 +- > > configs/odroid-m1-rk3568_defconfig | 2 +- > > configs/odroid-m1s-rk3566_defconfig | 2 +- > > configs/odroid-m2-rk3588s_defconfig | 2 +- > > configs/orangepi-3b-rk3566_defconfig | 2 +- > > configs/orangepi-5-plus-rk3588_defconfig | 2 +- > > configs/orangepi-5-rk3588s_defconfig | 2 +- > > configs/orangepi-r1-plus-lts-rk3328_defconfig | 2 +- > > configs/orangepi-r1-plus-rk3328_defconfig | 2 +- > > configs/orangepi-rk3399_defconfig | 2 +- > > configs/phycore-rk3288_defconfig | 2 +- > > configs/pinebook-pro-rk3399_defconfig | 2 +- > > configs/pinephone-pro-rk3399_defconfig | 2 +- > > configs/pinetab2-rk3566_defconfig | 2 +- > > configs/popmetal-rk3288_defconfig | 2 +- > > configs/powkiddy-x55-rk3566_defconfig | 2 +- > > configs/puma-rk3399_defconfig | 2 +- > > configs/px30-core-ctouch2-of10-px30_defconfig | 2 +- > > configs/px30-core-ctouch2-px30_defconfig | 2 +- > > configs/px30-core-edimm2.2-px30_defconfig | 2 +- > > configs/qnap-ts433-rk3568_defconfig | 2 +- > > configs/quartz64-a-rk3566_defconfig | 2 +- > > configs/quartz64-b-rk3566_defconfig | 2 +- > > configs/quartzpro64-rk3588_defconfig | 2 +- > > configs/radxa-cm3-io-rk3566_defconfig | 2 +- > > configs/radxa-e25-rk3568_defconfig | 2 +- > > configs/radxa-zero-3-rk3566_defconfig | 2 +- > > configs/rk3399-generic_defconfig | 133 +++++ > > configs/roc-cc-rk3308_defconfig | 2 +- > > configs/roc-cc-rk3328_defconfig | 2 +- > > configs/roc-pc-mezzanine-rk3399_defconfig | 2 +- > > configs/roc-pc-rk3399_defconfig | 2 +- > > configs/rock-3a-rk3568_defconfig | 2 +- > > configs/rock-3b-rk3568_defconfig | 2 +- > > configs/rock-3c-rk3566_defconfig | 2 +- > > configs/rock-4c-plus-rk3399_defconfig | 2 +- > > configs/rock-4se-rk3399_defconfig | 2 +- > > configs/rock-5-itx-rk3588_defconfig | 2 +- > > configs/rock-pi-4-rk3399_defconfig | 2 +- > > configs/rock-pi-4c-rk3399_defconfig | 2 +- > > configs/rock-pi-e-rk3328_defconfig | 2 +- > > configs/rock-pi-e-v3-rk3328_defconfig | 2 +- > > configs/rock-pi-n10-rk3399pro_defconfig | 2 +- > > configs/rock-pi-n8-rk3288_defconfig | 2 +- > > configs/rock-pi-s-rk3308_defconfig | 2 +- > > configs/rock-s0-rk3308_defconfig | 2 +- > > configs/rock2_defconfig | 2 +- > > configs/rock5a-rk3588s_defconfig | 2 +- > > configs/rock5b-rk3588_defconfig | 2 +- > > configs/rock64-rk3328_defconfig | 2 +- > > configs/rock960-rk3399_defconfig | 2 +- > > configs/rock_defconfig | 2 +- > > configs/rockpro64-rk3399_defconfig | 2 +- > > configs/sige7-rk3588_defconfig | 2 +- > > configs/sonoff-ihost-rv1126_defconfig | 2 +- > > configs/soquartz-blade-rk3566_defconfig | 2 +- > > configs/soquartz-cm4-rk3566_defconfig | 2 +- > > configs/soquartz-model-a-rk3566_defconfig | 2 +- > > configs/tiger-rk3588_defconfig | 2 +- > > configs/tinker-rk3288_defconfig | 2 +- > > configs/tinker-s-rk3288_defconfig | 2 +- > > configs/toybrick-rk3588_defconfig | 2 +- > > configs/turing-rk1-rk3588_defconfig | 2 +- > > configs/vyasa-rk3288_defconfig | 2 +- > > doc/board/rockchip/rockchip.rst | 13 + > > drivers/ram/rockchip/sdram_rk3399.c | 6 +- > > include/bloblist.h | 10 - > > include/vbe.h | 3 + > > 149 files changed, 1016 insertions(+), 312 deletions(-) > > create mode 100644 arch/arm/dts/rk3399-generic-u-boot.dtsi > > create mode 100644 arch/arm/dts/rk3399-generic.dts > > create mode 100644 arch/arm/mach-rockchip/u-boot-vpl-v8.lds > > create mode 100644 arch/arm/mach-rockchip/vpl.c > > create mode 100644 configs/rk3399-generic_defconfig > > >