u-boot/arch/arm/include/asm
Philipp Tomsich 3d54eabcaf rockchip: spl: RK3399: use boot0 hook to create space for SPL magic
The SPL binary needs to be prefixed with the boot magic ('RK33' for
the RK3399) on the Rockchip platform and starts execution of the
instruction word following immediately after this boot magic.

This poses a challenge for AArch64 (ARMv8) binaries, as the .text
section would need to start on the odd address, violating natural
alignment (and potentially triggering a fault for any code that
tries to access 64bit values embedded in the .text section).

A quick and easy fix is to have the .text section include the 'RK33'
magic and pad it with a boot0 hook to insert 4 bytes of padding at the
start of the section (with the intention of having mkimage overwrite
this padding with the appropriate boot magic). This avoids having to
modify the linker scripts or more complex logic in mkimage.

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
..
arch-am33xx arm: OMAP2+: nandecc: propagate error to command return status 2017-03-11 22:30:25 -05:00
arch-armada8k arm64: mvebu: Add L3 cache flush functionality to A8K family 2016-12-12 09:05:28 +01:00
arch-armada100 Update Maintainer and Author's email address 2016-12-27 11:24:17 -05:00
arch-armv7 ARMv7: Factor out reusable timer_wait from sunxi/psci_sun7i.S 2015-07-20 11:44:38 -07:00
arch-aspeed aspeed: Add basic ast2500-specific drivers and configuration 2017-01-28 14:04:29 -05:00
arch-bcm235xx ARM: boot0 hook: remove macro, include whole header file 2017-01-04 16:37:41 +01:00
arch-bcm281xx ARM: boot0 hook: remove macro, include whole header file 2017-01-04 16:37:41 +01:00
arch-bcmcygnus configs: Re-sync with cmd/Kconfig 2016-04-25 15:09:47 -04:00
arch-bcmnsp arm: add Cygnus and NSP boards 2014-08-30 07:46:40 -04:00
arch-ep93xx arm: ep9315: Return back Cirrus Logic EDB9315A board support 2014-07-04 23:45:48 +02:00
arch-fsl-layerscape arvm8: pcie-layerscape: Define stream-ids for Layerscape Chassis-2 2017-03-28 10:47:16 -07:00
arch-hi6220 driver: gpio: hikey: Fix pointer conversion warnings for hikey 2015-11-12 15:58:59 -05:00
arch-imx imx: mx7ulp: Add soc level initialization codes and functions 2017-03-17 09:27:08 +01:00
arch-lpc32xx i2c: lpc32xx: Move definitions to header file 2017-03-28 06:27:14 +02:00
arch-ls102xa serial: lpuart: restructure lpuart driver 2017-03-17 09:27:08 +01:00
arch-meson meson: odroid-c2: enable Ethernet support through the device tree 2016-09-06 13:18:19 -04:00
arch-mvebu spi: kirkwood_spi: implement mvebu_spi_set_mode() 2016-11-18 13:04:52 +05:30
arch-mx5 ARM: Move SYS_CACHELINE_SIZE over to Kconfig 2016-08-26 17:04:46 -04:00
arch-mx6 arm: i.MX6UL: add Armadeus Systems OPOS6UL SoM and OPOS6ULDev carrier board 2017-03-19 17:28:09 +01:00
arch-mx7 imx: mx7: Add plugin support 2016-10-24 10:57:16 +02:00
arch-mx7ulp mx7ulp: Add HAB boot support 2017-03-17 09:27:08 +01:00
arch-mx25 imx: cpu: move common chip revision id's 2015-10-30 15:20:56 +01:00
arch-mx27 mmc: move more driver config options to Kconfig 2017-01-11 19:40:15 +09:00
arch-mx31 imx-common: consolidate macros and prototypes into sys_proto.h 2015-09-02 15:29:14 +02:00
arch-mx35 imx-common: consolidate macros and prototypes into sys_proto.h 2015-09-02 15:29:14 +02:00
arch-mxs ARM: mxs: allow boards to select DC-DC switching clock source 2016-01-03 15:56:36 +01:00
arch-omap3 arm: omap3: Bring back ARM errata workaround 725233 2017-03-14 20:40:17 -04:00
arch-omap4 TI: Rework SRAM definitions and maximums 2016-09-06 13:41:42 -04:00
arch-omap5 ARM: OMAP5+: GPIO: Add GPIO_TO_PIN() macro 2017-03-20 17:56:21 -04:00
arch-orion5x edminiv2: switch to SPL 2015-02-25 07:59:50 +01:00
arch-pxa arm: pxa: use common timer functions 2015-08-24 20:30:37 +02:00
arch-rockchip rockchip: spl: RK3399: use boot0 hook to create space for SPL magic 2017-04-04 20:01:57 -06:00
arch-s3c24x0 mtd: nand: s3c: Unify the register definition and naming 2014-11-26 23:21:43 -06:00
arch-s32v234 armv8: s32v234: Introduce basic support for s32v234evb 2016-06-13 08:56:35 -04:00
arch-sa1100 Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
arch-spear arm: spear: Add command to switch between 1-bit HW ECC and SW BCH4 2015-09-11 17:15:14 -04:00
arch-stih410 STiH410: Add STi SDHCI driver 2017-03-14 20:40:20 -04:00
arch-stm32f1 gpio: stm32_gpio: move base addresses to the soc file 2016-02-24 18:42:50 -05:00
arch-stm32f4 stm32: stm32f4: move flash driver to mtd driver location 2016-03-26 18:49:28 -04:00
arch-stm32f7 ARM: SPI: stm32: add stm32f746 qspi driver 2017-01-28 14:04:50 -05:00
arch-stv0991 stv0991: configure clock & pad muxing for qspi 2015-07-03 13:50:53 +05:30
arch-sunxi sunxi: A64: use H3 DRAM initialization code for A64 as well 2017-01-04 16:37:42 +01:00
arch-tegra mmc: tegra: allow disabling external clock loopback 2017-04-01 15:45:04 -07:00
arch-tegra20 ARM: tegra: use DT bindings for GPIO naming 2016-05-31 09:53:56 -07:00
arch-tegra30 ARM: tegra: use DT bindings for GPIO naming 2016-05-31 09:53:56 -07:00
arch-tegra114 Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
arch-tegra124 Various, unrelated tree-wide typo fixes. 2016-07-16 09:43:12 -04:00
arch-tegra186 ARM: tegra: add core Tegra186 support 2016-05-31 11:22:59 -07:00
arch-tegra210 ARM: tegra: use DT bindings for GPIO naming 2016-05-31 09:53:56 -07:00
arch-vf610 serial: lpuart: restructure lpuart driver 2017-03-17 09:27:08 +01:00
arch-zynqmp net: zynq: Add clk framework support to zynq ethernet driver 2017-02-17 10:22:46 +01:00
armv8 fsl-layerscape/ppa: cleanup ppa.h 2017-03-28 08:59:47 -07:00
imx-common imx6: Add src_base structure define macro 2017-03-17 09:27:08 +01:00
iproc-common arm: add Cygnus and NSP boards 2014-08-30 07:46:40 -04:00
kona-common bcm281xx: add support for "USB OTG clock" 2014-12-29 16:31:23 -05:00
proc-armv ARM: add missing HYP mode constant 2014-07-28 17:06:35 +02:00
ti-common TI: Remove CONFIG_OMAP_COMMON in favor of CONFIG_ARCH_OMAP2 2016-11-21 14:07:29 -05:00
armv7.h ARM: Add an empty secure stack section 2016-07-15 15:54:57 +02:00
armv7m.h stm32: Add SDRAM support for stm32f746 discovery board 2016-07-14 18:22:43 -04:00
assembler.h arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD 2017-03-18 20:28:01 -04:00
atomic.h ARM64: Add support for some of atomic64 operations 2016-10-06 20:57:42 -04:00
barriers.h ARM: Rework and correct barrier definitions 2016-08-05 07:23:57 -04:00
bitops.h arm, ubifs: fix gcc5.x compiler warning 2016-01-20 10:03:58 -05:00
bootm.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
byteorder.h armv8: Use __aarch64__ rather than CONFIG_ARM64 in some cases 2014-01-10 10:10:23 +01:00
cache.h arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD 2017-03-18 20:28:01 -04:00
config.h treewide: move CONFIG_PHYS_64BIT to Kconfig 2016-08-05 07:27:25 -04:00
davinci_rtc.h am33xx, davinci: Create and use <asm/davinci_rtc.h> 2013-11-01 15:30:22 -04:00
dma-mapping.h arm: asm: dma-mapping: added dma_free_coherent API 2015-04-14 05:48:09 +02:00
ehci-omap.h Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
emif.h arm: am33xx: Initialize EMIF REG_PR_OLD_COUNT for BBB and am335x-evm 2016-12-09 15:00:03 -05:00
fsl_secure_boot.h fsl: Secure Boot: Enable IE (Key extention) Feature 2017-03-28 09:03:04 -07:00
gic.h arm64 patch: gicv3 support 2014-04-08 00:15:12 +02:00
global_data.h armv8: Add global variable resv_ram 2017-03-14 08:44:03 -07:00
gpio.h gpio: do not include <asm/arch/gpio.h> for ARCH_STI 2017-03-14 20:40:19 -04:00
hardware.h Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
io.h ARM: Rework and correct barrier definitions 2016-08-05 07:23:57 -04:00
linkage.h arm: adapt asm/linkage.h from Linux 2012-05-15 08:31:26 +02:00
mach-types.h arm: Re-sync with full list of MACH_TYPE_xxx values 2017-01-28 14:04:20 -05:00
macro.h ARMv8: Enable SMC instruction 2016-12-15 11:57:35 -08:00
memory.h Various, accumulated typos collected from around the tree. 2016-10-06 20:57:40 -04:00
omap_common.h ti: common: board_detect: Rename EEPROM scratch start macro 2017-03-20 17:56:22 -04:00
omap_gpio.h gpio: omap: Drop 'method' parameter 2015-08-12 20:48:06 -04:00
omap_mmc.h ARM: OMAP4+: Add support for getting pbias info from board 2016-12-04 13:54:51 -05:00
omap_musb.h drivers: usb: musb: adopt musb backend driver to driver model 2016-12-02 21:04:48 -07:00
omap_sec_common.h arm: omap5: Add TEE loading support 2016-12-03 13:21:21 -05:00
pl310.h arm: socfpga: enable data/inst prefetch and shared override in the L2 2015-10-17 01:47:31 +02:00
posix_types.h armv8: Use __aarch64__ rather than CONFIG_ARM64 in some cases 2014-01-10 10:10:23 +01:00
processor.h Remove ${objtree}/include/asm/proc/ link 2014-06-11 16:27:05 -04:00
psci.h ARMv8: Add basic PSCI framework 2016-12-15 11:57:44 -08:00
ptrace.h Remove ${objtree}/include/asm/proc/ link 2014-06-11 16:27:05 -04:00
sections.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
secure.h ARMv8: Setup PSCI memory and device tree 2016-12-15 11:57:51 -08:00
setjmp.h arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD 2017-03-18 20:28:01 -04:00
setup.h Various, accumulated typos collected from around the tree. 2016-10-06 20:57:40 -04:00
spin_table.h arm64: add better and more generic spin-table support 2016-07-14 18:22:16 -04:00
spl.h spl: Move spl_board_load_image() into a generic header 2016-10-06 14:48:14 -04:00
string.h ARM: revive CONFIG_USE_ARCH_MEMCPY/MEMSET for UniPhier and Tegra 2016-12-27 11:24:15 -05:00
system.h armv8: mmu: Add a function to change mapping attributes 2017-03-14 08:44:03 -07:00
types.h types.h: move and redefine resource_size_t 2016-07-14 18:22:24 -04:00
u-boot-arm.h ls2080: Exit dpaa only right before exiting U-Boot 2016-11-17 14:18:55 +01:00
u-boot.h arm: Drop old non-generic-board code 2015-09-28 10:48:24 -04:00
unaligned.h arm64: core support 2014-01-09 16:08:44 +01:00
unified.h arm: include: Import unified.h from Linux kernel 2016-06-02 21:21:43 -04:00
utils.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00