path: root/Transceiver52M/Makefile.am
AgeCommit message (Collapse)AuthorFilesLines
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>
2013-10-18Transceiver52M: Set resampling option automatically based on deviceThomas Tsou1-7/+1
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>
2011-11-26changing config scripts to explitly target UHD/USRP1kurtis.heimerl1-0/+12
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2692 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-11-26transceiver: enable USRP1 firmware binary installkurtis.heimerl1-4/+4
Not sure why this functionality is commented out. Make install places the FPGA firmware image in: /usr/local/share/usrp/rev2/ /usr/local/share/usrp/rev4/ Signed-off-by: Thomas Tsou <ttsou@vt.edu> git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2690 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-11-26transceiver, resamp: insert missing filter valueskurtis.heimerl1-1/+3
With transceiver integration, the resampling filter files were dropped. This created a working resampling implementation for the USRP2 / N200, but with spectrum irregulaties that likely caused issues at longer range operation. Simply reinsert the filter files and modify the filter initialization to use them. Signed-off-by: Thomas Tsou <ttsou@vt.edu> git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2689 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-11-26build: insert autofoo for usrp transceiver and optionskurtis.heimerl1-7/+25
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-26transceiver: separate I/O portion of radio interface implementationkurtis.heimerl1-1/+2
Move push and pull of buffers into a dedicated file. This will allow us to swap out resampling, non-resampling, and possibly floating point device interfaces while presenting a single floating point abstration in the interface itself. Signed-off-by: Thomas Tsou <ttsou@vt.edu> git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2670 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-11-26transceiver: separate radio clock and vector interfaceskurtis.heimerl1-1/+8
Remove radio clock and vector interfaces into their own files. This clears up and simplifies the radio interface and, additionaly, prepares for a further split of the I/O portion for optional resampler use. Signed-off-by: Thomas Tsou <ttsou@vt.edu> git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2669 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-10-12Adding in the missing Transceiver52M directorydburgess1-0/+88
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2307 19bc5d8c-e614-43d4-8b26-e1612bc8e597