<p>Omar Ramadan has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/11449">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Add OC-2G to build<br><br>Change-Id: I4a8dcf759a2818c8e457bcb82775c4e60c94d771<br>---<br>M configure.ac<br>M include/osmo-bts/gsm_data_shared.h<br>M include/osmo-bts/l1sap.h<br>M include/osmo-bts/phy_link.h<br>M src/Makefile.am<br>M src/common/gsm_data_shared.c<br>6 files changed, 55 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/49/11449/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/configure.ac b/configure.ac</span><br><span>index f2d4f84..9a8d58f 100644</span><br><span>--- a/configure.ac</span><br><span>+++ b/configure.ac</span><br><span>@@ -279,6 +279,27 @@</span><br><span>        CPPFLAGS=$oldCPPFLAGS</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+AC_MSG_CHECKING([whether to enable NuRAN Wireless OC-2G hardware support])</span><br><span style="color: hsl(120, 100%, 40%);">+AC_ARG_ENABLE(oc2g,</span><br><span style="color: hsl(120, 100%, 40%);">+              AC_HELP_STRING([--enable-oc2g],</span><br><span style="color: hsl(120, 100%, 40%);">+                               [enable code for NuRAN Wireless OC-2G bts [default=no]]),</span><br><span style="color: hsl(120, 100%, 40%);">+             [enable_oc2g="yes"],[enable_oc2g="no"])</span><br><span style="color: hsl(120, 100%, 40%);">+AC_ARG_WITH([oc2g], [AS_HELP_STRING([--with-oc2g=INCLUDE_DIR], [Location of the OC-2G API header files])],</span><br><span style="color: hsl(120, 100%, 40%);">+                        [oc2g_incdir="$withval"],[oc2g_incdir="$incdir"])</span><br><span style="color: hsl(120, 100%, 40%);">+AC_SUBST([OC2G_INCDIR], -I$oc2g_incdir)</span><br><span style="color: hsl(120, 100%, 40%);">+AC_MSG_RESULT([$enable_oc2g])</span><br><span style="color: hsl(120, 100%, 40%);">+AM_CONDITIONAL(ENABLE_OC2GBTS, test "x$enable_oc2g" = "xyes")</span><br><span style="color: hsl(120, 100%, 40%);">+if test "$enable_oc2g" = "yes"; then</span><br><span style="color: hsl(120, 100%, 40%);">+   oldCPPFLAGS=$CPPFLAGS</span><br><span style="color: hsl(120, 100%, 40%);">+ CPPFLAGS="$CPPFLAGS $OC2G_INCDIR -I$srcdir/include"</span><br><span style="color: hsl(120, 100%, 40%);">+ AC_CHECK_HEADER([nrw/oc2g/oc2g.h],[],</span><br><span style="color: hsl(120, 100%, 40%);">+                 [AC_MSG_ERROR([nrw/oc2g/oc2g.h can not be found in $oc2g_incdir])],</span><br><span style="color: hsl(120, 100%, 40%);">+                   [#include <nrw/oc2g/oc2g.h>])</span><br><span style="color: hsl(120, 100%, 40%);">+   PKG_CHECK_MODULES(LIBSYSTEMD, libsystemd)</span><br><span style="color: hsl(120, 100%, 40%);">+        PKG_CHECK_MODULES(LIBGPS, libgps)</span><br><span style="color: hsl(120, 100%, 40%);">+  CPPFLAGS=$oldCPPFLAGS</span><br><span style="color: hsl(120, 100%, 40%);">+fi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> # https://www.freedesktop.org/software/systemd/man/daemon.html</span><br><span> AC_ARG_WITH([systemdsystemunitdir],</span><br><span>      [AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],,</span><br><span>@@ -307,6 +328,7 @@</span><br><span>     src/osmo-bts-omldummy/Makefile</span><br><span>     src/osmo-bts-sysmo/Makefile</span><br><span>     src/osmo-bts-litecell15/Makefile</span><br><span style="color: hsl(120, 100%, 40%);">+    src/osmo-bts-oc2g/Makefile</span><br><span>     src/osmo-bts-trx/Makefile</span><br><span>     src/osmo-bts-octphy/Makefile</span><br><span>     include/Makefile</span><br><span>diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h</span><br><span>index 794eaea..80784af 100644</span><br><span>--- a/include/osmo-bts/gsm_data_shared.h</span><br><span>+++ b/include/osmo-bts/gsm_data_shared.h</span><br><span>@@ -411,6 +411,9 @@</span><br><span>     uint16_t arfcn;</span><br><span>      int nominal_power;              /* in dBm */</span><br><span>         unsigned int max_power_red;     /* in actual dB */</span><br><span style="color: hsl(120, 100%, 40%);">+        uint8_t max_power_backoff_8psk; /* in actual dB */</span><br><span style="color: hsl(120, 100%, 40%);">+        uint8_t c0_idle_power_red;      /* in actual dB */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span>     struct trx_power_params power_params;</span><br><span>        int ms_power_control;</span><br><span>@@ -437,6 +440,7 @@</span><br><span> enum gsm_bts_type_variant {</span><br><span>   BTS_UNKNOWN,</span><br><span>         BTS_OSMO_LITECELL15,</span><br><span style="color: hsl(120, 100%, 40%);">+        BTS_OSMO_OC2G,</span><br><span>         BTS_OSMO_OCTPHY,</span><br><span>     BTS_OSMO_SYSMO,</span><br><span>      BTS_OSMO_TRX,</span><br><span>@@ -746,7 +750,14 @@</span><br><span>                 struct timeval tv_clock;</span><br><span>             struct osmo_timer_list fn_timer;</span><br><span>     } vbts;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef ENABLE_OC2GBTS</span><br><span style="color: hsl(120, 100%, 40%);">+        /* specific to Open Cellular 2G BTS */</span><br><span style="color: hsl(120, 100%, 40%);">+        struct {</span><br><span style="color: hsl(120, 100%, 40%);">+                uint8_t led_ctrl_mode;                                  /* 0: control by BTS, 1: not control by BTS */</span><br><span style="color: hsl(120, 100%, 40%);">+                struct llist_head ceased_alarm_list;    /* ceased alarm list*/</span><br><span style="color: hsl(120, 100%, 40%);">+                unsigned int rtp_drift_thres_ms;                /* RTP timestamp drift detection threshold */</span><br><span style="color: hsl(120, 100%, 40%);">+        } oc2g;</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span> };</span><br><span> </span><br><span> </span><br><span>diff --git a/include/osmo-bts/l1sap.h b/include/osmo-bts/l1sap.h</span><br><span>index 3cf0ea5..4c30589 100644</span><br><span>--- a/include/osmo-bts/l1sap.h</span><br><span>+++ b/include/osmo-bts/l1sap.h</span><br><span>@@ -50,7 +50,7 @@</span><br><span> static inline uint8_t l1sap_chan2ss(uint8_t chan_nr)</span><br><span> {</span><br><span>         if (L1SAP_IS_CHAN_BCCH(chan_nr))</span><br><span style="color: hsl(0, 100%, 40%);">-                return L1SAP_CHAN2SS_BCCH(chan_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+           return L1SAP_CHAN2SS_BCCH(chan_nr);</span><br><span>  if (L1SAP_IS_CHAN_SDCCH8(chan_nr))</span><br><span>           return L1SAP_CHAN2SS_SDCCH8(chan_nr);</span><br><span>        if (L1SAP_IS_CHAN_SDCCH4(chan_nr))</span><br><span>diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h</span><br><span>index 36e34e1..2472c05 100644</span><br><span>--- a/include/osmo-bts/phy_link.h</span><br><span>+++ b/include/osmo-bts/phy_link.h</span><br><span>@@ -135,6 +135,20 @@</span><br><span>                   uint8_t tx_pwr_adj_mode;        /* 0: no auto adjust power, 1: auto adjust power using RMS detector */</span><br><span>                       uint8_t tx_pwr_red_8psk;        /* 8-PSK maximum Tx power reduction level in dB */</span><br><span>           } lc15;</span><br><span style="color: hsl(120, 100%, 40%);">+                struct {</span><br><span style="color: hsl(120, 100%, 40%);">+                        /* configuration */</span><br><span style="color: hsl(120, 100%, 40%);">+                        uint32_t dsp_trace_f;</span><br><span style="color: hsl(120, 100%, 40%);">+                        char *calib_path;</span><br><span style="color: hsl(120, 100%, 40%);">+                        int minTxPower;</span><br><span style="color: hsl(120, 100%, 40%);">+                        int maxTxPower;</span><br><span style="color: hsl(120, 100%, 40%);">+                        struct oc2gl1_hdl *hdl;</span><br><span style="color: hsl(120, 100%, 40%);">+                        uint8_t max_cell_size;          /* 0:166 qbits*/</span><br><span style="color: hsl(120, 100%, 40%);">+                        uint8_t pedestal_mode;          /* 0: unused TS is OFF, 1: unused TS is in minimum Tx power */</span><br><span style="color: hsl(120, 100%, 40%);">+                        uint8_t dsp_alive_period;       /* DSP alive timer period  */</span><br><span style="color: hsl(120, 100%, 40%);">+                        uint8_t tx_pwr_adj_mode;        /* 0: no auto adjust power, 1: auto adjust power using RMS detector */</span><br><span style="color: hsl(120, 100%, 40%);">+                        uint8_t tx_pwr_red_8psk;        /* 8-PSK maximum Tx power reduction level in dB */</span><br><span style="color: hsl(120, 100%, 40%);">+                        uint8_t tx_c0_idle_pwr_red;     /* C0 idle slot Tx power reduction level in dB */</span><br><span style="color: hsl(120, 100%, 40%);">+                } oc2g;</span><br><span>         } u;</span><br><span> };</span><br><span> </span><br><span>diff --git a/src/Makefile.am b/src/Makefile.am</span><br><span>index 501591d..70e4d96 100644</span><br><span>--- a/src/Makefile.am</span><br><span>+++ b/src/Makefile.am</span><br><span>@@ -15,3 +15,8 @@</span><br><span> if ENABLE_LC15BTS</span><br><span> SUBDIRS += osmo-bts-litecell15</span><br><span> endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+if ENABLE_OC2GBTS</span><br><span style="color: hsl(120, 100%, 40%);">+SUBDIRS += osmo-bts-oc2g</span><br><span style="color: hsl(120, 100%, 40%);">+endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c</span><br><span>index 588d0fd..21e5781 100644</span><br><span>--- a/src/common/gsm_data_shared.c</span><br><span>+++ b/src/common/gsm_data_shared.c</span><br><span>@@ -71,6 +71,7 @@</span><br><span> const struct value_string osmo_bts_variant_names[_NUM_BTS_VARIANT + 1] = {</span><br><span>   { BTS_UNKNOWN,          "unknown" },</span><br><span>       { BTS_OSMO_LITECELL15,  "osmo-bts-lc15" },</span><br><span style="color: hsl(120, 100%, 40%);">+  { BTS_OSMO_OC2G,        "osmo-bts-oc2g" },</span><br><span>         { BTS_OSMO_OCTPHY,      "osmo-bts-octphy" },</span><br><span>       { BTS_OSMO_SYSMO,       "osmo-bts-sysmo" },</span><br><span>        { BTS_OSMO_TRX,         "omso-bts-trx" },</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11449">change 11449</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/11449"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I4a8dcf759a2818c8e457bcb82775c4e60c94d771 </div>
<div style="display:none"> Gerrit-Change-Number: 11449 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Omar Ramadan <omar.ramadan93@gmail.com> </div>