]> sigrok.org Git - sigrok-firmware-fx2lafw.git/commitdiff
Deduplicate hantek-6022be/sainsmart-dds120's dscr.inc.
authorUwe Hermann <redacted>
Thu, 4 Aug 2016 15:18:14 +0000 (17:18 +0200)
committerUwe Hermann <redacted>
Wed, 10 Aug 2016 11:11:01 +0000 (13:11 +0200)
hw/hantek-6022be/dscr.a51 [deleted file]
hw/sainsmart-dds120/dscr.a51 [deleted file]
include/dscr_hantek_6022be.inc [new file with mode: 0644]

diff --git a/hw/hantek-6022be/dscr.a51 b/hw/hantek-6022be/dscr.a51
deleted file mode 100644 (file)
index 8e464ee..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-;;
-;; This file is part of the sigrok-firmware-fx2lafw project.
-;;
-;; Copyright (C) 2009 Ubixum, Inc. 
-;;
-;; This library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public
-;; License as published by the Free Software Foundation; either
-;; version 2.1 of the License, or (at your option) any later version.
-;;
-;; This library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-;;
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with this library; if not, write to the Free Software
-;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-;;
-
-; this is a the default 
-; full speed and high speed 
-; descriptors found in the TRM
-; change however you want but leave 
-; the descriptor pointers so the setupdat.c file works right
-
-.module DEV_DSCR 
-
-; descriptor types
-; same as setupdat.h
-DSCR_DEVICE_TYPE=1
-DSCR_CONFIG_TYPE=2
-DSCR_STRING_TYPE=3
-DSCR_INTERFACE_TYPE=4
-DSCR_ENDPOINT_TYPE=5
-DSCR_DEVQUAL_TYPE=6
-
-; for the repeating interfaces
-DSCR_INTERFACE_LEN=9
-DSCR_ENDPOINT_LEN=7
-
-; endpoint types
-ENDPOINT_TYPE_CONTROL=0
-ENDPOINT_TYPE_ISO=1
-ENDPOINT_TYPE_BULK=2
-ENDPOINT_TYPE_INT=3
-
-    .globl     _dev_dscr, _dev_qual_dscr, _highspd_dscr, _fullspd_dscr, _dev_strings, _dev_strings_end
-; These need to be in code memory.  If
-; they aren't you'll have to manully copy them somewhere
-; in code memory otherwise SUDPTRH:L don't work right
-    .area      DSCR_AREA       (CODE)
-
-_dev_dscr:
-       .db     dev_dscr_end-_dev_dscr    ; len
-       .db     DSCR_DEVICE_TYPE                  ; type
-       .dw     0x0002                                    ; usb 2.0
-       .db     0xff                                      ; class (vendor specific)
-       .db     0xff                                      ; subclass (vendor specific)
-       .db     0xff                                      ; protocol (vendor specific)
-       .db     64                                                ; packet size (ep0)
-       .dw     0xB504                                    ; vendor id 
-       .dw     0x2260                                    ; product id
-       .dw     0x0000                                    ; version id
-       .db     1                                 ; manufacturure str idx                               
-       .db     2                                         ; product str idx     
-       .db     0                                         ; serial str idx 
-       .db     1                                     ; n configurations
-dev_dscr_end:
-
-_dev_qual_dscr:
-       .db     dev_qualdscr_end-_dev_qual_dscr
-       .db     DSCR_DEVQUAL_TYPE
-       .dw     0x0002                              ; usb 2.0
-       .db     0
-       .db     0
-       .db     0
-       .db     64                                  ; max packet
-       .db     1                                                                       ; n configs
-       .db     0                                                                       ; extra reserved byte
-dev_qualdscr_end:
-
-_highspd_dscr:
-       .db     highspd_dscr_end-_highspd_dscr      ; dscr len                                                                                  ;; Descriptor length
-       .db     DSCR_CONFIG_TYPE
-    ; can't use .dw because byte order is different
-       .db     (highspd_dscr_realend-_highspd_dscr) % 256 ; total length of config lsb
-       .db     (highspd_dscr_realend-_highspd_dscr) / 256 ; total length of config msb
-       .db     1                                                                ; n interfaces
-       .db     1                                                                ; config number
-       .db     0                                                                ; config string
-       .db     0x80                             ; attrs = bus powered, no wakeup
-       .db     55                               ; max power = 110mA
-highspd_dscr_end:
-
-; all the interfaces next 
-; BULK interface
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     0                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     0
-       .db     0                    ; string index     
-
-; endpoint 6 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x86                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_BULK      ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x02                            ; max packet size=512 bytes
-       .db     0x00                            ; polling interval
-
-; ISOCHRONOUS interface
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     1                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x14                            ; max packet size=3*1024 bytes
-       .db     0x01                            ; polling interval
-
-; ISOCHRONOUS interface  16MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     2                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x0c                            ; max packet size=2*1024 bytes
-       .db     0x01                            ; polling interval
-
-; ISOCHRONOUS interface  8MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     3                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x04                            ; max packet size=1024 bytes
-       .db     0x01                            ; polling interval
-
-; ISOCHRONOUS interface  4MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     4                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x04                            ; max packet size=1024 bytes
-       .db     0x02                            ; polling interval
-
-
-; ISOCHRONOUS interface  2MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     5                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x04                            ; max packet size=1024 bytes
-       .db     0x03                            ; polling interval
-
-; ISOCHRONOUS interface  1MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     6                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x04                            ; max packet size=1024 bytes
-       .db     0x04                            ; polling interval
-
-; ISOCHRONOUS interface 500 kB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     7                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x02                            ; max packet size=512 bytes
-       .db     0x04                            ; polling interval
-
-
-highspd_dscr_realend:
-
-.even
-_fullspd_dscr:
-       .db     fullspd_dscr_end-_fullspd_dscr      ; dscr len
-       .db     DSCR_CONFIG_TYPE
-    ; can't use .dw because byte order is different
-       .db     (fullspd_dscr_realend-_fullspd_dscr) % 256 ; total length of config lsb
-       .db     (fullspd_dscr_realend-_fullspd_dscr) / 256 ; total length of config msb
-       .db     2                                                                ; n interfaces
-       .db     1                                                                ; config number
-       .db     0                                                                ; config string
-       .db     0x80                             ; attrs = bus powered, no wakeup
-       .db     55                               ; max power = 110mA
-fullspd_dscr_end:
-
-
-; all the interfaces next 
-; BULK interface
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     0                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     0
-       .db     0                    ; string index     
-
-; endpoint 6 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x86                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_BULK      ; type
-       .db     0x40                            ; max packet LSB
-       .db     0x00                            ; max packet size=512 bytes
-       .db     0x00                            ; polling interval
-
-; ISOCHRONOUS interface 1 MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     1                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0xff                            ; max packet LSB
-       .db     0x03                            ; max packet size=1023 bytes
-       .db     0x01                            ; polling interval
-
-; ISOCHRONOUS interface 500 kB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     2                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x02                            ; max packet size=512 bytes
-       .db     0x01                            ; polling interval
-
-fullspd_dscr_realend:
-
-.even
-_dev_strings:
-; sample string
-_string0:
-       .db     string0end-_string0 ; len
-       .db     DSCR_STRING_TYPE
-    .db 0x09, 0x04 ; 0x0409 is the language code for English.  Possible to add more codes after this. 
-string0end:
-; add more strings here
-_string1:
-       .db     string1end-_string1 ; len
-       .db     DSCR_STRING_TYPE
-    .ascii 'O\0D\0M\0'
-string1end:
-_string2:
-       .db     string2end-_string2 ; len
-       .db     DSCR_STRING_TYPE
-    .ascii 'f\0x\0002\0l\0a\0f\0w\0'
-string2end:
-
-
-_dev_strings_end:
-    .dw 0x0000  ; in case you wanted to look at memory between _dev_strings and _dev_strings_end
diff --git a/hw/sainsmart-dds120/dscr.a51 b/hw/sainsmart-dds120/dscr.a51
deleted file mode 100644 (file)
index 5a9917c..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-;;
-;; This file is part of the sigrok-firmware-fx2lafw project.
-;;
-;; Copyright (C) 2009 Ubixum, Inc. 
-;;
-;; This library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public
-;; License as published by the Free Software Foundation; either
-;; version 2.1 of the License, or (at your option) any later version.
-;;
-;; This library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-;;
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with this library; if not, write to the Free Software
-;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-;;
-
-; this is a the default 
-; full speed and high speed 
-; descriptors found in the TRM
-; change however you want but leave 
-; the descriptor pointers so the setupdat.c file works right
-
-.module DEV_DSCR 
-
-; descriptor types
-; same as setupdat.h
-DSCR_DEVICE_TYPE=1
-DSCR_CONFIG_TYPE=2
-DSCR_STRING_TYPE=3
-DSCR_INTERFACE_TYPE=4
-DSCR_ENDPOINT_TYPE=5
-DSCR_DEVQUAL_TYPE=6
-
-; for the repeating interfaces
-DSCR_INTERFACE_LEN=9
-DSCR_ENDPOINT_LEN=7
-
-; endpoint types
-ENDPOINT_TYPE_CONTROL=0
-ENDPOINT_TYPE_ISO=1
-ENDPOINT_TYPE_BULK=2
-ENDPOINT_TYPE_INT=3
-
-    .globl     _dev_dscr, _dev_qual_dscr, _highspd_dscr, _fullspd_dscr, _dev_strings, _dev_strings_end
-; These need to be in code memory.  If
-; they aren't you'll have to manully copy them somewhere
-; in code memory otherwise SUDPTRH:L don't work right
-    .area      DSCR_AREA       (CODE)
-
-_dev_dscr:
-       .db     dev_dscr_end-_dev_dscr    ; len
-       .db     DSCR_DEVICE_TYPE                  ; type
-       .dw     0x0002                                    ; usb 2.0
-       .db     0xff                                      ; class (vendor specific)
-       .db     0xff                                      ; subclass (vendor specific)
-       .db     0xff                                      ; protocol (vendor specific)
-       .db     64                                                ; packet size (ep0)
-       .dw     0x501D                                    ; vendor id
-       .dw     0x8E60                                    ; product id
-       .dw     0x0000                                    ; version id
-       .db     1                                 ; manufacturure str idx                               
-       .db     2                                         ; product str idx     
-       .db     0                                         ; serial str idx 
-       .db     1                                     ; n configurations
-dev_dscr_end:
-
-_dev_qual_dscr:
-       .db     dev_qualdscr_end-_dev_qual_dscr
-       .db     DSCR_DEVQUAL_TYPE
-       .dw     0x0002                              ; usb 2.0
-       .db     0
-       .db     0
-       .db     0
-       .db     64                                  ; max packet
-       .db     1                                                                       ; n configs
-       .db     0                                                                       ; extra reserved byte
-dev_qualdscr_end:
-
-_highspd_dscr:
-       .db     highspd_dscr_end-_highspd_dscr      ; dscr len                                                                                  ;; Descriptor length
-       .db     DSCR_CONFIG_TYPE
-    ; can't use .dw because byte order is different
-       .db     (highspd_dscr_realend-_highspd_dscr) % 256 ; total length of config lsb
-       .db     (highspd_dscr_realend-_highspd_dscr) / 256 ; total length of config msb
-       .db     1                                                                ; n interfaces
-       .db     1                                                                ; config number
-       .db     0                                                                ; config string
-       .db     0x80                             ; attrs = bus powered, no wakeup
-       .db     55                               ; max power = 110mA
-highspd_dscr_end:
-
-; all the interfaces next 
-; BULK interface
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     0                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     0
-       .db     0                    ; string index     
-
-; endpoint 6 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x86                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_BULK      ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x02                            ; max packet size=512 bytes
-       .db     0x00                            ; polling interval
-
-; ISOCHRONOUS interface
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     1                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x14                            ; max packet size=3*1024 bytes
-       .db     0x01                            ; polling interval
-
-; ISOCHRONOUS interface  16MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     2                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x0c                            ; max packet size=2*1024 bytes
-       .db     0x01                            ; polling interval
-
-; ISOCHRONOUS interface  8MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     3                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x04                            ; max packet size=1024 bytes
-       .db     0x01                            ; polling interval
-
-; ISOCHRONOUS interface  4MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     4                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x04                            ; max packet size=1024 bytes
-       .db     0x02                            ; polling interval
-
-
-; ISOCHRONOUS interface  2MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     5                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x04                            ; max packet size=1024 bytes
-       .db     0x03                            ; polling interval
-
-; ISOCHRONOUS interface  1MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     6                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x04                            ; max packet size=1024 bytes
-       .db     0x04                            ; polling interval
-
-; ISOCHRONOUS interface 500 kB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     7                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x02                            ; max packet size=512 bytes
-       .db     0x04                            ; polling interval
-
-
-highspd_dscr_realend:
-
-.even
-_fullspd_dscr:
-       .db     fullspd_dscr_end-_fullspd_dscr      ; dscr len
-       .db     DSCR_CONFIG_TYPE
-    ; can't use .dw because byte order is different
-       .db     (fullspd_dscr_realend-_fullspd_dscr) % 256 ; total length of config lsb
-       .db     (fullspd_dscr_realend-_fullspd_dscr) / 256 ; total length of config msb
-       .db     2                                                                ; n interfaces
-       .db     1                                                                ; config number
-       .db     0                                                                ; config string
-       .db     0x80                             ; attrs = bus powered, no wakeup
-       .db     55                               ; max power = 110mA
-fullspd_dscr_end:
-
-
-; all the interfaces next 
-; BULK interface
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     0                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     0
-       .db     0                    ; string index     
-
-; endpoint 6 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x86                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_BULK      ; type
-       .db     0x40                            ; max packet LSB
-       .db     0x00                            ; max packet size=512 bytes
-       .db     0x00                            ; polling interval
-
-; ISOCHRONOUS interface 1 MB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     1                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0xff                            ; max packet LSB
-       .db     0x03                            ; max packet size=1023 bytes
-       .db     0x01                            ; polling interval
-
-; ISOCHRONOUS interface 500 kB/s
-       .db     DSCR_INTERFACE_LEN
-       .db     DSCR_INTERFACE_TYPE
-       .db     0                                ; index
-       .db     2                                ; alt setting idx
-       .db     1                                ; n endpoints  
-       .db     0xff                     ; class
-       .db     0
-       .db     1
-       .db     0                    ; string index     
-
-; endpoint 2 in 
-       .db     DSCR_ENDPOINT_LEN
-       .db     DSCR_ENDPOINT_TYPE
-       .db     0x82                            ;  ep1 dir=in and address
-       .db     ENDPOINT_TYPE_ISO       ; type
-       .db     0x00                            ; max packet LSB
-       .db     0x02                            ; max packet size=512 bytes
-       .db     0x01                            ; polling interval
-
-fullspd_dscr_realend:
-
-.even
-_dev_strings:
-; sample string
-_string0:
-       .db     string0end-_string0 ; len
-       .db     DSCR_STRING_TYPE
-    .db 0x09, 0x04 ; 0x0409 is the language code for English.  Possible to add more codes after this. 
-string0end:
-; add more strings here
-_string1:
-       .db     string1end-_string1 ; len
-       .db     DSCR_STRING_TYPE
-    .ascii 'O\0D\0M\0'
-string1end:
-_string2:
-       .db     string2end-_string2 ; len
-       .db     DSCR_STRING_TYPE
-    .ascii 'f\0x\0002\0l\0a\0f\0w\0'
-string2end:
-
-
-_dev_strings_end:
-    .dw 0x0000  ; in case you wanted to look at memory between _dev_strings and _dev_strings_end
diff --git a/include/dscr_hantek_6022be.inc b/include/dscr_hantek_6022be.inc
new file mode 100644 (file)
index 0000000..8e464ee
--- /dev/null
@@ -0,0 +1,362 @@
+;;
+;; This file is part of the sigrok-firmware-fx2lafw project.
+;;
+;; Copyright (C) 2009 Ubixum, Inc. 
+;;
+;; This library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public
+;; License as published by the Free Software Foundation; either
+;; version 2.1 of the License, or (at your option) any later version.
+;;
+;; This library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+;;
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with this library; if not, write to the Free Software
+;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+;;
+
+; this is a the default 
+; full speed and high speed 
+; descriptors found in the TRM
+; change however you want but leave 
+; the descriptor pointers so the setupdat.c file works right
+
+.module DEV_DSCR 
+
+; descriptor types
+; same as setupdat.h
+DSCR_DEVICE_TYPE=1
+DSCR_CONFIG_TYPE=2
+DSCR_STRING_TYPE=3
+DSCR_INTERFACE_TYPE=4
+DSCR_ENDPOINT_TYPE=5
+DSCR_DEVQUAL_TYPE=6
+
+; for the repeating interfaces
+DSCR_INTERFACE_LEN=9
+DSCR_ENDPOINT_LEN=7
+
+; endpoint types
+ENDPOINT_TYPE_CONTROL=0
+ENDPOINT_TYPE_ISO=1
+ENDPOINT_TYPE_BULK=2
+ENDPOINT_TYPE_INT=3
+
+    .globl     _dev_dscr, _dev_qual_dscr, _highspd_dscr, _fullspd_dscr, _dev_strings, _dev_strings_end
+; These need to be in code memory.  If
+; they aren't you'll have to manully copy them somewhere
+; in code memory otherwise SUDPTRH:L don't work right
+    .area      DSCR_AREA       (CODE)
+
+_dev_dscr:
+       .db     dev_dscr_end-_dev_dscr    ; len
+       .db     DSCR_DEVICE_TYPE                  ; type
+       .dw     0x0002                                    ; usb 2.0
+       .db     0xff                                      ; class (vendor specific)
+       .db     0xff                                      ; subclass (vendor specific)
+       .db     0xff                                      ; protocol (vendor specific)
+       .db     64                                                ; packet size (ep0)
+       .dw     0xB504                                    ; vendor id 
+       .dw     0x2260                                    ; product id
+       .dw     0x0000                                    ; version id
+       .db     1                                 ; manufacturure str idx                               
+       .db     2                                         ; product str idx     
+       .db     0                                         ; serial str idx 
+       .db     1                                     ; n configurations
+dev_dscr_end:
+
+_dev_qual_dscr:
+       .db     dev_qualdscr_end-_dev_qual_dscr
+       .db     DSCR_DEVQUAL_TYPE
+       .dw     0x0002                              ; usb 2.0
+       .db     0
+       .db     0
+       .db     0
+       .db     64                                  ; max packet
+       .db     1                                                                       ; n configs
+       .db     0                                                                       ; extra reserved byte
+dev_qualdscr_end:
+
+_highspd_dscr:
+       .db     highspd_dscr_end-_highspd_dscr      ; dscr len                                                                                  ;; Descriptor length
+       .db     DSCR_CONFIG_TYPE
+    ; can't use .dw because byte order is different
+       .db     (highspd_dscr_realend-_highspd_dscr) % 256 ; total length of config lsb
+       .db     (highspd_dscr_realend-_highspd_dscr) / 256 ; total length of config msb
+       .db     1                                                                ; n interfaces
+       .db     1                                                                ; config number
+       .db     0                                                                ; config string
+       .db     0x80                             ; attrs = bus powered, no wakeup
+       .db     55                               ; max power = 110mA
+highspd_dscr_end:
+
+; all the interfaces next 
+; BULK interface
+       .db     DSCR_INTERFACE_LEN
+       .db     DSCR_INTERFACE_TYPE
+       .db     0                                ; index
+       .db     0                                ; alt setting idx
+       .db     1                                ; n endpoints  
+       .db     0xff                     ; class
+       .db     0
+       .db     0
+       .db     0                    ; string index     
+
+; endpoint 6 in 
+       .db     DSCR_ENDPOINT_LEN
+       .db     DSCR_ENDPOINT_TYPE
+       .db     0x86                            ;  ep1 dir=in and address
+       .db     ENDPOINT_TYPE_BULK      ; type
+       .db     0x00                            ; max packet LSB
+       .db     0x02                            ; max packet size=512 bytes
+       .db     0x00                            ; polling interval
+
+; ISOCHRONOUS interface
+       .db     DSCR_INTERFACE_LEN
+       .db     DSCR_INTERFACE_TYPE
+       .db     0                                ; index
+       .db     1                                ; alt setting idx
+       .db     1                                ; n endpoints  
+       .db     0xff                     ; class
+       .db     0
+       .db     1
+       .db     0                    ; string index     
+
+; endpoint 2 in 
+       .db     DSCR_ENDPOINT_LEN
+       .db     DSCR_ENDPOINT_TYPE
+       .db     0x82                            ;  ep1 dir=in and address
+       .db     ENDPOINT_TYPE_ISO       ; type
+       .db     0x00                            ; max packet LSB
+       .db     0x14                            ; max packet size=3*1024 bytes
+       .db     0x01                            ; polling interval
+
+; ISOCHRONOUS interface  16MB/s
+       .db     DSCR_INTERFACE_LEN
+       .db     DSCR_INTERFACE_TYPE
+       .db     0                                ; index
+       .db     2                                ; alt setting idx
+       .db     1                                ; n endpoints  
+       .db     0xff                     ; class
+       .db     0
+       .db     1
+       .db     0                    ; string index     
+
+; endpoint 2 in 
+       .db     DSCR_ENDPOINT_LEN
+       .db     DSCR_ENDPOINT_TYPE
+       .db     0x82                            ;  ep1 dir=in and address
+       .db     ENDPOINT_TYPE_ISO       ; type
+       .db     0x00                            ; max packet LSB
+       .db     0x0c                            ; max packet size=2*1024 bytes
+       .db     0x01                            ; polling interval
+
+; ISOCHRONOUS interface  8MB/s
+       .db     DSCR_INTERFACE_LEN
+       .db     DSCR_INTERFACE_TYPE
+       .db     0                                ; index
+       .db     3                                ; alt setting idx
+       .db     1                                ; n endpoints  
+       .db     0xff                     ; class
+       .db     0
+       .db     1
+       .db     0                    ; string index     
+
+; endpoint 2 in 
+       .db     DSCR_ENDPOINT_LEN
+       .db     DSCR_ENDPOINT_TYPE
+       .db     0x82                            ;  ep1 dir=in and address
+       .db     ENDPOINT_TYPE_ISO       ; type
+       .db     0x00                            ; max packet LSB
+       .db     0x04                            ; max packet size=1024 bytes
+       .db     0x01                            ; polling interval
+
+; ISOCHRONOUS interface  4MB/s
+       .db     DSCR_INTERFACE_LEN
+       .db     DSCR_INTERFACE_TYPE
+       .db     0                                ; index
+       .db     4                                ; alt setting idx
+       .db     1                                ; n endpoints  
+       .db     0xff                     ; class
+       .db     0
+       .db     1
+       .db     0                    ; string index     
+
+; endpoint 2 in 
+       .db     DSCR_ENDPOINT_LEN
+       .db     DSCR_ENDPOINT_TYPE
+       .db     0x82                            ;  ep1 dir=in and address
+       .db     ENDPOINT_TYPE_ISO       ; type
+       .db     0x00                            ; max packet LSB
+       .db     0x04                            ; max packet size=1024 bytes
+       .db     0x02                            ; polling interval
+
+
+; ISOCHRONOUS interface  2MB/s
+       .db     DSCR_INTERFACE_LEN
+       .db     DSCR_INTERFACE_TYPE
+       .db     0                                ; index
+       .db     5                                ; alt setting idx
+       .db     1                                ; n endpoints  
+       .db     0xff                     ; class
+       .db     0
+       .db     1
+       .db     0                    ; string index     
+
+; endpoint 2 in 
+       .db     DSCR_ENDPOINT_LEN
+       .db     DSCR_ENDPOINT_TYPE
+       .db     0x82                            ;  ep1 dir=in and address
+       .db     ENDPOINT_TYPE_ISO       ; type
+       .db     0x00                            ; max packet LSB
+       .db     0x04                            ; max packet size=1024 bytes
+       .db     0x03                            ; polling interval
+
+; ISOCHRONOUS interface  1MB/s
+       .db     DSCR_INTERFACE_LEN
+       .db     DSCR_INTERFACE_TYPE
+       .db     0                                ; index
+       .db     6                                ; alt setting idx
+       .db     1                                ; n endpoints  
+       .db     0xff                     ; class
+       .db     0
+       .db     1
+       .db     0                    ; string index     
+
+; endpoint 2 in 
+       .db     DSCR_ENDPOINT_LEN
+       .db     DSCR_ENDPOINT_TYPE
+       .db     0x82                            ;  ep1 dir=in and address
+       .db     ENDPOINT_TYPE_ISO       ; type
+       .db     0x00                            ; max packet LSB
+       .db     0x04                            ; max packet size=1024 bytes
+       .db     0x04                            ; polling interval
+
+; ISOCHRONOUS interface 500 kB/s
+       .db     DSCR_INTERFACE_LEN
+       .db     DSCR_INTERFACE_TYPE
+       .db     0                                ; index
+       .db     7                                ; alt setting idx
+       .db     1                                ; n endpoints  
+       .db     0xff                     ; class
+       .db     0
+       .db     1
+       .db     0                    ; string index     
+
+; endpoint 2 in 
+       .db     DSCR_ENDPOINT_LEN
+       .db     DSCR_ENDPOINT_TYPE
+       .db     0x82                            ;  ep1 dir=in and address
+       .db     ENDPOINT_TYPE_ISO       ; type
+       .db     0x00                            ; max packet LSB
+       .db     0x02                            ; max packet size=512 bytes
+       .db     0x04                            ; polling interval
+
+
+highspd_dscr_realend:
+
+.even
+_fullspd_dscr:
+       .db     fullspd_dscr_end-_fullspd_dscr      ; dscr len
+       .db     DSCR_CONFIG_TYPE
+    ; can't use .dw because byte order is different
+       .db     (fullspd_dscr_realend-_fullspd_dscr) % 256 ; total length of config lsb
+       .db     (fullspd_dscr_realend-_fullspd_dscr) / 256 ; total length of config msb
+       .db     2                                                                ; n interfaces
+       .db     1                                                                ; config number
+       .db     0                                                                ; config string
+       .db     0x80                             ; attrs = bus powered, no wakeup
+       .db     55                               ; max power = 110mA
+fullspd_dscr_end:
+
+
+; all the interfaces next 
+; BULK interface
+       .db     DSCR_INTERFACE_LEN
+       .db     DSCR_INTERFACE_TYPE
+       .db     0                                ; index
+       .db     0                                ; alt setting idx
+       .db     1                                ; n endpoints  
+       .db     0xff                     ; class
+       .db     0
+       .db     0
+       .db     0                    ; string index     
+
+; endpoint 6 in 
+       .db     DSCR_ENDPOINT_LEN
+       .db     DSCR_ENDPOINT_TYPE
+       .db     0x86                            ;  ep1 dir=in and address
+       .db     ENDPOINT_TYPE_BULK      ; type
+       .db     0x40                            ; max packet LSB
+       .db     0x00                            ; max packet size=512 bytes
+       .db     0x00                            ; polling interval
+
+; ISOCHRONOUS interface 1 MB/s
+       .db     DSCR_INTERFACE_LEN
+       .db     DSCR_INTERFACE_TYPE
+       .db     0                                ; index
+       .db     1                                ; alt setting idx
+       .db     1                                ; n endpoints  
+       .db     0xff                     ; class
+       .db     0
+       .db     1
+       .db     0                    ; string index     
+
+; endpoint 2 in 
+       .db     DSCR_ENDPOINT_LEN
+       .db     DSCR_ENDPOINT_TYPE
+       .db     0x82                            ;  ep1 dir=in and address
+       .db     ENDPOINT_TYPE_ISO       ; type
+       .db     0xff                            ; max packet LSB
+       .db     0x03                            ; max packet size=1023 bytes
+       .db     0x01                            ; polling interval
+
+; ISOCHRONOUS interface 500 kB/s
+       .db     DSCR_INTERFACE_LEN
+       .db     DSCR_INTERFACE_TYPE
+       .db     0                                ; index
+       .db     2                                ; alt setting idx
+       .db     1                                ; n endpoints  
+       .db     0xff                     ; class
+       .db     0
+       .db     1
+       .db     0                    ; string index     
+
+; endpoint 2 in 
+       .db     DSCR_ENDPOINT_LEN
+       .db     DSCR_ENDPOINT_TYPE
+       .db     0x82                            ;  ep1 dir=in and address
+       .db     ENDPOINT_TYPE_ISO       ; type
+       .db     0x00                            ; max packet LSB
+       .db     0x02                            ; max packet size=512 bytes
+       .db     0x01                            ; polling interval
+
+fullspd_dscr_realend:
+
+.even
+_dev_strings:
+; sample string
+_string0:
+       .db     string0end-_string0 ; len
+       .db     DSCR_STRING_TYPE
+    .db 0x09, 0x04 ; 0x0409 is the language code for English.  Possible to add more codes after this. 
+string0end:
+; add more strings here
+_string1:
+       .db     string1end-_string1 ; len
+       .db     DSCR_STRING_TYPE
+    .ascii 'O\0D\0M\0'
+string1end:
+_string2:
+       .db     string2end-_string2 ; len
+       .db     DSCR_STRING_TYPE
+    .ascii 'f\0x\0002\0l\0a\0f\0w\0'
+string2end:
+
+
+_dev_strings_end:
+    .dw 0x0000  ; in case you wanted to look at memory between _dev_strings and _dev_strings_end