On Tue, Mar 28, 2023 at 09:40:35AM +0200, Sascha Hauer wrote: > There is a rk3568 specific entry function for barebox now, switch > the existing boards over to use it. > > Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> > --- > 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 +++---------------- > 4 files changed, 17 insertions(+), 107 deletions(-) > > diff --git a/arch/arm/boards/pine64-quartz64/lowlevel.c b/arch/arm/boards/pine64-quartz64/lowlevel.c > index 1e63c0e698..975f8aa51c 100644 > --- a/arch/arm/boards/pine64-quartz64/lowlevel.c > +++ b/arch/arm/boards/pine64-quartz64/lowlevel.c > @@ -1,41 +1,19 @@ > // SPDX-License-Identifier: GPL-2.0-only > + > #include <common.h> > -#include <linux/sizes.h> > -#include <asm/barebox-arm-head.h> > #include <asm/barebox-arm.h> > #include <mach/rockchip/hardware.h> > #include <mach/rockchip/atf.h> > #include <debug_ll.h> > -#include <mach/rockchip/rockchip.h> > > extern char __dtb_rk3566_quartz64_a_start[]; > > -static noinline void start_quartz64(void) > -{ > - void *fdt = __dtb_rk3566_quartz64_a_start; > - > - if (current_el() == 3) { > - rk3568_lowlevel_init(); > - rk3568_atf_load_bl31(fdt); > - /* not reached */ > - } > - > - barebox_arm_entry(RK3568_DRAM_BOTTOM, 0x80000000 - RK3568_DRAM_BOTTOM, > - fdt); > -} > - > ENTRY_FUNCTION(start_quartz64a, r0, r1, r2) > { > - /* > - * Image execution starts at 0x0, but this is used for ATF and > - * OP-TEE later, so move away from here. > - */ > - if (current_el() == 3) > - relocate_to_adr_full(RK3568_BAREBOX_LOAD_ADDRESS); > - else > - relocate_to_current_adr(); > + putc_ll('>'); > > + relocate_to_adr_full(RK3568_BAREBOX_LOAD_ADDRESS); This doesn't work when barebox is started from another barebox, because it places the new barebox at an address near RK3568_BAREBOX_LOAD_ADDRESS. Calling relocate_to_adr_full() will partly overwrite the image. I'll revert this change to what has been done before: if (current_el() == 3) relocate_to_adr_full(RK3568_BAREBOX_LOAD_ADDRESS); else relocate_to_current_adr(); Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |