[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