From: Uwe Hermann Date: Mon, 24 Apr 2017 13:04:09 +0000 (+0200) Subject: scopes: Rename dscr_hantek_6022be.inc to dscr_scope.inc. X-Git-Tag: sigrok-firmware-fx2lafw-0.1.6~15 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=72295bd729dde3e065ecb40b4bf8b479bee23e90;p=sigrok-firmware-fx2lafw.git scopes: Rename dscr_hantek_6022be.inc to dscr_scope.inc. --- diff --git a/Makefile.am b/Makefile.am index 63967c33..e8d0abb2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -84,7 +84,7 @@ fx2lafw_objects = \ gpif-acquisition.rel scope_headers = \ - include/dscr_hantek_6022be.inc \ + include/dscr_scope.inc \ include/scope.inc \ include/common.inc @@ -310,9 +310,9 @@ hw/cypress-fx2/dscr.rel: hw/cypress-fx2/$(dirstamp) include/dscr.inc hw/saleae-logic/dscr.rel: hw/saleae-logic/$(dirstamp) include/dscr.inc hw/sigrok-fx2-8ch/dscr.rel: hw/sigrok-fx2-8ch/$(dirstamp) include/dscr.inc hw/sigrok-fx2-16ch/dscr.rel: hw/sigrok-fx2-16ch/$(dirstamp) include/dscr.inc -hw/hantek-6022be/dscr.rel: hw/hantek-6022be/$(dirstamp) include/dscr_hantek_6022be.inc -hw/hantek-6022bl/dscr.rel: hw/hantek-6022bl/$(dirstamp) include/dscr_hantek_6022be.inc -hw/sainsmart-dds120/dscr.rel: hw/sainsmart-dds120/$(dirstamp) include/dscr_hantek_6022be.inc +hw/hantek-6022be/dscr.rel: hw/hantek-6022be/$(dirstamp) include/dscr_scope.inc +hw/hantek-6022bl/dscr.rel: hw/hantek-6022bl/$(dirstamp) include/dscr_scope.inc +hw/sainsmart-dds120/dscr.rel: hw/sainsmart-dds120/$(dirstamp) include/dscr_scope.inc # Create build subdirectories diff --git a/hw/hantek-6022be/dscr.a51 b/hw/hantek-6022be/dscr.a51 index ae077270..04b2628b 100644 --- a/hw/hantek-6022be/dscr.a51 +++ b/hw/hantek-6022be/dscr.a51 @@ -21,7 +21,7 @@ VID = 0x501d ; Manufacturer ID (0x1d50) PID = 0x8e60 ; Product ID (0x608e) VER = 0x0100 ; Product "version". 0x0001 == Hantek 6022BE. -.include "dscr_hantek_6022be.inc" +.include "dscr_scope.inc" string_descriptor_a 3,^"Hantek 6022BE" _dev_strings_end: .dw 0x0000 diff --git a/hw/hantek-6022bl/dscr.a51 b/hw/hantek-6022bl/dscr.a51 index 1bba4154..1e74a563 100644 --- a/hw/hantek-6022bl/dscr.a51 +++ b/hw/hantek-6022bl/dscr.a51 @@ -22,7 +22,7 @@ VID = 0x501d ; Manufacturer ID (0x1d50) PID = 0x8e60 ; Product ID (0x608e) VER = 0x0300 ; Product "version". 0x0003 == Hantek 6022BL. -.include "dscr_hantek_6022be.inc" +.include "dscr_scope.inc" string_descriptor_a 3,^"Hantek 6022BL" _dev_strings_end: .dw 0x0000 diff --git a/hw/sainsmart-dds120/dscr.a51 b/hw/sainsmart-dds120/dscr.a51 index e8d906f3..6c5fe9de 100644 --- a/hw/sainsmart-dds120/dscr.a51 +++ b/hw/sainsmart-dds120/dscr.a51 @@ -21,7 +21,7 @@ VID = 0x501d ; Manufacturer ID (0x1d50) PID = 0x8e60 ; Product ID (0x608e) VER = 0x0200 ; Product "version". 0x0002 == SainSmart DDS120. -.include "dscr_hantek_6022be.inc" +.include "dscr_scope.inc" string_descriptor_a 3,^"SainSmart DDS120" _dev_strings_end: .dw 0x0000 diff --git a/include/dscr_hantek_6022be.inc b/include/dscr_hantek_6022be.inc deleted file mode 100644 index c7dee451..00000000 --- a/include/dscr_hantek_6022be.inc +++ /dev/null @@ -1,354 +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, see . -;; - -.include "common.inc" - -.module DEV_DSCR - -; Descriptor types -DSCR_DEVICE_TYPE = 1 -DSCR_CONFIG_TYPE = 2 -DSCR_STRING_TYPE = 3 -DSCR_INTERFACE_TYPE = 4 -DSCR_ENDPOINT_TYPE = 5 -DSCR_DEVQUAL_TYPE = 6 - -; Descriptor lengths -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 -.area DSCR_AREA (CODE) - -; ----------------------------------------------------------------------------- -; Device descriptor -; ----------------------------------------------------------------------------- -_dev_dscr: - .db dev_dscr_end - _dev_dscr - .db DSCR_DEVICE_TYPE - .dw 0x0002 ; USB 2.0 - .db 0xff ; Class (vendor specific) - .db 0xff ; Subclass (vendor specific) - .db 0xff ; Protocol (vendor specific) - .db 64 ; Max. EP0 packet size - .dw VID ; Manufacturer ID - .dw PID ; Product ID - .dw VER ; Product version/type - .db 1 ; Manufacturer string index - .db 2 ; Product string index - .db 3 ; Serial number string index - .db 1 ; Number of configurations -dev_dscr_end: - -; ----------------------------------------------------------------------------- -; Device qualifier (for "other device speed") -; ----------------------------------------------------------------------------- -_dev_qual_dscr: - .db dev_qualdscr_end - _dev_qual_dscr - .db DSCR_DEVQUAL_TYPE - .dw 0x0002 ; USB 2.0 - .db 0 ; Class (0) - .db 0 ; Subclass (0) - .db 0 ; Protocol (0) - .db 64 ; Max. EP0 packet size - .db 1 ; Number of configurations - .db 0 ; Extra reserved byte -dev_qualdscr_end: - -; ----------------------------------------------------------------------------- -; High-Speed configuration descriptor -; ----------------------------------------------------------------------------- -_highspd_dscr: - .db highspd_dscr_end - _highspd_dscr - .db DSCR_CONFIG_TYPE - ; Total length of the configuration (1st line LSB, 2nd line MSB) - .db (highspd_dscr_realend - _highspd_dscr) % 256 - .db (highspd_dscr_realend - _highspd_dscr) / 256 - .db 1 ; Number of interfaces - .db 1 ; Configuration number - .db 0 ; Configuration string (none) - .db 0x80 ; Attributes (bus powered, no wakeup) - .db 0x37 ; Max. power (110mA) -highspd_dscr_end: - - ; Bulk interface 0, alt 0 - .db DSCR_INTERFACE_LEN - .db DSCR_INTERFACE_TYPE - .db 0 ; Interface index - .db 0 ; Alternate setting index - .db 1 ; Number of endpoints - .db 0xff ; Class (vendor specific) - .db 0 ; Subclass (0) - .db 0 ; Protocol (0) - .db 0 ; String index (none) - - ; Endpoint 6 (IN) - .db DSCR_ENDPOINT_LEN - .db DSCR_ENDPOINT_TYPE - .db 0x86 ; EP number (6), direction (IN) - .db ENDPOINT_TYPE_BULK ; Endpoint type (bulk) - .db 0x00 ; Max. packet size, LSB (512 bytes) - .db 0x02 ; Max. packet size, MSB (512 bytes) - .db 0x00 ; Polling interval (ignored for bulk) - - ; Isochronous interface 0, alt 1 - .db DSCR_INTERFACE_LEN - .db DSCR_INTERFACE_TYPE - .db 0 ; Interface index - .db 1 ; Alternate setting index - .db 1 ; Number of endpoints - .db 0xff ; Class (vendor specific) - .db 0 ; Subclass (0) - .db 1 ; Protocol (1) - .db 0 ; String index (none) - - ; Endpoint 2 (IN) - .db DSCR_ENDPOINT_LEN - .db DSCR_ENDPOINT_TYPE - .db 0x82 ; EP number (2), direction (IN) - .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) - .db 0x00 ; Max. packet size, LSB (3*1024 bytes) - .db 0x14 ; Max. packet size, MSB (3*1024 bytes) - ; 12:11 = 0b10 (3 tr. per microframe) - ; 10:00 = 1024 - .db 0x01 ; Polling interval (1 microframe) - - ; Isochronous interface 0, alt 2, 16MB/s - .db DSCR_INTERFACE_LEN - .db DSCR_INTERFACE_TYPE - .db 0 ; Interface index - .db 2 ; Alternate setting index - .db 1 ; Number of endpoints - .db 0xff ; Class (vendor specific) - .db 0 ; Subclass (0) - .db 1 ; Protocol (1) - .db 0 ; String index (none) - - ; Endpoint 2 (IN) - .db DSCR_ENDPOINT_LEN - .db DSCR_ENDPOINT_TYPE - .db 0x82 ; EP number (2), direction (IN) - .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) - .db 0x00 ; Max. packet size, LSB (2*1024 bytes) - .db 0x0c ; Max. packet size, MSB (2*1024 bytes) - ; 12:11 = 0b01 (2 tr. per microframe) - ; 10:00 = 1024 - .db 0x01 ; Polling interval (1 microframe) - - ; Isochronous interface 0, alt 3, 8MB/s - .db DSCR_INTERFACE_LEN - .db DSCR_INTERFACE_TYPE - .db 0 ; Interface index - .db 3 ; Alternate setting index - .db 1 ; Number of endpoints - .db 0xff ; Class (vendor specific) - .db 0 ; Subclass (0) - .db 1 ; Protocol (1) - .db 0 ; String index (none) - - ; Endpoint 2 (IN) - .db DSCR_ENDPOINT_LEN - .db DSCR_ENDPOINT_TYPE - .db 0x82 ; EP number (2), direction (IN) - .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) - .db 0x00 ; Max. packet size, LSB (1024 bytes) - .db 0x04 ; Max. packet size, MSB (1024 bytes) - .db 0x01 ; Polling interval (1 microframe) - - ; Isochronous interface 0, alt 4, 4MB/s - .db DSCR_INTERFACE_LEN - .db DSCR_INTERFACE_TYPE - .db 0 ; Interface index - .db 4 ; Alternate setting index - .db 1 ; Number of endpoints - .db 0xff ; Class (vendor specific) - .db 0 ; Subclass (0) - .db 1 ; Protocol (1) - .db 0 ; String index (none) - - ; Endpoint 2 (IN) - .db DSCR_ENDPOINT_LEN - .db DSCR_ENDPOINT_TYPE - .db 0x82 ; EP number (2), direction (IN) - .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) - .db 0x00 ; Max. packet size, LSB (1024 bytes) - .db 0x04 ; Max. packet size, MSB (1024 bytes) - .db 0x02 ; Polling interval (2 microframes) - - ; Isochronous interface 0, alt 5, 2MB/s - .db DSCR_INTERFACE_LEN - .db DSCR_INTERFACE_TYPE - .db 0 ; Interface index - .db 5 ; Alternate setting index - .db 1 ; Number of endpoints - .db 0xff ; Class (vendor specific) - .db 0 ; Subclass (0) - .db 1 ; Protocol (1) - .db 0 ; String index (none) - - ; Endpoint 2 (IN) - .db DSCR_ENDPOINT_LEN - .db DSCR_ENDPOINT_TYPE - .db 0x82 ; EP number (2), direction (IN) - .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) - .db 0x00 ; Max. packet size, LSB (1024 bytes) - .db 0x04 ; Max. packet size, MSB (1024 bytes) - .db 0x03 ; Polling interval (4 microframes) - - ; Isochronous interface 0, alt 6, 1MB/s - .db DSCR_INTERFACE_LEN - .db DSCR_INTERFACE_TYPE - .db 0 ; Interface index - .db 6 ; Alternate setting index - .db 1 ; Number of endpoints - .db 0xff ; Class (vendor specific) - .db 0 ; Subclass (0) - .db 1 ; Protocol (1) - .db 0 ; String index (none) - - ; Endpoint 2 (IN) - .db DSCR_ENDPOINT_LEN - .db DSCR_ENDPOINT_TYPE - .db 0x82 ; EP number (2), direction (IN) - .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) - .db 0x00 ; Max. packet size, LSB (1024 bytes) - .db 0x04 ; Max. packet size, MSB (1024 bytes) - .db 0x04 ; Polling interval (8 microframes) - - ; Isochronous interface 0, alt 7, 500kB/s - .db DSCR_INTERFACE_LEN - .db DSCR_INTERFACE_TYPE - .db 0 ; Interface index - .db 7 ; Alternate setting index - .db 1 ; Number of endpoints - .db 0xff ; Class (vendor specific) - .db 0 ; Subclass (0) - .db 1 ; Protocol (1) - .db 0 ; String index (none) - - ; Endpoint 2 (IN) - .db DSCR_ENDPOINT_LEN - .db DSCR_ENDPOINT_TYPE - .db 0x82 ; EP number (2), direction (IN) - .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) - .db 0x00 ; Max. packet size, LSB (512 bytes) - .db 0x02 ; Max. packet size, MSB (512 bytes) - .db 0x04 ; Polling interval (8 microframes) - -highspd_dscr_realend: - - .even - -; ----------------------------------------------------------------------------- -; Full-Speed configuration descriptor -; ----------------------------------------------------------------------------- -_fullspd_dscr: - .db fullspd_dscr_end - _fullspd_dscr - .db DSCR_CONFIG_TYPE - ; Total length of the configuration (1st line LSB, 2nd line MSB) - .db (fullspd_dscr_realend - _fullspd_dscr) % 256 - .db (fullspd_dscr_realend - _fullspd_dscr) / 256 - .db 2 ; Number of interfaces - .db 1 ; Configuration number - .db 0 ; Configuration string (none) - .db 0x80 ; Attributes (bus powered, no wakeup) - .db 0x37 ; Max. power (110mA) -fullspd_dscr_end: - - ; Bulk interface 0, alt 0 - .db DSCR_INTERFACE_LEN - .db DSCR_INTERFACE_TYPE - .db 0 ; Interface index - .db 0 ; Alternate setting index - .db 1 ; Number of endpoints - .db 0xff ; Class (vendor specific) - .db 0 ; Subclass (0) - .db 0 ; Protocol (0) - .db 0 ; String index (none) - - ; Endpoint 6 (IN) - .db DSCR_ENDPOINT_LEN - .db DSCR_ENDPOINT_TYPE - .db 0x86 ; EP number (6), direction (IN) - .db ENDPOINT_TYPE_BULK ; Endpoint type (bulk) - .db 0x40 ; Max. packet size, LSB (64 bytes) - .db 0x00 ; Max. packet size, MSB (64 bytes) - .db 0x00 ; Polling interval (ignored for bulk) - - ; Isochronous interface 0, alt 1, 1MB/s - .db DSCR_INTERFACE_LEN - .db DSCR_INTERFACE_TYPE - .db 0 ; Interface index - .db 1 ; Alternate setting index - .db 1 ; Number of endpoints - .db 0xff ; Class (vendor specific) - .db 0 ; Subclass (0) - .db 1 ; Protocol (1) - .db 0 ; String index (none) - - ; Endpoint 2 (IN) - .db DSCR_ENDPOINT_LEN - .db DSCR_ENDPOINT_TYPE - .db 0x82 ; EP number (2), direction (IN) - .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) - .db 0xff ; Max. packet size, LSB (1023 bytes) - .db 0x03 ; Max. packet size, MSB (1023 bytes) - .db 0x01 ; Polling interval (1 frame) - - ; Isochronous interface 0, alt 2, 500kB/s - .db DSCR_INTERFACE_LEN - .db DSCR_INTERFACE_TYPE - .db 0 ; Interface index - .db 2 ; Alternate setting index - .db 1 ; Number of endpoints - .db 0xff ; Class (vendor specific) - .db 0 ; Subclass (0) - .db 1 ; Protocol (1) - .db 0 ; String index (none) - - ; Endpoint 2 (IN) - .db DSCR_ENDPOINT_LEN - .db DSCR_ENDPOINT_TYPE - .db 0x82 ; EP number (2), direction (IN) - .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) - .db 0x00 ; Max. packet size, LSB (512 bytes) - .db 0x02 ; Max. packet size, MSB (512 bytes) - .db 0x01 ; Polling interval (1 frame) - -fullspd_dscr_realend: - - .even - -; ----------------------------------------------------------------------------- -; Strings -; ----------------------------------------------------------------------------- - -_dev_strings: - -; See http://www.usb.org/developers/docs/USB_LANGIDs.pdf for the full list. -string_descriptor_lang 0 0x0409 ; Language code 0x0409 (English, US) - -string_descriptor_a 1,^"sigrok" -string_descriptor_a 2,^"fx2lafw" diff --git a/include/dscr_scope.inc b/include/dscr_scope.inc new file mode 100644 index 00000000..c7dee451 --- /dev/null +++ b/include/dscr_scope.inc @@ -0,0 +1,354 @@ +;; +;; 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, see . +;; + +.include "common.inc" + +.module DEV_DSCR + +; Descriptor types +DSCR_DEVICE_TYPE = 1 +DSCR_CONFIG_TYPE = 2 +DSCR_STRING_TYPE = 3 +DSCR_INTERFACE_TYPE = 4 +DSCR_ENDPOINT_TYPE = 5 +DSCR_DEVQUAL_TYPE = 6 + +; Descriptor lengths +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 +.area DSCR_AREA (CODE) + +; ----------------------------------------------------------------------------- +; Device descriptor +; ----------------------------------------------------------------------------- +_dev_dscr: + .db dev_dscr_end - _dev_dscr + .db DSCR_DEVICE_TYPE + .dw 0x0002 ; USB 2.0 + .db 0xff ; Class (vendor specific) + .db 0xff ; Subclass (vendor specific) + .db 0xff ; Protocol (vendor specific) + .db 64 ; Max. EP0 packet size + .dw VID ; Manufacturer ID + .dw PID ; Product ID + .dw VER ; Product version/type + .db 1 ; Manufacturer string index + .db 2 ; Product string index + .db 3 ; Serial number string index + .db 1 ; Number of configurations +dev_dscr_end: + +; ----------------------------------------------------------------------------- +; Device qualifier (for "other device speed") +; ----------------------------------------------------------------------------- +_dev_qual_dscr: + .db dev_qualdscr_end - _dev_qual_dscr + .db DSCR_DEVQUAL_TYPE + .dw 0x0002 ; USB 2.0 + .db 0 ; Class (0) + .db 0 ; Subclass (0) + .db 0 ; Protocol (0) + .db 64 ; Max. EP0 packet size + .db 1 ; Number of configurations + .db 0 ; Extra reserved byte +dev_qualdscr_end: + +; ----------------------------------------------------------------------------- +; High-Speed configuration descriptor +; ----------------------------------------------------------------------------- +_highspd_dscr: + .db highspd_dscr_end - _highspd_dscr + .db DSCR_CONFIG_TYPE + ; Total length of the configuration (1st line LSB, 2nd line MSB) + .db (highspd_dscr_realend - _highspd_dscr) % 256 + .db (highspd_dscr_realend - _highspd_dscr) / 256 + .db 1 ; Number of interfaces + .db 1 ; Configuration number + .db 0 ; Configuration string (none) + .db 0x80 ; Attributes (bus powered, no wakeup) + .db 0x37 ; Max. power (110mA) +highspd_dscr_end: + + ; Bulk interface 0, alt 0 + .db DSCR_INTERFACE_LEN + .db DSCR_INTERFACE_TYPE + .db 0 ; Interface index + .db 0 ; Alternate setting index + .db 1 ; Number of endpoints + .db 0xff ; Class (vendor specific) + .db 0 ; Subclass (0) + .db 0 ; Protocol (0) + .db 0 ; String index (none) + + ; Endpoint 6 (IN) + .db DSCR_ENDPOINT_LEN + .db DSCR_ENDPOINT_TYPE + .db 0x86 ; EP number (6), direction (IN) + .db ENDPOINT_TYPE_BULK ; Endpoint type (bulk) + .db 0x00 ; Max. packet size, LSB (512 bytes) + .db 0x02 ; Max. packet size, MSB (512 bytes) + .db 0x00 ; Polling interval (ignored for bulk) + + ; Isochronous interface 0, alt 1 + .db DSCR_INTERFACE_LEN + .db DSCR_INTERFACE_TYPE + .db 0 ; Interface index + .db 1 ; Alternate setting index + .db 1 ; Number of endpoints + .db 0xff ; Class (vendor specific) + .db 0 ; Subclass (0) + .db 1 ; Protocol (1) + .db 0 ; String index (none) + + ; Endpoint 2 (IN) + .db DSCR_ENDPOINT_LEN + .db DSCR_ENDPOINT_TYPE + .db 0x82 ; EP number (2), direction (IN) + .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) + .db 0x00 ; Max. packet size, LSB (3*1024 bytes) + .db 0x14 ; Max. packet size, MSB (3*1024 bytes) + ; 12:11 = 0b10 (3 tr. per microframe) + ; 10:00 = 1024 + .db 0x01 ; Polling interval (1 microframe) + + ; Isochronous interface 0, alt 2, 16MB/s + .db DSCR_INTERFACE_LEN + .db DSCR_INTERFACE_TYPE + .db 0 ; Interface index + .db 2 ; Alternate setting index + .db 1 ; Number of endpoints + .db 0xff ; Class (vendor specific) + .db 0 ; Subclass (0) + .db 1 ; Protocol (1) + .db 0 ; String index (none) + + ; Endpoint 2 (IN) + .db DSCR_ENDPOINT_LEN + .db DSCR_ENDPOINT_TYPE + .db 0x82 ; EP number (2), direction (IN) + .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) + .db 0x00 ; Max. packet size, LSB (2*1024 bytes) + .db 0x0c ; Max. packet size, MSB (2*1024 bytes) + ; 12:11 = 0b01 (2 tr. per microframe) + ; 10:00 = 1024 + .db 0x01 ; Polling interval (1 microframe) + + ; Isochronous interface 0, alt 3, 8MB/s + .db DSCR_INTERFACE_LEN + .db DSCR_INTERFACE_TYPE + .db 0 ; Interface index + .db 3 ; Alternate setting index + .db 1 ; Number of endpoints + .db 0xff ; Class (vendor specific) + .db 0 ; Subclass (0) + .db 1 ; Protocol (1) + .db 0 ; String index (none) + + ; Endpoint 2 (IN) + .db DSCR_ENDPOINT_LEN + .db DSCR_ENDPOINT_TYPE + .db 0x82 ; EP number (2), direction (IN) + .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) + .db 0x00 ; Max. packet size, LSB (1024 bytes) + .db 0x04 ; Max. packet size, MSB (1024 bytes) + .db 0x01 ; Polling interval (1 microframe) + + ; Isochronous interface 0, alt 4, 4MB/s + .db DSCR_INTERFACE_LEN + .db DSCR_INTERFACE_TYPE + .db 0 ; Interface index + .db 4 ; Alternate setting index + .db 1 ; Number of endpoints + .db 0xff ; Class (vendor specific) + .db 0 ; Subclass (0) + .db 1 ; Protocol (1) + .db 0 ; String index (none) + + ; Endpoint 2 (IN) + .db DSCR_ENDPOINT_LEN + .db DSCR_ENDPOINT_TYPE + .db 0x82 ; EP number (2), direction (IN) + .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) + .db 0x00 ; Max. packet size, LSB (1024 bytes) + .db 0x04 ; Max. packet size, MSB (1024 bytes) + .db 0x02 ; Polling interval (2 microframes) + + ; Isochronous interface 0, alt 5, 2MB/s + .db DSCR_INTERFACE_LEN + .db DSCR_INTERFACE_TYPE + .db 0 ; Interface index + .db 5 ; Alternate setting index + .db 1 ; Number of endpoints + .db 0xff ; Class (vendor specific) + .db 0 ; Subclass (0) + .db 1 ; Protocol (1) + .db 0 ; String index (none) + + ; Endpoint 2 (IN) + .db DSCR_ENDPOINT_LEN + .db DSCR_ENDPOINT_TYPE + .db 0x82 ; EP number (2), direction (IN) + .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) + .db 0x00 ; Max. packet size, LSB (1024 bytes) + .db 0x04 ; Max. packet size, MSB (1024 bytes) + .db 0x03 ; Polling interval (4 microframes) + + ; Isochronous interface 0, alt 6, 1MB/s + .db DSCR_INTERFACE_LEN + .db DSCR_INTERFACE_TYPE + .db 0 ; Interface index + .db 6 ; Alternate setting index + .db 1 ; Number of endpoints + .db 0xff ; Class (vendor specific) + .db 0 ; Subclass (0) + .db 1 ; Protocol (1) + .db 0 ; String index (none) + + ; Endpoint 2 (IN) + .db DSCR_ENDPOINT_LEN + .db DSCR_ENDPOINT_TYPE + .db 0x82 ; EP number (2), direction (IN) + .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) + .db 0x00 ; Max. packet size, LSB (1024 bytes) + .db 0x04 ; Max. packet size, MSB (1024 bytes) + .db 0x04 ; Polling interval (8 microframes) + + ; Isochronous interface 0, alt 7, 500kB/s + .db DSCR_INTERFACE_LEN + .db DSCR_INTERFACE_TYPE + .db 0 ; Interface index + .db 7 ; Alternate setting index + .db 1 ; Number of endpoints + .db 0xff ; Class (vendor specific) + .db 0 ; Subclass (0) + .db 1 ; Protocol (1) + .db 0 ; String index (none) + + ; Endpoint 2 (IN) + .db DSCR_ENDPOINT_LEN + .db DSCR_ENDPOINT_TYPE + .db 0x82 ; EP number (2), direction (IN) + .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) + .db 0x00 ; Max. packet size, LSB (512 bytes) + .db 0x02 ; Max. packet size, MSB (512 bytes) + .db 0x04 ; Polling interval (8 microframes) + +highspd_dscr_realend: + + .even + +; ----------------------------------------------------------------------------- +; Full-Speed configuration descriptor +; ----------------------------------------------------------------------------- +_fullspd_dscr: + .db fullspd_dscr_end - _fullspd_dscr + .db DSCR_CONFIG_TYPE + ; Total length of the configuration (1st line LSB, 2nd line MSB) + .db (fullspd_dscr_realend - _fullspd_dscr) % 256 + .db (fullspd_dscr_realend - _fullspd_dscr) / 256 + .db 2 ; Number of interfaces + .db 1 ; Configuration number + .db 0 ; Configuration string (none) + .db 0x80 ; Attributes (bus powered, no wakeup) + .db 0x37 ; Max. power (110mA) +fullspd_dscr_end: + + ; Bulk interface 0, alt 0 + .db DSCR_INTERFACE_LEN + .db DSCR_INTERFACE_TYPE + .db 0 ; Interface index + .db 0 ; Alternate setting index + .db 1 ; Number of endpoints + .db 0xff ; Class (vendor specific) + .db 0 ; Subclass (0) + .db 0 ; Protocol (0) + .db 0 ; String index (none) + + ; Endpoint 6 (IN) + .db DSCR_ENDPOINT_LEN + .db DSCR_ENDPOINT_TYPE + .db 0x86 ; EP number (6), direction (IN) + .db ENDPOINT_TYPE_BULK ; Endpoint type (bulk) + .db 0x40 ; Max. packet size, LSB (64 bytes) + .db 0x00 ; Max. packet size, MSB (64 bytes) + .db 0x00 ; Polling interval (ignored for bulk) + + ; Isochronous interface 0, alt 1, 1MB/s + .db DSCR_INTERFACE_LEN + .db DSCR_INTERFACE_TYPE + .db 0 ; Interface index + .db 1 ; Alternate setting index + .db 1 ; Number of endpoints + .db 0xff ; Class (vendor specific) + .db 0 ; Subclass (0) + .db 1 ; Protocol (1) + .db 0 ; String index (none) + + ; Endpoint 2 (IN) + .db DSCR_ENDPOINT_LEN + .db DSCR_ENDPOINT_TYPE + .db 0x82 ; EP number (2), direction (IN) + .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) + .db 0xff ; Max. packet size, LSB (1023 bytes) + .db 0x03 ; Max. packet size, MSB (1023 bytes) + .db 0x01 ; Polling interval (1 frame) + + ; Isochronous interface 0, alt 2, 500kB/s + .db DSCR_INTERFACE_LEN + .db DSCR_INTERFACE_TYPE + .db 0 ; Interface index + .db 2 ; Alternate setting index + .db 1 ; Number of endpoints + .db 0xff ; Class (vendor specific) + .db 0 ; Subclass (0) + .db 1 ; Protocol (1) + .db 0 ; String index (none) + + ; Endpoint 2 (IN) + .db DSCR_ENDPOINT_LEN + .db DSCR_ENDPOINT_TYPE + .db 0x82 ; EP number (2), direction (IN) + .db ENDPOINT_TYPE_ISO ; Endpoint type (iso) + .db 0x00 ; Max. packet size, LSB (512 bytes) + .db 0x02 ; Max. packet size, MSB (512 bytes) + .db 0x01 ; Polling interval (1 frame) + +fullspd_dscr_realend: + + .even + +; ----------------------------------------------------------------------------- +; Strings +; ----------------------------------------------------------------------------- + +_dev_strings: + +; See http://www.usb.org/developers/docs/USB_LANGIDs.pdf for the full list. +string_descriptor_lang 0 0x0409 ; Language code 0x0409 (English, US) + +string_descriptor_a 1,^"sigrok" +string_descriptor_a 2,^"fx2lafw"