rv1126-uboot/tools
Philipp Tomsich 111bcc4fb6 rockchip: mkimage: pad the header to 8-bytes (using a 'nop') for RK3399
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@theobroma-systems.com>
Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com>
2017-04-04 20:01:57 -06:00
..
binman tools: binman: change shebang from python into python2 2017-03-11 22:30:28 -05:00
buildman kconfiglib.py: Kludge in 'imply' support 2017-03-09 19:52:14 -05:00
dtoc dtoc: make ScanTree recurse into subnodes 2017-03-22 07:27:19 -06:00
easylogo
env tools: fix cross-compiling tools when HOSTCC is overridden 2017-03-14 20:40:22 -04:00
gdb
kermit
logos imx6: icorem6: Add custom splashscreen support 2016-12-16 17:15:27 +01:00
omap
patman patman: Handle non-ascii characters in names 2017-02-08 06:12:16 -07:00
scripts
tbot
.gitignore tools: Add tool to add crc8 to a mac address 2017-02-07 10:54:33 -06:00
Makefile Pass empty CFLAGS on invocation of libfdt/setup.py 2017-03-20 18:04:43 -04:00
aisimage.c
aisimage.h
atmel_pmecc_params.c
atmelimage.c
bmp_logo.c
default_image.c tools: mkimage: add firmware-ivt image type for HAB verification 2017-01-02 17:06:57 +01:00
dumpimage.c
dumpimage.h
envcrc.c tools/env: Correct include kconfig 2016-11-23 23:41:23 -08:00
fdt_host.h
fdtgrep.c Various, accumulated typos collected from around the tree. 2016-10-06 20:57:40 -04:00
fit_check_sign.c
fit_common.c
fit_common.h
fit_image.c mkimage: Add support for signing with pkcs11 2017-01-14 16:47:13 -05:00
fit_info.c
gen_eth_addr.c
gen_ethaddr_crc.c tools: Add tool to add crc8 to a mac address 2017-02-07 10:54:33 -06:00
genboardscfg.py
getline.c
getline.h
gpheader.h
gpimage-common.c
gpimage.c
ifdtool.c binman: Drop microcode features from ifdtool 2016-12-20 08:09:55 +13:00
ifdtool.h
image-host.c mkimage: Add support for signing with pkcs11 2017-01-14 16:47:13 -05:00
imagetool.c
imagetool.h mkimage: Add support for signing with pkcs11 2017-01-14 16:47:13 -05:00
img2brec.sh
img2srec.c
imximage.c tools: imximage: add set bit command 2017-03-19 17:30:15 +01:00
imximage.h tools: imximage: add set bit command 2017-03-19 17:30:15 +01:00
jtagconsole
kwbimage.c tools: kwbimage: Fix unchecked return value and fd leak 2017-02-17 10:15:21 +01:00
kwbimage.h arm: mvebu: Implement secure boot 2017-02-01 09:04:18 +01:00
kwboot.c tools: kwboot: don't adjust destaddr when patching the image 2017-02-17 10:15:56 +01:00
lpc32xximage.c
microcode-tool
microcode-tool.py
mingw_support.c
mingw_support.h
mkenvimage.c
mkexynosspl.c
mkimage.c tools: mkimage: fix sizeof_mismatch found by coverity 2017-01-20 15:38:04 -05:00
mkimage.h
mksunxiboot.c tools: add mksunxiboot to tools-all target 2016-10-30 11:38:04 +01:00
moveconfig.py tools: moveconfig: support wildcards in --defconfigs file 2016-10-24 08:04:42 -04:00
mxsboot.c
mxsimage.c tools: mxsimage: Fix build with OpenSSL 1.1.x 2016-12-19 12:26:39 -05:00
mxsimage.h
ncb.c
netconsole
omapimage.c tools: omapimage: Fix size in header 2017-03-14 20:40:17 -04:00
omapimage.h
os_support.c
os_support.h
pbl_crc32.c
pbl_crc32.h
pblimage.c tools: plbimage support generate rcw file 2017-03-28 09:19:18 -07:00
pblimage.h
proftool.c
relocate-rela.c relocate-rela: use compiler.h endian macros 2016-12-27 11:24:12 -05:00
rkcommon.c rockchip: mkimage: pad the header to 8-bytes (using a 'nop') for RK3399 2017-04-04 20:01:57 -06:00
rkcommon.h rockchip: mkimage: pad the header to 8-bytes (using a 'nop') for RK3399 2017-04-04 20:01:57 -06:00
rkimage.c rockchip: mkimage: Allow encoding of loader code in spl images 2017-03-16 16:03:44 -06:00
rkmux.py
rksd.c rockchip: mkimage: pad the header to 8-bytes (using a 'nop') for RK3399 2017-04-04 20:01:57 -06:00
rkspi.c rockchip: mkimage: pad the header to 8-bytes (using a 'nop') for RK3399 2017-04-04 20:01:57 -06:00
socfpgaimage.c
ublimage.c
ublimage.h
ubsha1.c
vybridimage.c tools: mkimage: add support for Vybrid image format 2016-10-06 09:06:16 +02:00
xway-swap-bytes.c
zynqimage.c tools: mkimage: Call fclose in error path 2016-12-27 11:24:16 -05:00
zynqmpimage.c tools: mkimage: Call fclose in error path 2016-12-27 11:24:16 -05:00