2 ;; This file is part of the fx2lafw project.
4 ;; Copyright (C) 2011-2012 Uwe Hermann <uwe@hermann-uwe.de>
6 ;; This program is free software; you can redistribute it and/or modify
7 ;; it under the terms of the GNU General Public License as published by
8 ;; the Free Software Foundation; either version 2 of the License, or
9 ;; (at your option) any later version.
11 ;; This program is distributed in the hope that it will be useful,
12 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;; GNU General Public License for more details.
16 ;; You should have received a copy of the GNU General Public License
17 ;; along with this program; if not, write to the Free Software
18 ;; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
27 DSCR_INTERFACE_TYPE = 4
28 DSCR_ENDPOINT_TYPE = 5
32 DSCR_INTERFACE_LEN = 9
36 ENDPOINT_TYPE_CONTROL = 0
38 ENDPOINT_TYPE_BULK = 2
41 .globl _dev_dscr, _dev_qual_dscr, _highspd_dscr, _fullspd_dscr, _dev_strings, _dev_strings_end
42 .area DSCR_AREA (CODE)
44 ; -----------------------------------------------------------------------------
46 ; -----------------------------------------------------------------------------
48 .db dev_dscr_end - _dev_dscr
51 .db 0xff ; Class (vendor specific)
52 .db 0xff ; Subclass (vendor specific)
53 .db 0xff ; Protocol (vendor specific)
54 .db 64 ; Max. EP0 packet size
55 .dw 0x2509 ; Manufacturer ID (0x0925)
56 .dw 0x8138 ; Product ID (0x3881)
57 .dw 0x0100 ; Product version (0.01)
58 .db 1 ; Manufacturer string index
59 .db 2 ; Product string index
60 .db 0 ; Serial number string index (none)
61 .db 1 ; Number of configurations
64 ; -----------------------------------------------------------------------------
65 ; Device qualifier (for "other device speed")
66 ; -----------------------------------------------------------------------------
68 .db dev_qualdscr_end - _dev_qual_dscr
71 .db 0xff ; Class (vendor specific)
72 .db 0xff ; Subclass (vendor specific)
73 .db 0xff ; Protocol (vendor specific)
74 .db 64 ; Max. EP0 packet size
75 .db 1 ; Number of configurations
76 .db 0 ; Extra reserved byte
79 ; -----------------------------------------------------------------------------
80 ; High-Speed configuration descriptor
81 ; -----------------------------------------------------------------------------
83 .db highspd_dscr_end - _highspd_dscr
85 ; Total length of the configuration (1st line LSB, 2nd line MSB)
86 .db (highspd_dscr_realend - _highspd_dscr) % 256
87 .db (highspd_dscr_realend - _highspd_dscr) / 256
88 .db 1 ; Number of interfaces
89 .db 1 ; Configuration number
90 .db 0 ; Configuration string (none)
91 .db 0x80 ; Attributes (bus powered, no wakeup)
92 .db 0x32 ; Max. power (100mA)
95 ; Interfaces (only one in our case)
96 .db DSCR_INTERFACE_LEN
97 .db DSCR_INTERFACE_TYPE
98 .db 0 ; Interface index
99 .db 0 ; Alternate setting index
100 .db 1 ; Number of endpoints
101 .db 0xff ; Class (vendor specific)
102 .db 0xff ; Subclass (vendor specific)
103 .db 0xff ; Protocol (vendor specific)
104 .db 0 ; String index (none)
107 .db DSCR_ENDPOINT_LEN
108 .db DSCR_ENDPOINT_TYPE
109 .db 0x82 ; EP number (2), direction (IN)
110 .db ENDPOINT_TYPE_BULK ; Endpoint type (bulk)
111 .db 0x00 ; Max. packet size, LSB (512 bytes)
112 .db 0x02 ; Max. packet size, MSB (512 bytes)
113 .db 0x00 ; Polling interval
115 highspd_dscr_realend:
119 ; -----------------------------------------------------------------------------
120 ; Full-Speed configuration descriptor
121 ; -----------------------------------------------------------------------------
123 .db fullspd_dscr_end - _fullspd_dscr
125 ; Total length of the configuration (1st line LSB, 2nd line MSB)
126 .db (fullspd_dscr_realend - _fullspd_dscr) % 256
127 .db (fullspd_dscr_realend - _fullspd_dscr) / 256
128 .db 1 ; Number of interfaces
129 .db 1 ; Configuration number
130 .db 0 ; Configuration string (none)
131 .db 0x80 ; Attributes (bus powered, no wakeup)
132 .db 0x32 ; Max. power (100mA)
135 ; Interfaces (only one in our case)
136 .db DSCR_INTERFACE_LEN
137 .db DSCR_INTERFACE_TYPE
138 .db 0 ; Interface index
139 .db 0 ; Alternate setting index
140 .db 1 ; Number of endpoints
141 .db 0xff ; Class (vendor specific)
142 .db 0xff ; Subclass (vendor specific)
143 .db 0xff ; Protocol (vendor specific)
144 .db 0 ; String index (none)
147 .db DSCR_ENDPOINT_LEN
148 .db DSCR_ENDPOINT_TYPE
149 .db 0x82 ; EP number (2), direction (IN)
150 .db ENDPOINT_TYPE_BULK ; Endpoint type (bulk)
151 .db 0x40 ; Max. packet size, LSB (64 bytes)
152 .db 0x00 ; Max. packet size, MSB (64 bytes)
153 .db 0x00 ; Polling interval
155 fullspd_dscr_realend:
159 ; -----------------------------------------------------------------------------
161 ; -----------------------------------------------------------------------------
165 ; See http://www.usb.org/developers/docs/USB_LANGIDs.pdf for the full list.
167 .db string0end - _string0
169 .db 0x09, 0x04 ; Language code 0x0409 (English, US)
173 .db string1end - _string1
190 .db string2end - _string2