u-boot/arch/arm
Michal Simek 24124abe06 arm64: zynqmp: Add support for generic QSPI boot
This patch is enabling support for SPL QSPI boot.

First of all it is necessary to generate atf-spi.ub which is different
format than atf-uboot.ub (this can be made as legacy image too)

ADDR=`arm-xilinx-linux-gnueabi-readelf -a bl31.elf | grep "Entry point
address" | cut -d ':' -f 2 | sed -e 's/^[ \t]*//'`
aarch64-linux-gnu-objcopy -O binary bl31.elf bl31.bin
./tools/mkimage -f auto -A arm64 -T firmware -C none -O u-boot -a $ADDR
-e $ADDR -n "atf1" -E -b arch/arm/dts/zynqmp-zcu102.dtb -d bl31.bin
atf-uboot.ub
./tools/mkimage -A arm64 -T firmware -C none -O u-boot -a $ADDR -e $ADDR
-n "atf-for-qspi" -E -d bl31.bin atf-spi.ub

This patch is using this QSPI layout with offsets:
0 boot.bin
512k atf-ub
640k u-boot.bin
1280k u-boot.img

Which corresponding by writing these images(read from MMC)
mmcinfo
sf probe
load mmc 0 10000000 boot.bin
sf erase 0 +$filesize
sf write 10000000 0 $filesize
load mmc 0 10000000 atf-spi.ub
sf erase 0x80000 +$filesize
sf write 10000000 0x80000 $filesize
load mmc 0 10000000 u-boot.bin
sf erase 0xa0000 +$filesize
sf write 10000000 0xa0000 $filesize
load mmc 0 10000000 u-boot.img
sf erase 0x140000 +$filesize
sf write 10000000 0x140000 $filesize

For testing u-boot running in EL3 you can break atf-spi.ub like this:
sf probe
sf erase 0x80000 +4

Then u-boot.img is executed.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-12-14 20:08:21 +01:00
..
cpu ata: Migrate CONFIG_SCSI_AHCI to Kconfig 2017-12-12 18:13:19 -05:00
dts arm64: zynqmp: Add support for generic QSPI boot 2017-12-14 20:08:21 +01:00
include ARM: pxa: Remove unused ifdefs 2017-12-12 21:34:10 -05:00
lib armv8: fix gd after relocation 2017-12-07 17:00:06 -05:00
mach-aspeed aspeed: Refactor SCU to use consistent mask & shift 2017-05-08 11:57:35 -04:00
mach-at91 board: laird: add WB50N CPU module 2017-11-29 22:36:59 -05:00
mach-bcm283x add support for Raspberry Pi Zero W 2017-12-04 09:59:02 -05:00
mach-davinci ARM: davinci: Remove CONFIG_SOC_DA830 2017-09-15 12:35:48 -04:00
mach-exynos usb: net: migrate USB Ethernet adapters to Kconfig 2017-09-08 10:23:00 -04:00
mach-highbank ARM: highbank: move SoC sources to mach-highbank 2015-02-21 08:23:51 -05:00
mach-imx i.MX6: engicam: Add imx6q/imx6ul boards for existing boards 2017-11-27 10:36:40 +01:00
mach-integrator env: Convert CONFIG_ENV_IS_IN... to a choice 2017-08-15 20:50:01 -04:00
mach-keystone env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
mach-kirkwood ata: Migrate CONFIG_MVSATA_IDE to Kconfig 2017-12-12 18:16:06 -05:00
mach-meson ARM: arch-meson: build memory banks using reported memory from registers 2017-12-04 10:17:29 -05:00
mach-mvebu arm: mvebu: enable boot from NAND 2017-11-30 08:30:27 +01:00
mach-omap2 Merge git://git.denx.de/u-boot-uniphier 2017-12-04 10:24:35 -05:00
mach-orion5x spl: add hierarchical defaults for SPL_LDSCRIPT 2017-08-13 17:12:37 +02:00
mach-qemu ARM: Add a new arch + board for QEMU's 'virt' machine 2017-10-06 11:28:16 -04:00
mach-rmobile ARM: rmobile: Convert PRR to DM and OF control 2017-11-30 02:34:21 +01:00
mach-rockchip rockchip: rk3036: sdram: correct setting for pll integer mode 2017-11-30 22:55:27 +01:00
mach-s5pc1xx arm: s5pc1xx: move SoC to mach-s5pc1xx 2015-11-30 17:17:01 +09:00
mach-snapdragon dm: Rename dev_addr..() functions 2017-06-01 07:03:01 -06:00
mach-socfpga socfpga: boot0 hook: adjust to unified boot0 semantics 2017-11-21 23:57:21 +01:00
mach-sti board: Add STMicroelectronics STiH410-B2260 support 2017-03-14 20:40:21 -04:00
mach-stm32 mach-stm32: Factorize MPU's region config for STM32 SoCs 2017-11-29 22:30:50 -05:00
mach-sunxi sunxi: video: add LCD support to DE2 driver 2017-10-27 09:44:48 +02:00
mach-tegra treewide: replace with error() with pr_err() 2017-10-04 11:59:44 -04:00
mach-uniphier ARM: uniphier: use FIELD_PREP for PLL settings 2017-12-12 00:36:12 +09:00
mach-versatile arm: Remove versatileab board 2015-09-11 15:01:25 -04:00
mach-zynq mtd: zynq: nand: Move board_nand_init() function to board.c 2017-11-29 08:02:40 +01: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: Make gcc 6.0 or later a hard requirement now. 2017-12-04 10:23:53 -05:00
Kconfig ata: Migrate CONFIG_SCSI_AHCI to Kconfig 2017-12-12 18:13:19 -05:00
Kconfig.debug arm: debug: add Kconfig entries for lowlevel debug 2014-10-26 22:23:12 +01:00
Makefile imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00