[U-Boot] rk3288: broken boot
Dr. Philipp Tomsich
philipp.tomsich at theobroma-systems.com
Tue Feb 13 11:15:16 UTC 2018
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 at amarulasolutions.com> wrote:
>
> On Fri, Dec 15, 2017 at 2:45 PM, Kever Yang <kever.yang at rock-chips.com <mailto:kever.yang at 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 at rock-chips.com <mailto:kever.yang at 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 at rock-chips.com <mailto:kever.yang at rock-chips.com>>
> [Updated:]
> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com <mailto:philipp.tomsich at 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.
More information about the U-Boot
mailing list