ARM: zynq: Enable capsule update for qspi and mmc
authorMichal Simek <michal.simek@xilinx.com>
Fri, 27 Aug 2021 10:53:32 +0000 (12:53 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 30 Sep 2021 10:26:25 +0000 (12:26 +0200)
commitc67fecd2125b43cd478d64c741772d11323d7b6d
tree83f086ec5e7ee14aaba2567dbe07d390524193a9
parent67ae2897235e516d8fa9ab3f296a1caf40f6ebee
ARM: zynq: Enable capsule update for qspi and mmc

Generate dfu_alt_info setup at runtime for capsule update.
Enabling this feature will help with upgrading boards without remembering
what is where.

The similar change was done for ZynqMP by commit b86f43de0be0 ("xilinx:
zynqmp: Add support for runtime dfu_alt_info setup").
Code needs to be enabled by CONFIG_SET_DFU_ALT_INFO.

And also enable capsule on disk for RAW firmware images with efidebug
command.

Two indexes are supported for SPL flow. Images can be generated like:
./tools/mkeficapsule --raw spl/boot.bin --index 1 capsule1.bin
./tools/mkeficapsule --raw u-boot.img --index 2 capsule2.bin

Then place them to SD card and load them:
load mmc 0 10000000 capsule1.bin && efidebug capsule update -v 10000000
load mmc 0 10000000 capsule2.bin && efidebug capsule update -v 10000000

FSBL flow will also work where only index 1 capsule is used. There
should be enough space for using boot.bin with bitstream too.

Zynq also support multiple boot locations in SPI or MMC but it is not wired
by this patch.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/bea5fc75a87a5971f118b46bab4aa7ca39a629c6.1630061610.git.michal.simek@xilinx.com
board/xilinx/zynq/board.c
configs/xilinx_zynq_virt_defconfig