aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M
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-03-18ms: fix up template deduction failureEric Wild1-1/+2
clang and gcc disagree, so just use a real var with the right type. Change-Id: I590060d201445ad25cf5eb73c4b1360eaf6a6cea
2024-02-22ms: add sigproclib demodEric Wild5-11/+398
This is basically a fixed version of ttsous ancient branch that can be used instead of the VA. Required config option part of a future patchset. Change-Id: I6558992bd69f18526be5ebe7d424ca00ceb67772
2024-02-21ms: hard preswapped VA gsm bitsEric Wild1-1/+1
small * 127 can still be small enough to end up 0 after casting which breaks everything. Change-Id: I44b95dced64208eebfb5214da034a5d49abdd0df
2024-02-21ms: get rid of std::threadEric9-138/+231
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
2024-02-01ms: do not set the blade tuning modeEric Wild1-1/+0
Sophisticated users can export BLADERF_DEFAULT_TUNING_MODE=fpga which reduces the startup time to 1 second, or (default) BLADERF_DEFAULT_TUNING_MODE=host which always works. Defaulting to fpga mode has the unfortunate side effect that the blade can get stuck in a weird invalid mode when supplying wrong parameters that breaks sample streaming until it is power cycled or "reset" by using host tuning once. So, let's do the safe thing, and not default to fpga mode. Change-Id: I109f925f07a198d1fb33fe793e91e455fea05a96
2024-01-23Transceiver::ctrl_sock_handle_rx(): fix copy-pasted commentsVadim Yanitskiy1-3/+2
Change-Id: If31c0de0b3562c06220dcb9ad6f0c13d8621f6e3
2023-11-09devices: fix wrong gain to power mappingEric4-1/+9
The dev type was set too early, but the actual dev is only being discovered during open, so update it. This broke the gain to power mapping by defaulting to a wrong device. Change-Id: I1dda6023ca6f15bc063c3dfbc704db2410ff7c98
2023-11-03ms: init blade with fpga controlEric1-0/+2
Blade 1 defaults to fpga tuning, but the blade 2 code defaults to host, which does 8000 register reads and writes. The only way to speed this up is to set the env var, which reduces opening the blade device from 10 to 1 seconds. Change-Id: I32fe31f1e11f4ceb3c864ec8739d177e780d0a7e
2023-10-04ms: reduce rx burst queue sizeEric1-2/+1
This should be fine, because we can at most receive 1.5 bursts of data at once and produce 2 bursts with previous data, so if this is insufficent the usb buffers are late or the upper layer is stuck and we're in trouble anyway. Change-Id: Ifb8bf2894c87e4234e3d3f65d66c1e98c8f63c53
2023-09-20ms: adjust ts advanceEric2-1/+2
..and fix the delay warning. I'd rather have a proper fn advance of 1, but that breaks gprs, but just slightly increasing the ts number is sufficient to fix issues with late tx bursts that then get silently dropped by the sdr. The mobile app does not care, and will happily work even with fn+3. Change-Id: I46b3ea6b0094026bd50709739df464438f9e54c4
2023-09-06ms: logging: print category, level, and extended timestampVadim Yanitskiy1-0/+13
Change-Id: I14da3c9e77681268e4f575a6ca7220eedbf2a7a5 Related: osmocom-bb.git Ie3d259f3255d8af80e6780f850b808fa243f97b4
2023-08-30ms: fix a few coverity complaints related to initializationEric3-8/+9
Change-Id: I203f4da7a4418fc5053d26901bec649d04fad096
2023-08-30ms: fix thread prio startup issueEric4-30/+92
This fixes the 20 second startup delay caused by tx/control threads getting temporarily stuck while trying to set their own priority. Apparently the only sane way for core affinity+priority is to set both as attributes during thread creation using pthreads. This switches the cmd queue to the timeout version, too, to ensure the thread doesn't get stuck waiting for messages, and allows cleaner exits. Change-Id: I7e2f83a9b9df024acaf9076c58189cb6b7bcc34b
2023-08-30ms/va: make ancient gcc < 8 happyEric1-0/+5
Change-Id: Ib94b9b073a0d2af84ce5791b5f40c63cd7ef9329
2023-08-25transceiver: add experimental viterbi equalizer supportEric4-12/+95
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: restructure the va code to add rach supportEric5-96/+113
This commit adds support for rach bursts to the viterbi equalizer, which is currently only being used by the ms side, so the equalizer can be used by the osmo-trx network side, too. The difference is that rach bursts are shorter than any other burst type (due to unknown TA) and start with diffrent tail bits. This drops the multiversioning which was only working for x86 anyway because it can't be combined with no_ubsan. Change-Id: I4a5cedc8c9a3289c75ce7b914eac286e601ebed0
2023-08-25ms: update osmocom-bbEric3-19/+36
..and sync the log levels. Change-Id: I6f9fca7a4d6a02e82bf406fd136c5bde96bb93af
2023-07-28ms: drop the tx burst paddingEric1-2/+3
useless. Change-Id: Ied5c3ab5dde975e11b0ef6d9cbc86be19173c4e8
2023-07-25ms: fix blocking loggingEric1-0/+1
Change-Id: I0f5dcb13d1bd9e626e1eeab6ca767ca1b5ae43b8
2023-07-25devices: add freq/gain override for uhdEric Wild1-0/+35
This allows using arbitrary gain and frequencies. Change-Id: I3c1b9a067cafc6d696b9aa2da8ee0480ec1e094f
2023-07-25devices: unify band handlingEric8-326/+231
This is basically common, but optional code. Change-Id: I64f5a462451e967d4750d8e4f1d5832cbab41cff
2023-07-25transceiver: pass cfg struct instead of argsEric14-182/+151
Passing 7 args is a bit much, just pass the config struct instead. Change-Id: I48386900d15ff4d770c70a4efc246d32f921904b
2023-07-13USRPDevice:updateAlignment: remove byteswap codeOliver Smith1-2/+1
After upgrading our CI environment to use Debian 12 with GCC 12, the byteswap code fails the build with the following. I've talked to Eric about this and he recommended to just remove the code as practically nobody will use osmo-trx with a big endian system. USRPDevice.cpp:591:30: error: 'data' is used uninitialized [-Werror=uninitialized] 591 | *wordPtr = host_to_usrp_u32(*wordPtr); | ~~~~~~~~~~~~~~~~^~~~~~~~~~ Related: OS#6057 Change-Id: I806d8c1432cb20efca1830a2752a4cbc70384b54
2023-07-07ms: make init call less confusingEric2-2/+1
Change-Id: I122b0c8cf97e5efcbc60cd95e8bd06a50d57eb57
2023-07-07ms: sch: drop intermediate softvectorEric Wild2-10/+6
Change-Id: Iadc8f224f9e43282339197b11f388fc574656299
2023-07-07ms: flexible template for value_type buffer sumEric2-10/+18
Manual attempts to get the number of complex and single samples right turned out to be a bit error prone at times... Change-Id: I3c9953073555e3a7f70b78b0946dfdf949175a82
2023-07-07ms: rearrange code to allow clean exitsEric7-38/+84
This allows gracefully terminating the application by introducing queue timeouts. Change-Id: I0b8deebc63cf4d936666fd68e1666d1917e89a5d
2023-07-07ms: prune common sch acq codeEric1-4/+2
Change-Id: Ife639a78a4463f992247c19e0177f683db2ae0b7
2023-07-07ms: remove syncthing toolEric6-467/+4
Only used for testing during the first stages of development. Change-Id: Ie97069a109324b6e96c66a4b24d03f9745b6a52e
2023-07-07ms: rearrange internal trxcon<->phy ifEric7-172/+204
Change-Id: I20aef3844f7699e164fe089358aa7e2325608c85
2023-07-07ms: pretty tx buf classEric1-4/+8
Change-Id: I96c5dd79426a52e7fff2df27bdaa3fae0c69491a
2023-07-07ms: cache frequencyEric2-2/+18
Don't waste time setting the same frequency again. Change-Id: Ide9f45130955e1cc66610a50d6fc1cd79f30aca9
2023-07-07ms : rename varEric2-8/+8
Change-Id: Ia90a9f73fdb1f96fa5bd7f27b3c191ce0ba6c65d
2023-07-07ms : rename varEric3-10/+10
Change-Id: I44e5d1770b248f107abce5683d5f7641655da764
2023-07-07ms: use single thread poolEric4-18/+122
...so we don't spawn threads all the time. Used for gain avg/setting. Change-Id: Id675550f55e8ccbbbe6b0d91fbffd01b6ede15f7
2023-07-07ms: block burst q to upper layerEric1-1/+1
The timekeeper should never wait for lazy readers, because that causes timekeeping and later usb transfers to fail. Change-Id: Id0aad606a296b2885617013ce6637204357b13d7
2023-07-06ms: fix startup & shutdown of bladeEric5-21/+62
One of the mystery bugs was that the blade ms needed two starts after powercycling the bladerf due to transfer timeouts. This is now fixed. Change-Id: I1cd8790191790f4861a70bc55c8f4c9993fa10c8
2023-07-06ms: prettify scheduling + add odroidEric4-15/+61
Change-Id: Icaf42fd5f76dc2d53dc526558aa8ceaa9c190f7b
2023-07-06ms: fix the gain init for bladeEric1-5/+3
Change-Id: Ic5a25d6f5606fba599b8144fbec7285047dca3c9
2023-07-06ms : fix the template formattingEric3-13/+24
Those lines predate the .clang-format changes. Change-Id: I891bdf95004accebbbe54916e4472bd381fac545
2023-03-14ipc-driver-test: clean up variables in Makefile.amVadim Yanitskiy1-14/+13
* AM_CPPFLAGS is for preprocessor flags like '-I' or '-D', * AM_CFLAGS/AM_CXXFLAGS is for C/C++ compiler flags like '-Wall', * AM_LDFLAGS is for linker flags like '-no-undefined', not libraries! * Link ipc-driver-test against libdevice.la, * Do not put $(UHD_CFLAGS) everywhere. Change-Id: Iafd68974c9c613fb4e65a01d076b2c687b716c83
2023-03-14Call osmo_fd_unregister() before closing and changing bfd->fdPau Espin Pedrol3-3/+3
Change-Id: Iffc7d89166be1cf3cd1f8c3effe90f04d5c5a9c1
2023-03-09Transition to use of 'telnet_init_default'arehbein1-1/+1
Related: OS#5809 Change-Id: Icc57c68337d55c6594c1c36e9bf41624d11dab0a
2023-03-02ms: adjust tx scaling for tx samplesEric2-2/+2
The "safe" scaling factor introduced in 7ac54b10d3373865cddd0f2e3821b0346cb9dd7c is too low and dates back to the beginning and the move from usrp1->uhd, but the modulator will exceed +-1 so "proper" scaling leads to overflows. Let's just do what osmotrx has been doing for many years... Change-Id: I75a2eba1f7f7b81249c06ce3fc9dfeee08878cb9
2023-03-02ms: adjust float<->integral type conversionEric Wild6-21/+58
Given integral type A and non integral type B and depending on rounding mode, optimization, compiler, and phase of the moon A(A)*B != A(A*B) so split the two cases. While at it, also make the template automagically work for complex types instead of requiring manual casts, the general idea here is to allow inlining and vectorization by treating all args as plain arrays, which is fine. This works as expected with -tune=native, x64 implies sse2, and we do not target any neon-less arm versions either. Clang only array length hints can improve this even more. Change-Id: I93f077f967daf2ed382d12cc20a54846b3688634
2023-02-20Run struct_endianness.pyOliver Smith1-6/+4
Ensure there is no diff to prepare to run this in CI. Related: OS#5884 Change-Id: I7d571a042009a3d1befb71fdd490fdef39368066
2023-01-11mstrx: do not wait forever if clock locking failsEric Wild2-1/+16
Change-Id: Ib85f2452b66fb4d9881fe9676e69e4f6a8ba8f74
2023-01-09radio interface: fix initEric2-4/+0
5561f1129d0bed0ebd2a49fde07e8ee91e487fd6 introduced some changes, but while RadioInterface lost its call to close() that was previously used to improperly reset the buffers upon init() that call was accidentally not removed for RadioInterfaceMulti and RadioInterfaceResamp, so those reset previously initialized values to 0 during init(), which break osmo-trx for weird setups. Change-Id: I74fc1586f8ae0832f4093ba8a44a1c70c78ec3d8
2022-12-28ms: init trash used to escape the usb callbacks2023q1Eric1-2/+2
Closes: OS#5847 Change-Id: I1b41350f981bd9f68163509b94d5457218b415d6