<p>Hoernchen has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/16319">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">fix the host/emulation build<br><br>Going for __ARM__ to distinguish host and firmware builds is not<br>sufficient here, since we might be building on a ARM host, so there is<br>now a OCTSIMFWBUILD define.<br><br>Change-Id: Ib07a58b6102b1709f295d08a764c6f118a2d0b9e<br>---<br>M ccid_common/ccid_slot_fsm.c<br>M ccid_common/iso7816_3.c<br>M ccid_common/iso7816_fsm.c<br>M ccid_host/Makefile<br>M sysmoOCTSIM/gcc/Makefile<br>5 files changed, 32 insertions(+), 19 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/19/16319/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/ccid_common/ccid_slot_fsm.c b/ccid_common/ccid_slot_fsm.c</span><br><span>index 29bffa0..0993cfc 100644</span><br><span>--- a/ccid_common/ccid_slot_fsm.c</span><br><span>+++ b/ccid_common/ccid_slot_fsm.c</span><br><span>@@ -98,7 +98,11 @@</span><br><span>       osmo_fsm_inst_dispatch(ss->fi, ISO7816_E_POWER_UP_IND, NULL);</span><br><span>     cs->icc_powered = true;</span><br><span>   card_uart_ctrl(ss->cuart, CUART_CTL_CLOCK, true);</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef OCTSIMFWBUILD</span><br><span>   delay_us(10000);</span><br><span style="color: hsl(120, 100%, 40%);">+#else</span><br><span style="color: hsl(120, 100%, 40%);">+       usleep(10000);</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span> </span><br><span>   osmo_fsm_inst_dispatch(ss->fi, ISO7816_E_RESET_REL_IND, NULL);</span><br><span>    card_uart_ctrl(ss->cuart, CUART_CTL_RST, false);</span><br><span>@@ -119,7 +123,9 @@</span><br><span>    case ISO7816_E_PPS_DONE_IND:</span><br><span>         case ISO7816_E_PPS_FAILED_IND:</span><br><span>               cs->event_data = data;</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef OCTSIMFWBUILD</span><br><span>              asm volatile("dmb st": : :"memory");</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>             cs->event = event;</span><br><span>                break;</span><br><span>       default:</span><br><span>@@ -328,35 +334,38 @@</span><br><span>     void *ctx = cs->ci->talloc_ctx;</span><br><span>        struct iso_fsm_slot *ss = ccid_slot2iso_fsm_slot(cs);</span><br><span>        struct card_uart *cuart = talloc_zero(ctx, struct card_uart);</span><br><span style="color: hsl(0, 100%, 40%);">-   char id_buf[16] = "SIM0";</span><br><span style="color: hsl(0, 100%, 40%);">-     char devname[] = "foobar";</span><br><span style="color: hsl(120, 100%, 40%);">+  char id_buf[3+2+1];</span><br><span style="color: hsl(120, 100%, 40%);">+   char devname[2+1];</span><br><span style="color: hsl(120, 100%, 40%);">+    char *devnamep = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+   char *drivername = "asf4";</span><br><span>         int rc;</span><br><span> </span><br><span>  LOGPCS(cs, LOGL_DEBUG, "%s\n", __func__);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* HACK: make this in some way configurable so it works both in the firmware</span><br><span style="color: hsl(0, 100%, 40%);">-     * and on the host (functionfs) */</span><br><span style="color: hsl(0, 100%, 40%);">-//    if (cs->slot_nr == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-//            cs->icc_present = true;</span><br><span style="color: hsl(0, 100%, 40%);">-//            devname = "/dev/ttyUSB5";</span><br><span style="color: hsl(0, 100%, 40%);">-//   }</span><br><span style="color: hsl(0, 100%, 40%);">-       devname[0] = cs->slot_nr +0x30;</span><br><span style="color: hsl(0, 100%, 40%);">-      devname[1] = 0;</span><br><span style="color: hsl(0, 100%, 40%);">- //sprintf(devname, "%d", cs->slot_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+   snprintf(id_buf, sizeof(id_buf), "SIM%d", cs->slot_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef OCTSIMFWBUILD</span><br><span style="color: hsl(120, 100%, 40%);">+    snprintf(devname, sizeof(devname), "%d", cs->slot_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+   devnamep = devname;</span><br><span style="color: hsl(120, 100%, 40%);">+#else</span><br><span style="color: hsl(120, 100%, 40%);">+    if (cs->slot_nr == 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+            cs->icc_present = true;</span><br><span style="color: hsl(120, 100%, 40%);">+            devnamep = "/dev/ttyUSB5";</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+     drivername = "tty";</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span> </span><br><span>    if (!cuart)</span><br><span>          return -ENOMEM;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     //snprintf(id_buf, sizeof(id_buf), "SIM%d", cs->slot_nr);</span><br><span style="color: hsl(0, 100%, 40%);">-  id_buf[3] = cs->slot_nr +0x30;</span><br><span style="color: hsl(0, 100%, 40%);">-       if (devname) {</span><br><span style="color: hsl(0, 100%, 40%);">-          rc = card_uart_open(cuart, "asf4", devname);</span><br><span style="color: hsl(120, 100%, 40%);">+        if (devnamep) {</span><br><span style="color: hsl(120, 100%, 40%);">+               rc = card_uart_open(cuart, drivername, devnamep);</span><br><span>            if (rc < 0) {</span><br><span>                     LOGPCS(cs, LOGL_ERROR, "Cannot open UART %s: %d\n", devname, rc);</span><br><span>                  talloc_free(cuart);</span><br><span>                  return rc;</span><br><span>           }</span><br><span>    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  ss->fi = iso7816_fsm_alloc(ctx, LOGL_DEBUG, id_buf, cuart, iso_fsm_clot_user_cb, ss);</span><br><span>     if (!ss->fi) {</span><br><span>            LOGPCS(cs, LOGL_ERROR, "Cannot allocate ISO FSM\n");</span><br><span>diff --git a/ccid_common/iso7816_3.c b/ccid_common/iso7816_3.c</span><br><span>index f7262fb..e4273bd 100644</span><br><span>--- a/ccid_common/iso7816_3.c</span><br><span>+++ b/ccid_common/iso7816_3.c</span><br><span>@@ -18,7 +18,7 @@</span><br><span> #include <stdint.h></span><br><span> #include <stddef.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#include "utils.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include "osmocom/core/utils.h"</span><br><span> #include "iso7816_3.h"</span><br><span> </span><br><span> const uint16_t iso7816_3_fi_table[16] = {</span><br><span>diff --git a/ccid_common/iso7816_fsm.c b/ccid_common/iso7816_fsm.c</span><br><span>index 412bea7..399c321 100644</span><br><span>--- a/ccid_common/iso7816_fsm.c</span><br><span>+++ b/ccid_common/iso7816_fsm.c</span><br><span>@@ -1193,7 +1193,7 @@</span><br><span>       }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#include <hal_gpio.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void tpdu_s_tx_hdr_action(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span> {</span><br><span>       struct osmo_fsm_inst *parent_fi = fi->proc.parent;</span><br><span>@@ -1213,7 +1213,9 @@</span><br><span> }</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+#if 0</span><br><span style="color: hsl(120, 100%, 40%);">+#include <hal_gpio.h></span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span> static void tpdu_s_procedure_action(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span> {</span><br><span>     struct tpdu_fsm_priv *tfp = get_tpdu_fsm_priv(fi);</span><br><span>diff --git a/ccid_host/Makefile b/ccid_host/Makefile</span><br><span>index e9f34cc..7625177 100644</span><br><span>--- a/ccid_host/Makefile</span><br><span>+++ b/ccid_host/Makefile</span><br><span>@@ -11,6 +11,7 @@</span><br><span>           ../ccid_common/ccid_proto.o \</span><br><span>                ../ccid_common/ccid_device.o \</span><br><span>               ../ccid_common/ccid_slot_fsm.o \</span><br><span style="color: hsl(120, 100%, 40%);">+              ../ccid_common/iso7816_3.o \</span><br><span>                 ../ccid_common/iso7816_fsm.o</span><br><span>        $(CC) $(CFLAGS) -o $@ $^ $(LIBS) -laio</span><br><span> </span><br><span>@@ -28,6 +29,7 @@</span><br><span>               cuart_driver_tty.o \</span><br><span>                 utils_ringbuffer.o \</span><br><span>                 ../ccid_common/iso7816_fsm.o \</span><br><span style="color: hsl(120, 100%, 40%);">+                ../ccid_common/iso7816_3.o \</span><br><span>                 ../ccid_common/cuart.o</span><br><span>       $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(shell pkg-config --libs libosmosim)</span><br><span> </span><br><span>diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile</span><br><span>index 7a37036..6c0974f 100644</span><br><span>--- a/sysmoOCTSIM/gcc/Makefile</span><br><span>+++ b/sysmoOCTSIM/gcc/Makefile</span><br><span>@@ -9,7 +9,7 @@</span><br><span> </span><br><span> CFLAGS_CPU=-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16</span><br><span> CFLAGS=-x c -mthumb -DDEBUG -Os -ffunction-sections -fdata-sections -mlong-calls \</span><br><span style="color: hsl(0, 100%, 40%);">-       -g3 -Wall -c -std=gnu99 $(CFLAGS_CPU)</span><br><span style="color: hsl(120, 100%, 40%);">+       -g3 -Wall -c -std=gnu99 $(CFLAGS_CPU) -DOCTSIMFWBUILD</span><br><span> </span><br><span> CC = $(CROSS_COMPILE)gcc</span><br><span> LD = $(CROSS_COMPILE)ld</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/16319">change 16319</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-ccid-firmware/+/16319"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ccid-firmware </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ib07a58b6102b1709f295d08a764c6f118a2d0b9e </div>
<div style="display:none"> Gerrit-Change-Number: 16319 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Hoernchen <ewild@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>