Hi Sascha, On 3/28/23 09:40, Sascha Hauer wrote: > This series adds support for reading the amount of memory from > the DDR controller. This helps on boards which come with > different amounts of memory like the Radxa Rock3a. > > This series also fixes issues with an upstream TF-A firmware. With this > the IRAM where the bootsource is stored is no longer accessible in > normal mode. We have to read its contents before starting the TF-A. > For this it became necessary to add a common barebox entry function > for rk3568, to get a common place to read the IRAM contents. Nice, thanks for your efforts! Now it should be possible to remove the memory nodes from arch/arm/dts/rk356*, right? I tried this on a ROCK3A with 8 GB and the memory calculation returned the correct result. There are now two ram devices `-- mem0 `-- 0x00000000-0x10fffffff ( 4.3 GiB): /dev/ram1 `-- mem1 `-- 0x00000000-0xef5fffff ( 3.7 GiB): /dev/ram0 `-- mem2 `-- 0x00000000-0xffffffffffffffff ( 0 Bytes): /dev/mem that start at SZ_4G and 0xa00000, respectively. However, after loading the kernel the system hangs: Loaded kernel to 0x100000000, devicetree at 0x101970000 Is this a bug in barebox or is something special required to boot the kernel from SZ_4G? Best regards, Michael > > Sascha > > Changes since v1: > - Call relocate_to_adr_full() from board code to make sure the > fdt from the relocated binary is used, not from the original > binary > - Add patch to pass a NULL fdt to TF-A > > Ahmad Fatoum (2): > ARM: Rockchip: implement memory read out from controller > ARM: Rockchip: make bootsource logic generic to all SoCs > > Sascha Hauer (4): > ARM: dts: rk356x: Add DMC controller node > ARM: Rockchip: Add rk3568 specific barebox entry function > ARM: Rockchip: rk3568: use rk3568_barebox_entry() > ARM: Rockchip: Do not pass device tree to TF-A > > arch/arm/boards/pine64-quartz64/lowlevel.c | 30 +-- > arch/arm/boards/radxa-rock3/lowlevel.c | 31 +-- > .../rockchip-rk3568-bpi-r2pro/lowlevel.c | 31 +-- > .../arm/boards/rockchip-rk3568-evb/lowlevel.c | 32 +-- > arch/arm/dts/rk356x.dtsi | 5 + > arch/arm/mach-rockchip/Makefile | 3 +- > arch/arm/mach-rockchip/atf.c | 34 +++ > arch/arm/mach-rockchip/bootrom.c | 51 ++++ > arch/arm/mach-rockchip/dmc.c | 232 ++++++++++++++++++ > arch/arm/mach-rockchip/rk3568.c | 29 +-- > include/bootsource.h | 1 + > include/linux/sizes.h | 3 + > include/mach/rockchip/atf.h | 2 + > include/mach/rockchip/bootrom.h | 32 +++ > include/mach/rockchip/dmc.h | 86 +++++++ > include/mach/rockchip/rk3399-regs.h | 1 + > include/mach/rockchip/rk3568-regs.h | 1 + > 17 files changed, 469 insertions(+), 135 deletions(-) > create mode 100644 arch/arm/mach-rockchip/bootrom.c > create mode 100644 arch/arm/mach-rockchip/dmc.c > create mode 100644 include/mach/rockchip/bootrom.h > create mode 100644 include/mach/rockchip/dmc.h >