[U-Boot] [PATCH v2 2/4] rockchip: mkimage: pad the header to 8-bytes (using a 'nop') for RK3399
Simon Glass
sjg at chromium.org
Sun Mar 26 02:40:17 UTC 2017
On 15 March 2017 at 05:08, Philipp Tomsich
<philipp.tomsich at theobroma-systems.com> wrote:
> The RK3399 boot code (running as AArch64) poses a bit of a challenge
> for SPL image generation:
> * The BootROM will start execution right after the 4-byte header (at
> the odd instruction word loaded into SRAM at 0xff8c2004, with the
> 'RK33' boot magic residing at 0xff8c2000).
> * The default padding (during ELF generation) for AArch64 is 0x0,
> which is an illegal instruction and the .text section needs to be
> naturally aligned (someone might locate a 64bit constant relative
> to the section start and unaligned loads trigger a fault for all
> privileged modes of an ARMv8)... so we can't simply define the
> CONFIG_SPL_TEXT_BASE option to the odd address (0xff8c2004).
> * Finally, we don't want to change the values used for padding of
> the SPL .text section for all ARMv8 targets to the instruction
> word encoding 'nop', as this would affect all padding in this
> section and might hide errors that would otherwise quickly trigger
> an illegal insn exception.
>
> To deal with this situation, we modify the rkimage generation to
> - understand the fact that the RK3399 needs to pad the header to an
> 8 byte boundary using an AArch64 'nop'
> - the necessary logic to adjust the header_size (which controls the
> location where the payload is copied into the image) and to insert
> this padding (AArch64 insn words are always little-endian) into
> the image following the 4-byte header magic.
>
> X-AffectedPlatforms: RK3399-Q7
> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
> Tested-by: Klaus Goger <klaus.goger at theobroma-systems.com>
> ---
>
> Changes in v2: None
>
> tools/rkcommon.c | 97 +++++++++++++++++++++++++++++++++++++++++++++++++-------
> tools/rkcommon.h | 23 ++++++++++++++
> tools/rksd.c | 17 +++-------
> tools/rkspi.c | 17 +++-------
> 4 files changed, 118 insertions(+), 36 deletions(-)
>
Applied to u-boot-rockchip, thanks!
More information about the U-Boot
mailing list