tnt has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/26830 )
Change subject: icE1usb fw: Use #define's in descriptors for interface/endpoints ID ......................................................................
icE1usb fw: Use #define's in descriptors for interface/endpoints ID
This way they can be used in other parts of the code more easily.
Signed-off-by: Sylvain Munaut tnt@246tNt.com Change-Id: I565d9a43bc26b99bc385b46522e7da6a207b2412 --- M firmware/ice40-riscv/icE1usb/Makefile M firmware/ice40-riscv/icE1usb/usb_desc_app.c A firmware/ice40-riscv/icE1usb/usb_desc_ids.h 3 files changed, 34 insertions(+), 22 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/30/26830/1
diff --git a/firmware/ice40-riscv/icE1usb/Makefile b/firmware/ice40-riscv/icE1usb/Makefile index 1c92edb..a8d18c9 100644 --- a/firmware/ice40-riscv/icE1usb/Makefile +++ b/firmware/ice40-riscv/icE1usb/Makefile @@ -48,6 +48,7 @@ config.h \ e1.h \ misc.h \ + usb_desc_ids.h \ usb_str_app.gen.h \ $(NULL)
diff --git a/firmware/ice40-riscv/icE1usb/usb_desc_app.c b/firmware/ice40-riscv/icE1usb/usb_desc_app.c index 246e70f..ec01854 100644 --- a/firmware/ice40-riscv/icE1usb/usb_desc_app.c +++ b/firmware/ice40-riscv/icE1usb/usb_desc_app.c @@ -10,6 +10,8 @@ #include <no2usb/usb_dfu_proto.h> #include <no2usb/usb.h>
+#include "usb_desc_ids.h" + #define NULL ((void*)0) #define num_elem(a) (sizeof(a) / sizeof(a[0]))
@@ -63,11 +65,7 @@ .bLength = sizeof(struct usb_conf_desc), .bDescriptorType = USB_DT_CONF, .wTotalLength = sizeof(_app_conf_desc), -#if 0 - .bNumInterfaces = 4, -#else - .bNumInterfaces = 2, -#endif + .bNumInterfaces = USB_INTF_NUM, .bConfigurationValue = 1, .iConfiguration = 4, .bmAttributes = 0x80, @@ -78,7 +76,7 @@ .intf = { .bLength = sizeof(struct usb_intf_desc), .bDescriptorType = USB_DT_INTF, - .bInterfaceNumber = 0, + .bInterfaceNumber = USB_INTF_E1(0), .bAlternateSetting = 0, .bNumEndpoints = 1, .bInterfaceClass = 0xff, @@ -89,7 +87,7 @@ .ep_interrupt = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x83, + .bEndpointAddress = USB_EP_E1_INT(0), .bmAttributes = 0x03, .wMaxPacketSize = 10, .bInterval = 3, @@ -99,7 +97,7 @@ .intf = { .bLength = sizeof(struct usb_intf_desc), .bDescriptorType = USB_DT_INTF, - .bInterfaceNumber = 0, + .bInterfaceNumber = USB_INTF_E1(0), .bAlternateSetting = 1, .bNumEndpoints = 4, .bInterfaceClass = 0xff, @@ -110,7 +108,7 @@ .ep_data_in = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x82, + .bEndpointAddress = USB_EP_E1_IN(0), .bmAttributes = 0x05, .wMaxPacketSize = 388, .bInterval = 1, @@ -118,7 +116,7 @@ .ep_data_out = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x01, + .bEndpointAddress = USB_EP_E1_OUT(0), .bmAttributes = 0x05, .wMaxPacketSize = 388, .bInterval = 1, @@ -126,7 +124,7 @@ .ep_fb = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x81, + .bEndpointAddress = USB_EP_E1_FB(0), .bmAttributes = 0x11, .wMaxPacketSize = 8, .bInterval = 3, @@ -134,7 +132,7 @@ .ep_interrupt = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x83, + .bEndpointAddress = USB_EP_E1_INT(0), .bmAttributes = 0x03, .wMaxPacketSize = 10, .bInterval = 3, @@ -146,7 +144,7 @@ .intf_ctl = { .bLength = sizeof(struct usb_intf_desc), .bDescriptorType = USB_DT_INTF, - .bInterfaceNumber = 1, + .bInterfaceNumber = USB_INTF_GPS_CDC_CTL, .bAlternateSetting = 0, .bNumEndpoints = 1, .bInterfaceClass = USB_CLS_CDC_CONTROL, @@ -176,7 +174,7 @@ .ep_ctl = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x84, + .bEndpointAddress = USB_EP_GPS_CDC_CTL, .bmAttributes = 0x03, .wMaxPacketSize = 64, .bInterval = 0x40, @@ -184,7 +182,7 @@ .intf_data = { .bLength = sizeof(struct usb_intf_desc), .bDescriptorType = USB_DT_INTF, - .bInterfaceNumber = 2, + .bInterfaceNumber = USB_INTF_GPS_CDC_DATA, .bAlternateSetting = 0, .bNumEndpoints = 2, .bInterfaceClass = USB_CLS_CDC_DATA, @@ -195,7 +193,7 @@ .ep_data_out = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x05, + .bEndpointAddress = USB_EP_GPS_CDC_OUT, .bmAttributes = 0x02, .wMaxPacketSize = 64, .bInterval = 0x00, @@ -203,7 +201,7 @@ .ep_data_in = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x85, + .bEndpointAddress = USB_EP_GPS_CDC_IN, .bmAttributes = 0x02, .wMaxPacketSize = 64, .bInterval = 0x00, @@ -214,11 +212,7 @@ .intf = { .bLength = sizeof(struct usb_intf_desc), .bDescriptorType = USB_DT_INTF, -#if 0 - .bInterfaceNumber = 3, -#else - .bInterfaceNumber = 1, -#endif + .bInterfaceNumber = USB_INTF_DFU, .bAlternateSetting = 0, .bNumEndpoints = 0, .bInterfaceClass = 0xfe, diff --git a/firmware/ice40-riscv/icE1usb/usb_desc_ids.h b/firmware/ice40-riscv/icE1usb/usb_desc_ids.h new file mode 100644 index 0000000..2247f84 --- /dev/null +++ b/firmware/ice40-riscv/icE1usb/usb_desc_ids.h @@ -0,0 +1,17 @@ +/* + * usb_desc_ids.h + * + * Copyright (C) 2022 Sylvain Munaut tnt@246tNt.com + * SPDX-License-Identifier: LGPL-3.0-or-later + */ + +#pragma once + +#define USB_INTF_E1(p) (0 + (p)) +#define USB_INTF_DFU 1 +#define USB_INTF_NUM 2 + +#define USB_EP_E1_IN(p) (0x82 + (3 * (p))) +#define USB_EP_E1_OUT(p) (0x01 + (3 * (p))) +#define USB_EP_E1_FB(p) (0x81 + (3 * (p))) +#define USB_EP_E1_INT(p) (0x83 + (3 * (p)))
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/26830 )
Change subject: icE1usb fw: Use #define's in descriptors for interface/endpoints ID ......................................................................
Patch Set 1: Code-Review+2
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/26830 )
Change subject: icE1usb fw: Use #define's in descriptors for interface/endpoints ID ......................................................................
icE1usb fw: Use #define's in descriptors for interface/endpoints ID
This way they can be used in other parts of the code more easily.
Signed-off-by: Sylvain Munaut tnt@246tNt.com Change-Id: I565d9a43bc26b99bc385b46522e7da6a207b2412 --- M firmware/ice40-riscv/icE1usb/Makefile M firmware/ice40-riscv/icE1usb/usb_desc_app.c A firmware/ice40-riscv/icE1usb/usb_desc_ids.h 3 files changed, 34 insertions(+), 22 deletions(-)
Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved
diff --git a/firmware/ice40-riscv/icE1usb/Makefile b/firmware/ice40-riscv/icE1usb/Makefile index 1c92edb..a8d18c9 100644 --- a/firmware/ice40-riscv/icE1usb/Makefile +++ b/firmware/ice40-riscv/icE1usb/Makefile @@ -48,6 +48,7 @@ config.h \ e1.h \ misc.h \ + usb_desc_ids.h \ usb_str_app.gen.h \ $(NULL)
diff --git a/firmware/ice40-riscv/icE1usb/usb_desc_app.c b/firmware/ice40-riscv/icE1usb/usb_desc_app.c index 246e70f..ec01854 100644 --- a/firmware/ice40-riscv/icE1usb/usb_desc_app.c +++ b/firmware/ice40-riscv/icE1usb/usb_desc_app.c @@ -10,6 +10,8 @@ #include <no2usb/usb_dfu_proto.h> #include <no2usb/usb.h>
+#include "usb_desc_ids.h" + #define NULL ((void*)0) #define num_elem(a) (sizeof(a) / sizeof(a[0]))
@@ -63,11 +65,7 @@ .bLength = sizeof(struct usb_conf_desc), .bDescriptorType = USB_DT_CONF, .wTotalLength = sizeof(_app_conf_desc), -#if 0 - .bNumInterfaces = 4, -#else - .bNumInterfaces = 2, -#endif + .bNumInterfaces = USB_INTF_NUM, .bConfigurationValue = 1, .iConfiguration = 4, .bmAttributes = 0x80, @@ -78,7 +76,7 @@ .intf = { .bLength = sizeof(struct usb_intf_desc), .bDescriptorType = USB_DT_INTF, - .bInterfaceNumber = 0, + .bInterfaceNumber = USB_INTF_E1(0), .bAlternateSetting = 0, .bNumEndpoints = 1, .bInterfaceClass = 0xff, @@ -89,7 +87,7 @@ .ep_interrupt = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x83, + .bEndpointAddress = USB_EP_E1_INT(0), .bmAttributes = 0x03, .wMaxPacketSize = 10, .bInterval = 3, @@ -99,7 +97,7 @@ .intf = { .bLength = sizeof(struct usb_intf_desc), .bDescriptorType = USB_DT_INTF, - .bInterfaceNumber = 0, + .bInterfaceNumber = USB_INTF_E1(0), .bAlternateSetting = 1, .bNumEndpoints = 4, .bInterfaceClass = 0xff, @@ -110,7 +108,7 @@ .ep_data_in = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x82, + .bEndpointAddress = USB_EP_E1_IN(0), .bmAttributes = 0x05, .wMaxPacketSize = 388, .bInterval = 1, @@ -118,7 +116,7 @@ .ep_data_out = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x01, + .bEndpointAddress = USB_EP_E1_OUT(0), .bmAttributes = 0x05, .wMaxPacketSize = 388, .bInterval = 1, @@ -126,7 +124,7 @@ .ep_fb = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x81, + .bEndpointAddress = USB_EP_E1_FB(0), .bmAttributes = 0x11, .wMaxPacketSize = 8, .bInterval = 3, @@ -134,7 +132,7 @@ .ep_interrupt = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x83, + .bEndpointAddress = USB_EP_E1_INT(0), .bmAttributes = 0x03, .wMaxPacketSize = 10, .bInterval = 3, @@ -146,7 +144,7 @@ .intf_ctl = { .bLength = sizeof(struct usb_intf_desc), .bDescriptorType = USB_DT_INTF, - .bInterfaceNumber = 1, + .bInterfaceNumber = USB_INTF_GPS_CDC_CTL, .bAlternateSetting = 0, .bNumEndpoints = 1, .bInterfaceClass = USB_CLS_CDC_CONTROL, @@ -176,7 +174,7 @@ .ep_ctl = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x84, + .bEndpointAddress = USB_EP_GPS_CDC_CTL, .bmAttributes = 0x03, .wMaxPacketSize = 64, .bInterval = 0x40, @@ -184,7 +182,7 @@ .intf_data = { .bLength = sizeof(struct usb_intf_desc), .bDescriptorType = USB_DT_INTF, - .bInterfaceNumber = 2, + .bInterfaceNumber = USB_INTF_GPS_CDC_DATA, .bAlternateSetting = 0, .bNumEndpoints = 2, .bInterfaceClass = USB_CLS_CDC_DATA, @@ -195,7 +193,7 @@ .ep_data_out = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x05, + .bEndpointAddress = USB_EP_GPS_CDC_OUT, .bmAttributes = 0x02, .wMaxPacketSize = 64, .bInterval = 0x00, @@ -203,7 +201,7 @@ .ep_data_in = { .bLength = sizeof(struct usb_ep_desc), .bDescriptorType = USB_DT_EP, - .bEndpointAddress = 0x85, + .bEndpointAddress = USB_EP_GPS_CDC_IN, .bmAttributes = 0x02, .wMaxPacketSize = 64, .bInterval = 0x00, @@ -214,11 +212,7 @@ .intf = { .bLength = sizeof(struct usb_intf_desc), .bDescriptorType = USB_DT_INTF, -#if 0 - .bInterfaceNumber = 3, -#else - .bInterfaceNumber = 1, -#endif + .bInterfaceNumber = USB_INTF_DFU, .bAlternateSetting = 0, .bNumEndpoints = 0, .bInterfaceClass = 0xfe, diff --git a/firmware/ice40-riscv/icE1usb/usb_desc_ids.h b/firmware/ice40-riscv/icE1usb/usb_desc_ids.h new file mode 100644 index 0000000..2247f84 --- /dev/null +++ b/firmware/ice40-riscv/icE1usb/usb_desc_ids.h @@ -0,0 +1,17 @@ +/* + * usb_desc_ids.h + * + * Copyright (C) 2022 Sylvain Munaut tnt@246tNt.com + * SPDX-License-Identifier: LGPL-3.0-or-later + */ + +#pragma once + +#define USB_INTF_E1(p) (0 + (p)) +#define USB_INTF_DFU 1 +#define USB_INTF_NUM 2 + +#define USB_EP_E1_IN(p) (0x82 + (3 * (p))) +#define USB_EP_E1_OUT(p) (0x01 + (3 * (p))) +#define USB_EP_E1_FB(p) (0x81 + (3 * (p))) +#define USB_EP_E1_INT(p) (0x83 + (3 * (p)))