[U-Boot] [PATCH v3 0/2] ARM: ti: DFU environment consolidation + AM57x DFU

This patch series consolidates DFU environment variables into newly created include/environment/ti/dfu.h
Then goes on to add DFU support for AM57x GP EVM.
Build tested using the following buildman command:
$ tools/buildman/buildman -j 16 -b dfu -c 2 -o test am33xx omap
v2 -> v3 Rebase against latest master, drop 1/3 in the process.
v1 submission here: https://www.mail-archive.com/u-boot@lists.denx.de/msg222838.html
Sekhar Nori (2): ARM: ti: consolidate dfu environment variables ARM: am57xx_evm: enable DFU support
configs/am57xx_evm_defconfig | 3 ++ configs/am57xx_hs_evm_defconfig | 3 ++ include/configs/am335x_evm.h | 33 +----------------- include/configs/am43xx_evm.h | 34 ++----------------- include/configs/am57xx_evm.h | 8 +++++ include/configs/dra7xx_evm.h | 51 ++-------------------------- include/configs/omap5_uevm.h | 37 ++------------------ include/environment/ti/dfu.h | 75 +++++++++++++++++++++++++++++++++++++++++ 8 files changed, 96 insertions(+), 148 deletions(-) create mode 100644 include/environment/ti/dfu.h

Introduce include/environment/ti/dfu.h that consolidates environment variable definitions for various TI boards that support DFU today.
Tested on AM335x EVM, AM437x SK EVM and DRA74x EVM by using DFU to write to SD card.
Signed-off-by: Sekhar Nori nsekhar@ti.com --- include/configs/am335x_evm.h | 33 +------------------ include/configs/am43xx_evm.h | 34 ++------------------ include/configs/dra7xx_evm.h | 51 ++---------------------------- include/configs/omap5_uevm.h | 37 ++-------------------- include/environment/ti/dfu.h | 75 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 82 insertions(+), 148 deletions(-) create mode 100644 include/environment/ti/dfu.h
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h index 8fa8e39f71e4..27d26af6f1c8 100644 --- a/include/configs/am335x_evm.h +++ b/include/configs/am335x_evm.h @@ -17,6 +17,7 @@ #define __CONFIG_AM335X_EVM_H
#include <configs/ti_am335x_common.h> +#include <environment/ti/dfu.h>
#ifndef CONFIG_SPL_BUILD # define CONFIG_TIMESTAMP @@ -330,38 +331,6 @@
/* USB Device Firmware Update support */ #ifndef CONFIG_SPL_BUILD -#define DFU_ALT_INFO_MMC \ - "dfu_alt_info_mmc=" \ - "boot part 0 1;" \ - "rootfs part 0 2;" \ - "MLO fat 0 1;" \ - "MLO.raw raw 0x100 0x100;" \ - "u-boot.img.raw raw 0x300 0x400;" \ - "spl-os-args.raw raw 0x80 0x80;" \ - "spl-os-image.raw raw 0x900 0x2000;" \ - "spl-os-args fat 0 1;" \ - "spl-os-image fat 0 1;" \ - "u-boot.img fat 0 1;" \ - "uEnv.txt fat 0 1\0" -#ifdef CONFIG_NAND -#define DFU_ALT_INFO_NAND \ - "dfu_alt_info_nand=" \ - "SPL part 0 1;" \ - "SPL.backup1 part 0 2;" \ - "SPL.backup2 part 0 3;" \ - "SPL.backup3 part 0 4;" \ - "u-boot part 0 5;" \ - "u-boot-spl-os part 0 6;" \ - "kernel part 0 8;" \ - "rootfs part 0 9\0" -#else -#define DFU_ALT_INFO_NAND "" -#endif -#define DFU_ALT_INFO_RAM \ - "dfu_alt_info_ram=" \ - "kernel ram 0x80200000 0xD80000;" \ - "fdt ram 0x80F80000 0x80000;" \ - "ramdisk ram 0x81000000 0x4000000\0" #define DFUARGS \ "dfu_alt_info_emmc=rawemmc raw 0 3751936\0" \ DFU_ALT_INFO_MMC \ diff --git a/include/configs/am43xx_evm.h b/include/configs/am43xx_evm.h index 0a6c06a4bba2..6416d55c4250 100644 --- a/include/configs/am43xx_evm.h +++ b/include/configs/am43xx_evm.h @@ -14,6 +14,7 @@ #define CONFIG_MAX_RAM_BANK_SIZE (1024 << 21) /* 2GB */ #define CONFIG_SYS_TIMERBASE 0x48040000 /* Use Timer2 */
+#include <environment/ti/dfu.h> #include <asm/arch/omap.h>
/* NS16550 Configuration */ @@ -122,43 +123,12 @@
#ifndef CONFIG_SPL_BUILD /* USB Device Firmware Update support */ - -#define DFU_ALT_INFO_MMC \ - "dfu_alt_info_mmc=" \ - "boot part 0 1;" \ - "rootfs part 0 2;" \ - "MLO fat 0 1;" \ - "spl-os-args fat 0 1;" \ - "spl-os-image fat 0 1;" \ - "u-boot.img fat 0 1;" \ - "uEnv.txt fat 0 1\0" - -#define DFU_ALT_INFO_EMMC \ - "dfu_alt_info_emmc=" \ - "MLO raw 0x100 0x100 mmcpart 0;" \ - "u-boot.img raw 0x300 0x1000 mmcpart 0\0" - -#define DFU_ALT_INFO_RAM \ - "dfu_alt_info_ram=" \ - "kernel ram 0x80200000 0x4000000;" \ - "fdt ram 0x80f80000 0x80000;" \ - "ramdisk ram 0x81000000 0x4000000\0" - -#define DFU_ALT_INFO_QSPI \ - "dfu_alt_info_qspi=" \ - "u-boot.bin raw 0x0 0x080000;" \ - "u-boot.backup raw 0x080000 0x080000;" \ - "u-boot-spl-os raw 0x100000 0x010000;" \ - "u-boot-env raw 0x110000 0x010000;" \ - "u-boot-env.backup raw 0x120000 0x010000;" \ - "kernel raw 0x130000 0x800000\0" - #define DFUARGS \ "dfu_bufsiz=0x10000\0" \ DFU_ALT_INFO_MMC \ DFU_ALT_INFO_EMMC \ DFU_ALT_INFO_RAM \ - DFU_ALT_INFO_QSPI + DFU_ALT_INFO_QSPI_XIP #else #define DFUARGS #endif diff --git a/include/configs/dra7xx_evm.h b/include/configs/dra7xx_evm.h index 1834d04afde3..1236ed8d247e 100644 --- a/include/configs/dra7xx_evm.h +++ b/include/configs/dra7xx_evm.h @@ -12,6 +12,8 @@ #ifndef __CONFIG_DRA7XX_EVM_H #define __CONFIG_DRA7XX_EVM_H
+#include <environment/ti/dfu.h> + #define CONFIG_DRA7XX #define CONFIG_BOARD_EARLY_INIT_F
@@ -69,50 +71,6 @@ "name=ipu2,size=1M,uuid=${uuid_gpt_ipu2};" \ "name=userdata,size=-,uuid=${uuid_gpt_userdata}"
-#define DFU_ALT_INFO_MMC \ - "dfu_alt_info_mmc=" \ - "boot part 0 1;" \ - "rootfs part 0 2;" \ - "MLO fat 0 1;" \ - "MLO.raw raw 0x100 0x100;" \ - "u-boot.img.raw raw 0x300 0x400;" \ - "spl-os-args.raw raw 0x80 0x80;" \ - "spl-os-image.raw raw 0x900 0x2000;" \ - "spl-os-args fat 0 1;" \ - "spl-os-image fat 0 1;" \ - "u-boot.img fat 0 1;" \ - "uEnv.txt fat 0 1\0" - -#define DFU_ALT_INFO_EMMC \ - "dfu_alt_info_emmc=" \ - "rawemmc raw 0 3751936;" \ - "boot part 1 1;" \ - "rootfs part 1 2;" \ - "MLO fat 1 1;" \ - "MLO.raw raw 0x100 0x100;" \ - "u-boot.img.raw raw 0x300 0x400;" \ - "spl-os-args.raw raw 0x80 0x80;" \ - "spl-os-image.raw raw 0x900 0x2000;" \ - "spl-os-args fat 1 1;" \ - "spl-os-image fat 1 1;" \ - "u-boot.img fat 1 1;" \ - "uEnv.txt fat 1 1\0" - -#define DFU_ALT_INFO_RAM \ - "dfu_alt_info_ram=" \ - "kernel ram 0x80200000 0x4000000;" \ - "fdt ram 0x80f80000 0x80000;" \ - "ramdisk ram 0x81000000 0x4000000\0" - -#define DFU_ALT_INFO_QSPI \ - "dfu_alt_info_qspi=" \ - "MLO raw 0x0 0x040000;" \ - "u-boot.img raw 0x040000 0x0100000;" \ - "u-boot-spl-os raw 0x140000 0x080000;" \ - "u-boot-env raw 0x1C0000 0x010000;" \ - "u-boot-env.backup raw 0x1D0000 0x010000;" \ - "kernel raw 0x1E0000 0x800000\0" - #define DFUARGS \ "dfu_bufsiz=0x10000\0" \ DFU_ALT_INFO_MMC \ @@ -135,11 +93,6 @@ #ifdef CONFIG_SPL_DFU_SUPPORT #define CONFIG_SPL_LOAD_FIT_ADDRESS 0x80200000 #define CONFIG_SPL_HASH_SUPPORT -#define DFU_ALT_INFO_RAM \ - "dfu_alt_info_ram=" \ - "kernel ram 0x80200000 0x4000000;" \ - "fdt ram 0x80f80000 0x80000;" \ - "ramdisk ram 0x81000000 0x4000000\0" #define DFUARGS \ "dfu_bufsiz=0x10000\0" \ DFU_ALT_INFO_RAM diff --git a/include/configs/omap5_uevm.h b/include/configs/omap5_uevm.h index 22614fb9c3a0..736d8043aae3 100644 --- a/include/configs/omap5_uevm.h +++ b/include/configs/omap5_uevm.h @@ -12,6 +12,8 @@ #ifndef __CONFIG_OMAP5_EVM_H #define __CONFIG_OMAP5_EVM_H
+#include <environment/ti/dfu.h> + #ifndef CONFIG_SPL_BUILD /* Define the default GPT table for eMMC */ #define PARTS_DEFAULT \ @@ -19,41 +21,6 @@ "name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}" #endif
-#define DFU_ALT_INFO_MMC \ - "dfu_alt_info_mmc=" \ - "boot part 0 1;" \ - "rootfs part 0 2;" \ - "MLO fat 0 1;" \ - "MLO.raw raw 0x100 0x100;" \ - "u-boot.img.raw raw 0x300 0x400;" \ - "spl-os-args.raw raw 0x80 0x80;" \ - "spl-os-image.raw raw 0x900 0x2000;" \ - "spl-os-args fat 0 1;" \ - "spl-os-image fat 0 1;" \ - "u-boot.img fat 0 1;" \ - "uEnv.txt fat 0 1\0" - -#define DFU_ALT_INFO_EMMC \ - "dfu_alt_info_emmc=" \ - "rawemmc raw 0 3751936;" \ - "boot part 1 1;" \ - "rootfs part 1 2;" \ - "MLO fat 1 1;" \ - "MLO.raw raw 0x100 0x100;" \ - "u-boot.img.raw raw 0x300 0x400;" \ - "spl-os-args.raw raw 0x80 0x80;" \ - "spl-os-image.raw raw 0x900 0x2000;" \ - "spl-os-args fat 1 1;" \ - "spl-os-image fat 1 1;" \ - "u-boot.img fat 1 1;" \ - "uEnv.txt fat 1 1\0" - -#define DFU_ALT_INFO_RAM \ - "dfu_alt_info_ram=" \ - "kernel ram 0x80200000 0x4000000;" \ - "fdt ram 0x80f80000 0x80000;" \ - "ramdisk ram 0x81000000 0x4000000\0" - #define DFUARGS \ "dfu_bufsiz=0x10000\0" \ DFU_ALT_INFO_MMC \ diff --git a/include/environment/ti/dfu.h b/include/environment/ti/dfu.h new file mode 100644 index 000000000000..caf71a3fe630 --- /dev/null +++ b/include/environment/ti/dfu.h @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com + * + * Environment variable definitions for DFU on TI boards. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#define DFU_ALT_INFO_MMC \ + "dfu_alt_info_mmc=" \ + "boot part 0 1;" \ + "rootfs part 0 2;" \ + "MLO fat 0 1;" \ + "MLO.raw raw 0x100 0x100;" \ + "u-boot.img.raw raw 0x300 0x400;" \ + "spl-os-args.raw raw 0x80 0x80;" \ + "spl-os-image.raw raw 0x900 0x2000;" \ + "spl-os-args fat 0 1;" \ + "spl-os-image fat 0 1;" \ + "u-boot.img fat 0 1;" \ + "uEnv.txt fat 0 1\0" + +#define DFU_ALT_INFO_EMMC \ + "dfu_alt_info_emmc=" \ + "rawemmc raw 0 3751936;" \ + "boot part 1 1;" \ + "rootfs part 1 2;" \ + "MLO fat 1 1;" \ + "MLO.raw raw 0x100 0x100;" \ + "u-boot.img.raw raw 0x300 0x1000;" \ + "spl-os-args.raw raw 0x80 0x80;" \ + "spl-os-image.raw raw 0x900 0x2000;" \ + "spl-os-args fat 1 1;" \ + "spl-os-image fat 1 1;" \ + "u-boot.img fat 1 1;" \ + "uEnv.txt fat 1 1\0" + +#ifdef CONFIG_NAND +#define DFU_ALT_INFO_NAND \ + "dfu_alt_info_nand=" \ + "SPL part 0 1;" \ + "SPL.backup1 part 0 2;" \ + "SPL.backup2 part 0 3;" \ + "SPL.backup3 part 0 4;" \ + "u-boot part 0 5;" \ + "u-boot-spl-os part 0 6;" \ + "kernel part 0 8;" \ + "rootfs part 0 9\0" +#else +#define DFU_ALT_INFO_NAND "" +#endif + +#define DFU_ALT_INFO_RAM \ + "dfu_alt_info_ram=" \ + "kernel ram 0x80200000 0x4000000;" \ + "fdt ram 0x80f80000 0x80000;" \ + "ramdisk ram 0x81000000 0x4000000\0" + +#define DFU_ALT_INFO_QSPI_XIP \ + "dfu_alt_info_qspi=" \ + "u-boot.bin raw 0x0 0x080000;" \ + "u-boot.backup raw 0x080000 0x080000;" \ + "u-boot-spl-os raw 0x100000 0x010000;" \ + "u-boot-env raw 0x110000 0x010000;" \ + "u-boot-env.backup raw 0x120000 0x010000;" \ + "kernel raw 0x130000 0x800000\0" + +#define DFU_ALT_INFO_QSPI \ + "dfu_alt_info_qspi=" \ + "MLO raw 0x0 0x040000;" \ + "u-boot.img raw 0x040000 0x0100000;" \ + "u-boot-spl-os raw 0x140000 0x080000;" \ + "u-boot-env raw 0x1C0000 0x010000;" \ + "u-boot-env.backup raw 0x1D0000 0x010000;" \ + "kernel raw 0x1E0000 0x800000\0"

On Fri, Nov 25, 2016 at 02:25:54PM +0530, Sekhar Nori wrote:
Introduce include/environment/ti/dfu.h that consolidates environment variable definitions for various TI boards that support DFU today.
Tested on AM335x EVM, AM437x SK EVM and DRA74x EVM by using DFU to write to SD card.
Signed-off-by: Sekhar Nori nsekhar@ti.com
Reviewed-by: Tom Rini trini@konsulko.com

On Fri, Nov 25, 2016 at 02:25:54PM +0530, Sekhar Nori wrote:
Introduce include/environment/ti/dfu.h that consolidates environment variable definitions for various TI boards that support DFU today.
Tested on AM335x EVM, AM437x SK EVM and DRA74x EVM by using DFU to write to SD card.
Signed-off-by: Sekhar Nori nsekhar@ti.com Reviewed-by: Tom Rini trini@konsulko.com
Applied to u-boot/master, thanks!

AM57xx GP EVM has USB2 port of the SoC exposed as USB client port.
It is useful to be able to use this port for USB DFU downloads.
Enable USB DFU support. Tested on AM57x GP EVM Rev A3 using DFU to download to connected SD card.
configs for HS version of the AM57x EVM are included in the patch but not really tested.
Signed-off-by: Sekhar Nori nsekhar@ti.com --- configs/am57xx_evm_defconfig | 3 +++ configs/am57xx_hs_evm_defconfig | 3 +++ include/configs/am57xx_evm.h | 8 ++++++++ 3 files changed, 14 insertions(+)
diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig index 12d9a1425f88..a7f0fb60301a 100644 --- a/configs/am57xx_evm_defconfig +++ b/configs/am57xx_evm_defconfig @@ -35,6 +35,9 @@ CONFIG_CMD_SF=y CONFIG_CMD_SPI=y CONFIG_CMD_I2C=y CONFIG_CMD_USB=y +CONFIG_CMD_DFU=y +CONFIG_DFU_RAM=y +CONFIG_DFU_MMC=y CONFIG_CMD_GPIO=y # CONFIG_CMD_SETEXPR is not set CONFIG_CMD_DHCP=y diff --git a/configs/am57xx_hs_evm_defconfig b/configs/am57xx_hs_evm_defconfig index c508b8e4dabc..2b1d6958b64f 100644 --- a/configs/am57xx_hs_evm_defconfig +++ b/configs/am57xx_hs_evm_defconfig @@ -36,6 +36,9 @@ CONFIG_CMD_SF=y CONFIG_CMD_SPI=y CONFIG_CMD_I2C=y CONFIG_CMD_USB=y +CONFIG_CMD_DFU=y +CONFIG_DFU_RAM=y +CONFIG_DFU_MMC=y CONFIG_CMD_GPIO=y # CONFIG_CMD_SETEXPR is not set CONFIG_CMD_DHCP=y diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h index d009900c3976..c457fd4b5406 100644 --- a/include/configs/am57xx_evm.h +++ b/include/configs/am57xx_evm.h @@ -12,6 +12,8 @@ #ifndef __CONFIG_AM57XX_EVM_H #define __CONFIG_AM57XX_EVM_H
+#include <environment/ti/dfu.h> + #define CONFIG_AM57XX
#ifdef CONFIG_SPL_BUILD @@ -59,6 +61,12 @@ "name=ipu2,size=1M,uuid=${uuid_gpt_ipu2};" \ "name=userdata,size=-,uuid=${uuid_gpt_userdata}"
+#define DFUARGS \ + "dfu_bufsiz=0x10000\0" \ + DFU_ALT_INFO_MMC \ + DFU_ALT_INFO_EMMC \ + DFU_ALT_INFO_RAM \ + #include <configs/ti_omap5_common.h>
/* Enhance our eMMC support / experience. */

On Fri, Nov 25, 2016 at 02:25:55PM +0530, Sekhar Nori wrote:
AM57xx GP EVM has USB2 port of the SoC exposed as USB client port.
It is useful to be able to use this port for USB DFU downloads.
Enable USB DFU support. Tested on AM57x GP EVM Rev A3 using DFU to download to connected SD card.
configs for HS version of the AM57x EVM are included in the patch but not really tested.
Signed-off-by: Sekhar Nori nsekhar@ti.com
Reviewed-by: Tom Rini trini@konsulko.com

On Fri, Nov 25, 2016 at 02:25:55PM +0530, Sekhar Nori wrote:
AM57xx GP EVM has USB2 port of the SoC exposed as USB client port.
It is useful to be able to use this port for USB DFU downloads.
Enable USB DFU support. Tested on AM57x GP EVM Rev A3 using DFU to download to connected SD card.
configs for HS version of the AM57x EVM are included in the patch but not really tested.
Signed-off-by: Sekhar Nori nsekhar@ti.com Reviewed-by: Tom Rini trini@konsulko.com
Applied to u-boot/master, thanks!
participants (2)
-
Sekhar Nori
-
Tom Rini