summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/layer1/mframe_sched.c
AgeCommit message (Collapse)AuthorFilesLines
2021-12-14treewide: remove FSF addressOliver Smith1-4/+0
Remove the paragraph about writing to the Free Software Foundation's mailing address. The FSF has changed addresses in the past, and may do so again. In 2021 this is not useful, let's rather have a bit less boilerplate at the start of source files. Change-Id: I73be012c01c0108fb6951dbff91d50eb19b40c51
2020-04-01firmware/layer1: introduce experimental PDCH supportVadim Yanitskiy1-0/+53
This change implements basic (receive only) support of the PDCH channels that are used in GPRS. Several coding schemes are defined by 3GPP TS 45.003, however we can only do CS-1 for now, since it's basically an equivalent of xCCH. In order to support the other schemes (CS2-4), we would need to know how to configure the DSP (look at Freecalypso code?). Change-Id: I44531bbe8743c188cc5d4a6ca2a63000e41d6189
2019-05-28firmware/scheduler: Fix CBCH related RSL channel numbersVadim Yanitskiy1-2/+2
CBCH support in the firmware has been introduced almost at the same time it was implemented in trxcon, and the same mistake was made as described in Ia9a415628c659cbc2dd5dc65b875b7f935d6e211. Despite Calypso based PHY does not support PDCH (GPRS channels), let's avoid collisions and use the following cbits values: 0x19 / 0b11001 - MF_TASK_SDCCH4_CBCH on GSM_DCHAN_SDCCH_4_CBCH, 0x1a / 0b11010 - MF_TASK_SDCCH8_CBCH on GSM_DCHAN_SDCCH_8_CBCH. Change-Id: Ibb0f90695460e6ede12016c12a0cfdf9c74dfb24 Related: OS#4027
2018-10-03firmware/layer1: add scheduler tasks for CBCHAlex Badea1-0/+21
According to GSM TS 05.02, section 3.3.5, Cell Broadcast Channel (CBCH) is a downlink only channel, which is used to carry the short message service cell broadcast (SMSCB). CBCH is optional, and uses the same physical channel as SDCCH. More precisely, CBCH replaces sub-slot number 2 of SDCCH channels when enabled. This change introduces the following CBCH related tasks: - MF_TASK_SDCCH4_CBCH (CBCH on C0/TS0 SDCCH/4), - MF_TASK_SDCCH8_CBCH (CBCH on SDCCH/8), which are identified using the following Osmocom specific cbits: - MF_TASK_SDCCH4_CBCH - 0x18 (0b11000), - MF_TASK_SDCCH8_CBCH - 0x19 (0b11001). The only way to enable these tasks at the moment is to send L1CTL_DM_EST_REQ message with required cbits and tn. Change-Id: I1d7f02cba1cd8f6527360589d2d2747b6426f78b
2018-10-03firmware/layer1: inform about unhandled scheduler tasksVadim Yanitskiy1-3/+5
The mframe_task2chan_nr() is used to get the channel number (encoded according to 08.58 Chapter 9.3.1) corresponding to a given multi-frame task type. It makes sense to at least print some debug message in cases when there is no matching channel number for a given task type. Change-Id: I34587b6c67015513de35d85a7a3291f452ee7f3b
2012-03-29Fixed neighbour cell measurement task for SDCCH/8 multiframesAndreas Eversberg1-2/+9
Only on BCCH's multiframe we are allowed to measure on frames 0, 10, 20, 30, 40. On SDCCH/8 multiframe, measurements are performed on frame 50 only.
2012-02-04Improvement of neighbour cell power measurement task.Andreas Eversberg1-1/+5
5 measurements are now performed during a 51 multiframe. They are performed at one of the 5 FCCH. Additionally a timeslot offset can be given for each measurement. This way it is possible to measure each timeslot seperately. The given ARFCN must be in sync with the serving cell.
2011-07-17[layer1] Adding neighbour cell measurement code to layer1.Andreas Eversberg1-0/+21
When listening to BCCH, layer1 may measure the power level of neighbour cells. A list of neighbour cell frequencies need to be sent to layer1. After the measurement is done, the results are indicated to layer23.
2011-04-26src: use new libosmogsm and include/osmocom/[gsm|core] path to headersPablo Neira Ayuso1-1/+1
This patch changes include paths to get osmocom-bb working with the current libosmocore tree. Among all these renames, you can notice several tweaks that I added on purpose, and that require some explanation, they are: * hexdump() in osmocon.c and osmoload.c has been renamed to avoid clashing with hexdump() defined in libosmocore. * gsmmap now depends on libosmogsm. Actually I had to cleanup Makefile.am because I was experiencing weird linking problems, probably due to a bug in the autotools. With the change included in this patch, I got it compiled and linked here correctly. This patch has been tested with the phone Motorola C123 and the following images files: * firmware/board/compal_e88/hello_world.compalram.bin * firmware/board/compal_e88/layer1.compalram.bin Using the osmocon, bcch_scan and mobile tools. Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2010-11-14fw/l1/mframe_sched: Fix the TCH_A entries to include the MF_F_SACCH flagSylvain Munaut1-4/+8
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-07target/fw/l1: Fix TCH/H by properly scheduling the TCHD task during 'off' slotsSylvain Munaut1-0/+13
Apparently the DSP needs to be run even during the slots without actual bursts exchange. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-10-25target/fw/layer1: Add support for the various TCH multi frame tasksSylvain Munaut1-0/+76
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-09-28fw/layer1: Introduce prim.h for all primitive related thingsSylvain Munaut1-2/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-04-28layer1/mframe_sched: Make task update saferSylvain Munaut1-5/+30
We try to prevent switching task at a bad time. The algorithm just tries to find the first fn at which it's safe to activate a previously disabled task. tasks -> Running tasks tasks_tgt -> What we aim to run Since tasks_tgt is still only read, it's safe for the l1a to modify it without locking. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-04-28fw/layer1: Encapsulate mframe scheduler function betterSylvain Munaut1-2/+27
There was some code meddling with mf_tasks directly. This is fine if it's just setting/clearing a bit but since we're gonna need some 'cleverness' into when to activate what to prevent conflict, it's better to abstract that logic. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-03-07start to use libosmocore within the firmwareHarald Welte1-1/+2
* remove linuxlist.h copy and use osmocore * don't put 'struct gsm_time' into l1ctl packets * include rx_level and snr for each burst in l1ctl * properly build libosmocore.a for target * move gsmtime functions into libosmocore * move ctype.h to standard location
2010-03-07fix even more compiler warningsHarald Welte1-0/+4
2010-03-01Include channel number and link identifier in L1 DL infoHarald Welte1-8/+59
This enables the layer2 to identify on which channel (BCCH/CCCH/SDCCH/TCH/...) the respective message was received. * Encode MFrame Task Number + SACCH info in 'p3' parameter * Generate channel number and link identifier * Decode channel number in layer2 program
2010-03-01extend TDMA scheduler functions to use third parameter (p3)Harald Welte1-2/+3
The idea of the third parameter is that it can be specified on a tdma_schedule_set() level. The multi-frame scheduler can thus use it to pass some context information into the l1s_{cmd,resp}_*() functions, such as the MF TASK and whether or not it is SDCCH or SACCH.
2010-03-01add test mode mframe task: Send Normal Burst in every TDMA frameHarald Welte1-0/+7
2010-02-28Add multiframe-level scheduler (mframe_sched.[ch])Harald Welte1-0/+256
This scheduler enables us to schedule repeating events that occur every multiframe. It e.g. includes definitions for BCCH and CCCH reading. The mframe_sched is layered on top of the tdma_sched.