st 15. 7. 2020 v 15:51 odesÃlatel Michal Simek <michal.si...@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.si...@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