]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
xilinx: zynqmp: Enable DFU tftp support
authorMichal Simek <michal.simek@xilinx.com>
Wed, 15 Jul 2020 12:20:34 +0000 (14:20 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 20 Aug 2020 07:49:20 +0000 (09:49 +0200)
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@xilinx.com>
configs/xilinx_zynqmp_virt_defconfig
include/configs/xilinx_zynqmp.h

index 7ed88ae09403b93677e426788a725777175d1584..a0984c8045346ceed535917c241312f9dd5abe8f 100644 (file)
@@ -66,6 +66,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
index bbcdc48c749a6032cddd9838dc8b4f3f52838c87..7c24bf632e3f4b3f991f9d9745b42dacd12c5b95 100644 (file)
@@ -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