Commit Graph

25 Commits

Author SHA1 Message Date
Tom Tsou
42cc2d123d uhd: Update B200 timing compensation for UHD 3.9.0
Version change to UHD 3.9.0 includes FIR filter changes in the FPGA that
alter group delay and consequently offset uplink/downlink slot alignment.
Only B200 is affected. Add compile time version check for new timing
values.

Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-11-05 09:57:22 +01:00
Tom Tsou
25363b4e5d uhd: Move timestamp calculations to use UHD API
Update to minimally use the UHD driver 003.005.004 API version and set
base version requirement. In effect, this uses internal UHD timestamp
conversion calls and makes stream operations dependent on the stream
instead of the base device.

Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-11-05 09:57:13 +01:00
Michael Iedema
3d59f52a3f sync from commercial 64a79ce7a18f7e3ef3fe5aeacf3b6629980d30b2 2014-12-04 21:25:19 +01:00
Michael Iedema
49087580a0 merge 5.0 preview from commercial 2014-07-16 23:57:22 +02:00
Michael Iedema
3799439be0 remove dupe 2014-07-10 12:16:14 +02:00
Michael Iedema
a10ae80981 intelligently detect which version of libortp is in use and adjust api usage accordingly 2014-07-10 12:11:25 +02:00
Thomas Tsou
77686c8e49 Transceiver52M: Re-enable autoconf x86 arch detection
commit c13f8bde8f "merged in commercial
openbts" removed AC_CONFIG_MACRO_DIR in configure.ac, which in effect
disabled SSE support on environments where the detection macro, AX_EXT,
was not already present.

Rather than rely on AX_EXT be present in the distribution, use the
version that is already included with OpenBTS by re-enabling the config
m4 directory.

Signed-off-by: Thomas Tsou <tom@tsou.cc>
2014-06-20 16:29:05 +02:00
Michael Iedema
c13f8bde8f merged in commercial openbts 2014-03-25 00:06:30 +01:00
Thomas Tsou
cf111aaad1 Transceiver52M: Move reference select from compile time to database
Enabling the external reference on UHD devices through the configure
time switch is awkward. Use a database variable "TRX.Reference" with
'0' or '1' value for internal and external references respectively.
Use internal reference is no entry is defined.

Signed-off-by: Thomas Tsou <tom@tsou.cc>

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@6754 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-10-17 06:19:30 +00:00
Thomas Tsou
2a8f0adbb9 Transceiver52M: Remove support for ancient libusrp versions
Current functionality with these old versions is questionable.
There is no reason to use any version of GNU Radio / libusrp older
than 3.3. Version 3.4.2 is the only recommended version for USRP1
users.

Non-USRP1 users must use UHD driver from Ettus Research.

Signed-off-by: Thomas Tsou <tom@tsou.cc>

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@6749 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-10-17 06:19:12 +00:00
Thomas Tsou
00d6835d72 Transceiver52M: Replace convolve and related calls with SSE implementation
This large patch replaced the convolve() call with an SSE vector
enabled version. The lower C and SSE intrinsic based code operates
on fixed and aligned vectors for the filter taps. The storage format
of interleaved I/Q for both complex and real vectors is maintained.

SSE filter tap values must:

  1. Start 16-byte aligned
  2. Number with a multiple of 4 between 4 and 20 for real taps
  3. Number with a multiple of 4 for complex taps

Non-compliant values will fall back to non-SSE usage. Fixed length
iterators mean that head and tail cases may require reallocation of
the input vector, which is automatically handled by the upper C++
interface.

Other calls are affected by these changes and adjusted or rewritten
accordingly. The underlying algorithms, however, are unchanged.

  generateGSMPulse()
  analyzeTrafficBurst()
  detectRACHBurst()

Intel SSE configuration is automatically detected and configured at
build time with Autoconf macros.

Signed-off-by: Thomas Tsou <tom@tsou.cc>

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@6732 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-10-17 06:18:09 +00:00
Thomas Tsou
0e0c81de63 Transceiver52M: Set resampling option automatically based on device
Remove the built time resampling selection and link both options.
Move the normal push/pullBuffer() calls back to the base class and
overload them in the inherited resampling class.

USRP2/N2xx devices are the only devices that require resampling so
return that resampling is necessary on the device open(), which is
the point at which the device type will be known.

The GSM transceiver only operates at a whole number multiple of
the GSM rate and doesn't care about the actual device rate and
if resampling is used. Therefore GSM specific portion of the
transceiver should only need to submit the samples-per-symbol
value to the device interface.

Then, the device should be able to determine the appropriate
sample rate (400 ksps or 270.833 ksps) and if resampling is
appropriate.

Signed-off-by: Thomas Tsou <tom@tsou.cc>

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@6723 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-10-17 06:17:35 +00:00
Thomas Tsou
360ba2f1f8 Transceiver52M: Update to UHD streamer interface
This patch is long overdue and can now be merged after better understanding
of timestamp stability issues. UHD tick / timespec conversions were
generally used with the streamer interface, though these calls are actually
independent change sets. The combination would lead to internal rounding
errors and a timing drift most notably on B100 running at GSM symbol
rate multiples. There are no known issues, however, with the streamer code
itself.

The aforementioned issue was discovered in test code only, which was never
merged to mainline.

Signed-off-by: Thomas Tsou <tom@tsou.cc>

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@6718 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-10-17 06:17:14 +00:00
Kurtis Heimerl
cbd9157c38 missed the removal of old transceivers
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@6169 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-08-14 00:54:30 +00:00
Kurtis Heimerl
5289a229d9 sync of openbts
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@6168 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-08-14 00:52:14 +00:00
Kurtis Heimerl
7e28c367cd From b453f10d65dd1ff1df0dd3747adf63f4e1fd7d30 Mon Sep 17 00:00:00 2001
From: Alexander Chemeris <Alexander.Chemeris@gmail.com>
Date: Sun, 16 Dec 2012 17:44:10 +0400
Subject: [PATCH] Use gethostbyname2_r() instead of gethostbyname() if
 available.

gethostbyname() is not thread-safe. It's recommended to use gethostbyname_r() or gethostbyname2_r() instead.
---
 CommonLibs/Sockets.cpp |   44 +++++++++++++++++++++++++++++++++-----------
 configure.ac           |    4 ++++
 2 files changed, 37 insertions(+), 11 deletions(-)

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4637 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-17 11:22:04 +00:00
Kurtis Heimerl
9a5f9b1ef0 Alexander's build fixes
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3722 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-06-05 01:42:14 +00:00
Thomas Tsou
e15178ef3a transceiver, uhd: add check for uhd version requirement
The UHD property tree used for device identification only
exists in the 003.002.000 and newer API.

Signed-off-by: Thomas Tsou <ttsou@vt.edu>

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2949 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-01-03 20:38:19 +00:00
Kurtis Heimerl
3afb9ecd93 changing config scripts to explitly target UHD/USRP1
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2692 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-11-26 03:19:36 +00:00
Kurtis Heimerl
1c6d6b90ba transceiver: usrp1: select single dboard use at compile time
The following option selects single daughterboard use on
side A only. Otherwise, the default setting is TX on A and
Rx on B.

  ./configure --with-singledb

Other options are possible, as per the following enum, but
for simplicity with configure options, there are only two
choices.

  enum dboardConfigType {
    TXA_RXB,
    TXB_RXA,
    TXA_RXA,
    TXB_RXB
  };

Signed-off-by: Thomas Tsou <ttsou@vt.edu>

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2687 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-11-26 03:19:22 +00:00
Kurtis Heimerl
b9b7d7aff5 transceiver: uhd: make external reference a compile time option
External reference selection was already compile-time
determined by a hard coded value. Make it selectable
as a configure option.

Signed-off-by: Thomas Tsou <ttsou@vt.edu>

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2686 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-11-26 03:19:19 +00:00
Kurtis Heimerl
98621b28c7 build: insert autofoo for usrp transceiver and options
Usage:

  ./configure --with-usrp1

  Enable non-UHD USRP1 support through the gnuradio-based
  driver. Requires gnuradio (libusrp) to be installed.

 ./configure --with-resample

  Enable host-based 400ksps to 270.833ksps resampling.
  Only supported for UHD devices. If not enabled, the GSM
  sample rate is requested directly from the device.

Signed-off-by: Thomas Tsou <ttsou@vt.edu>

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2681 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-11-26 03:19:05 +00:00
Harvind Samra
32b3ad03e1 Update configure.ac file to include USRP libraries.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2341 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-10-14 02:30:24 +00:00
David Burgess
d23ba7ddfa Merged in patches from features/SylvainsPatches.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2324 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-10-12 22:22:03 +00:00
David Burgess
c0a5c1509e Putting the actual OpenBTS P2.8 source code into the public SVN branch.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2242 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-10-07 02:40:51 +00:00