summaryrefslogtreecommitdiff
path: root/firmware/src/os/dfu.h
diff options
context:
space:
mode:
authorlaforge <laforge@6dc7ffe9-61d6-0310-9af1-9938baff3ed1>2006-09-13 16:02:52 +0000
committerlaforge <laforge@6dc7ffe9-61d6-0310-9af1-9938baff3ed1>2006-09-13 16:02:52 +0000
commita97e460bea62375c9c870fb3e3650fbff20c5ad1 (patch)
tree64c0de524a604015a367aa979c777325765fbfa3 /firmware/src/os/dfu.h
parent8bd3d51b23e328e91c209dbebe8cfe002b0b0042 (diff)
Completely separate DFU from application program, we now have a real bootloader.
DFU occupies 0x00100000 - 0x00100fff in flash, application starts at 0x00101000. DFU also occupies the first couple of bytes in SRAM, application starts at 0x00200024. In order to produce a samba-flashable image, first build dfu.bin by typing 'make -f Makefule.dfu', succeeded by 'make TARGET=... DEBUG=... BOARD=...' and then concatenating the two files together, e.g. cat dfu.bin main_reqa.bin > flash.bin. Actual flashing via DFU is still not operational, but will be implemented next git-svn-id: https://svn.openpcd.org:2342/trunk@194 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
Diffstat (limited to 'firmware/src/os/dfu.h')
-rw-r--r--firmware/src/os/dfu.h80
1 files changed, 0 insertions, 80 deletions
diff --git a/firmware/src/os/dfu.h b/firmware/src/os/dfu.h
deleted file mode 100644
index 8786044..0000000
--- a/firmware/src/os/dfu.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef _DFU_H
-#define _DFU_H
-
-/* USB Device Firmware Update Implementation for OpenPCD
- * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de>
- *
- * This ought to be compliant to the USB DFU Spec 1.0 as available from
- * http://www.usb.org/developers/devclass_docs/usbdfu10.pdf
- *
- */
-
-#include <sys/types.h>
-#include <usb_ch9.h>
-#include <usb_dfu.h>
-
-#include "dbgu.h"
-
-/* USB DFU functional descriptor */
-#define DFU_FUNC_DESC { \
- .bLength = USB_DT_DFU_SIZE, \
- .bDescriptorType = USB_DT_DFU, \
- .bmAttributes = USB_DFU_CAN_UPLOAD | USB_DFU_CAN_DOWNLOAD, \
- .wDetachTimeOut = 0xff00, \
- .wTransferSize = AT91C_IFLASH_PAGE_SIZE, \
- .bcdDFUVersion = 0x0100, \
-}
-
-/* USB Interface descriptor in Runtime mode */
-#define DFU_RT_IF_DESC { \
- .bLength = USB_DT_INTERFACE_SIZE, \
- .bDescriptorType = USB_DT_INTERFACE, \
- .bInterfaceNumber = 0x01, \
- .bAlternateSetting = 0x00, \
- .bNumEndpoints = 0x00, \
- .bInterfaceClass = 0xfe, \
- .bInterfaceSubClass = 0x01, \
- .bInterfaceProtocol = 0x01, \
- .iInterface = 1, \
-}
-
-#define __dfufunc __attribute__ ((long_call, section (".dfu.func")))
-#define __dfustruct __attribute__ ((section (".dfu.struct"))) const
-#define __dfufunctab __attribute__ ((section (".dfu.functab")))
-
-#if 0
-extern void __dfufunc udp_ep0_send_data(const char *data, u_int32_t length);
-extern void __dfufunc udp_ep0_send_zlp(void);
-extern void __dfufunc udp_ep0_send_stall(void);
-extern __dfustruct struct usb_device_descriptor dfu_dev_descriptor;
-extern __dfustruct struct _dfu_desc dfu_cfg_descriptor;
-extern void dfu_switch(void);
-extern int __dfufunc dfu_ep0_handler(u_int8_t req_type, u_int8_t req,
- u_int16_t val, u_int16_t len);
-extern static u_int8_t dfu_state;
-struct udp_pcd;
-#endif
-
-
-extern void __dfufunc udp_init(void);
-
-struct _dfu_desc {
- struct usb_config_descriptor ucfg;
- struct usb_interface_descriptor uif[2];
- struct usb_dfu_func_descriptor func_dfu;
-};
-
-struct dfuapi {
- void (*ep0_send_data)(const char *data, u_int32_t len);
- void (*ep0_send_zlp)(void);
- void (*ep0_send_stall)(void);
- int (*dfu_ep0_handler)(u_int8_t req_type, u_int8_t req,
- u_int16_t val, u_int16_t len);
- void (*dfu_switch)(void);
- u_int8_t *dfu_state;
- const struct usb_device_descriptor *dfu_dev_descriptor;
- const struct _dfu_desc *dfu_cfg_descriptor;
-};
-
-
-#endif /* _DFU_H */
personal git repositories of Harald Welte. Your mileage may vary