This is just an example how the board specific implementation can look
like. Not for merging.

Signed-off-by: Sebastian Andrzej Siewior <bige...@linutronix.de>
---
 board/ti/sdp4430/Makefile   |    7 ++++---
 board/ti/sdp4430/fastboot.c |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+), 3 deletions(-)
 create mode 100644 board/ti/sdp4430/fastboot.c

diff --git a/board/ti/sdp4430/Makefile b/board/ti/sdp4430/Makefile
index 12f2743..89226ab 100644
--- a/board/ti/sdp4430/Makefile
+++ b/board/ti/sdp4430/Makefile
@@ -26,11 +26,12 @@ include $(TOPDIR)/config.mk
 LIB    = $(obj)lib$(BOARD).o
 
 ifndef CONFIG_SPL_BUILD
-COBJS  := sdp.o cmd_bat.o
+COBJS-y        := sdp.o cmd_bat.o
+COBJS-$(CONFIG_CMD_FASTBOOT)   += fastboot.o
 endif
 
-SRCS   := $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
+SRCS   := $(COBJS-y:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS)
        $(call cmd_link_o_target, $(OBJS))
diff --git a/board/ti/sdp4430/fastboot.c b/board/ti/sdp4430/fastboot.c
new file mode 100644
index 0000000..9f2c0d4
--- /dev/null
+++ b/board/ti/sdp4430/fastboot.c
@@ -0,0 +1,36 @@
+#include <common.h>
+#include <usb/fastboot.h>
+#include <linux/usb/ch9.h>
+#include <linux/usb/gadget.h>
+
+static struct usb_string def_usb_fb_strings[] = {
+       { FB_STR_SERIAL_IDX,            "abcd+efg" },
+       { FB_STR_PROC_REV_IDX,          "ES0.0" },
+       { FB_STR_PROC_TYPE_IDX,         "VirtIO" },
+       {  }
+};
+
+static struct usb_gadget_strings def_fb_strings = {
+       .language       = 0x0409, /* en-us */
+       .strings        = def_usb_fb_strings,
+};
+
+/*
+ * Hardcoded memory region to stash data which comes over USB before it is
+ * stored on media
+ */
+DECLARE_GLOBAL_DATA_PTR;
+#define SZ_16M                          0x01000000
+#define SZ_128M                         0x08000000
+#define CFG_FASTBOOT_TRANSFER_BUFFER (void *)(gd->bd->bi_dram[0].start + 
SZ_16M)
+#define CFG_FASTBOOT_TRANSFER_BUFFER_SIZE (SZ_128M - SZ_16M)
+
+int fastboot_board_init(struct fastboot_config *interface,
+               struct usb_gadget_strings **str) {
+
+       interface->transfer_buffer = CFG_FASTBOOT_TRANSFER_BUFFER;
+       interface->transfer_buffer_size = CFG_FASTBOOT_TRANSFER_BUFFER_SIZE;
+
+       *str = &def_fb_strings;
+       return 0;
+}
-- 
1.7.5.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to