[U-Boot] [PATCH] ARM: tegra: enable DFU too

From: Stephen Warren swarren@nvidia.com
Enable DFU protocol support (via the "dfu" command) on Tegra boards where USB device/gadget mode is enabled.
Note that for DFU to operate correctly on Tegra, we still need some DFU fixes/enhancements that are going through the DFU -> USB trees. However, the code builds just fine without those changes, and applying this patch now will allow both sets of patches to meet in the main U-Boot tree much more quickly.
In order to run test/dfu/dfu_gadget_test.sh, you would need to add the following to the board configuration:
CONFIG_EXT4_WRITE CONFIG_CMD_EXT4_WRITE
However, I haven't enabled those here, since I believe the main use-case for DFU on Tegra is raw flash writing, rather than filesystem access, so we don't need the additional code-size hit. However, I could be persuaded otherwise! We should probably add a separate test script for raw flash access.
Signed-off-by: Stephen Warren swarren@nvidia.com --- include/configs/beaver.h | 2 +- include/configs/jetson-tk1.h | 2 +- .../{tegra-common-ums.h => tegra-common-usb-gadget.h} | 19 +++++++++++++++---- include/configs/venice2.h | 2 +- 4 files changed, 18 insertions(+), 7 deletions(-) rename include/configs/{tegra-common-ums.h => tegra-common-usb-gadget.h} (57%)
diff --git a/include/configs/beaver.h b/include/configs/beaver.h index ae831127985f..d8ed717f5a4e 100644 --- a/include/configs/beaver.h +++ b/include/configs/beaver.h @@ -88,7 +88,7 @@ #define CONFIG_CMD_NET #define CONFIG_CMD_DHCP
-#include "tegra-common-ums.h" +#include "tegra-common-usb-gadget.h" #include "tegra-common-post.h"
#endif /* __CONFIG_H */ diff --git a/include/configs/jetson-tk1.h b/include/configs/jetson-tk1.h index 0b9e5b699fa6..d03a66cd2240 100644 --- a/include/configs/jetson-tk1.h +++ b/include/configs/jetson-tk1.h @@ -75,7 +75,7 @@ #define CONFIG_CMD_NET #define CONFIG_CMD_DHCP
-#include "tegra-common-ums.h" +#include "tegra-common-usb-gadget.h" #include "tegra-common-post.h"
#endif /* __CONFIG_H */ diff --git a/include/configs/tegra-common-ums.h b/include/configs/tegra-common-usb-gadget.h similarity index 57% rename from include/configs/tegra-common-ums.h rename to include/configs/tegra-common-usb-gadget.h index 578ca68b5781..287460c132bc 100644 --- a/include/configs/tegra-common-ums.h +++ b/include/configs/tegra-common-usb-gadget.h @@ -5,11 +5,11 @@ * SPDX-License-Identifier: GPL-2.0 */
-#ifndef _TEGRA_COMMON_UMS_H_ -#define _TEGRA_COMMON_UMS_H_ +#ifndef _TEGRA_COMMON_USB_GADGET_H_ +#define _TEGRA_COMMON_USB_GADGET_H_
#ifndef CONFIG_SPL_BUILD -/* USB gadget, and mass storage protocol */ +/* USB gadget mode support*/ #define CONFIG_USB_GADGET #define CONFIG_USB_GADGET_VBUS_DRAW 2 #define CONFIG_CI_UDC @@ -19,8 +19,19 @@ #define CONFIG_G_DNL_PRODUCT_NUM 0x701A #define CONFIG_G_DNL_MANUFACTURER "NVIDIA" #define CONFIG_USBDOWNLOAD_GADGET +/* USB mass storage protocol */ #define CONFIG_USB_GADGET_MASS_STORAGE #define CONFIG_CMD_USB_MASS_STORAGE +/* DFU protocol */ +#define CONFIG_DFU_FUNCTION +#define CONFIG_SYS_DFU_DATA_BUF_SIZE (1 * 1024 * 1024) +#define CONFIG_CMD_DFU +#ifdef CONFIG_MMC +#define CONFIG_DFU_MMC +#endif +#ifdef CONFIG_SPI_FLASH +#define CONFIG_DFU_SF +#endif #endif
-#endif /* _TEGRA_COMMON_UMS_H */ +#endif /* _TEGRA_COMMON_USB_GADGET_H_ */ diff --git a/include/configs/venice2.h b/include/configs/venice2.h index c4a1b94b98e1..6d4e9991a130 100644 --- a/include/configs/venice2.h +++ b/include/configs/venice2.h @@ -75,7 +75,7 @@ #define CONFIG_CMD_NET #define CONFIG_CMD_DHCP
-#include "tegra-common-ums.h" +#include "tegra-common-usb-gadget.h" #include "tegra-common-post.h"
#endif /* __CONFIG_H */

On 26 July 2014 00:16, Stephen Warren swarren@wwwdotorg.org wrote:
From: Stephen Warren swarren@nvidia.com
Enable DFU protocol support (via the "dfu" command) on Tegra boards where USB device/gadget mode is enabled.
Note that for DFU to operate correctly on Tegra, we still need some DFU fixes/enhancements that are going through the DFU -> USB trees. However, the code builds just fine without those changes, and applying this patch now will allow both sets of patches to meet in the main U-Boot tree much more quickly.
In order to run test/dfu/dfu_gadget_test.sh, you would need to add the following to the board configuration:
CONFIG_EXT4_WRITE CONFIG_CMD_EXT4_WRITE
However, I haven't enabled those here, since I believe the main use-case for DFU on Tegra is raw flash writing, rather than filesystem access, so we don't need the additional code-size hit. However, I could be persuaded otherwise! We should probably add a separate test script for raw flash access.
Signed-off-by: Stephen Warren swarren@nvidia.com
Acked-by: Simon Glass sjg@chromium.org
participants (2)
-
Simon Glass
-
Stephen Warren