mirror of
https://github.com/EttusResearch/uhd.git
synced 2026-10-25 17:36:10 +00:00
The current firmware missed descriptors for B200-mini and B205-mini. Added the missing descriptors. Also this commit ammends the firmware howto. It specifies the SDK version we are using as well as some additional command applied to the SDK files to make the patch successful. Co-authored-by: Lars Amsel <lars.amsel@emerson.com>
309 lines
7.2 KiB
C
309 lines
7.2 KiB
C
//
|
|
// Copyright 2019 Ettus Research, a National Instruments Brand
|
|
//
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
//
|
|
|
|
/* This file contains all descriptors that are common between the bootloader
|
|
and firmware code. Non-const descriptors are modified at runtime based on
|
|
information read from the EEPROM. */
|
|
|
|
/* Standard Device Descriptor for USB 2.0 */
|
|
unsigned char common_usb2_dev_desc[] = {
|
|
0x12, /* Descriptor size */
|
|
0x01, /* CY_U3P_USB_DEVICE_DESCR Device descriptor type */
|
|
0x10,
|
|
0x02, /* USB 2.10 */
|
|
0xFF, /* Device class */
|
|
0x00, /* Device sub-class */
|
|
0x00, /* Device protocol */
|
|
0x40, /* Maxpacket size for EP0 : 64 bytes */
|
|
0xB4,
|
|
0x04, /* Vendor ID */
|
|
0xF0,
|
|
0x00, /* Product ID */
|
|
0x00,
|
|
0x00, /* Device release number */
|
|
0x01, /* Manufacture string index */
|
|
0x02, /* Product string index */
|
|
0x03, /* Serial number string index */
|
|
0x01 /* Number of configurations */
|
|
};
|
|
|
|
/* Standard Device Descriptor for USB 3.0 */
|
|
unsigned char common_usb3_dev_desc[] = {
|
|
0x12, /* Descriptor size */
|
|
0x01, /* CY_U3P_USB_DEVICE_DESCR Device descriptor type */
|
|
0x00,
|
|
0x03, /* USB 3.0 */
|
|
0xFF, /* Device class */
|
|
0x00, /* Device sub-class */
|
|
0x00, /* Device protocol */
|
|
0x09, /* Maxpacket size for EP0 : 2^9 */
|
|
0xB4,
|
|
0x04, /* Vendor ID */
|
|
0xF0,
|
|
0x00, /* Product ID */
|
|
0x00,
|
|
0x00, /* Device release number */
|
|
0x01, /* Manufacture string index */
|
|
0x02, /* Product string index */
|
|
0x03, /* Serial number string index */
|
|
0x01 /* Number of configurations */
|
|
};
|
|
|
|
/* Standard Device Qualifier Descriptor */
|
|
const unsigned char common_dev_qual_desc[] = {
|
|
0x0A, /* Descriptor size */
|
|
0x06, /* CY_U3P_USB_DEVQUAL_DESCR Device qualifier descriptor type */
|
|
0x00,
|
|
0x02, /* USB 2.0 */
|
|
0xFF, /* Device class */
|
|
0x00, /* Device sub-class */
|
|
0x00, /* Device protocol */
|
|
0x40, /* Maxpacket size for EP0 : 64 bytes */
|
|
0x01, /* Number of configurations */
|
|
0x00 /* Reserved */
|
|
};
|
|
|
|
/* Standard Binary Device Object Store Descriptor */
|
|
const unsigned char common_usb_bos_desc[] = {
|
|
0x05, /* Descriptor size */
|
|
0x0F, /* CY_U3P_BOS_DESCR Device descriptor type */
|
|
0x16,
|
|
0x00, /* Length of this descriptor and all sub descriptors */
|
|
0x02, /* Number of device capability descriptors */
|
|
|
|
/* USB 2.0 extension */
|
|
0x07, /* Descriptor size */
|
|
0x10, /* CY_U3P_DEVICE_CAPB_DESCR Device capability type descriptor */
|
|
0x02, /* CY_U3P_USB2_EXTN_CAPB_TYPE USB 2.0 extension capability type */
|
|
0x02,
|
|
0x00,
|
|
0x00,
|
|
0x00, /* Supported device level features: LPM support */
|
|
|
|
/* SuperSpeed device capability */
|
|
0x0A, /* Descriptor size */
|
|
0x10, /* CY_U3P_DEVICE_CAPB_DESCR Device capability type descriptor */
|
|
0x03, /* CY_U3P_SS_USB_CAPB_TYPE SuperSpeed device capability type */
|
|
0x00, /* Supported device level features */
|
|
0x0E,
|
|
0x00, /* Speeds supported by the device : SS, HS and FS */
|
|
0x03, /* Functionality support */
|
|
0x00, /* U1 Device Exit latency */
|
|
0x00,
|
|
0x00 /* U2 Device Exit latency */
|
|
};
|
|
|
|
/* Standard Language ID String Descriptor */
|
|
const unsigned char common_string_lang_id_desc[] = {
|
|
0x04, /* Descriptor Size */
|
|
0x03, /* CY_U3P_USB_STRING_DESCR Device Descriptor Type */
|
|
0x09,
|
|
0x04 /* Language ID supported */
|
|
};
|
|
|
|
// clang-format off
|
|
/* Ettus Manufacturer String Descriptor */
|
|
const unsigned char common_ettus_manufacturer_desc[] =
|
|
{
|
|
0x26, /* Descriptor Size */
|
|
0x03, /* CY_U3P_USB_STRING_DESCR Device Descriptor Type */
|
|
'E',0x00,
|
|
't',0x00,
|
|
't',0x00,
|
|
'u',0x00,
|
|
's',0x00,
|
|
' ',0x00,
|
|
'R',0x00,
|
|
'e',0x00,
|
|
's',0x00,
|
|
'e',0x00,
|
|
'a',0x00,
|
|
'r',0x00,
|
|
'c',0x00,
|
|
'h',0x00,
|
|
' ',0x00,
|
|
'L',0x00,
|
|
'L',0x00,
|
|
'C',0x00
|
|
};
|
|
|
|
/* NI Manufacturer String Descriptor */
|
|
const unsigned char common_ni_manufacturer_desc[] =
|
|
{
|
|
0x36, /* Descriptor Size */
|
|
0x03, /* CY_U3P_USB_STRING_DESCR Device Descriptor Type */
|
|
'N',0x00,
|
|
'a',0x00,
|
|
't',0x00,
|
|
'i',0x00,
|
|
'o',0x00,
|
|
'n',0x00,
|
|
'a',0x00,
|
|
'l',0x00,
|
|
' ',0x00,
|
|
'I',0x00,
|
|
'n',0x00,
|
|
's',0x00,
|
|
't',0x00,
|
|
'r',0x00,
|
|
'u',0x00,
|
|
'm',0x00,
|
|
'e',0x00,
|
|
'n',0x00,
|
|
't',0x00,
|
|
's',0x00,
|
|
' ',0x00,
|
|
'C',0x00,
|
|
'o',0x00,
|
|
'r',0x00,
|
|
'p',0x00,
|
|
'.',0x00
|
|
};
|
|
|
|
|
|
/* Ettus Product String Descriptor */
|
|
const unsigned char common_b200_product_desc[] =
|
|
{
|
|
0x14, /* Descriptor Size */
|
|
0x03, /* CY_U3P_USB_STRING_DESCR Device Descriptor Type */
|
|
'U',0x00,
|
|
'S',0x00,
|
|
'R',0x00,
|
|
'P',0x00,
|
|
' ',0x00,
|
|
'B',0x00,
|
|
'2',0x00,
|
|
'x',0x00,
|
|
'0',0x00
|
|
};
|
|
|
|
const unsigned char common_b200_mini_product_desc[] =
|
|
{
|
|
0x1E, /* Descriptor Size */
|
|
0x03, /* CY_U3P_USB_STRING_DESCR Device Descriptor Type */
|
|
'U',0x00,
|
|
'S',0x00,
|
|
'R',0x00,
|
|
'P',0x00,
|
|
' ',0x00,
|
|
'B',0x00,
|
|
'2',0x00,
|
|
'0',0x00,
|
|
'0',0x00,
|
|
' ',0x00,
|
|
'm',0x00,
|
|
'i',0x00,
|
|
'n',0x00,
|
|
'i',0x00
|
|
};
|
|
|
|
const unsigned char common_b205_mini_product_desc[] =
|
|
{
|
|
0x1E, /* Descriptor Size */
|
|
0x03, /* CY_U3P_USB_STRING_DESCR Device Descriptor Type */
|
|
'U',0x00,
|
|
'S',0x00,
|
|
'R',0x00,
|
|
'P',0x00,
|
|
' ',0x00,
|
|
'B',0x00,
|
|
'2',0x00,
|
|
'0',0x00,
|
|
'5',0x00,
|
|
' ',0x00,
|
|
'm',0x00,
|
|
'i',0x00,
|
|
'n',0x00,
|
|
'i',0x00
|
|
};
|
|
|
|
const unsigned char common_b206_mini_product_desc[] =
|
|
{
|
|
0x1E, /* Descriptor Size */
|
|
0x03, /* CY_U3P_USB_STRING_DESCR Device Descriptor Type */
|
|
'U',0x00,
|
|
'S',0x00,
|
|
'R',0x00,
|
|
'P',0x00,
|
|
' ',0x00,
|
|
'B',0x00,
|
|
'2',0x00,
|
|
'0',0x00,
|
|
'6',0x00,
|
|
' ',0x00,
|
|
'm',0x00,
|
|
'i',0x00,
|
|
'n',0x00,
|
|
'i',0x00
|
|
};
|
|
|
|
/* NI-USRP 2900 Product String Descriptor */
|
|
const unsigned char common_niusrp_2900_product_desc[] =
|
|
{
|
|
0x1A, /* Descriptor Size */
|
|
0x03, /* CY_U3P_USB_STRING_DESCR Device Descriptor Type */
|
|
'N',0x00,
|
|
'I',0x00,
|
|
' ',0x00,
|
|
'U',0x00,
|
|
'S',0x00,
|
|
'R',0x00,
|
|
'P',0x00,
|
|
'-',0x00,
|
|
'2',0x00,
|
|
'9',0x00,
|
|
'0',0x00,
|
|
'0',0x00
|
|
};
|
|
|
|
/* NI-USRP 2901 Product String Descriptor */
|
|
const unsigned char common_niusrp_2901_product_desc[] =
|
|
{
|
|
0x1A, /* Descriptor Size */
|
|
0x03, /* CY_U3P_USB_STRING_DESCR Device Descriptor Type */
|
|
'N',0x00,
|
|
'I',0x00,
|
|
' ',0x00,
|
|
'U',0x00,
|
|
'S',0x00,
|
|
'R',0x00,
|
|
'P',0x00,
|
|
'-',0x00,
|
|
'2',0x00,
|
|
'9',0x00,
|
|
'0',0x00,
|
|
'1',0x00
|
|
};
|
|
|
|
/* Unknown Product String Descriptor */
|
|
const unsigned char common_unknown_desc[] =
|
|
{
|
|
0x10, /* Descriptor Size */
|
|
0x03, /* CY_U3P_USB_STRING_DESCR Device Descriptor Type */
|
|
'U',0x00,
|
|
'n',0x00,
|
|
'k',0x00,
|
|
'n',0x00,
|
|
'o',0x00,
|
|
'w',0x00,
|
|
'n',0x00
|
|
};
|
|
|
|
unsigned char common_dev_serial_desc[] =
|
|
{
|
|
0x14, /* Descriptor Size */
|
|
0x03, /* CY_U3P_USB_STRING_DESCR Device Descriptor Type */
|
|
'0',0x00,
|
|
'0',0x00,
|
|
'0',0x00,
|
|
'0',0x00,
|
|
'0',0x00,
|
|
'0',0x00,
|
|
'0',0x00,
|
|
'0',0x00,
|
|
'0',0x00
|
|
};
|
|
//clang-format on
|