summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-07-30 02:08:36 +0200
committerHarald Welte <laforge@gnumonks.org>2011-07-30 02:08:36 +0200
commite3d1fd9bbdb789196c25bdd5eb7536cda5ba39f3 (patch)
treebd40146af8128e0b7086851215475a95ed93fdef
parentde0d7e35eed67bab478fda9eee7cb9edb1f34f04 (diff)
DFU: add third 'alternate configuration' for RAM load
This will allow us to load code directly into RAM without going through flash.
-rw-r--r--firmware/src/dfu/dfu.h26
-rw-r--r--firmware/src/os/usb_descriptors_openpcd.h14
-rw-r--r--firmware/src/pcd/usb_strings_app.txt1
-rw-r--r--firmware/src/pcd/usb_strings_dfu.txt1
-rw-r--r--firmware/src/picc/usb_strings_app.txt1
-rw-r--r--firmware/src/picc/usb_strings_dfu.txt1
-rw-r--r--firmware/src/simtrace/usb_strings_app.txt1
-rw-r--r--firmware/src/simtrace/usb_strings_dfu.txt1
8 files changed, 36 insertions, 10 deletions
diff --git a/firmware/src/dfu/dfu.h b/firmware/src/dfu/dfu.h
index a4184b4..c898197 100644
--- a/firmware/src/dfu/dfu.h
+++ b/firmware/src/dfu/dfu.h
@@ -61,6 +61,16 @@
.bInterfaceSubClass = 0x01, \
.bInterfaceProtocol = 0x01, \
.iInterface = 2, \
+ }, { \
+ .bLength = USB_DT_INTERFACE_SIZE, \
+ .bDescriptorType = USB_DT_INTERFACE, \
+ .bInterfaceNumber = 0x03, \
+ .bAlternateSetting = 0x00, \
+ .bNumEndpoints = 0x00, \
+ .bInterfaceClass = 0xfe, \
+ .bInterfaceSubClass = 0x01, \
+ .bInterfaceProtocol = 0x01, \
+ .iInterface = 3, \
}, \
}
#else
@@ -78,8 +88,18 @@
}, { \
.bLength = USB_DT_INTERFACE_SIZE, \
.bDescriptorType = USB_DT_INTERFACE, \
- .bInterfaceNumber = 0x02, \
- .bAlternateSetting = 0x00, \
+ .bInterfaceNumber = 0x01, \
+ .bAlternateSetting = 0x01, \
+ .bNumEndpoints = 0x00, \
+ .bInterfaceClass = 0xfe, \
+ .bInterfaceSubClass = 0x01, \
+ .bInterfaceProtocol = 0x01, \
+ .iInterface = 0, \
+ }, { \
+ .bLength = USB_DT_INTERFACE_SIZE, \
+ .bDescriptorType = USB_DT_INTERFACE, \
+ .bInterfaceNumber = 0x01, \
+ .bAlternateSetting = 0x02, \
.bNumEndpoints = 0x00, \
.bInterfaceClass = 0xfe, \
.bInterfaceSubClass = 0x01, \
@@ -98,7 +118,7 @@
struct _dfu_desc {
struct usb_config_descriptor ucfg;
- struct usb_interface_descriptor uif[2];
+ struct usb_interface_descriptor uif[3];
struct usb_dfu_func_descriptor func_dfu;
};
diff --git a/firmware/src/os/usb_descriptors_openpcd.h b/firmware/src/os/usb_descriptors_openpcd.h
index ceb7ff6..58c54ec 100644
--- a/firmware/src/os/usb_descriptors_openpcd.h
+++ b/firmware/src/os/usb_descriptors_openpcd.h
@@ -20,8 +20,8 @@ const struct usb_device_descriptor dev_descriptor = {
.idProduct = USB_PRODUCT_ID,
.bcdDevice = 0x0030, /* Version 0.3 */
#ifdef CONFIG_USB_STRING
- .iManufacturer = 3,
- .iProduct = 4,
+ .iManufacturer = 4,
+ .iProduct = 5,
.iSerialNumber = 0,
#else
.iManufacturer = 0,
@@ -36,7 +36,7 @@ struct _desc {
struct usb_interface_descriptor uif;
struct usb_endpoint_descriptor ep[3];
#ifdef CONFIG_DFU
- struct usb_interface_descriptor uif_dfu[2];
+ struct usb_interface_descriptor uif_dfu[3];
#endif
};
@@ -46,9 +46,9 @@ const struct _desc cfg_descriptor = {
.bDescriptorType = USB_DT_CONFIG,
.wTotalLength = USB_DT_CONFIG_SIZE +
#ifdef CONFIG_DFU
- 3 * USB_DT_INTERFACE_SIZE +
+ 4 * USB_DT_INTERFACE_SIZE +
3 * USB_DT_ENDPOINT_SIZE,
- .bNumInterfaces = 3,
+ .bNumInterfaces = 4,
#else
1 * USB_DT_INTERFACE_SIZE +
3 * USB_DT_ENDPOINT_SIZE,
@@ -56,7 +56,7 @@ const struct _desc cfg_descriptor = {
#endif
.bConfigurationValue = 1,
#ifdef CONFIG_USB_STRING
- .iConfiguration = 5,
+ .iConfiguration = 6,
#else
.iConfiguration = 0,
#endif
@@ -73,7 +73,7 @@ const struct _desc cfg_descriptor = {
.bInterfaceSubClass = 0,
.bInterfaceProtocol = 0xff,
#ifdef CONFIG_USB_STRING
- .iInterface = 6,
+ .iInterface = 7,
#else
.iInterface = 0,
#endif
diff --git a/firmware/src/pcd/usb_strings_app.txt b/firmware/src/pcd/usb_strings_app.txt
index a4e9f57..ce295dc 100644
--- a/firmware/src/pcd/usb_strings_app.txt
+++ b/firmware/src/pcd/usb_strings_app.txt
@@ -1,5 +1,6 @@
OpenPCD DFU Interface - Application Partition
OpenPCD DFU Interface - Bootloader Partition
+OpenPCD DFU Interface - RAM
bitmanufaktur.de IT Solutions and hmw-consulting.de
OpenPCD RFID Reader - Runtime Mode
OpenPCD Runtime Configuration
diff --git a/firmware/src/pcd/usb_strings_dfu.txt b/firmware/src/pcd/usb_strings_dfu.txt
index a7714b7..9b18e60 100644
--- a/firmware/src/pcd/usb_strings_dfu.txt
+++ b/firmware/src/pcd/usb_strings_dfu.txt
@@ -3,3 +3,4 @@ OpenPCD RFID Reader - DFU Mode
OpenPCD DFU Configuration
OpenPCD DFU Interface - Application Partition
OpenPCD DFU Interface - Bootloader Partition
+OpenPCD DFU Interface - RAM
diff --git a/firmware/src/picc/usb_strings_app.txt b/firmware/src/picc/usb_strings_app.txt
index d892c72..5e8ed56 100644
--- a/firmware/src/picc/usb_strings_app.txt
+++ b/firmware/src/picc/usb_strings_app.txt
@@ -1,5 +1,6 @@
OpenPICC DFU Interface - Application Partition
OpenPICC DFU Interface - Bootloader Partition
+OpenPICC DFU Interface - RAM
bitmanufaktur.de IT Solutions and hmw-consulting.de
OpenPICC RFID Simulator - Runtime Mode
OpenPICC Runtime Configuration
diff --git a/firmware/src/picc/usb_strings_dfu.txt b/firmware/src/picc/usb_strings_dfu.txt
index 681c30a..008259d 100644
--- a/firmware/src/picc/usb_strings_dfu.txt
+++ b/firmware/src/picc/usb_strings_dfu.txt
@@ -3,3 +3,4 @@ OpenPICC RFID Simulator - DFU Mode
OpenPIIC DFU Configuration
OpenPICC DFU Interface - Application Partition
OpenPICC DFU Interface - Bootloader Partition
+OpenPICC DFU Interface - RAM
diff --git a/firmware/src/simtrace/usb_strings_app.txt b/firmware/src/simtrace/usb_strings_app.txt
index ba24b2b..02cf326 100644
--- a/firmware/src/simtrace/usb_strings_app.txt
+++ b/firmware/src/simtrace/usb_strings_app.txt
@@ -1,5 +1,6 @@
SimTrace DFU Interface - Application Partition
SimTrace DFU Interface - Bootloader Partition
+SimTrace DFU Interface - RAM
sysmocom - systems for mobile communications GmbH
SimTrace SIM Sniffer - Runtime Mode
SimTrace Runtime Configuration
diff --git a/firmware/src/simtrace/usb_strings_dfu.txt b/firmware/src/simtrace/usb_strings_dfu.txt
index ae2ff6a..2f65684 100644
--- a/firmware/src/simtrace/usb_strings_dfu.txt
+++ b/firmware/src/simtrace/usb_strings_dfu.txt
@@ -3,3 +3,4 @@ SimTrace SIM Sniffer - DFU Mode
SimTrace DFU Configuration
SimTrace DFU Interface - Application Partition
SimTrace DFU Interface - Bootloader Partition
+SimTrace DFU Interface - RAM
personal git repositories of Harald Welte. Your mileage may vary