diff --git a/embed/prodtest/main.c b/embed/prodtest/main.c index f2322502a..2c5de90fe 100644 --- a/embed/prodtest/main.c +++ b/embed/prodtest/main.c @@ -91,7 +91,7 @@ static void usb_init_all(void) .device_protocol = 0x01, // Interface Association Descriptor .vendor_id = 0x1209, .product_id = 0x53C1, - .release_num = 0x0300, + .release_num = 0x0400, .manufacturer = "SatoshiLabs", .product = "TREZOR", .serial_number = "000000000000", diff --git a/embed/trezorhal/usb.c b/embed/trezorhal/usb.c index 5e511f5f3..406cf8af7 100644 --- a/embed/trezorhal/usb.c +++ b/embed/trezorhal/usb.c @@ -64,7 +64,7 @@ void usb_init(const usb_dev_info_t *dev_info) { // Device descriptor usb_dev_desc.bLength = sizeof(usb_device_descriptor_t); usb_dev_desc.bDescriptorType = USB_DESC_TYPE_DEVICE; - usb_dev_desc.bcdUSB = (sectrue == usb21_enabled) ? 0x0210 : 0x2000; // USB 2.1 or USB 2.0 + usb_dev_desc.bcdUSB = (sectrue == usb21_enabled) ? 0x0210 : 0x0200; // USB 2.1 or USB 2.0 usb_dev_desc.bDeviceClass = dev_info->device_class; usb_dev_desc.bDeviceSubClass = dev_info->device_subclass; usb_dev_desc.bDeviceProtocol = dev_info->device_protocol; diff --git a/embed/trezorhal/usbd_ctlreq.c b/embed/trezorhal/usbd_ctlreq.c index 60fea0a97..fe6b60f01 100644 --- a/embed/trezorhal/usbd_ctlreq.c +++ b/embed/trezorhal/usbd_ctlreq.c @@ -340,6 +340,9 @@ static void USBD_GetDescriptor(USBD_HandleTypeDef *pdev , #if (USBD_LPM_ENABLED == 1) case USB_DESC_TYPE_BOS: pbuf = pdev->pDesc->GetBOSDescriptor(pdev->dev_speed, &len); + if (!pbuf) { + USBD_CtlError(pdev , req); + } break; #endif case USB_DESC_TYPE_DEVICE: