[PATCH 2/2] xilinx: zynqmp: Enable DFU tftp support

Michal Simek monstr at monstr.eu
Fri Jul 24 14:18:39 CEST 2020


st 15. 7. 2020 v 15:51 odesílatel Michal Simek <michal.simek at xilinx.com> napsal:
>
> Enable DFU tftp support for firmware update. Fill dfu_ram_tftp variable to
> have command present for showing how to use it.
>
> boot FIT image has been created from below fragment. Key part is that type
> of image has to be firmware. Also based on experiment load property is
> completely ignored and base addresses are taken from dfu_alt_info variable.
>
> $ cat update_uboot.its
> /dts-v1/;
>
> / {
>         description = "Automatic U-Boot update";
>         #address-cells = <1>;
>
>         images {
>                 Image {
>                         description = "Kernel";
>                         data = /incbin/("/tftpboot/Image");
>                         compression = "none";
>                         arch = "arm64";
>                         type = "firmware";
>                         os = "linux";
>                         load = <0x80000>;
>                         entry = <0x80000>;
>                         hash-1 {
>                                 algo = "sha1";
>                         };
>                 };
>                 system.dtb {
>                         description = "DTB";
>                         data = /incbin/("/tftpboot/system.dtb");
>                         compression = "none";
>                         arch = "arm64";
>                         type = "firmware";
>                         load = <0>;
>                         hash-1 {
>                                 algo = "sha1";
>                         };
>                 };
>         };
> };
>
> $ mkimage -f update_uboot.its /tftpboot/boot
>
> When U-Boot starts get IP address and server IP.
> dhcp
> setenv serverip 192.168.0.105
>
> And then run prepared command.
> run dfu_ram_tftp
>
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> ---
>
>  configs/xilinx_zynqmp_virt_defconfig | 1 +
>  include/configs/xilinx_zynqmp.h      | 4 +++-
>  2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/configs/xilinx_zynqmp_virt_defconfig b/configs/xilinx_zynqmp_virt_defconfig
> index d77ba051624e..2d84f0c04e12 100644
> --- a/configs/xilinx_zynqmp_virt_defconfig
> +++ b/configs/xilinx_zynqmp_virt_defconfig
> @@ -69,6 +69,7 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_SCSI_AHCI=y
>  CONFIG_SATA_CEVA=y
>  CONFIG_CLK_ZYNQMP=y
> +CONFIG_DFU_TFTP=y
>  CONFIG_DFU_RAM=y
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
> index 86f292761b38..f45a1a2272d3 100644
> --- a/include/configs/xilinx_zynqmp.h
> +++ b/include/configs/xilinx_zynqmp.h
> @@ -61,7 +61,9 @@
>         "Image ram 80000 $kernel_size_r\\\\;" \
>         "system.dtb ram $fdt_addr_r $fdt_size_r\0" \
>         "dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
> -       "thor_ram=run dfu_ram_info && thordown 0 ram 0\0"
> +       "thor_ram=run dfu_ram_info && thordown 0 ram 0\0" \
> +       "dfu_ram_tftp=run dfu_ram_info && setenv updatefile boot && " \
> +       "setenv loadaddr 10000000 && dfu tftp ram 0\0"
>
>  #define DFU_ALT_INFO  \
>                 DFU_ALT_INFO_RAM
> --
> 2.27.0
>

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