From e3d1fd9bbdb789196c25bdd5eb7536cda5ba39f3 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 30 Jul 2011 02:08:36 +0200 Subject: DFU: add third 'alternate configuration' for RAM load This will allow us to load code directly into RAM without going through flash. --- firmware/src/dfu/dfu.h | 26 +++++++++++++++++++++++--- firmware/src/os/usb_descriptors_openpcd.h | 14 +++++++------- firmware/src/pcd/usb_strings_app.txt | 1 + firmware/src/pcd/usb_strings_dfu.txt | 1 + firmware/src/picc/usb_strings_app.txt | 1 + firmware/src/picc/usb_strings_dfu.txt | 1 + firmware/src/simtrace/usb_strings_app.txt | 1 + firmware/src/simtrace/usb_strings_dfu.txt | 1 + 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 -- cgit v1.2.3