ARM: sama5d2: Implement boot device autodetection
authorMarek Vasut <marex@denx.de>
Fri, 22 Apr 2016 19:56:21 +0000 (21:56 +0200)
committerAndreas Bießmann <andreas@biessmann.org>
Tue, 24 May 2016 06:08:37 +0000 (08:08 +0200)
commitbb0c63a5f3b05770e8cb6171be57ca69995bd447
treeb5cfe93f0e4932dfb757a9df66deecc8804227d8
parent12328f25f257c347c79562ebc7f66c1a0f48bc2b
ARM: sama5d2: Implement boot device autodetection

Implement support for saving ARM register R4 early during boot using
save_boot_params . Implement support for decoding the stored register
R4 value in spl_boot_device() to obtain boot device from which the
SoC booted. This way, the SPL will always load U-Boot from the same
device from which the SPL itself booted instead of using hard-coded
boot device.

This functionality is useful for example when booting sama5d2-xplained
from SD card, where by default the SPL would try loading the U-Boot
from eMMC and fail. This is because eMMC is on SDHCI0 (BOOT_DEVICE_MMC1),
while SD slot is on SDHCI1 (BOOT_DEVICE_MMC2) and the SPL was hard-wired
to always boot from BOOT_DEVICE_MMC1.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Andreas Bießmann <andreas.devel@googlemail.com>
Cc: Wenyou Yang <wenyou.yang@atmel.com>
Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
arch/arm/mach-at91/Makefile
arch/arm/mach-at91/bootparams_atmel.S [new file with mode: 0644]
arch/arm/mach-at91/include/mach/sama5d2.h
arch/arm/mach-at91/spl.c