aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-sysmo/l1_if.h
AgeCommit message (Collapse)AuthorFilesLines
2014-12-11sysmobts: Add a manual ms power level controlzecke/power-controlHolger Hans Peter Freyther1-0/+2
Currently the DSP is instructed to achieve a given uplink power target but there are circumstances (e.g. EMV testing) where we need more control over it. The "manual/software/osmo" power control can only be implemented per TRX and not per lchan. Add a very very basic control that checks the MS Power used by the phone, the actual receive level and then adjust the power. The code doesn't take the history into account, if the phone can not reach the requested power level the code will be stuck (e.g. no timeout based on multiframes). It has a mode for a fixed power control but no way to set it yet.
2014-08-24l1_if: pass private 'void *data' from call to callbackHarald Welte1-3/+3
When enqueueing a command towards the L1, we can now pass along a private data pointer, which then gets passed to the call-back upon completion.
2014-08-09sysmobts: Add a unit test that checks of the behaviorHolger Hans Peter Freyther1-0/+8
We need to build a lot more code to be able to test these two new routines. I didn't want to move the code to a utils file as the check is called from a hot path. Add accessors to the inlined variant to be used by the unit test. While writing the unit tests I noticed that a re-transmission of the ciphering command would lead to an attempt to enable ciphering again. I am not sure that this MphConfig is idempotent.
2014-07-25sysmobts: Provide VTY routines to do clock calibrationsHolger Hans Peter Freyther1-0/+4
The sysmoBTS2050 does not have a OCXO and we should not rely on the GPS module to always have a fix. Instead use the TCXO by default and from time to time (and we know we have a fix calibrate the TCXO). This can be done by: trx 0 rf-clock-info reset wait... trx 0 rf-clock-info correct write The output is currently only written to the log as the VTY connection might go away during the operation. The reset will set the approriate reference clock and the correct will attempt to determine and apply the correction. The write terminal will make sure that next on start a known good value will be used.
2014-03-26sysmobts: Honor power reduction on older sysmoBTSv2 hardwareHolger Hans Peter Freyther1-0/+2
Older hardware didn't have the external attentuator that was used to control the wanted output power. So starting from the git commit 3c8ff3c70bc52d0a1d75a1e6b87b0069d92f10f9 older hardware was always transmitting with 23 dBm regardless of the power reduction. Remember the hardware revision returned by the SystemInformation primitive, postpone the call to l1if_activate_rf until we know the board revision. Manually verified on BTS #1 and #57. On BTS#1 the external attenuator has not been configured and on BTS#57 it was.
2014-03-10sysmobts: Do a RF mute at initialization when the RC is lockedHolger Hans Peter Freyther1-1/+1
Currently a locked cell is actively broadcasting when it is being bootstrapped after the lock. This patch adds an initial update of the RF mute state when the TRX is initialized. Ticket: OW#1131 Sponsored-by: On-Waves ehf
2013-11-05sysmobts: Add L1 support for the new RF mute requestJacob Erlbeck1-0/+3
This adds a new function l1if_mute_rf(femtol1_hdl, ch_mute[8]) to set the mute state for each radio channel. On completion and iff l1if_mute_rf() returned 0 the callback oml_mo_rf_lock_chg(mo, ch_mute_state[8], success) is invoked when the response from the superfemto DSP is received. Ticket: OW#976 Sponsored-by: On-Waves ehf
2013-10-04Use GPS as default clock source on sysmoBTS 2050Harald Welte1-0/+5
2013-07-16sysmobts: Set the clock calibration to the value read from the eepromNicolas J. Bouliane1-0/+1
By default read the clock calibration from the EEPROM. It is still possible to set it using the cli. Signed-off-by: Nicolas J. Bouliane <nicolas.bouliane@nutaq.com>
2013-07-04sysmobts: Read the mac and determine fixup only once during startHolger Hans Peter Freyther1-0/+8
2013-03-17Add VTY option to define minimum C/I level for RACH and normal burstAndreas Eversberg1-0/+2
2013-02-27sysmobts: Remove the is_system_primitive from l1if_req_complHolger Hans Peter Freyther1-1/+1
All users (but the gsm_compl) of the l1if_req_compl use it with is_system_primitive=1. We can now remove this parameter from the method. Introduce _l1if_req_compl that will insert the item into the queue for us.
2013-02-27sysmobts: We can now pass the trx to the callback change the signaturesHolger Hans Peter Freyther1-1/+1
2013-02-27sysmobts: Remove the trx parameter from the signatureHolger Hans Peter Freyther1-1/+1
l1if_gsm_req_compl everyone is passing the trx as data pointer right now, remove it from the request procedure right now as it can be deducted from the femtol1_hdl.
2013-02-27sysmobts: Embed the calib state in the femtol1_hdl and use hdl->privHolger Hans Peter Freyther1-0/+7
2013-02-27sysmobts: Remove the data parameter from the l1if_gsm_req_complHolger Hans Peter Freyther1-1/+1
Pass in the trx argument at the lower level as everyone is using the fl1h->priv now.
2013-01-23sysmobts: Send GSM requests using the l1if_gsm_req_compl methodHolger Hans Peter Freyther1-0/+2
Prepare to change the queue and callback handling. For the TX power VTY command it is still possible that it will conflict with other callbacks and the easiest way is to beging with sending these requests through another method that allows us a more strict test.
2013-01-23sysmobts: Rename the hLayer2<->lchan to hLayer<->lchanHolger Hans Peter Freyther1-2/+2
We are using this conversion for both hLayer2 and hLayer3. Make the function name more generic to indicate that this function can be used with the hLayer3. The functions that call the methods were updated using spatch and @rule1@ expression E; expression F; @@ - l1if_hLayer2_to_lchan(E, F) + l1if_hLayer_to_lchan(E, F) @rule2@ expression E; expression F; @@ - l1if_lchan_to_hLayer2(E) + l1if_lchan_to_hLayer(E)
2012-12-20misc: Forward declare calib_load to address a compiler warningHolger Hans Peter Freyther1-0/+3
2012-12-20misc: Forward declare l1if_set_ciphering to avoid a compiler warningHolger Hans Peter Freyther1-0/+5
2012-11-10VTY: make target uplink Rx level VTY-configurableHarald Welte1-0/+1
We used to have -75 dBm as the target value for the uplink receive level. Now this is configurable. The parameter is used as input into the power control loop that adjusts the MS transmit power in order to achieve the target rx value on the BTS Rx input.
2012-10-28sysmobts: Add support for reading calibration tables0.1.0Harald Welte1-0/+2
'trx-calibration-path' is the new VTY command indicating the path name where the calibration files can be found. Calibration is only implemented for SUPERFEMTO API version 2.4.0 or later.
2012-06-05sysmobts: The meaning of the clock value changed from v1 to v2Holger Hans Peter Freyther1-1/+1
In v2 the calibration value is the clock error in ppb that needs to be compensated. Create a V2 specific implementation. Write the clock value unconditionally as it is initialized to 0 by default and not 0xffff.
2012-06-05sysmobts-v1: Fix compilation by using the right defineHolger Hans Peter Freyther1-2/+2
2012-04-19add VTY command to manually alter transmit powerHarald Welte1-0/+1
this allows for quick manual tx power changes from the VTY, particularly useful in type approval or other measurements.
2012-04-14femtobts: The separate pdch/tch queues are not available in the old firmwareHolger Hans Peter Freyther1-0/+4
The old firmware does not expose separate queues for PDCH and TCH. The change appears to be too intrusive and I will try to find a more elegant solution.
2012-03-18osmo-bts-sysmo: Add GSMTAP support for transmit (DL) pathHarald Welte1-0/+4
there are VTY commands that can be used to filter which particular L1 sapis (channel types) should be sent in GSMTAP.
2012-03-17introduce a command that permits setting the clock source via vtyHarald Welte1-0/+1
the default source is the OCXO
2012-03-15update to new "superfemto.h" header file namingHarald Welte1-1/+1
2012-03-07prepare for splitting L1 queue into signalling/tch/pdtchHarald Welte1-0/+4
We don't use multiple queues yet, but we very well might end up using them soon.
2011-10-12add VTY based way to set clock calibration of sysmobts L1Harald Welte1-0/+1
2011-09-19fix various compiler warnings across the codeHarald Welte1-0/+1
this deals with unused cocde, unused variables and undeclared symbols in various places.
2011-09-09Inquire DSP/FPGA version at BTS boot and check band compatibilityHarald Welte1-0/+6
2011-09-03Add new ORTP based libosmo-trau based voice supportHarald Welte1-0/+2
Using osmo-bts-sysmo and this code, it is now possible to do FR and AMR based voice calls on TCH/F. A lot of CPU is wasted in the conversion between the RTP formats and the L1 specific formats for the codec frames. All data needs to be shifted by four bits, and the order of bits needs to be reversed in every byte.
2011-07-24sysmobts: add a skeleton for codec frame processingHarald Welte1-0/+2
2011-07-05sysmbts L1 if: implement 'dead DSP L1 detection'Harald Welte1-0/+3
when we activate the SCH in the DSP, we start a 5-second timer. If we ever do not receive any MPH-TIME.ind primitives from L1 within that time frame, we stop the process (and will be re-spawned)
2011-07-05add VTY commands for setting and showing DSP trace flagsHarald Welte1-0/+2
2011-06-29deactivate RF + exit when the Abis link is goneHarald Welte1-0/+1
The idea is that the BTS process is re-spawned from init/upstart/systemd
2011-06-27re-work original osmo-bts with support for sysmocom femtobtsHarald Welte1-0/+50
This code re-works osmo-bts to add support for the upcoming sysmocom BTS. It also tries to add some level of abstraction between the generic part of a BTS (A-bis, RSL, OML, data structures, paging scheduling, BCCH/AGCH scheduling, etc.) and the actual hardware-specific bits. The hardware-specific bits are currently only implemented for the sysmocom femtobts, but should be (re-)added for osmocom-bb, as well as a virtual BTS for simulation purpose later. The sysmocom bts specific parts require hardware-specific header files which are (at least currently) not publicly distributed.