aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/Makefile.am
AgeCommit message (Collapse)AuthorFilesLines
2024-03-21ms: disabe uhd ms buildEric Wild1-10/+10
This won't build, and has been in a untested non working state for a year, but might still be useful after fixing it up in the future in case someone needs it. Change-Id: I9db1740b5c399a02a41b1d07792c645cf7d1bd1b
2024-02-21ms: get rid of std::threadEric1-0/+2
2fc2b594da6e329577b195cb2543a8dd9e1b9ed0 changed std::thread to pthread for proper affinity to circumvent startup issues, so just stick to pthread instead of mixing std::thread and pthread, which made tracking thread creation difficult due to different functions. Change-Id: I0ba2fd958530394b9d99ed82111064d428c5870f
2023-08-25transceiver: add experimental viterbi equalizer supportEric1-1/+3
The VA is already being used by the ms side and is part of the original gsm design. It only works for gmsk, 4sps, and needs a bit of rx burst scaling and burst shifting. Change-Id: I9d7a4ff72e323832a94d885d5714fcde01ceeb3d
2023-08-25ms: update osmocom-bbEric1-0/+1
..and sync the log levels. Change-Id: I6f9fca7a4d6a02e82bf406fd136c5bde96bb93af
2023-07-07ms: remove syncthing toolEric1-19/+0
Only used for testing during the first stages of development. Change-Id: Ie97069a109324b6e96c66a4b24d03f9745b6a52e
2023-07-07ms: rearrange internal trxcon<->phy ifEric1-5/+13
Change-Id: I20aef3844f7699e164fe089358aa7e2325608c85
2023-07-07ms: use single thread poolEric1-0/+1
...so we don't spawn threads all the time. Used for gain avg/setting. Change-Id: Id675550f55e8ccbbbe6b0d91fbffd01b6ede15f7
2022-12-23ms-trx supportEric1-1/+69
This is basically a trxcon that includes a transceiver, and can just be used with existing and future apps supporting the trxcon interface, i.e. mobile or ccch_scan. Supports bladerf and uhd. Currently using hardcoded sched/prios aimed at a setup with working, reliable usb and reserved cores, for example a raspi 4 (ONLY 4, not 3, not 2, not any other version) Additionally builds test tools used for development: osmo-trx-syncthing* see https://osmocom.org/projects/baseband/wiki/MS-side_GPRS for the project description and details Change-Id: I36c65a8c725c4da76dc70006cd96b0a2b6878e84
2022-12-06bladerf xa4 supportEric1-0/+11
This is not really finished, there are multiple reasons to not use this: 1) main clock is not a gsm multiple, so it will continously drift 2) small buffer sizes lead to tx gaps that are hard to detect and break everything. Change-Id: I455c34bb9520d5f09eeb1ac76fceb4bdea94d1ac
2020-08-25osmo-trx-ipcEric Wild1-0/+10
This adds a IPC backend that uses shared memory interface to communicate with (proprietary) devices. Requires config file option dev-args ipc_msock=/path/to/socket to specify the master socket the ipc backend should connect to. If UHD is avaialble the ipc-driver-test tool can be used to test the backend with a uhd device, this was so far only tested with a b2xx. Change-Id: Ice63d3499026293ade8aad675ff7a883bcdd5756
2019-08-01Move std_inband.rbf under device/usrp1/ dirPau Espin Pedrol1-6/+0
This file is only used by USRP1, so let's move it there and avoid processing it in Makefiles if build for USRP1 is not requested at configure time. Change-Id: Ibb40ba487581e76d2ae3e8a420d631670f876cf0
2019-08-01Move Transceiver52/README to UserManualPau Espin Pedrol1-2/+0
Change-Id: Ib5a56cfe0c27d027bc0c60abda89e646a80849de
2019-07-19Transceiver: Move out TRXD socket send code to prepare for TRXDv1Pau Espin Pedrol1-1/+2
Only old v0 is supported so far. TRXD protocol related data/logic is moved to its own file out of Transceiver class. Code is refactored so it can be re-used later by TRXDv1. Related: OS#4006 Change-Id: I5786dd44b076202c6f1a6e82405670e8605797ed
2019-07-01Introduce structs to encode TRXD packetsPau Espin Pedrol1-1/+3
This will ease adding new protocol versions in the future. Related: OS#4006 Change-Id: I67ffede171eddde436f9057191ed76015a8ea6eb
2019-05-06smpl_buf: Move it to device/common and create libdevice_common.laPau Espin Pedrol1-1/+1
Since in next commit osmo-trx-lms starts using smpl_buf.cpp, it seems some automake step doesn't like including a cpp file twice from a different directory, since race conditions can occur building it. Instead we define the dependency by first building a static lib and then using it on each libdevice.la (one per device type). We already do the similar under arch/ subdir, where we have a common/ subdir and then one subdir and lib per architecture. Change-Id: I465ad0f6d5569bb3006d711c8fd0df14391fcf35
2018-06-13lms: Makefile.am: Reorder params to fix link issuePau Espin Pedrol1-2/+2
It seems the order in which static code and -lfoo is passed to the linker matters. This commit is a lms specific follow-up of commit 2a8183bdf0dfd5c5a59c3933fb932e827ddf811c. Change-Id: I59c20d268ecac4c22689124165c47295bd9176d4
2018-06-13build: Add support for LimeSuite device backendPau Espin Pedrol1-0/+10
Change-Id: I239e1b37263a62b374d84974c9347e3654072e87
2018-04-28build: More OBS build failure fixesPau Espin Pedrol1-4/+4
It seems the order in which static code and -lfoo is passed to the linker matters. Change-Id: I3b25be0154053ae8eb5f0a24c39fb9a229130fcf
2018-04-27build: Fix make distcheckPau Espin Pedrol1-3/+1
Change-Id: I1fa5e34b44331cd56408ea7ad4483dcf6443b259
2018-04-24Build one osmo-trx binary for each device support enabledPau Espin Pedrol1-10/+15
Same way as we do in osmo-bts. After this commit, osmo-trx no longer exists. Instead, osmo-trx-uhd and osmo-trx-usrp1 are generated based on configure flags enabled. A new flag --with(out)-uhd has been added to enable/disable build of osmo-trx with UHD backend. It is left enabled by default to keep compatibility with older build scripts. Binary with USRP1 backend must still be manually enabled with --with-usrp1 flag. Change-Id: Iea8c0d7434762713a53440d29bf3ebd84accb262
2018-04-24Change configure define USRP1 to DEVICE_USRP1Pau Espin Pedrol1-1/+1
Similar as we do for ARCH_*, it's easier to find those are related to device support features. Change-Id: Iba238bff689b8f944af76120402c0fa2e29a70de
2018-04-24Move device specific files to device subdirPau Espin Pedrol1-21/+19
Change-Id: Ib42fef14bf4c7b779f44d99711a35c18b32a4c21
2018-04-24Move arch specific fiels to arch subdirPau Espin Pedrol1-8/+3
Take the chance to update some includes using files available in that subdir to have them ina more uniform way. Change-Id: Ibda3c54fd4dc3f6b845cc373f1a1e6b758c1ea82
2018-03-08Build Transceiver52M/common as an .la libPau Espin Pedrol1-10/+5
Stop picking files from that directory on different places as it causes dependency issues during make distclean/maintainer-clean. Fixes: OS#3029 Change-Id: I81bb4251d18fce978d27849b621b20f541caab0b
2018-03-07Makefile.am: Avoid using subdir if arch is not requiredPau Espin Pedrol1-1/+5
There's no need in going a level deeper if we already know nothing's going to be done. This way we also get cleaner make outputs. Reference: https://www.gnu.org/software/automake/manual/html_node/Conditional-Subdirectories.html#Conditional-Subdirectories Related: OS#3029 Change-Id: I3ff57ab14edc575904e8137929a0ef02c95e03af
2018-02-27Add initial support for logging, vty, ctrlPau Espin Pedrol1-2/+4
Up to this point, the logging system, vty and ctrl are initialized and can be used fine, though they don't have a lot of use yet. Depends on libosmocore Change-Id Ib79cdb62d45d8c78445c7b064e58eb7e9faeccf9 Related: OS#2184 Change-Id: I08982c37b4f873966304b3cfb38a10ee86eb3dad
2018-02-22Depend on libosmocorePau Espin Pedrol1-2/+3
Change-Id: If345c89293fcd7d1ad4f17214eea339951f25a5d
2018-01-23Remove unneeded libdl dependencyPau Espin Pedrol1-1/+1
Closes: OS#1929 Change-Id: I0caea2a2a8e6bd07432fd73bae72b42b1ce022cd
2018-01-20Unbreak `./configure --with-usrp1` buildAlexander Huemer1-2/+3
Change-Id: I49b385594271ae64a48d4d39ee9fe26d7c95bd30
2018-01-10Move ARCH_LA to Makefile.commonPau Espin Pedrol1-6/+0
It will later be used by other directories too (tests/Transceiver52M). Change-Id: I0ca9b7fc5e1377db971cb7da0b3496ba8d61c716
2018-01-09Remove Configuration module and libsqlite dependencyPau Espin Pedrol1-1/+1
Change-Id: I823aea91367d586507bbf352f1b6f25bdd635baa
2018-01-09cosmetic: Remove trailing whitespacePau Espin Pedrol1-2/+2
Change-Id: I64c8dbad3fc42bcb8dd4ac9b16bbd9c59a0cf5d5
2017-05-19radioInterface: Remove UmTRX 'diversity' optionTom Tsou1-2/+1
The 'diversity' option was an experimental 2 antenna receiver implementation for UmTRX. The implementation has not been maintained and current working status is unknown. In addition to code rot, Coverity is triggering errors in the associated code sections. Removal of code cleans up many cases of special handling that were necessary to accommodate the implementation. Change-Id: I46752ccf5dbcffbec806081dec03e69a0fbdcdb7
2017-01-26Fix building against sqlite3Max1-1/+1
* Explicitly check for sqlite3 at configure stage, remove old include dir, fix header inclusion. * Use configure results for linking instead of hardcoded linker option for sqlite. * Add dependency on -dev package for .deb Change-Id: I6d7f697d67651f02ceb77fc4da4317b64fa47f9e Fixes: OS#1928
2016-07-01mcbts: Add multi-ARFCN radio supportTom Tsou1-0/+1
Add new radio interface "radioInterfaceMulti" for multi-carrier support. Only USRP B200/B210 devices are supported because of sample rate requirements (3.2 Msps). Only 4 SPS operation Tx/RX is supported. 8-PSK is supported. Other options may be added at a later time Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01mcbts: Add multi-ARFCN channelizing filtersTom Tsou1-3/+11
Introduce polyphase channelizer (Rx) and synthesis (Tx) filterbanks, which serve as the signal processing backend for multi-carrier GSM. Fast Fourier Transform (FFT) is used internally. FFTW is added as a new build dependency. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01iface: Add inner ring-buffer implementationTom Tsou1-0/+2
Two buffers, inner and outer, are used in the transceiver implementation. The outer buffer interfaces with the device receive interface to guarantee timestamp aligned and contiguously allocated sample buffers. The inner buffer absorbs vector size differences between GSM bursts (156 or 157 samples) and the resampler interface (typically fixed multiples of 65). Reimplement the inner buffer with a ring buffer that allows fixed size segments on the outer (resampler) portion and variable lengths (GSM side) on the inner side. Compared to the previous stack-like version, this implementation removes unnecessary copying of buffer contents. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-06-22makefile: Fix build from an external path.Alexander Chemeris1-1/+1
When you build from an external path, compiler can't find convert.h include, because it was specified relative to the current directory. Change this to specify the include dit relative to the Makefile location. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2013-11-16Transceiver52M: Create new osmo-trx executableThomas Tsou1-6/+5
Create new main executable with full command line option parsing of relevant parameters. Database configuration table still exists (and must exist because of the global gConfig object), but can be bypassed with command line options. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: Enable all warnings and resolveThomas Tsou1-1/+1
Mainly basic signed vs unsigned comparisons and intializer ordering. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: Add dual channel diversity receiver optionThomas Tsou1-1/+2
This patch add support for dual channel diversity on the receive path. This allows two antennas two shared antennas to be used for each ARFCN handling channel in the receiver. This configuration may improvde performance in multi-path fading environments, however, noise andpotential interference levels are increased due to the higher bandwidth used. The receive path is oversampled by a factor of four for a rate of 1.083333 Msps. If the receive paths are tuned within a maximum channel spacing (currently set at 600 kHz), then both ARFCN frequencies are processed by each channel of the receiver. Otherwise, the frequency shifted diversity path is disabled and standard non-diversity operation takes place. Diversity processing is handled by selecting the path with the higheset energy level and discarding the burst on the second path. Selection occurs on a burst-by-burst basis. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: Separate signalVector into it's own fileThomas Tsou1-0/+2
Break out the signalVector object and clean up the interface in the process. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: Add NEON complex-complex multiplyThomas Tsou1-1/+2
Complex-complex block multiples are used for phase rotation of bursts. Optimization targeted from perf profiling. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: Add ARM NEON supportThomas Tsou1-2/+7
Similar to the existing Intel SSE cases, add support for NEON vector floating point SIMD processing. In this case, use ARM assembly directly as the NEON intrinsics do not generate preferential code output. Currently support NEON vectorized convolution and floating point integer conversions. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-08Transceiver52M: Remove unused files and utilitiesThomas Tsou1-24/+2
USRPping and sigProcLibTest are in an unmaintained state, while the intended functionality remains unknown. Stored filter taps are also unused and should also be removed. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-04build: Set UHD driver as default configurationThomas Tsou1-26/+8
Currently the default configuration is to not build the full transceiver, which is pointless. Set the UHD driver, which includes either Ettus or Fairwaves variants, as the default. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-04Transceiver52M: Separate architecture specific filesThomas Tsou1-7/+10
Move x86 specific files into their own directory as this area is about to get crowded with the addition of ARM support. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-10-18Transceiver52M: Add SSE floating point / integer conversionThomas Tsou1-2/+4
Convertions are performed in multiples of 4 or 8. All loads are considered unaligned. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-10-18Transceiver52M: Replace resampler with SSE enabled implementationThomas Tsou1-0/+2
Replace the polyphase filter and resampler with a separate implementation using SSE enabled convolution. The USRP2 (including derived devices N200, N210) are the only supported devices that require sample rate conversion, so set the default resampling parameters for the 100 MHz FPGA clock. This changes the previous resampling ratios. 270.833 kHz -> 400 kHz (65 / 96) 270.833 kHz -> 390.625 kHz (52 / 75) The new resampling factor uses a USRP resampling factor of 256 instead of 250. On the device, this allows two halfband filters to be used rather than one. The end result is reduced distortial and aliasing effecits from CIC filter rolloff. B100 and USRP1 will no be supported at 400 ksps with these changes. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-10-18Transceiver52M: Replace convolve and related calls with SSE implementationThomas Tsou1-9/+10
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>