<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  tnt: Looks good to me, but someone else must approve
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">icE1usb fw: cosmetic: more comments in the code<br><br>Change-Id: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1<br>---<br>M firmware/ice40-riscv/icE1usb/e1.c<br>M firmware/ice40-riscv/icE1usb/usb_desc_app.c<br>M firmware/ice40-riscv/icE1usb/usb_e1.c<br>3 files changed, 40 insertions(+), 28 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c</span><br><span>index 17be75d..e5108ce 100644</span><br><span>--- a/firmware/ice40-riscv/icE1usb/e1.c</span><br><span>+++ b/firmware/ice40-riscv/icE1usb/e1.c</span><br><span>@@ -30,37 +30,45 @@</span><br><span>        struct e1_chan tx;</span><br><span> } __attribute__((packed,aligned(4)));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_RX_CR_ENABLE          (1 <<  0)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_RX_CR_MODE_TRSP       (0 <<  1)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_RX_CR_MODE_BYTE       (1 <<  1)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_RX_CR_MODE_BFA        (2 <<  1)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_RX_CR_MODE_MFA        (3 <<  1)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_RX_CR_OVFL_CLR        (1 << 12)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_RX_SR_ENABLED (1 <<  0)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_RX_SR_ALIGNED (1 <<  1)</span><br><span style="color: hsl(120, 100%, 40%);">+/* E1 receiver control register */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_RX_CR_ENABLE            (1 <<  0) /* Enable receiver */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_RX_CR_MODE_TRSP       (0 <<  1) /* Request no alignment at all */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_RX_CR_MODE_BYTE   (1 <<  1) /* Request byte-level alignment */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_RX_CR_MODE_BFA   (2 <<  1) /* Request Basic Frame Alignment */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_RX_CR_MODE_MFA  (3 <<  1) /* Request Multi-Frame Alignment */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_RX_CR_OVFL_CLR  (1 << 12) /* Clear Rx overflow condition */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* E1 receiver status register */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_RX_SR_ENABLED        (1 <<  0) /* Indicate Rx is enabled */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_RX_SR_ALIGNED  (1 <<  1) /* Indicate Alignment achieved */</span><br><span> #define E1_RX_SR_BD_IN_EMPTY       (1 <<  8)</span><br><span> #define E1_RX_SR_BD_IN_FULL  (1 <<  9)</span><br><span> #define E1_RX_SR_BD_OUT_EMPTY        (1 << 10)</span><br><span> #define E1_RX_SR_BD_OUT_FULL (1 << 11)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_RX_SR_OVFL            (1 << 12)</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_RX_SR_OVFL          (1 << 12) /* Indicate Rx overflow */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_CR_ENABLE           (1 <<  0)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_CR_MODE_TRSP       (0 <<  1)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_CR_MODE_TS0        (1 <<  1)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_CR_MODE_TS0_CRC    (2 <<  1)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_CR_MODE_TS0_CRC_E  (3 <<  1)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_CR_TICK_LOCAL      (0 <<  3)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_CR_TICK_REMOTE     (1 <<  3)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_CR_ALARM           (1 <<  4)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_CR_LOOPBACK        (1 <<  5)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_CR_UNFL_CLR        (1 << 12)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_SR_ENABLED (1 <<  0)</span><br><span style="color: hsl(120, 100%, 40%);">+/* E1 transmitter control register */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_CR_ENABLE         (1 <<  0) /* Enable transmitter */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_CR_MODE_TRSP    (0 <<  1) /* Transparent bit-stream mode */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_CR_MODE_TS0    (1 <<  1) /* Generate TS0 in framer */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_CR_MODE_TS0_CRC     (2 <<  1) /* Generate TS0 + CRC4 in framer */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_CR_MODE_TS0_CRC_E    (3 <<  1) /* Generate TS0 + CRC4 + E-bits (based on Rx) in framer */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_CR_TICK_LOCAL (0 <<  3) /* use local clock for Tx */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_CR_TICK_REMOTE      (1 <<  3) /* use recovered remote clock for Tx */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_CR_ALARM         (1 <<  4) /* indicate ALARM to remote */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_CR_LOOPBACK       (1 <<  5) /* external loopback enable/diasble */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_CR_LOOPBACK_CROSS (1 <<  6) /* source of loopback: local (0) or other (1) port */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_CR_UNFL_CLR        (1 << 12) /* Clear Tx underflow condition */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* E1 transmitter status register */</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_SR_ENABLED    (1 <<  0) /* Indicate Tx is enabled */</span><br><span> #define E1_TX_SR_BD_IN_EMPTY    (1 <<  8)</span><br><span> #define E1_TX_SR_BD_IN_FULL  (1 <<  9)</span><br><span> #define E1_TX_SR_BD_OUT_EMPTY        (1 << 10)</span><br><span> #define E1_TX_SR_BD_OUT_FULL (1 << 11)</span><br><span style="color: hsl(0, 100%, 40%);">-#define E1_TX_SR_UNFL            (1 << 12)</span><br><span style="color: hsl(120, 100%, 40%);">+#define E1_TX_SR_UNFL          (1 << 12) /* Indicate Tx underflow */</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* E1 buffer descriptor flags */</span><br><span> #define E1_BD_VALID                (1 << 15)</span><br><span> #define E1_BD_CRC1           (1 << 14)</span><br><span> #define E1_BD_CRC0           (1 << 13)</span><br><span>@@ -265,10 +273,10 @@</span><br><span> // ----------</span><br><span> </span><br><span> enum e1_pipe_state {</span><br><span style="color: hsl(0, 100%, 40%);">-    IDLE    = 0,</span><br><span style="color: hsl(0, 100%, 40%);">-    BOOT    = 1,</span><br><span style="color: hsl(0, 100%, 40%);">-    RUN     = 2,</span><br><span style="color: hsl(0, 100%, 40%);">-    RECOVER = 3,</span><br><span style="color: hsl(120, 100%, 40%);">+  IDLE    = 0,    /* not yet initialized */</span><br><span style="color: hsl(120, 100%, 40%);">+     BOOT    = 1,    /* after e1_init(), regiters are programmed */</span><br><span style="color: hsl(120, 100%, 40%);">+        RUN     = 2,    /* normal operation */</span><br><span style="color: hsl(120, 100%, 40%);">+        RECOVER = 3,    /* after underflow, overflow or alignment  error */</span><br><span> };</span><br><span> </span><br><span> static struct {</span><br><span>diff --git a/firmware/ice40-riscv/icE1usb/usb_desc_app.c b/firmware/ice40-riscv/icE1usb/usb_desc_app.c</span><br><span>index d6c274a..9fe3968 100644</span><br><span>--- a/firmware/ice40-riscv/icE1usb/usb_desc_app.c</span><br><span>+++ b/firmware/ice40-riscv/icE1usb/usb_desc_app.c</span><br><span>@@ -19,6 +19,10 @@</span><br><span> </span><br><span>   /* E1 */</span><br><span>     struct {</span><br><span style="color: hsl(120, 100%, 40%);">+              /* Two altsettings are required, as isochronous</span><br><span style="color: hsl(120, 100%, 40%);">+                * interfaces must have a setting where they don't</span><br><span style="color: hsl(120, 100%, 40%);">+                 * transceive any data. wMaxPacketSize is 0 for</span><br><span style="color: hsl(120, 100%, 40%);">+                * all endpoints in the 'off' altsetting */</span><br><span>          struct {</span><br><span>                     struct usb_intf_desc intf;</span><br><span>                   struct usb_ep_desc ep_data_in;</span><br><span>diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c</span><br><span>index dafceb5..f724665 100644</span><br><span>--- a/firmware/ice40-riscv/icE1usb/usb_e1.c</span><br><span>+++ b/firmware/ice40-riscv/icE1usb/usb_e1.c</span><br><span>@@ -16,9 +16,9 @@</span><br><span> #include "misc.h"</span><br><span> </span><br><span> struct {</span><br><span style="color: hsl(0, 100%, 40%);">-      bool running;</span><br><span style="color: hsl(0, 100%, 40%);">-   int out_bdi;</span><br><span style="color: hsl(0, 100%, 40%);">-    int in_bdi;</span><br><span style="color: hsl(120, 100%, 40%);">+   bool running;           /* are we running (transceiving USB data)? */</span><br><span style="color: hsl(120, 100%, 40%);">+ int out_bdi;            /* buffer descriptor index for OUT EP */</span><br><span style="color: hsl(120, 100%, 40%);">+      int in_bdi;             /* buffer descriptor index for IN EP */</span><br><span> } g_usb_e1;</span><br><span> </span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704">change 21704</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-e1-hardware </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 </div>
<div style="display:none"> Gerrit-Change-Number: 21704 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: tnt <tnt@246tNt.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>