summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-10-23fw: use proper delay routines, adapt all delayssteve-m/trx_rebasedSteve Markgraf17-39/+64
Because the Pirelli DP-L10 display initialization has very strict timing requirements, implement compiler version agnostic delay functions using inline assembly. As it turned out, our delay routines always were way off: delay_ms(1000) with GCC 4.8.2 was actually 400ms, and with GCC 11.2.0 480ms were measured, the latter resulting in the DP-L10 display not working anymore. As the new routines now actually wait the time they should, scale all existing delay times by 0.4 to get the same behavior as previously with the old GCC version.
2021-10-23fw: fix build with arm-none-eabi-gcc 11.2.0Steve Markgraf1-1/+1
2021-10-23fw/trx: read rf calibration valuesSteve Markgraf1-0/+2
2021-10-23layer23/transceiver: send 'RSP ERR 1' on receipt of an unknown commandVadim Yanitskiy1-1/+2
Change-Id: Ic731e258f370ee9afcf5b6c60518f154ca6e6408
2021-10-23layer23/transceiver: fix: always include command arguments in the responseVadim Yanitskiy1-5/+4
Change-Id: I22950d32296129ad9b27268f975718d239f8f7f3
2021-10-23layer23/transceiver: pass status as a parameter to _trx_ctrl_send_resp()Vadim Yanitskiy1-23/+26
Change-Id: Id1a95324c4fc7bb2527026e47c5e524b0d563f82
2021-10-23layer23/transceiver: remove copy-pasted entry from trx_handlers[]Vadim Yanitskiy1-1/+0
Change-Id: Id35d5929ebabbfd2b3580efa461435c26bdcf9c9
2021-10-23build: Fix typo in the CFLAGS-variable for libosmodspMartin Hauke1-1/+1
Change-Id: Ida258588538a8a76d97a8c1e8855b2fd28c63be7
2021-10-23transceiver: Fix RSP SETSLOT formatPau Espin Pedrol1-1/+1
According to osmo-trx README: SETSLOT sets the format of the uplink timeslots in the ARFCN. The <timeslot> indicates the timeslot of interest. The <chantype> indicates the type of channel that occupies the timeslot. A chantype of zero indicates the timeslot is off. CMD SETSLOT <timeslot> <chantype> RSP SETSLOT <status> <timeslot> <chantype> Change-Id: I63c81155c84fc35cff1704734fd8d2732235c5a4 Related: OS#2944
2021-10-23fw/calypso/dsp: Make dsp_extcode only load with trx appAndreas Eversberg7-16/+20
As dsp_extcode breaks power measurement and eventually other things, dsp_excode is only loaded with trx app, not with layer1 nor rssi.
2021-10-23host/transceiver: Fix leak in AB processing codepathAndreas Eversberg1-4/+14
Thanks to Andreas for pointing this out Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-10-23osmocon: Add option to set SCHED_RR and prorityAndreas Eversberg1-1/+21
2021-10-23transceiver: Add option to set SCHED_RR and prorityAndreas Eversberg1-1/+21
2021-10-23Add handover support to calypso BTSAndreas Eversberg9-28/+128
2021-10-23fixup 687bc2318d18073d02756ef6ea5b96799f4b9aa7Andreas Eversberg1-3/+2
2021-10-23Fix: Allow TRX command with trailing '\0' and withoutAndreas Eversberg1-3/+5
2021-10-23Transceiver application will resync and configure TRX after restart of phoneAndreas Eversberg1-0/+1
This way it is possible to restart a phone without restarting transceiver application. The operation of TRX is continued.
2021-10-23Remove filler table from calypso BTSAndreas Eversberg2-61/+21
It is still not required to transmit dummy bursts, synchronization bursts and frequency correction bursts. If they are not provided by the transceiver, they are filled automatically, depending on current slot configuration.
2021-10-23Transceiver application rejects RXTUNE/TXTUNE, if given ARFCN is invalidAndreas Eversberg1-0/+2
2021-10-23Disable compalram linking for trx application, because image is too largeAndreas Eversberg1-0/+1
2021-10-23Set BTS mode at transceiver application only after successful sync to cellAndreas Eversberg2-1/+14
2021-10-23Add option to transceiver application, to use second phone for TS 1Andreas Eversberg1-1/+24
2021-10-23Allow transceiver application to handle multiple TRX and multiple phonesAndreas Eversberg7-52/+83
There is no more one-to-one relation between application state, trx instance and l1ctl link to the phone. An application can have many trx instances and many l1ctl links to phones. Additionally each trx can have up to 8 relations to one or different l1ctl links, one for each time slot. This allows to split one TRX into several phones. (use only one ARFCN) Also it allows to use multiple phones for multiple TRX. (use multiple ARFCN)
2021-10-23Calypso BTS uses tx_mask and rx_mask to define which slots to TX or RXAndreas Eversberg4-11/+70
Each mask is used to define first time slot number and number of timeslots per frame. The transceiver needs to choose different masks, depending on single phone or multi phone operation. Note: Currently the code only works with very limited number of mask values.
2021-10-23Calypso BTS receives access bursts on all frames of slot type 4 (BCCH+CCCH)Andreas Eversberg1-1/+3
2021-10-23Tansceiver checks quality of RACH, before forwarding it to TRX interfaceAndreas Eversberg2-3/+10
By checking peak level of RACH's training sequence, only peaks that are good enough are forwarded to the TRX interface. If any received noise would be forwarded, there would be too many false detection, due to weak CRC protection of RACH.
2021-10-23Always forward the strongest received access burst of one multiframeAndreas Eversberg1-21/+36
Instead of forwarding access bursts that are above some average noise floor, the strongest of burst of a multiframe is always forwarded, no matter how weak it is. Since bandwidth of serial interface is limited, it is not possible to forward all received access bursts. If there are suddenly many access bursts or if a temporary noise causes detection of several bursts, only the strongest of them is forwarded. This prevents overflow of serial interface. Detection of bursts is possible, no matter how weak they are. Tests have shown that detection works up to 100%, even at border of BTS coverage.
2021-10-23Tranceiver application forwards TOA from layer 1 to TRX interfaceAndreas Eversberg1-2/+5
The TOA of the received access burst is added to the TOA of the demodulator. This sum is the actual access delay.
2021-10-23Calypso BTS sends RSSI with each received bustAndreas Eversberg2-5/+11
For access burst, the TOA offset is used as offset when reading the 88 IQ values from DSP buffer.
2021-10-23Tranceiver application forwards RSSI from layer 1 to TRX interfaceAndreas Eversberg3-5/+8
2021-10-23Calypso BTS sends RSSI with each received bustAndreas Eversberg2-0/+8
2021-10-23Get stealing flags from received burst indications of BTS taskAndreas Eversberg1-2/+4
2021-10-23Transceiver application uses SETSLOT command to configure slot typeAndreas Eversberg4-9/+25
2021-10-23Set slot types for calypso BTS, handle filler table accordinglyAndreas Eversberg6-18/+52
Scheduling of NB/AB/SB/FB depends on given slot type by transceiver application.
2021-10-23New sync task for calypso BTS, using a single frame per multiframeAndreas Eversberg7-3/+338
By using single frame only, loss of packets is reduced. For normal data frames (and for TCH/H speech), one out of four parts of data gets lost. For TCH/F speech, only one out of eight parts of data gets lost. The error correction can compensate the missing parts. The sync code can use the extended DSP task, but it is currently disabled, because the current DSP code does not allow scheduling TSC for each individual task, but we need to use TSC of sync cell here.
2021-10-23Turn off calypso BTS app by pressing power button shortlyAndreas Eversberg1-0/+24
2021-10-23Add gain support to transceiver applicationAndreas Eversberg4-6/+19
To alter default gain of 0, the gain can be altered by using SETRXGAIN control command. Please use a gain of 0, for normal use.
2021-10-23Add gain control to calypso BTS codeAndreas Eversberg4-0/+11
The gain of RX does not follow the sync-cell anymore. It still uses the appropiate gain for sync-cell, but for RX of BTS bursts it uses a gain that is suitable for a receive level of -47 dBm (by default). This is a gain level of 0. The low gain of 0 is the best start value, if phones are close to the BTS, but also for low RX levels below -100 dBm, as several tests showed.
2021-10-23Add loglevel command to transceiver applicationAndreas Eversberg1-1/+6
2021-10-23Add command line options parsing to transceiver applicationAndreas Eversberg1-10/+89
2021-10-23host/layer23: Initial import of the transceiver applicationSylvain Munaut21-0/+2824
Build is optional because it depends on some extra libraries Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-10-23fw/trx: Initial import of the TRX firmware applicationSylvain Munaut7-1/+1222
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-10-23fw/l1/l23_api: Wire the L1CTL to the internal TRX interface & prim_btsSylvain Munaut1-0/+47
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-10-23fw/l1: Initial import of new BTS primitiveSylvain Munaut5-0/+356
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-10-23l1ctl: Add BTS mode message definitionsSylvain Munaut1-0/+34
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-10-23fw/l1: Add 'TRX' internal interfaceSylvain Munaut3-2/+90
This is a generic interface to submit and retrieve bursts to be transmitted. By default it has a dummy implementation that does nothing and it's up to the 'application' to provide a correct implementation. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-10-23fw/l1/tpu: Add function to open multi slot TX TPU windowSylvain Munaut2-0/+46
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-10-23fw/calypso/dsp: Enable multi-slot TX mode of the ABBSylvain Munaut1-1/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-10-23fw/calypso/dsp: Import and load DSP extension patchSylvain Munaut2-3/+199
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-10-23fw/calypso/uart: Tweak the RX irq threshold to avoid overrunSylvain Munaut1-1/+3
We use the extended mode to have a better control Signed-off-by: Sylvain Munaut <tnt@246tNt.com>