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

Stephen Warren swarren at wwwdotorg.org
Sat Jul 26 01:16:54 CEST 2014


From: Stephen Warren <swarren at 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 at 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 */
-- 
1.9.1



More information about the U-Boot mailing list