
I verified the build for evb-rk3288_defconfig and everything looks fine:
spl/u-boot-spl.bin: file format binary
Disassembly of section .data:
00000000 <.data>: 0: eaffffff b 0x4 <— this is the extra branch inserted (to be overwritten by mkimage) 4: ea000016 b 0x64 ... 20: ea00000f b 0x64 24: e59ff014 ldr pc, [pc, #20] ; 0x40 28: e59ff014 ldr pc, [pc, #20] ; 0x44 2c: e59ff014 ldr pc, [pc, #20] ; 0x48 30: e59ff014 ldr pc, [pc, #20] ; 0x4c 34: e59ff014 ldr pc, [pc, #20] ; 0x50 38: e59ff014 ldr pc, [pc, #20] ; 0x54 3c: e59ff014 ldr pc, [pc, #20] ; 0x58
On 13 Feb 2018, at 12:15, Dr. Philipp Tomsich philipp.tomsich@theobroma-systems.com wrote:
Jagan,
The boot0-header should insert the additional 4 bytes needed… the resulting input format to mkimage is thus compatible with how the ddr.bin images by Rockchip where originally formatted (i.e. prepadded).
See arch/arm/include/asm/arch-rockchip/boot0.h for the insertion of these additional 4 bytes… in the case of U-Boot we pad with a branch (unlike the 0-bytes in the prepadded legacy images), so the binary works even when loaded in via JTAG.
For ARMv8 the insertion of the boot0 header should happen via arch/arm/lib/vectors.S
Please check that the padding happens as expected. If that works, you way want to check that boot0.h is correct (unfortunately if contains quite a few #ifdef directives) for the 3288 use-case...
Regards, Philipp.
On 13 Feb 2018, at 11:46, Jagan Teki <jagan@amarulasolutions.com mailto:jagan@amarulasolutions.com> wrote:
On Fri, Dec 15, 2017 at 2:45 PM, Kever Yang <kever.yang@rock-chips.com mailto:kever.yang@rock-chips.com> wrote:
Hi Jagan,
Could you enable global DEBUG and share the log?
Thanks,
- Kever
On 12/15/2017 03:08 PM, Jagan Teki wrote:
Hi Philipp/Kever,
Issue observed on rk3288 TPL supported board (vyasa), worked on previous release v2017.11.
Tried to bisect but i couldn't do it because of changes in many files any help?
I don't understand how rk3288 boards were working since from 2 releases, I've bisect this and found the bad
d962e5dadc2cbc21bffd375f29665e5042879e66 is the first bad commit commit d962e5dadc2cbc21bffd375f29665e5042879e66 Author: Kever Yang <kever.yang@rock-chips.com mailto:kever.yang@rock-chips.com> Date: Tue Oct 10 16:21:04 2017 +0200
rockchip: mkimage: use spl_boot0 for all Rockchip SoCs
Enable the spl_boot0 in SPL and use the pre-padding TAG memory, the mkimage do not need to pad it but only need to replace the value with correct TAG value.
Signed-off-by: Kever Yang <kever.yang@rock-chips.com mailto:kever.yang@rock-chips.com> [Updated:] Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com mailto:philipp.tomsich@theobroma-systems.com>
Look like the boot magic can't find it in 0x800 and it can't overwrite 4 bytes, so we need to explicitly specify 0x804 as header size
--- a/tools/rkcommon.c +++ b/tools/rkcommon.c @@ -357,7 +357,7 @@ int rkcommon_vrec_header(struct image_tool_params *params, * 4 bytes of these images can safely be overwritten using the * boot magic. */
tparams->header_size = RK_SPL_HDR_START;
tparams->header_size = RK_SPL_HDR_START + 4; /* Allocate, clear and install the header */ tparams->hdr = malloc(tparams->header_size);
Please let me know for comments.
Jagan.