u-boot/arch/arm
Siarhei Siamashka b19236fd1c sunxi: Increase SPL header size to 64 bytes to avoid code corruption
The current SPL header, created by the 'mksunxiboot' tool, has size
32 bytes. But the code in the boot ROM stores the information about
the boot media at the offset 0x28 before passing control to the SPL.
For example, when booting from the SD card, the magic number written
by the boot ROM is 0. And when booting from the SPI flash, the magic
number is 3. NAND and eMMC probably have their own special magic
numbers too.

Currently the corrupted byte is a part of one of the instructions in
the reset vectors table:

    b     reset
    ldr   pc, _undefined_instruction
    ldr   pc, _software_interrupt      <- Corruption happens here
    ldr   pc, _prefetch_abort
    ldr   pc, _data_abort
    ldr   pc, _not_used
    ldr   pc, _irq
    ldr   pc, _fiq

In practice this does not cause any visible problems, but it's still
better to fix it. As a bonus, the reported boot media type can be
later used in the 'spl_boot_device' function, but this is out of
the scope of this patch.

Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-05-25 17:52:39 +02:00
..
cpu Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq 2016-05-24 13:42:03 -04:00
dts Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq 2016-05-24 13:42:03 -04:00
imx-common imx: imx-common: print i.MX 7 SoC names consistently 2016-05-17 17:52:20 +02:00
include sunxi: Increase SPL header size to 64 bytes to avoid code corruption 2016-05-25 17:52:39 +02:00
lib Change my mailaddress 2016-05-02 18:37:09 -04:00
mach-at91 ARM: sama5d2: Implement boot device autodetection 2016-05-24 08:08:37 +02:00
mach-bcm283x rpi: remove redundant board files 2016-04-11 20:48:23 -04:00
mach-davinci arm: Add support for LEGO MINDSTORMS EV3 2016-03-14 19:18:40 -04:00
mach-exynos Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
mach-highbank ARM: highbank: move SoC sources to mach-highbank 2015-02-21 08:23:51 -05:00
mach-integrator integrator: switch to DM serial port 2015-08-12 20:47:49 -04:00
mach-keystone ARM: keystone2: Add missing privilege ID settings 2016-04-01 17:17:40 -04:00
mach-kirkwood configs: Re-sync with cmd/Kconfig 2016-04-25 15:09:47 -04:00
mach-mvebu configs: Re-sync with cmd/Kconfig 2016-04-25 15:09:47 -04:00
mach-orion5x Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
mach-rockchip Revert "rockchip: rk3288: correct sdram setting" 2016-05-02 13:33:18 -04:00
mach-s5pc1xx arm: s5pc1xx: move SoC to mach-s5pc1xx 2015-11-30 17:17:01 +09:00
mach-snapdragon board: Add Qualcomm Dragonboard 410C support 2016-04-01 17:18:27 -04:00
mach-socfpga socfpga: fix broken build if CONFIG_ETH_DESIGNWARE disabled 2016-05-06 18:41:49 +02:00
mach-stm32 stm32: stm32f4: move flash driver to mtd driver location 2016-03-26 18:49:28 -04:00
mach-sunxi sunxi: power: add AXP809 support 2016-05-25 17:52:39 +02:00
mach-tegra ARM: tegra: enable GPU node by compatible value 2016-05-04 13:31:03 -07:00
mach-uniphier Fix various typos, scattered over the code. 2016-05-05 21:39:26 -04:00
mach-versatile arm: Remove versatileab board 2015-09-11 15:01:25 -04:00
mach-zynq ARM: zynq: Simplify zynq configuration 2016-05-24 13:22:50 +02:00
thumb1/include/asm/proc-armv arm: support Thumb-1 with CONFIG_SYS_THUMB_BUILD 2015-11-10 15:03:48 +01:00
config.mk arm: clang: Update support slightly 2016-04-01 17:17:39 -04:00
Kconfig ARM64: zynqmp: Add SPL support support 2016-05-24 11:15:01 +02:00
Kconfig.debug arm: debug: add Kconfig entries for lowlevel debug 2014-10-26 22:23:12 +01:00
Makefile arm: Add support for Qualcomm Snapdragon family 2016-04-01 17:18:26 -04:00