aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M
AgeCommit message (Collapse)AuthorFilesLines
2018-03-05Fix USRP1 build with support for setting Rx/TxAntennaAlexander Huemer1-0/+1
The USRP1 build was broken by commit 77ce99ac6720896f504a0581a5c57b2929a13cef. Commit 77ce99ac6720896f504a0581a5c57b2929a13cef broke the USRP1 build Change-Id: I28585947d5662cdd580a814cce54a5d9aa30eeb8 (cherry picked from commit 3f52f0e6c5d384f25ff8583648e5e4a4dc957530)
2018-02-20Logger: Drop syslog supportPau Espin Pedrol1-1/+1
This feature is currently not being used, so let's drop it to make it easier to integrate into libosmocore logging system in the future. Change-Id: I8282745ef0282d41599eaf94fe460a1d29b18e2a
2018-02-09UHDDevice: Initialize async_event_thrd in constructorPau Espin Pedrol1-1/+1
Fixes coverity CID 182757. It's actually a false warning because "async_event_thrd" member is protected by other member "started", so in practice it's never going to be used before being initialized in start(). Change-Id: I5d5739bc9d08fe533e4d44c3992005a14e568a4f
2018-02-07Add support to set Rx/TxAntennaPau Espin Pedrol5-10/+253
Some devices have different Rx or Tx ports with different RF characteristics. For instance LimeSDR has H (High), L (Low) and W (Wide) band Rx ports, each of one being more suitable to a specific range of frequencies. In case one wants to support several GSM bands, the best option is to use the WideBand port and connect the antenna physically to that port in the board. Then the firmware must be instructed ro read from that port. Support for Rx/Tx port configuration is already in there for all the layers (Limesuite, SoapySDR, SoapyUHD, UHD), but we are missing the required bits in osmo-trx to make use of the available UHD API. This commit addresses it. Before this patch, the Rx/Tx paths configured could be changed by means of the LimeSuiteGUI app, but after running osmo-trx, the values were changed to the default ones. One can now start using osmo-trx with 1 channel and specific Rx/Tx ports by using for instance: osmo-trx -c 1 -y BAND1 -z LNAW Default behaviour if no specific path or an empry path is passed ("") is to do the same as preiously, ie. nothing by not calling the set{T,R}xAntenna APIs. One can also configure only specific channels, for instance to configure only the first Tx channel and the second Rx channel: osmo-trx -c 2 -y BAND1, -z ,LNAW Change-Id: I1735e6ab05a05b0312d6d679b16ebd4a2260fa23
2018-02-05Fix whitespacePau Espin Pedrol3-48/+47
Change-Id: Icda84caa998614ce6c15d5118f8c5c1568ba9a79
2018-01-23Remove unneeded libdl dependencyPau Espin Pedrol1-1/+1
Closes: OS#1929 Change-Id: I0caea2a2a8e6bd07432fd73bae72b42b1ce022cd
2018-01-20Unbreak `./configure --with-usrp1` buildAlexander Huemer2-3/+5
Change-Id: I49b385594271ae64a48d4d39ee9fe26d7c95bd30
2018-01-11arm/convert.c: Add missing convert_init implementationPau Espin Pedrol1-0/+3
osmo-trx.cpp calls convert_init, which in case of building using --with-neon is not implemented and the compiler stops with an error. Error was introduced in 7e07cf23464532ca156fe4ea4430928da2cbbff1. Related: OS#2720 Change-Id: I9840d374d13b525b97f978ea0c5ed9e8421072a0
2018-01-11arm/convert.c: Fix compilation errorPau Espin Pedrol1-1/+0
Commit fe9769833fa74ea841f78c0e931130a70fc3aca9 aiming at cleaning stuff introduced a compilation error. Related: OS#2720 Change-Id: I6ce6e5ec3fdb1e3e8818e2cb674470ad54e38afb
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-09Drop use of ConfigurationTable gConfigPau Espin Pedrol1-3/+0
After latest changes, it is not being used anymore. Change-Id: I43a49aee94e3239194ad9742fb6374324acac0de
2018-01-09cosmetic: Remove trailing whitespacePau Espin Pedrol1-2/+2
Change-Id: I64c8dbad3fc42bcb8dd4ac9b16bbd9c59a0cf5d5
2018-01-04Remove unused headersMax3-4/+1
Change-Id: Idadb17aeb85b011d114ffc1d81c920544bac1989
2017-12-04UHDDevice.cpp: add USRP B205mini supportPiotr Krysik1-0/+1
The B205mini is similar to the B200mini and runs OsmoTRX just fine, so let's make OsmoTRX recogonize and support it too. Change-Id: Iee575121248ea541f7abc49055e49ec2d30904c0
2017-08-16Add -j option to bind to specific addressPau Espin Pedrol3-15/+27
Before this patch, the binding of the listening sockets was hardcoded to a local IP. Change-Id: I9ba184a1251c823e413a9230943ed263e52142ec
2017-07-20Add '-t' command line option to enable SCHED_RRHarald Welte1-2/+29
SCHED_RR allows us to operate osmo-trx reliable even under exceptionally high system load, as the realtime scheduler priority will have higher priority than the other "regular" tasks on the system. Change-Id: Ia2452b9763960b2be37fbeee9d832554da68a53f Closes: OS#2344
2017-07-10LimeSDR: Fix sample value rangeignasj1-2/+1
when "sc16" stream arg is passed to SoapyUHD sample value range is -32768 to 32767 Change-Id: I58b8b6b71648bd9cbc105ddaaa9a7cf0a31b3d47
2017-07-10LimeSDR: change tx window type to TX_WINDOW_FIXEDignasj1-1/+1
It seems that TX_WINDOW_USRP1 is for devices that do not support tx sync to timestamp. LimeSDR supports it. Changing to TX_WINDOW_FIXED greatly reduces number of "dumping stale buffer" messages Modified to match current master by Harald Welte. Change-Id: I8de5b165ccd72a62b0f16655618e24ca740d9637
2017-07-10LimeSDR: Change device detection to work with USB and PCIe versionsignasj1-1/+1
Modified to match current master by Harald Welte. Change-Id: Ie43610de0b2196d84caf09717ec8c8ca75ab926d
2017-07-04transceiver: Avoid sending clock indications when trx is not powered onPau Espin Pedrol2-8/+6
Stop calling writeClockInterface() when receiving commands in Transceiver::driveControl, otherwise it fools osmo-bts-trx clock skew check because it is always sending a clock indication with the same fn when it issues any commands during the time in between CMD POWEROFF and RSP POWERON, because fn is not increased during that period. Also use mForceClockInterface flag to delay delivery of first IND CLOCK until we start serving frames, otherwise the first one is sent and only after a long period of time the next clock indications are sent, when the radio starts to process bursts. That makes osmo-bts-trx unhappy because it expects to receive an IND CLOCK aprox at least every 400 frames. This way also we send the first IND CLOCK after the RSP POWERON 0 response. Change-Id: I91b81a4d7627cec39c1814a39ed4be306681b874
2017-07-04cosmetic: transciever: Remove trailing whitespacesPau Espin Pedrol2-12/+11
Change-Id: Ib3fbe768048b2a34a75ace9688e306720e67019a
2017-06-29LimeSDR: set approximate tx offset value to make GSM workTom Tsou1-1/+1
may be fine-tuned in the future Modified to match current master by Harald Welte. Change-Id: Ied215ca9e9d9c346c2a654f96785d1b87b075129
2017-06-27uhd: Always specify samples-per-symbol for device lookupTom Tsou1-2/+2
Fix MCBTS device setup where the map access was failing on the wrong assumption that all devices support 1-SPS TX-RX operation. Some devices and/or configurations such as LIMESDR and MCBTS only support running at 4-SPS. Even though certain settings (e.g. number of physical channels or the FPGA clocking rate) are not dependent on the SPS value, we still need to specify because we use SPS as a parameter for device classification. Fixes: OS#2341 Change-Id: I56e939285d585cc38efa6c329e30e3acebb734eb Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2017-06-22sigProcLib: Specify standard namespace for isnan()Tom Tsou1-1/+1
In commit a3dce85f "sigProcLib: Use explicit NaN check in sinc table generation" Use of std::isnan(double) was added without namespace specifier, which may cause build issues depending on whether the C version isnan() call is available. Add standard namespace to force C++ call usage and potential build issues. Change-Id: I49328c43fdd690a4e6a2b2e949411aaf5674ead1
2017-06-22sigProcLib: Replace dynamically allocated resampling buffersTom Tsou2-76/+39
Instead use object allocated STL vectors. This simplifies code, removes the need to explicitly release buffers, and fixes a memory leak in destructor deallocation. Also, remove simplified init and release sub-calls. Maintain partition filter allocation using memalign() for SIMD alignment requirements. Change-Id: Ie836982794c10fb1b6334e40592d44b200454846
2017-06-19sigProcLib: Use explicit NaN check in sinc table generationTom Tsou1-9/+3
Using "x < 0.01" is a crude check for detecting NaN condition, which occurs in a sinc call when x = 0 due to divide-by-zero. Use stdlib isnan() call for this purpose. Also, as the table is created only once during initialization, use double floats for table value generation. Change-Id: I3a838fe3139fa977dfe906246020a14451185714
2017-06-19sigProcLib: Remove trigonometric tablesTom Tsou1-36/+8
Trigonometric sin/cos tables are unused after initialization. There is no benefit to implementing lookup tables for run-once operations. Also perform initial calculations in double width because there is no penalty for doing so. Change-Id: I45bba5daf8610cbba6af95b92c2142f2256491ff
2017-06-16sigProcLib: Remove heap based signal vector allocationsTom Tsou1-84/+51
The osmo-trx internals rely heavily on dynamic alloction of I/Q signal vectors. In a number of cases there is no reason to to use dynamic rather than stack based allocation. Convert these cases accordingly. Change-Id: If53da1bf77b5944b6117765fa98ce12e1ccdeede
2017-06-16sigProcLib: Fix complex/real vector flag in Laurent modulatorTom Tsou1-1/+0
The modulator vector to be shaped by Laurent C1 pulse is complex, but was set as real. The error does not affect behaviour because we only support complex-complex and complex-real calculations; real-real convolution is not supported. So in this case the data vector was already assumed to be complex despite the improper flag setting. Change-Id: I03afc6a93a01fde7a9a02e4eb9d201d3ee37d21a
2017-06-16transceiver: Fix POWEROFF crash on USRP2/N200/X300 devicesTom Tsou1-5/+4
Upon issuing POWEROFF command to a running transceiver, UHD interfacing thread state may become undefined if the device is stopped with I/O threads still active. Bad behavior is device dependent with only network based USRP devices affected. USB based device thread behavior stops and shutdowns as expected. Tested with N200, X300, and B210. Tested solutions include the following: 1. Set pthread_setcanceltype() with PTHREAD_CANCEL_ASYNCHRONOUS 2. Add sleep delay to allow I/O threads to timeout before stopping the device 3. Wait for I/O threads to join after cancellation before stopping the device This patch resolves the issue by with the third approach. Number 1 is not guaranteed to always work with UHD internals as driver code may explicitly set thread parameters. Using sleep calls to fix order-of-operation issues is almost never a good idea. Change-Id: Ib72ab98a27a02084b040319046c92d1c4157ae4c
2017-06-16uhd: Fix USRP2/N200/N210 device detectionTom Tsou1-12/+12
Commit 1fb0ce67 "uhd: Use map container for for device parameter access" inadvertently removed the string identifier for the USRP2 and derived devices (N200/N210). Add the missing USRP2 string identifier. Also search for partial string matches in the UHD provided device and mboard stings. This is necessary to guarantee that strings such as "N200r3" instead of just "N200" are sucessfully found. Tested with N200, X310, B200mini and B210 devices. Change-Id: Ide4e22418e2cc469418cba018970cb0eb9906697
2017-06-15uhd: Fix Tx-RX timing offset settingTom Tsou1-1/+1
Integer timestamp offset was set to zero due to bad cast-operator precedence. Change-Id: Ib1f524cc86416699b3c143e5faddb33d61380767
2017-06-14uhd: Add non-UmTRX channel swap supportTom Tsou1-21/+44
Previously an UmTRX-only feature. Change-Id: I4a0e0c1d69e89993158e948535ad33f54e568d2d Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2017-06-14sigProcLib: Remove unused functions from public interfaceTom Tsou2-467/+52
Also remove entirely completely unused calls. Most of these calls have been around since OpenBTS conception. Nearly a decade is long enough time for deprecation. Change-Id: Ifc122aaff23414c363b4b00f99061eed8a6902d0
2017-06-12uhd: Use map container for for device parameter accessTom Tsou1-274/+84
OsmoTRX is written in C++ so we might as well use built-in container types when applicable. Map access allows removal of significant amounts of special device handling code. Aggregate device rates and timing offsets into a single table with access keyed by device/tx-sps/rx-sps tuples. Change-Id: I8660f75a2b2a13488b913c07637bdd0f5f0f4cf9 Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2017-06-08ssedetect: call __builtin_cpu_supports() only if supportedVadim Yanitskiy3-1/+11
Some compilers don't support the __builtin_cpu_supports built-in, so let's make them able to compile the project anyway. Change-Id: I0c90402d8e4c9f196c54b066ff30891c8de3ad2b
2017-05-29sigProcLib: Fix number of tail bits in random Normal Bursts and zero ↵Alexander Chemeris1-3/+9
Stealing Bits. This bug only affects generation of normal bursts filled with random bits which are used in test mode. It doesn't affect operation of osmo-trx during normal operation. That's why it has stayed unnoticed for so long. Each Normal Burst has 3 tail bits, not 4. Also it's better to set stealing bits to 0 for maximum compatibility. We may want to introduce a selector for each bit whether to set it to 0, to 1 or to a random number. Change-Id: I0377029556c8b681b3ba3b635bf19572b34546ea
2017-05-19radioInterface: Remove UmTRX 'diversity' optionTom Tsou9-406/+16
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-05-19cosmetic: Add info about SSE supportPhilipp Maier1-0/+16
The osmo-trx binary outputs no info about its SSE support status. This commits adds some putput that informs about the SSE of the binary and also tells which of the SSE levels the CPU supports. Change-Id: Iacc83fd668c31644e0efb3e18962cf2870ed1daf
2017-05-19buildenv: Split up SSE3 and SSE4.1 codePhilipp Maier9-658/+881
Currently we find SSE3 and SSE4.1 code mixed togehter along with generic code in one file. This introduces the risk that the compiler exidantly mixes SSE4.1 instructions into an SSE3, or even worse into a generic code path. This commit splits the SSE3 and SSE4.1 code into separate files and compiles them with the matching target options. Change-Id: I846e190e92f1258cd412d1b2d79b539e204e04b3
2017-05-19cosmetic: remove code duplicationPhilipp Maier5-35/+49
The ARM and the X86 implementation of the conversion functions share the same, non cpu specific implementation in separate files. This commit removes the code duplication by putting the generic implementation into a convert_base.c, similar to to convolve_base.c Change-Id: Ic8d8534a343e27cde79ddc85be4998ebd0cb6e5c
2017-05-19ssedetect: Add runtime CPU detectionPhilipp Maier6-49/+142
The current implementation can select the SSE support level during compiletime only. This commit adds functionality to automatically detect and switch the SSE support level and automatically switch the Implementation if the CPU does not support the required SSE level. Change-Id: Iba74f8a6e4e921ff31e4bd9f0c7c881fe547423a
2017-05-02cosmetic: Make parameter lists uniformPhilipp Maier2-110/+143
The non-sse implementation and the sse implementation of the convert and convolve functions have different parameter lists. This makes it difficult to use function pointers in order to select the right function depending on the SSE-Level and CPU. This commit uniformizes the parameter lists in preparation for planned runtime cpu detection support Change-Id: Ice063b89791537c4b591751f12f5ef5c413a2d27
2017-05-02buildenv: Turn off native architecture buildsPhilipp Maier1-1/+1
The compiler option -march=native instructs the compiler to auto-optimize the code for the current build architecture. This is fine for building and using locally, but contraproductive when generating binary packages. This commit replaces -march=native with $(SIMD_FLAGS), which contains a collection of supported SIMD options, so we won't loose the SSE support. Change-Id: I3df4b8db9692016115edbe2247beeec090715687
2017-04-10config: Remove OpenBTS style sqlite configurationTom Tsou1-80/+4
OpenBTS relies on reading in configuration values from the OpenBTS.config sqlite3 database. This configuration method is not maintained and not recommended for Osmocom or OpenBTS use. Command line setup is the recommended approach. Note that when the osmo-trx logging mechanism is replaced, the sqlite dependency will be removed. Change-Id: I95d7b771fde976818bee76f89163e72c3a44ecdd
2017-04-03Transceiver: Remove unsigned negative comparesTom Tsou2-3/+3
Change-Id: I49f30699786c52736ef334dae61f7bbd65d878d5 Fixes: Coverity CID 149353, 149356
2017-04-03Resampler: Fix non-array delete for filter tapsTom Tsou1-1/+1
Change-Id: I59cdb01809da5940c74aaae9d17f413aefbf04b2 Fixes: Coverity CID 149349
2017-03-31sigProcLib: Fix negative value check on unsigned valueTom Tsou1-1/+1
Convert negative value check on unsigned value to zero check to avoid potential divide-by-zero error condition. Change-Id: Ib0d7d1bceb5fe66e69345db93a74e3e0773a2257 Fixes: Coverity CID 165059
2017-03-31sigProcLib: Check return status on downsamplingTom Tsou1-2/+6
Improper length values will cause the polyphase resampler rotation to fail. Check return and return NULL on error. Change-Id: I3ad22f9fd7a20754f589c04258dcca3770474a9b Fixes: Coverity CID 165235