1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-22 15:38:11 +00:00

usb: use HS_IN_FS

TODO: with more interfaces, static usb state is getting bigger, maybe we should move it to dynamic memory. at the very least, concepts of physical and logical interfaces should be separate
This commit is contained in:
Jan Pochyla 2017-07-12 16:04:03 +02:00
parent d77373eef7
commit 880faa10b0
5 changed files with 21 additions and 18 deletions

View File

@ -46,7 +46,9 @@
/* Exported types ------------------------------------------------------------*/ /* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/ /* Exported constants --------------------------------------------------------*/
#define USE_USB_FS // #define USE_USB_FS
#define USE_USB_HS
#define USE_USB_HS_IN_FS
/* ########################## Module Selection ############################## */ /* ########################## Module Selection ############################## */
/** /**

View File

@ -12,7 +12,7 @@
#define UNCONST(X) ((uint8_t *)(X)) #define UNCONST(X) ((uint8_t *)(X))
#define USB_MAX_CONFIG_DESC_SIZE 128 #define USB_MAX_CONFIG_DESC_SIZE 256
#define USB_MAX_STR_SIZE 62 #define USB_MAX_STR_SIZE 62
#define USB_MAX_STR_DESC_SIZE (USB_MAX_STR_SIZE * 2 + 2) #define USB_MAX_STR_DESC_SIZE (USB_MAX_STR_SIZE * 2 + 2)

View File

@ -62,7 +62,8 @@
/* Exported constants --------------------------------------------------------*/ /* Exported constants --------------------------------------------------------*/
/* Common Config */ /* Common Config */
#define USB_PHY_FS_ID 0 #define USB_PHY_FS_ID 0
#define USBD_MAX_NUM_INTERFACES 3 #define USB_PHY_HS_ID 1
#define USBD_MAX_NUM_INTERFACES 8
#define USBD_MAX_NUM_CONFIGURATION 1 #define USBD_MAX_NUM_CONFIGURATION 1
#define USBD_SUPPORT_USER_STRING 0 #define USBD_SUPPORT_USER_STRING 0
#define USBD_SELF_POWERED 0 #define USBD_SELF_POWERED 0

View File

@ -311,7 +311,7 @@ def send_cmd(cmd: Cmd, iface: int) -> None:
def boot(): def boot():
iface = 0x00 iface = 0x03
loop.schedule_task(handle_reports(iface)) loop.schedule_task(handle_reports(iface))

View File

@ -15,7 +15,7 @@ from apps import homescreen
from apps import management from apps import management
from apps import wallet from apps import wallet
from apps import ethereum from apps import ethereum
# from apps import fido_u2f from apps import fido_u2f
# Initialize all applications # Initialize all applications
if __debug__: if __debug__:
@ -24,7 +24,7 @@ homescreen.boot()
management.boot() management.boot()
wallet.boot() wallet.boot()
ethereum.boot() ethereum.boot()
# fido_u2f.boot() fido_u2f.boot()
# HACK: keep storage loaded at all times # HACK: keep storage loaded at all times
from apps.common import storage from apps.common import storage
@ -35,9 +35,9 @@ ui.display.backlight(ui.BACKLIGHT_NORMAL)
# Register USB ifaces # Register USB ifaces
_IFACE_WIRE = const(0x00) _IFACE_WIRE = const(0x00)
_IFACE_U2F = const(0x00)
_IFACE_VCP = const(0x01) _IFACE_VCP = const(0x01)
_IFACE_VCP_DATA = const(0x02) _IFACE_VCP_DATA = const(0x02)
_IFACE_U2F = const(0x03)
hid_wire = msg.HID( hid_wire = msg.HID(
iface_num=_IFACE_WIRE, iface_num=_IFACE_WIRE,
@ -63,10 +63,18 @@ hid_wire = msg.HID(
]), ]),
) )
vcp = msg.VCP(
iface_num=_IFACE_VCP,
data_iface_num=_IFACE_VCP_DATA,
ep_in=0x82,
ep_out=0x02,
ep_cmd=0x83,
)
hid_u2f = msg.HID( hid_u2f = msg.HID(
iface_num=_IFACE_U2F, iface_num=_IFACE_U2F,
ep_in=0x81, ep_in=0x84,
ep_out=0x01, ep_out=0x03,
report_desc=bytes([ report_desc=bytes([
0x06, 0xd0, 0xf1, # USAGE_PAGE (FIDO Alliance) 0x06, 0xd0, 0xf1, # USAGE_PAGE (FIDO Alliance)
0x09, 0x01, # USAGE (U2F HID Authenticator Device) 0x09, 0x01, # USAGE (U2F HID Authenticator Device)
@ -87,14 +95,6 @@ hid_u2f = msg.HID(
]), ]),
) )
vcp = msg.VCP(
iface_num=_IFACE_VCP,
data_iface_num=_IFACE_VCP_DATA,
ep_in=0x82,
ep_out=0x02,
ep_cmd=0x83,
)
msg.init_usb(msg.USB( msg.init_usb(msg.USB(
vendor_id=0x1209, vendor_id=0x1209,
product_id=0x53C1, product_id=0x53C1,
@ -102,7 +102,7 @@ msg.init_usb(msg.USB(
manufacturer_str="SatoshiLabs", manufacturer_str="SatoshiLabs",
product_str="TREZOR", product_str="TREZOR",
serial_number_str="000000000000000000000000" serial_number_str="000000000000000000000000"
), (hid_wire, vcp)) ), (hid_wire, vcp, hid_u2f))
# Initialize the wire codec pipeline # Initialize the wire codec pipeline
wire.setup(_IFACE_WIRE) wire.setup(_IFACE_WIRE)