This adds proper config options.
The ul/dl freq lines can be copied from the osmo-trx (network side) cfg.
Change-Id: Ibd432f7abbd00065a59104d2c006b676d5db7b47
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
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
..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
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
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
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
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
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