[U-Boot] [PATCH v2 0/4] rockchip: rk3399: Update SPL generation for the RK3399
Kever Yang
kever.yang at rock-chips.com
Thu Mar 16 07:48:27 UTC 2017
Hi Philipp,
It's great to see your patch fix the align issue in rk3399, reserve
space
for magic tag is a good idea which is the same with our internal code.
In this case, you do not need to separate for rk3399 and other Rockchips
SoCs:
1. SPL code: reserve 4-byte space for all rockchip SoCs's SPL,
2. mkimage: override the first 4 byte with magic number, no need to
insert 'nop'
for rk3399, rk3399 is the same with other SoCs
3. doc: maybe you can help to update doc/README.rockchip?
Thanks,
- Kever
On 03/15/2017 07:08 PM, Philipp Tomsich wrote:
> For the RK3399, which boots in AArch64 mode, the Boot ROM still starts
> execution at the instruction following the SPL boot-magic
> (i.e. 'RK33'). This puts the first executed instruction on an odd
> address (+0x4).
>
> However, we can't reasonably use for the start of the .text-section on
> AArch64, as it would violate natural alignment... which in turn
> invites trouble down the line if a linker assumes natural alignment or
> some assembly snippet tries to be smart.
>
> This series implements both approaches for dealing with this odd
> alignment during SPL image creation:
> * patches 1 and 2 take an SPL image which starts at (+0x8) and
> prepends it with a AArch64 'nop' during image assembly
> * patches 3 and 4 change this to using a BOOT0_HOOK to insert a single
> 4-byte word at the beginning of the SPL build to make space for the
> 'RK33' magic and then have the mkimage-tool overwrite this word in
> the 'set_header' function.
>
> In doing so, the rkimage code is refactored:
> - to remove duplication between rksd.c and rkspi.c
> - to dynamically allocate the space for headers from vrec
>
> Changes in v2:
> - Use BOOT0_HOOK to insert space into the SPL payload that can be
> overwritten with the boot magic (e.g. 'RK33') by rkimage
> - Change rkimage to overwrite this padding for the RK3399 instead of
> inserting an artificial 'nop'
>
> Philipp Tomsich (4):
> rockchip: mkimage: simplify start/size calculation for rc4_encode
> rockchip: mkimage: pad the header to 8-bytes (using a 'nop') for
> RK3399
> rockchip: spl: RK3399: use boot0 hook to create space for SPL magic
> rockchip: mkimage: update rkimage to support pre-padded payloads
>
> arch/arm/include/asm/arch-rockchip/boot0.h | 18 ++++++
> arch/arm/mach-rockchip/Kconfig | 1 +
> include/configs/rk3399_common.h | 2 +-
> tools/rkcommon.c | 90 ++++++++++++++++++++++++++----
> tools/rkcommon.h | 10 ++++
> tools/rksd.c | 17 ++----
> tools/rkspi.c | 17 ++----
> 7 files changed, 119 insertions(+), 36 deletions(-)
> create mode 100644 arch/arm/include/asm/arch-rockchip/boot0.h
>
More information about the U-Boot
mailing list