[PATCH] arm64: zynqmp: Enable capsule update
Michal Simek
monstr at monstr.eu
Thu Apr 29 10:03:34 CEST 2021
po 26. 4. 2021 v 13:08 odesílatel Michal Simek <michal.simek at xilinx.com> napsal:
>
> Enable EFI capsule update features to be enabled by default also with all
> dfu valid options for ZynqMP.
>
> This feature was tested on Xilinx ZynqMP zcu104 board with defining
> dfu_alt_info="mmc 0:1=boot.bin fat 0 1;u-boot.itb fat 0 1"
> and
> dfu_alt_info="sf 0:0=boot.bin raw 0 0x50000;u-boot.itb raw 0x80000
> 0x500000".
>
> There is a need to increase malloc size for getting dfu mmc to work.
>
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> CC: Sughosh Ganu <sughosh.ganu at linaro.org>
> CC: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> CC: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
>
> I actually didn't try to boot out of qspi because qspi writing is likely
> broken and should be fixed. But I have checked that images are written to
> that previously erased locations.
>
> U-Boot SPL 2021.04-00978-g76a8101e4548 (Apr 26 2021 - 13:01:46 +0200)
> PMUFW: v1.1
> Loading new PMUFW cfg obj (2024 bytes)
> Silicon version: 3
> EL Level: EL3
> Chip ID: zu7e
> Multiboot: 0
> Trying to boot from MMC2
> spl: could not initialize mmc. error: -19
> Trying to boot from MMC1
> spl_load_image_fat_os: error reading image u-boot.bin, err - -2
> NOTICE: ATF running on XCZU7EG/EV/silicon v4/RTL5.1 at 0xfffea000
> NOTICE: BL31: v2.2(release):xilinx-v2020.2.2-k26
> NOTICE: BL31: Built : 11:51:16, Apr 21 2021
>
> U-Boot 2021.04-00978-g76a8101e4548 (Apr 26 2021 - 13:01:46 +0200)
>
> Model: ZynqMP ZCU104 RevC
> Board: Xilinx ZynqMP
> DRAM: 2 GiB
> PMUFW: v1.1
> EL Level: EL2
> Chip ID: zu7e
> WDT: Started with servicing (60s timeout)
> NAND: 0 MiB
> MMC: mmc at ff170000: 0
> Loading Environment from FAT... OK
> In: serial
> Out: serial
> Err: serial
> Net:
> ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id
> eth0: ethernet at ff0e0000
> Scanning disk mmc at ff170000.blk...
> Found 4 disks
> ##Hit any key to stop autoboot: 0
> ZynqMP> reset
> resetting ...
>
> U-Boot SPL 2021.04-00978-g01e9f0ec63e4 (Apr 26 2021 - 13:04:48 +0200)
> PMUFW: v1.1
> Loading new PMUFW cfg obj (2024 bytes)
> Silicon version: 3
> EL Level: EL3
> Chip ID: zu7e
> Multiboot: 0
> Trying to boot from MMC2
> spl: could not initialize mmc. error: -19
> Trying to boot from MMC1
> spl_load_image_fat_os: error reading image u-boot.bin, err - -2
> NOTICE: ATF running on XCZU7EG/EV/silicon v4/RTL5.1 at 0xfffea000
> NOTICE: BL31: v2.2(release):xilinx-v2020.2.2-k26
> NOTICE: BL31: Built : 11:51:16, Apr 21 2021
>
> U-Boot 2021.04-00978-g01e9f0ec63e4 (Apr 26 2021 - 13:04:48 +0200)
>
> Model: ZynqMP ZCU104 RevC
> Board: Xilinx ZynqMP
> DRAM: 2 GiB
> PMUFW: v1.1
> EL Level: EL2
> Chip ID: zu7e
> WDT: Started with servicing (60s timeout)
> NAND: 0 MiB
> MMC: mmc at ff170000: 0
> Loading Environment from FAT... OK
> In: serial
> Out: serial
> Err: serial
> Net:
> ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id
> eth0: ethernet at ff0e0000
> Scanning disk mmc at ff170000.blk...
> Found 4 disks
> Hit any key to stop autoboot: 0
> ZynqMP>
>
> ---
> configs/xilinx_zynqmp_virt_defconfig | 9 +++++++++
> include/configs/xilinx_zynqmp.h | 2 +-
> 2 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/configs/xilinx_zynqmp_virt_defconfig b/configs/xilinx_zynqmp_virt_defconfig
> index 89c1dae2a1d9..9c496098584f 100644
> --- a/configs/xilinx_zynqmp_virt_defconfig
> +++ b/configs/xilinx_zynqmp_virt_defconfig
> @@ -86,7 +86,11 @@ CONFIG_SATA_CEVA=y
> CONFIG_CLK_ZYNQMP=y
> CONFIG_DFU_TFTP=y
> CONFIG_DFU_TIMEOUT=y
> +CONFIG_DFU_MMC=y
> +CONFIG_DFU_NAND=y
> CONFIG_DFU_RAM=y
> +CONFIG_DFU_SF=y
> +CONFIG_DFU_MTD=y
> CONFIG_USB_FUNCTION_FASTBOOT=y
> CONFIG_FASTBOOT_FLASH=y
> CONFIG_FASTBOOT_FLASH_MMC_DEV=0
> @@ -178,3 +182,8 @@ CONFIG_TPM=y
> CONFIG_SPL_GZIP=y
> # CONFIG_SPL_HEXDUMP is not set
> CONFIG_OF_LIBFDT_OVERLAY=y
> +CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
> +CONFIG_EFI_CAPSULE_ON_DISK=y
> +CONFIG_EFI_CAPSULE_ON_DISK_EARLY=y
> +CONFIG_EFI_CAPSULE_FIRMWARE_FIT=y
> +CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
> diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
> index 36f3d962e417..986af2be7819 100644
> --- a/include/configs/xilinx_zynqmp.h
> +++ b/include/configs/xilinx_zynqmp.h
> @@ -27,7 +27,7 @@
> #endif
>
> /* Size of malloc() pool */
> -#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 0x2000000)
> +#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 0x4000000)
>
> /* Serial setup */
> #define CONFIG_CPU_ARMV8
> --
> 2.31.1
>
Applied.
M
--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs
More information about the U-Boot
mailing list