Changes of Revision 167

osmo-trx.spec Changed
x
 
1
@@ -13,14 +13,14 @@
2
 # published by the Open Source Initiative.
3
 
4
 Name:           osmo-trx
5
-Requires: osmocom-nightly = 202212060006
6
-Version: 1.4.1.11.94dc.202212060006
7
+Requires: osmocom-nightly = 202212070006
8
+Version: 1.4.1.12.7d89.202212070006
9
 Release:        0
10
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS
11
 License:        AGPL-3.0-or-later
12
 Group:          Productivity/Telephony/Servers
13
 URL:            https://osmocom.org/projects/osmotrx
14
-Source: osmo-trx_1.4.1.11.94dc.202212060006.tar.xz
15
+Source: osmo-trx_1.4.1.12.7d89.202212070006.tar.xz
16
 Source1: rpmlintrc
17
 BuildRequires:  autoconf
18
 BuildRequires:  automake
19
@@ -69,7 +69,7 @@
20
 generations of mobile phone networks. (post-2G/GSM)
21
 
22
 %package uhd
23
-Requires: osmocom-nightly = 202212060006
24
+Requires: osmocom-nightly = 202212070006
25
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS (UHD)
26
 Group:          Productivity/Telephony/Servers
27
 Requires:       uhd-firmware
28
@@ -92,7 +92,7 @@
29
 
30
 %if ! 0%{?centos_ver}
31
 %package usrp1
32
-Requires: osmocom-nightly = 202212060006
33
+Requires: osmocom-nightly = 202212070006
34
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS (USRP1)
35
 Group:          Productivity/Telephony/Servers
36
 
37
@@ -113,7 +113,7 @@
38
 generations of mobile phone networks. (post-2G/GSM)
39
 
40
 %package lms
41
-Requires: osmocom-nightly = 202212060006
42
+Requires: osmocom-nightly = 202212070006
43
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS (LimeSuite)
44
 Group:          Productivity/Telephony/Servers
45
 
46
@@ -135,7 +135,7 @@
47
 %endif
48
 
49
 %package ipc
50
-Requires: osmocom-nightly = 202212060006
51
+Requires: osmocom-nightly = 202212070006
52
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS (IPC)
53
 Group:          Productivity/Telephony/Servers
54
 
55
@@ -156,7 +156,7 @@
56
 generations of mobile phone networks. (post-2G/GSM)
57
 
58
 %package ipc-test
59
-Requires: osmocom-nightly = 202212060006
60
+Requires: osmocom-nightly = 202212070006
61
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS (IPC) driver test utility
62
 Group:          Productivity/Telephony/Servers
63
 
64
osmo-trx_1.4.1.11.94dc.202212060006.dsc -> osmo-trx_1.4.1.12.7d89.202212070006.dsc Changed
22
 
1
@@ -2,7 +2,7 @@
2
 Source: osmo-trx
3
 Binary: osmo-trx, osmo-trx-dbg, osmo-trx-uhd, osmo-trx-usrp1, osmo-trx-lms, osmo-trx-ipc, osmo-trx-doc
4
 Architecture: any all
5
-Version: 1.4.1.11.94dc.202212060006
6
+Version: 1.4.1.12.7d89.202212070006
7
 Maintainer: Osmocom team <openbsc@lists.osmocom.org>
8
 Homepage: https://projects.osmocom.org/projects/osmotrx
9
 Standards-Version: 3.9.6
10
@@ -18,8 +18,8 @@
11
  osmo-trx-uhd deb net optional arch=any
12
  osmo-trx-usrp1 deb net optional arch=any
13
 Checksums-Sha1:
14
- 5ef5369d065f33f92a3adcaf30ffe5dd689fd4f6 336328 osmo-trx_1.4.1.11.94dc.202212060006.tar.xz
15
+ 346397ebb398c99a24f2e2ba4321ca09849bbd9c 338696 osmo-trx_1.4.1.12.7d89.202212070006.tar.xz
16
 Checksums-Sha256:
17
- 797fe2d1424a6272d7fe0a3adf1070c60b6e4bd813f435f276a5353db2fb053b 336328 osmo-trx_1.4.1.11.94dc.202212060006.tar.xz
18
+ d5c181076d695c0d4acfd27a5a8dc11fad5b71dd6cea4de096cf1b56ade6499f 338696 osmo-trx_1.4.1.12.7d89.202212070006.tar.xz
19
 Files:
20
- df66f824df4ce68f8a3df9a0fc2d71cf 336328 osmo-trx_1.4.1.11.94dc.202212060006.tar.xz
21
+ 50d91097d727a2cc0713a7853627c90f 338696 osmo-trx_1.4.1.12.7d89.202212070006.tar.xz
22
osmo-trx_1.4.1.11.94dc.202212060006.tar.xz/.tarball-version -> osmo-trx_1.4.1.12.7d89.202212070006.tar.xz/.tarball-version Changed
4
 
1
@@ -1 +1 @@
2
-1.4.1.11-94dc.202212060006
3
+1.4.1.12-7d89.202212070006
4
osmo-trx_1.4.1.11.94dc.202212060006.tar.xz/Transceiver52M/Makefile.am -> osmo-trx_1.4.1.12.7d89.202212070006.tar.xz/Transceiver52M/Makefile.am Changed
19
 
1
@@ -105,6 +105,17 @@
2
 osmo_trx_lms_CPPFLAGS  = $(AM_CPPFLAGS) $(LMS_CFLAGS)
3
 endif
4
 
5
+if DEVICE_BLADE
6
+bin_PROGRAMS += osmo-trx-blade
7
+osmo_trx_blade_SOURCES = osmo-trx.cpp
8
+osmo_trx_blade_LDADD = \
9
+   $(builddir)/device/bladerf/libdevice.la \
10
+   $(COMMON_LDADD) \
11
+   $(BLADE_LIBS)
12
+osmo_trx_blade_CPPFLAGS  = $(AM_CPPFLAGS) $(LMS_CFLAGS)
13
+
14
+endif
15
+
16
 if DEVICE_IPC
17
 bin_PROGRAMS += osmo-trx-ipc
18
 osmo_trx_ipc_SOURCES = osmo-trx.cpp
19
osmo-trx_1.4.1.11.94dc.202212060006.tar.xz/Transceiver52M/device/Makefile.am -> osmo-trx_1.4.1.12.7d89.202212070006.tar.xz/Transceiver52M/device/Makefile.am Changed
9
 
1
@@ -17,3 +17,7 @@
2
 if DEVICE_LMS
3
 SUBDIRS += lms
4
 endif
5
+
6
+if DEVICE_BLADE
7
+SUBDIRS += bladerf
8
+endif
9
osmo-trx_1.4.1.12.7d89.202212070006.tar.xz/Transceiver52M/device/bladerf Added
2
 
1
+(directory)
2
osmo-trx_1.4.1.12.7d89.202212070006.tar.xz/Transceiver52M/device/bladerf/Makefile.am Added
13
 
1
@@ -0,0 +1,11 @@
2
+include $(top_srcdir)/Makefile.common
3
+
4
+AM_CPPFLAGS = -Wall $(STD_DEFINES_AND_INCLUDES) -I${srcdir}/../common
5
+AM_CXXFLAGS = -lpthread $(LIBOSMOCORE_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(BLADE_CFLAGS)
6
+
7
+noinst_HEADERS = bladerf.h
8
+
9
+noinst_LTLIBRARIES = libdevice.la
10
+
11
+libdevice_la_SOURCES = bladerf.cpp
12
+libdevice_la_LIBADD = $(top_builddir)/Transceiver52M/device/common/libdevice_common.la
13
osmo-trx_1.4.1.12.7d89.202212070006.tar.xz/Transceiver52M/device/bladerf/bladerf.cpp Added
201
 
1
@@ -0,0 +1,694 @@
2
+/*
3
+ * Copyright 2022 sysmocom - s.f.m.c. GmbH
4
+ *
5
+ * Author: Eric Wild <ewild@sysmocom.de>
6
+ *
7
+ * SPDX-License-Identifier: AGPL-3.0+
8
+ *
9
+ * This program is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU Affero General Public License as published by
11
+ * the Free Software Foundation, either version 3 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
+ * GNU Affero General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Affero General Public License
20
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
+ * See the COPYING file in the main directory for details.
22
+ */
23
+
24
+#include <map>
25
+#include <libbladeRF.h>
26
+#include "radioDevice.h"
27
+#include "bladerf.h"
28
+#include "Threads.h"
29
+#include "Logger.h"
30
+
31
+#ifdef HAVE_CONFIG_H
32
+#include "config.h"
33
+#endif
34
+
35
+extern "C" {
36
+#include <osmocom/core/utils.h>
37
+#include <osmocom/gsm/gsm_utils.h>
38
+#include <osmocom/vty/cpu_sched_vty.h>
39
+}
40
+
41
+#define SAMPLE_BUF_SZ (1 << 20)
42
+
43
+#define B2XX_TIMING_4_4SPS 6.18462e-5
44
+
45
+#define CHKRET()                                                                                                       \
46
+   {                                                                                                              \
47
+       if (status != 0)                                                                                       \
48
+           LOGC(DDEV, ERROR) << bladerf_strerror(status);                                                 \
49
+   }
50
+
51
+/* Device Type, Tx-SPS, Rx-SPS */
52
+typedef std::tuple<blade_dev_type, int, int> dev_key;
53
+
54
+/* Device parameter descriptor */
55
+struct dev_desc {
56
+   unsigned channels;
57
+   double mcr;
58
+   double rate;
59
+   double offset;
60
+   std::string str;
61
+};
62
+
63
+static const std::map<dev_key, dev_desc> dev_param_map{
64
+   { std::make_tuple(blade_dev_type::BLADE2, 4, 4), { 1, 26e6, GSMRATE, B2XX_TIMING_4_4SPS, "B200 4 SPS" } },
65
+};
66
+
67
+typedef std::tuple<blade_dev_type, enum gsm_band> dev_band_key;
68
+typedef std::map<dev_band_key, dev_band_desc>::const_iterator dev_band_map_it;
69
+static const std::map<dev_band_key, dev_band_desc> dev_band_nom_power_param_map{
70
+   { std::make_tuple(blade_dev_type::BLADE2, GSM_BAND_850), { 89.75, 13.3, -7.5 } },
71
+   { std::make_tuple(blade_dev_type::BLADE2, GSM_BAND_900), { 89.75, 13.3, -7.5 } },
72
+   { std::make_tuple(blade_dev_type::BLADE2, GSM_BAND_1800), { 89.75, 7.5, -11.0 } },
73
+   { std::make_tuple(blade_dev_type::BLADE2, GSM_BAND_1900), { 89.75, 7.7, -11.0 } },
74
+};
75
+
76
+/* So far measurements done for B210 show really close to linear relationship
77
+ * between gain and real output power, so we simply adjust the measured offset
78
+ */
79
+static double TxGain2TxPower(const dev_band_desc &desc, double tx_gain_db)
80
+{
81
+   return desc.nom_out_tx_power - (desc.nom_uhd_tx_gain - tx_gain_db);
82
+}
83
+static double TxPower2TxGain(const dev_band_desc &desc, double tx_power_dbm)
84
+{
85
+   return desc.nom_uhd_tx_gain - (desc.nom_out_tx_power - tx_power_dbm);
86
+}
87
+
88
+blade_device::blade_device(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chan_num, double lo_offset,
89
+              const std::vector<std::string> &tx_paths, const std::vector<std::string> &rx_paths)
90
+   : RadioDevice(tx_sps, rx_sps, iface, chan_num, lo_offset, tx_paths, rx_paths), dev(nullptr), rx_gain_min(0.0),
91
+     rx_gain_max(0.0), band_ass_curr_sess(false), band((enum gsm_band)0), tx_spp(0), rx_spp(0), started(false),
92
+     aligned(false), drop_cnt(0), prev_ts(0), ts_initial(0), ts_offset(0), async_event_thrd(NULL)
93
+{
94
+}
95
+
96
+blade_device::~blade_device()
97
+{
98
+   if (dev) {
99
+       bladerf_enable_module(dev, BLADERF_CHANNEL_RX(0), false);
100
+       bladerf_enable_module(dev, BLADERF_CHANNEL_TX(0), false);
101
+   }
102
+
103
+   stop();
104
+
105
+   for (size_t i = 0; i < rx_buffers.size(); i++)
106
+       delete rx_buffersi;
107
+}
108
+
109
+void blade_device::assign_band_desc(enum gsm_band req_band)
110
+{
111
+   dev_band_map_it it;
112
+
113
+   it = dev_band_nom_power_param_map.find(dev_band_key(dev_type, req_band));
114
+   if (it == dev_band_nom_power_param_map.end()) {
115
+       dev_desc desc = dev_param_map.at(dev_key(dev_type, tx_sps, rx_sps));
116
+       LOGC(DDEV, ERROR) << "No Power parameters exist for device " << desc.str << " on band "
117
+                 << gsm_band_name(req_band) << ", using B210 ones as fallback";
118
+       it = dev_band_nom_power_param_map.find(dev_band_key(blade_dev_type::BLADE2, req_band));
119
+   }
120
+   OSMO_ASSERT(it != dev_band_nom_power_param_map.end())
121
+   band_desc = it->second;
122
+}
123
+
124
+bool blade_device::set_band(enum gsm_band req_band)
125
+{
126
+   if (band_ass_curr_sess && req_band != band) {
127
+       LOGC(DDEV, ALERT) << "Requesting band " << gsm_band_name(req_band) << " different from previous band "
128
+                 << gsm_band_name(band);
129
+       return false;
130
+   }
131
+
132
+   if (req_band != band) {
133
+       band = req_band;
134
+       assign_band_desc(band);
135
+   }
136
+   band_ass_curr_sess = true;
137
+   return true;
138
+}
139
+
140
+void blade_device::get_dev_band_desc(dev_band_desc &desc)
141
+{
142
+   if (band == 0) {
143
+       LOGC(DDEV, ERROR)
144
+           << "Power parameters requested before Tx Frequency was set! Providing band 900 by default...";
145
+       assign_band_desc(GSM_BAND_900);
146
+   }
147
+   desc = band_desc;
148
+}
149
+
150
+void blade_device::init_gains()
151
+{
152
+   double tx_gain_min, tx_gain_max;
153
+   int status;
154
+
155
+   const struct bladerf_range *r;
156
+   bladerf_get_gain_range(dev, BLADERF_RX, &r);
157
+
158
+   rx_gain_min = r->min;
159
+   rx_gain_max = r->max;
160
+   LOGC(DDEV, INFO) << "Supported Rx gain range " << rx_gain_min << "; " << rx_gain_max << "";
161
+
162
+   for (size_t i = 0; i < rx_gains.size(); i++) {
163
+       double gain = (rx_gain_min + rx_gain_max) / 2;
164
+       status = bladerf_set_gain_mode(dev, BLADERF_CHANNEL_RX(i), BLADERF_GAIN_MGC);
165
+       CHKRET()
166
+       bladerf_gain_mode m;
167
+       bladerf_get_gain_mode(dev, BLADERF_CHANNEL_RX(i), &m);
168
+       LOGC(DDEV, INFO) << (m == BLADERF_GAIN_MANUAL ? "gain manual" : "gain AUTO");
169
+
170
+       status = bladerf_set_gain(dev, BLADERF_CHANNEL_RX(i), 0);
171
+       CHKRET()
172
+       int actual_gain;
173
+       status = bladerf_get_gain(dev, BLADERF_CHANNEL_RX(i), &actual_gain);
174
+       CHKRET()
175
+       LOGC(DDEV, INFO) << "Default setting Rx gain for channel " << i << " to " << gain << " scale "
176
+                << r->scale << " actual " << actual_gain;
177
+       rx_gainsi = actual_gain;
178
+
179
+       status = bladerf_set_gain(dev, BLADERF_CHANNEL_RX(i), 0);
180
+       CHKRET()
181
+       status = bladerf_get_gain(dev, BLADERF_CHANNEL_RX(i), &actual_gain);
182
+       CHKRET()
183
+       LOGC(DDEV, INFO) << "Default setting Rx gain for channel " << i << " to " << gain << " scale "
184
+                << r->scale << " actual " << actual_gain;
185
+       rx_gainsi = actual_gain;
186
+   }
187
+
188
+   status = bladerf_get_gain_range(dev, BLADERF_TX, &r);
189
+   CHKRET()
190
+   tx_gain_min = r->min;
191
+   tx_gain_max = r->max;
192
+   LOGC(DDEV, INFO) << "Supported Tx gain range " << tx_gain_min << "; " << tx_gain_max << "";
193
+
194
+   for (size_t i = 0; i < tx_gains.size(); i++) {
195
+       double gain = (tx_gain_min + tx_gain_max) / 2;
196
+       status = bladerf_set_gain(dev, BLADERF_CHANNEL_TX(i), 30);
197
+       CHKRET()
198
+       int actual_gain;
199
+       status = bladerf_get_gain(dev, BLADERF_CHANNEL_TX(i), &actual_gain);
200
+       CHKRET()
201
osmo-trx_1.4.1.12.7d89.202212070006.tar.xz/Transceiver52M/device/bladerf/bladerf.h Added
190
 
1
@@ -0,0 +1,188 @@
2
+/*
3
+ * Copyright 2022 sysmocom - s.f.m.c. GmbH
4
+ *
5
+ * Author: Eric Wild <ewild@sysmocom.de>
6
+ *
7
+ * SPDX-License-Identifier: AGPL-3.0+
8
+ *
9
+ * This program is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU Affero General Public License as published by
11
+ * the Free Software Foundation, either version 3 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
+ * GNU Affero General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Affero General Public License
20
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
+ * See the COPYING file in the main directory for details.
22
+ */
23
+
24
+#pragma once
25
+
26
+#ifdef HAVE_CONFIG_H
27
+#include "config.h"
28
+#endif
29
+
30
+#include "radioDevice.h"
31
+#include "smpl_buf.h"
32
+
33
+extern "C" {
34
+#include <osmocom/gsm/gsm_utils.h>
35
+}
36
+
37
+#include <bladerf.h>
38
+
39
+enum class blade_dev_type { BLADE1, BLADE2 };
40
+
41
+struct dev_band_desc {
42
+   /* Maximum UHD Tx Gain which can be set/used without distorting the
43
+      output signal, and the resulting real output power measured when that
44
+      gain is used. Correct measured values only provided for B210 so far. */
45
+   double nom_uhd_tx_gain; /* dB */
46
+   double nom_out_tx_power; /* dBm */
47
+   /* Factor used to infer base real RSSI offset on the Rx path based on current
48
+      configured RxGain. The resulting rssiOffset is added to the per burst
49
+      calculated energy in upper layers. These values were empirically
50
+      found and may change based on multiple factors, see OS#4468.
51
+      rssiOffset = rxGain + rxgain2rssioffset_rel;
52
+   */
53
+   double rxgain2rssioffset_rel; /* dB */
54
+};
55
+
56
+class blade_device : public RadioDevice {
57
+    public:
58
+   blade_device(size_t tx_sps, size_t rx_sps, InterfaceType type, size_t chan_num, double offset,
59
+            const std::vector<std::string> &tx_paths, const std::vector<std::string> &rx_paths);
60
+   ~blade_device();
61
+
62
+   int open(const std::string &args, int ref, bool swap_channels);
63
+   bool start();
64
+   bool stop();
65
+   bool restart();
66
+   enum TxWindowType getWindowType()
67
+   {
68
+       return tx_window;
69
+   }
70
+
71
+   int readSamples(std::vector<short *> &bufs, int len, bool *overrun, TIMESTAMP timestamp, bool *underrun);
72
+
73
+   int writeSamples(std::vector<short *> &bufs, int len, bool *underrun, TIMESTAMP timestamp);
74
+
75
+   bool updateAlignment(TIMESTAMP timestamp);
76
+
77
+   bool setTxFreq(double wFreq, size_t chan);
78
+   bool setRxFreq(double wFreq, size_t chan);
79
+
80
+   TIMESTAMP initialWriteTimestamp();
81
+   TIMESTAMP initialReadTimestamp();
82
+
83
+   double fullScaleInputValue();
84
+   double fullScaleOutputValue();
85
+
86
+   double setRxGain(double db, size_t chan);
87
+   double getRxGain(size_t chan);
88
+   double maxRxGain(void)
89
+   {
90
+       return rx_gain_max;
91
+   }
92
+   double minRxGain(void)
93
+   {
94
+       return rx_gain_min;
95
+   }
96
+   double rssiOffset(size_t chan);
97
+
98
+   double setPowerAttenuation(int atten, size_t chan);
99
+   double getPowerAttenuation(size_t chan = 0);
100
+
101
+   int getNominalTxPower(size_t chan = 0);
102
+
103
+   double getTxFreq(size_t chan);
104
+   double getRxFreq(size_t chan);
105
+   double getRxFreq();
106
+
107
+   bool setRxAntenna(const std::string &ant, size_t chan)
108
+   {
109
+       return {};
110
+   };
111
+   std::string getRxAntenna(size_t chan)
112
+   {
113
+       return {};
114
+   };
115
+   bool setTxAntenna(const std::string &ant, size_t chan)
116
+   {
117
+       return {};
118
+   };
119
+   std::string getTxAntenna(size_t chan)
120
+   {
121
+       return {};
122
+   };
123
+
124
+   bool requiresRadioAlign();
125
+
126
+   GSM::Time minLatency();
127
+
128
+   inline double getSampleRate()
129
+   {
130
+       return tx_rate;
131
+   }
132
+
133
+   /** Receive and process asynchronous message
134
+       @return true if message received or false on timeout or error
135
+   */
136
+   bool recv_async_msg();
137
+
138
+   enum err_code {
139
+       ERROR_TIMING = -1,
140
+       ERROR_TIMEOUT = -2,
141
+       ERROR_UNRECOVERABLE = -3,
142
+       ERROR_UNHANDLED = -4,
143
+   };
144
+
145
+    protected:
146
+   struct bladerf *dev;
147
+   void *usrp_dev;
148
+
149
+   enum TxWindowType tx_window;
150
+   enum blade_dev_type dev_type;
151
+
152
+   double tx_rate, rx_rate;
153
+
154
+   double rx_gain_min, rx_gain_max;
155
+
156
+   std::vector<double> tx_gains, rx_gains;
157
+   std::vector<double> tx_freqs, rx_freqs;
158
+   bool band_ass_curr_sess; /* true if  "band" was set after last POWEROFF */
159
+   enum gsm_band band;
160
+   struct dev_band_desc band_desc;
161
+   size_t tx_spp, rx_spp;
162
+
163
+   bool started;
164
+   bool aligned;
165
+
166
+   size_t drop_cnt;
167
+   uint64_t prev_ts;
168
+
169
+   TIMESTAMP ts_initial, ts_offset;
170
+   std::vector<smpl_buf *> rx_buffers;
171
+   /* Sample buffers used to receive samples: */
172
+   std::vector<std::vector<short> > pkt_bufs;
173
+   /* Used to call UHD API: Buffer pointer of each elem in pkt_ptrs will
174
+      point to corresponding buffer of vector pkt_bufs. */
175
+   std::vector<short *> pkt_ptrs;
176
+
177
+   void init_gains();
178
+   void set_channels(bool swap);
179
+   void set_rates();
180
+   bool flush_recv(size_t num_pkts);
181
+
182
+   bool set_freq(double freq, size_t chan, bool tx);
183
+   void get_dev_band_desc(dev_band_desc &desc);
184
+   bool set_band(enum gsm_band req_band);
185
+   void assign_band_desc(enum gsm_band req_band);
186
+
187
+   Thread *async_event_thrd;
188
+   Mutex tune_lock;
189
+};
190
osmo-trx_1.4.1.11.94dc.202212060006.tar.xz/configure.ac -> osmo-trx_1.4.1.12.7d89.202212070006.tar.xz/configure.ac Changed
40
 
1
@@ -138,6 +138,11 @@
2
         enable IPC)
3
 )
4
 
5
+AC_ARG_WITH(bladerf, 
6
+    AS_HELP_STRING(--with-bladerf,
7
+        enable bladeRF)
8
+)
9
+
10
 AC_ARG_WITH(singledb, 
11
     AS_HELP_STRING(--with-singledb,
12
         enable single daughterboard use on USRP1)
13
@@ -195,6 +200,10 @@
14
     )
15
 )
16
 
17
+AS_IF(test "x$with_bladerf" = "xyes", 
18
+    PKG_CHECK_MODULES(BLADE, libbladeRF >= 2.0)
19
+)
20
+
21
 AS_IF(test "x$with_singledb" = "xyes", 
22
     AC_DEFINE(SINGLEDB, 1, Define to 1 for single daughterboard)
23
 )
24
@@ -248,6 +257,7 @@
25
 AM_CONDITIONAL(DEVICE_USRP1, test "x$with_usrp1" = "xyes")
26
 AM_CONDITIONAL(DEVICE_LMS, test "x$with_lms" = "xyes")
27
 AM_CONDITIONAL(DEVICE_IPC, test "x$with_ipc" = "xyes")
28
+AM_CONDITIONAL(DEVICE_BLADE, test "x$with_bladerf" = "xyes")
29
 AM_CONDITIONAL(ARCH_ARM, test "x$with_neon" = "xyes" || test "x$with_neon_vfpv4" = "xyes")
30
 AM_CONDITIONAL(ARCH_ARM_A15, test "x$with_neon_vfpv4" = "xyes")
31
 
32
@@ -333,6 +343,7 @@
33
     Transceiver52M/device/usrp1/Makefile \
34
     Transceiver52M/device/lms/Makefile \
35
     Transceiver52M/device/ipc/Makefile \
36
+    Transceiver52M/device/bladerf/Makefile \
37
     tests/Makefile \
38
     tests/CommonLibs/Makefile \
39
     tests/Transceiver52M/Makefile \
40
osmo-trx_1.4.1.11.94dc.202212060006.tar.xz/contrib/osmo-trx.spec.in -> osmo-trx_1.4.1.12.7d89.202212070006.tar.xz/contrib/osmo-trx.spec.in Changed
55
 
1
@@ -13,7 +13,7 @@
2
 # published by the Open Source Initiative.
3
 
4
 Name:           osmo-trx
5
-Requires: osmocom-nightly = 202212060006
6
+Requires: osmocom-nightly = 202212070006
7
 Version:        @VERSION@
8
 Release:        0
9
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS
10
@@ -68,7 +68,7 @@
11
 generations of mobile phone networks. (post-2G/GSM)
12
 
13
 %package uhd
14
-Requires: osmocom-nightly = 202212060006
15
+Requires: osmocom-nightly = 202212070006
16
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS (UHD)
17
 Group:          Productivity/Telephony/Servers
18
 Requires:       uhd-firmware
19
@@ -91,7 +91,7 @@
20
 
21
 %if ! 0%{?centos_ver}
22
 %package usrp1
23
-Requires: osmocom-nightly = 202212060006
24
+Requires: osmocom-nightly = 202212070006
25
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS (USRP1)
26
 Group:          Productivity/Telephony/Servers
27
 
28
@@ -112,7 +112,7 @@
29
 generations of mobile phone networks. (post-2G/GSM)
30
 
31
 %package lms
32
-Requires: osmocom-nightly = 202212060006
33
+Requires: osmocom-nightly = 202212070006
34
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS (LimeSuite)
35
 Group:          Productivity/Telephony/Servers
36
 
37
@@ -134,7 +134,7 @@
38
 %endif
39
 
40
 %package ipc
41
-Requires: osmocom-nightly = 202212060006
42
+Requires: osmocom-nightly = 202212070006
43
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS (IPC)
44
 Group:          Productivity/Telephony/Servers
45
 
46
@@ -155,7 +155,7 @@
47
 generations of mobile phone networks. (post-2G/GSM)
48
 
49
 %package ipc-test
50
-Requires: osmocom-nightly = 202212060006
51
+Requires: osmocom-nightly = 202212070006
52
 Summary:        SDR transceiver that implements Layer 1 of a GSM BTS (IPC) driver test utility
53
 Group:          Productivity/Telephony/Servers
54
 
55
osmo-trx_1.4.1.11.94dc.202212060006.tar.xz/debian/changelog -> osmo-trx_1.4.1.12.7d89.202212070006.tar.xz/debian/changelog Changed
12
 
1
@@ -1,8 +1,8 @@
2
-osmo-trx (1.4.1.11.94dc.202212060006) unstable; urgency=medium
3
+osmo-trx (1.4.1.12.7d89.202212070006) unstable; urgency=medium
4
 
5
   * Automatically generated changelog entry for building the Osmocom nightly feed
6
 
7
- -- Osmocom OBS scripts <info@osmocom.org>  Tue, 06 Dec 2022 00:08:12 +0000
8
+ -- Osmocom OBS scripts <info@osmocom.org>  Wed, 07 Dec 2022 00:07:34 +0000
9
 
10
 osmo-trx (1.4.1) unstable; urgency=medium
11
 
12
osmo-trx_1.4.1.11.94dc.202212060006.tar.xz/debian/control -> osmo-trx_1.4.1.12.7d89.202212070006.tar.xz/debian/control Changed
62
 
1
@@ -22,7 +22,7 @@
2
 Homepage: https://projects.osmocom.org/projects/osmotrx
3
 
4
 Package: osmo-trx
5
-Depends: osmocom-nightly (= 202212060006), osmo-trx-uhd
6
+Depends: osmocom-nightly (= 202212070006), osmo-trx-uhd
7
 Architecture: all
8
 Description: Metapackage for osmo-trx-uhd
9
 
10
@@ -30,13 +30,13 @@
11
 Architecture: any
12
 Section: debug
13
 Priority: extra
14
-Depends: osmocom-nightly (= 202212060006), osmo-trx-uhd (= ${binary:Version}), osmo-trx-usrp1 (= ${binary:Version}), osmo-trx-lms (= ${binary:Version}), osmo-trx-ipc (= ${binary:Version}), ${misc:Depends}
15
+Depends: osmocom-nightly (= 202212070006), osmo-trx-uhd (= ${binary:Version}), osmo-trx-usrp1 (= ${binary:Version}), osmo-trx-lms (= ${binary:Version}), osmo-trx-ipc (= ${binary:Version}), ${misc:Depends}
16
 Description: Debug symbols for the osmo-trx-*
17
  Make debugging possible
18
 
19
 Package: osmo-trx-uhd
20
 Architecture: any
21
-Depends: osmocom-nightly (= 202212060006), ${shlibs:Depends}, ${misc:Depends}
22
+Depends: osmocom-nightly (= 202212070006), ${shlibs:Depends}, ${misc:Depends}
23
 Description: SDR transceiver that implements Layer 1 of a GSM BTS (UHD)
24
  OsmoTRX is a software-defined radio transceiver that implements the Layer 1
25
  physical layer of a BTS comprising the following 3GPP specifications:
26
@@ -55,7 +55,7 @@
27
 
28
 Package: osmo-trx-usrp1
29
 Architecture: any
30
-Depends: osmocom-nightly (= 202212060006), ${shlibs:Depends}, ${misc:Depends}
31
+Depends: osmocom-nightly (= 202212070006), ${shlibs:Depends}, ${misc:Depends}
32
 Description: SDR transceiver that implements Layer 1 of a GSM BTS (USRP1)
33
  OsmoTRX is a software-defined radio transceiver that implements the Layer 1
34
  physical layer of a BTS comprising the following 3GPP specifications:
35
@@ -74,7 +74,7 @@
36
 
37
 Package: osmo-trx-lms
38
 Architecture: any
39
-Depends: osmocom-nightly (= 202212060006), ${shlibs:Depends}, ${misc:Depends}
40
+Depends: osmocom-nightly (= 202212070006), ${shlibs:Depends}, ${misc:Depends}
41
 Description: SDR transceiver that implements Layer 1 of a GSM BTS (LimeSuite)
42
  OsmoTRX is a software-defined radio transceiver that implements the Layer 1
43
  physical layer of a BTS comprising the following 3GPP specifications:
44
@@ -93,7 +93,7 @@
45
 
46
 Package: osmo-trx-ipc
47
 Architecture: any
48
-Depends: osmocom-nightly (= 202212060006), ${shlibs:Depends}, ${misc:Depends}
49
+Depends: osmocom-nightly (= 202212070006), ${shlibs:Depends}, ${misc:Depends}
50
 Description: SDR transceiver that implements Layer 1 of a GSM BTS (generic IPC)
51
  OsmoTRX is a software-defined radio transceiver that implements the Layer 1
52
  physical layer of a BTS comprising the following 3GPP specifications:
53
@@ -114,7 +114,7 @@
54
 Architecture: all
55
 Section: doc
56
 Priority: optional
57
-Depends: osmocom-nightly (= 202212060006), ${misc:Depends}
58
+Depends: osmocom-nightly (= 202212070006), ${misc:Depends}
59
 Description: ${misc:Package} PDF documentation
60
  Various manuals: user manual, VTY reference manual and/or
61
  protocol/interface manuals.
62