Hi all,
What are the plans to expand support for new SDR devices?
When I check the contents of osmo-trx/Transceiver52M/device/ on the git master I see the supported lms, uhd and usrp1 devices. For example the XTRX SDR was presented at OsmoDevCon 2018. I expected it to be included in the master soon. At this point I see its addition in the fairwaves / libxtrx-wip branch from 2018. That doesn't give me much encouragement for my next question.
Would it be possible to add support for PCIe SDR from Amarisoft?
Some information about SDR is here https://discourse.myriadrf.org/t/amarisoft-sdr-integration-with-oai/2288
Based on the https://media.ccc.de/v/osmocon2018-82-osmotrx-status-support-for-more-drivers-sdr-apis-like-limesuite I tried to create support by myself. I've gotten into a state that some MS with weak requirements for signal quality and timing can connect. My branch is here https://github.com/XK1ZU/osmo-trx/tree/PCIeSDR-LMSstyle
gr-osmosdr support is here https://github.com/XK1ZU/gr-osmosdr/commits/PCIeSDR
This osmo-trx is able to run for a few tens of seconds then it quits and I have to restart it, so I would need a deeper understanding of the timing and scheduling of processes within osmo-trx. Who should be a clock master SW stack or SDR device?

I see a lot of log error messages as
0000> Transceiver.cpp:422 [tid=140137319651072][chan=0] dumping STALE burst in TRX->SDR interface (1:1408722 vs 7:1408723), retrans=0
<0000> Transceiver.cpp:1122 [tid=140137311258368] ClockInterface: sending IND CLOCK 1408899
or
0000> Transceiver.cpp:280 [tid=140137328043776] Starting the transceiver
<0000> radioInterface.cpp:181 [tid=140137328043776] Starting radio device
<0000> PCIESDRDevice.cpp:199 [tid=140137328043776] PCIESDRDevice::start
<0000> PCIESDRDevice.cpp:205 [tid=140137328043776] starting PCIeSDR..., sample rate:1.08333e+06
<0000> PCIESDRDevice.cpp:234 [tid=140137328043776] PCIESDRDevice::flush
<0000> PCIESDRDevice.cpp:219 [tid=140137328043776] msdr_start ok:
<0000> PCIESDRDevice.cpp:532 [tid=140137328043776] Update Alignment
<0000> PCIESDRDevice.cpp:532 [tid=140137328043776] Update Alignment
<0000> radioInterface.cpp:202 [tid=140137328043776] Radio started
<0000> Threads.cpp:119 [tid=140137294472960] Thread 140137294472960 (task 18522) set name: TxLower
<0000> Threads.cpp:119 [tid=140137311258368] Thread 140137311258368 (task 18524) set name: RxUpper0
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP POWERON 0'
<0000> Threads.cpp:119 [tid=140137302865664] Thread 140137302865664 (task 18523) set name: RxLower
<0002> PCIESDRDevice.cpp:363 [tid=140137302865664] rc < 0
<0002> PCIESDRDevice.cpp:364 [tid=140137302865664] Sample buffer: Requested timestamp is not valid
<0000> Threads.cpp:119 [tid=140137319651072] Thread 140137319651072 (task 18525) set name: TxUpper0
<0002> PCIESDRDevice.cpp:365 [tid=140137302865664] timestamp = 10960, length = 262144, time_start = 6765960, time_end = 6766960, data_start = 223320, data_end = 224320
<0002> PCIESDRDevice.cpp:482 [tid=140137294472960] tx_underflow_count:3 rx_overflow_count:0
<0002> PCIESDRDevice.cpp:491 [tid=140137294472960] PCIeSDR: tx underrun ts_tmp:10976 ts:10960 hwts:6762040
<0000> radioInterface.cpp:334 [tid=140137302865664] Receive error 0
<0000> Transceiver.cpp:1162 [tid=140137302865664] Something went wrong in thread RxLower, requesting stop
<0002> PCIESDRDevice.cpp:482 [tid=140137294472960] tx_underflow_count:4 rx_overflow_count:0
<0002> PCIESDRDevice.cpp:491 [tid=140137294472960] PCIeSDR: tx underrun ts_tmp:13476 ts:13460 hwts:6762278
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETRXGAIN 40'
<0000> PCIESDRDevice.cpp:318 [tid=140137328043776] Setting RX gain to 40 dB.
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETRXGAIN 0 40'
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETPOWER 0'
<0000> PCIESDRDevice.cpp:297 [tid=140137328043776] Setting TX gain to 60 dB. device:0x1f6e0e0 chan:0
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETPOWER 0 0'
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETSLOT 0 5'
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETSLOT 0 0 5'
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETSLOT 1 7'
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETSLOT 0 1 7'
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETSLOT 2 13'
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETSLOT 0 2 13'
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETSLOT 3 13'
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETSLOT 0 3 13'
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETSLOT 4 13'
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETSLOT 0 4 13'
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETSLOT 5 8'
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETSLOT 0 5 8'
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETSLOT 6 8'
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETSLOT 0 6 8'
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETSLOT 5 13'
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETSLOT 0 5 13'
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETSLOT 7 13'
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETSLOT 0 7 13'
<0001> Transceiver.cpp:778 [tid=140137328043776][chan=0] command is 'SETSLOT 6 13'
<0001> Transceiver.cpp:923 [tid=140137328043776][chan=0] response is 'RSP SETSLOT 0 6 13'
<0000> osmo-trx.cpp:485 [tid=140137400406720] Shutting down transceiver...
<0000> Transceiver.cpp:338 [tid=140137400406720] Stopping the transceiver
<0000> Transceiver.cpp:351 [tid=140137400406720] Stopping the device
<0000> PCIESDRDevice.cpp:254 [tid=140137400406720] PCIESDRDevice::stop
<0000> PCIESDRDevice.cpp:261 [tid=140137400406720] PCIESDR stopped
<0000> Transceiver.cpp:364 [tid=140137400406720] Transceiver stopped
<0000> PCIESDRDevice.cpp:78 [tid=140137400406720] Closing PCIESDR Device

Yours XK1Zu