summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/include
AgeCommit message (Collapse)AuthorFilesLines
2019-05-23[WIP] HO: Add RX only mode for handoverAndreas Eversberg1-0/+2
When establishing dedicate mode, a flag is used to disable transitter. When transmitter is disabled, access bursts are allowed. After sending a L1CTL_PARAM_REQ, the transmitter is enabled with given parameters. Change-Id: I43b14089e0b8988db6a73dd143c8ea806284ab7a
2019-05-23[WIP] HO: Add SCH read of neighbor cells to TCH channelsAndreas Eversberg3-0/+14
The task will try to sync to neighbor cell during search (idle) frame. Change-Id: I7f2c6b5438676a816c546cb9dce404762ee5d5b5
2019-05-23[WIP] HO: Add power measurement of neighbor cells to TCH channelsAndreas Eversberg2-8/+14
The task will measure power between TX and RX of successive TCH frames. Change-Id: I0c5a1714249799ff0f2031ca0585ec051c61cc6b
2019-05-23[WIP] Change TPU offset on TS change or sync changeAndreas Eversberg1-1/+3
When TPU offset must be changed (assignment to different timeslot or handover to a different cell), all tasks will be disabled until new TPU offset has been applied. Currently scheduled tasks are finished before the new TPU offset is applied. On change of TPU offset, the TPU's interrupt may skip one frame when changing backwards in time. Also it may generate two interrupts when changing significantly forward in time. This is compensated by changing the GSM time. Change-Id: If858484a9cf497e0f6e8d84593ab3637c2668869
2019-02-19firmware/lib: introduce TIFFS filesystem supportMychaela Falconia2-0/+36
All known TI GSM firmwares implement some kind of flash file system, or FFS. We call it TIFFS (Texas Instruments FFS) because it is TI's invention. TIFFS is a file system with a hierarchical directory tree structure, and with Unixy forward-slash-separated, case-sensitive pathnames; the semantics of "what is a file" and "what is a directory" are exactly the same as in UNIX; and TIFFS even supports symlinks, although that support is a little under-developed, and apparently no FFS symlinks were ever used in any production GSM device. Thus the FFS implemented in TI-based GSM devices (modems and "dumbphone" handsets) is really no different from, for example, JFFS2 in embedded Linux systems. The FFS in a GSM device typically stores two kinds of content: - Factory data: IMEI, RF calibration values, device make/model/revision ID strings etc. These files are expected to be programmed on the factory production line and not changed afterward. - Dynamic data written into the FFS in normal device operation: contacts, settings / preferences, call history, received SMS, etc. It should be noted that both Compal (Mot C1xx) and Foxconn (Pirelli DP-L10) vendors moved their vital per-unit factory data out of the FFS into their own ad hoc flash data structures, leaving their FFS only for less critical data. However, we do enable TIFFS access for them anyway. The location of TIFFS within the flash memory of a given GSM device is defined by the firmware design of that device, but is always some integral number of contiguous flash sectors. - On Motorola/Compal C139/140 phones, the FFS used by the original proprietary firmware occupies 5 sectors of 64 KiB each (320 KiB in total), starting at 0x370000. C11x/123 use smaller FFS configurations, whereas C155/156 seem to have switched to some other FFS format, different from our familiar TIFFS. - On the Pirelli DP-L10, the FFS used by the original proprietary firmware occupies 18 sectors of 256 KiB each (for 4.5 MiB in total), starting at the beginning of the 2nd flash chip select (0x02000000 in the ARM7 address space). - On FCDEV3B (FreeCalypso hardware), the FFS is located in the first 8 sectors (of 256 KiB each) in the 2nd flash chip select bank, which appears at 0x01800000 in the ARM7 address space. - On the GTA01/02 GSM modem, FFS occupies 7 sectors of 64 KiB each, starting at flash offset 0x380000. For more information, please refer to the FreeCalypso project documentation, from where this great contribution comes from. Please note that existing MediaTek targets most likely use different storage format as they have nothing from TI Calypso. Also, we don't (yet) know the location of TIFFS on SE J100i and Compal E99 targets. The TIFFS support is needed for the follow-up change, that implements reading of the factory RF calibration values. Tweaked (coding style changes) by Vadim Yanitskiy <axilirator@gmail.com> Change-Id: If6e212baeb10953129fb0d5253d263567f5e12d6 Related: OS#3582
2018-10-03firmware/layer1: add scheduler tasks for CBCHAlex Badea2-0/+5
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
2017-01-15define 'fprintf(stderr,' as a wrapper around printf(Harald Welte1-0/+1
This is in preparation to work with a more recent version of libosmocore, which wants to print to stderr in some cases.
2017-01-15Add an endian.h file as one step to build against later libosmocoreHarald Welte1-0/+12
2017-01-15Avoid redefining __{packed,aligned,unused,section}Harald Welte1-0/+10
It seems modern version of newlib define those themselves, so we should avoid re-defining them. Removes tons of compiler warnings when compiling against libnewlib 2.4.0
2013-01-05fw: keypad driver overhaul, support for different keymapsSteve Markgraf1-25/+5
Now the Pirelli DP-L10 keymap is supported. Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-05fw: introduce per-board uart mappingSteve Markgraf3-7/+13
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-05fw: introduce with_irq parameter for board_init()Steve Markgraf1-1/+1
So far the loader-app used to do the init on its own, which brought a lot of problems for board- specific initialization. Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-02target: Add support for IQ swap when requiredSylvain Munaut3-0/+15
Operation in GSM850 band requires IQ swap because of the offset PLL used in the TRF causing spectrum reversal. Thanks to Dieter Spaar for noticing the issue and the original patch Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-11-14fw/comm: remove unused, outdated copy of msgb.hSteve Markgraf1-161/+0
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-04-28firmware: Adding new font with symbols for battery and RX levelAndreas Eversberg1-0/+1
2012-04-28Further work on C123 charging.Christian Vogel1-5/+5
2012-04-28Battery charging for C123.Christian Vogel2-0/+52
2012-04-28Add MADC/battery related bit definitions in twl3025.hChristian Vogel1-0/+50
2012-03-29Fixed neighbour cell measurement task for SDCCH/8 multiframesAndreas Eversberg1-0/+1
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-12firmware: add missing includesSteve Markgraf1-0/+3
This fixes all 'implicit-function-declaration'-warnings. Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-02-07firmware/timer: Added HZ as global defintion for jiffies per secondAndreas Eversberg1-0/+2
2012-02-04Improvement of neighbour cell power measurement task.Andreas Eversberg1-0/+1
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.
2012-02-03firmware: remove deprecated display drivers and fontsSteve Markgraf1-49/+0
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-02-03Calypso FB: RGB332 to RGB565 conversion function.Christian Vogel1-0/+20
2012-02-03firmware/framebuffer: Adding fixed with font with 8x8 pixlesAndreas Eversberg1-1/+2
2012-02-03Calypso FB: C155 / SSD1783 Color SupportChristian Vogel1-0/+27
2012-02-03Calypso FB: C123 / ST7558 Black and White SupportChristian Vogel1-0/+51
2012-02-03Calypso FB: Main framebuffer header file.Christian Vogel1-0/+128
2012-02-03Calypso FB: 8 Fonts, header file and utility functions.Christian Vogel1-0/+80
I only activate two fonts, Helvetica Regular 8pt and bold 14pt because the others bloat the binary too much.
2012-02-03Removing all traces of the old display drivers.Christian Vogel1-56/+0
2012-01-29timers: comply with timer rename in libosmocoreHarald Welte1-11/+10
libosmocore has prefixed the timer functions with omso_* already in May 2011 (0b21c1c8850d7f33f55d9399d14055a7cdda3614), and we follow suit here for API consistency reasons.
2012-01-28target/rf: Make the trf6151_set_arfcn use ARFCN_UPLINK flag to select UL/DLSylvain Munaut1-1/+3
This way we can independentely control what frequency we want and wheter we want to TX or RX. This allow TX on DL band and RX on UL band. This also means all call to tx_window setup now need to properly set the ARFCN_UPLINK flag ! Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-01-28firmware/layer1: Using queue to process received l23 frames in main loopAndreas Eversberg1-0/+1
Instead of processing the frames out of the interrupt context, they are queued until serial interrupt returns and main loop is processed.
2012-01-28Added callback function to forward L1CTL packets to rather than SERCOMAndreas Eversberg1-0/+2
This is experimental, maybe there should be a better way to do that.
2011-11-13target/fw/sim: SIM Layer 1 driverSylvain Munaut1-17/+5
Originally written by dexter and then Andreas did a lot of cleanup work to bring it into shape for inclusion in master Written-by: Philipp Maier <zero-kelvin@gmx.de> Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-09-18fw/display: Add and build SSD1963 display driver for the SE J100iSteve Markgraf1-0/+1
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2011-07-28fw/layer1/l23_api: Add processing of the new audio_modeSylvain Munaut2-0/+4
This currently just stores it into the l1 sync state struct Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-07-28fw/l1: Add a queue for traffic frame to send to network (TRAFFIC_REQ)Sylvain Munaut1-0/+1
Also hard limit to maximum 4 pending frames (should not happen !), the upstream is supposed to do its own flow control. Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-07-17[layer1] Adding neighbour cell measurement code to layer1.Andreas Eversberg3-0/+14
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-07-17[rf] Adding rffe_set_gain() and rffe_get_gain() to get/set computed gainAndreas Eversberg2-4/+12
rffe_compute_gain() is the new name for rffe_set_gain(). I needed to change this, to solve the name collision with the rffe_set_gain() function, which actually sets the absolute gain. rffe_get_gain() will now read the absolute gain which has been computed by rffe_compute_gain() or set by rffe_set_gain().
2011-06-25fw/l1a: Add a message to safely count the length of a txqueueAndreas Eversberg1-0/+3
(that is by locking) Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-05-29fw/rffe: Add function to query RF wiringSylvain Munaut1-0/+14
Depending on the chipset and the HW, not all ports are connected and we need to know what we can use when we have the choice ... Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-05-15src: use namespace prefix osmo_timer*Pablo Neira Ayuso1-6/+6
Summary of changes: s/struct timer_list/struct osmo_timer_list/g s/bsc_add_timer/osmo_timer_add/g s/bsc_schedule_timer/osmo_timer_schedule/g s/bsc_del_timer/osmo_timer_del/g s/bsc_timer_pending/osmo_timer_pending/g s/bsc_nearest_timer/osmo_timers_nearest/g s/bsc_prepare_timers/osmo_timers_prepare/g s/bsc_update_timers/osmo_timers_update/g s/bsc_timer_check/osmo_timers_check/g
2011-05-05target/boards: add infrastructure for loaders for Mediatek platformsWolfram Sang3-0/+311
We are just interested in the loaders here, no other applications needed. Split it from the compal-based phones. Add mt62xx as first user. Based on a patch by steve-m, but cleaned up and seperated from compal/calypso. Signed-off-by: Steve Markgraf <steve@steve-m.de> Signed-off-by: Wolfram Sang <wolfram@the-dreams.de>
2011-05-05uart.h: move header out of calypso-directoryWolfram Sang1-3/+3
Everything defined is a pretty generic interface and can be used by mediatek, too. Signed-off-by: Wolfram Sang <wolfram@the-dreams.de>
2011-04-26src: use new libosmogsm and include/osmocom/[gsm|core] path to headersPablo Neira Ayuso9-10/+10
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>
2011-04-24fw/calypso: Add a new driver for the buzzer controlSylvain Munaut1-0/+34
Written-by: Jose Luis Pereira <onaips@gmail.com> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-03-20fw/layer1: Adding TAO loop to correct TPU window offsetAndreas Eversberg2-0/+11
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-01-24target/fw: set the TRF6151 tsp IDs from the rffe initializationSteve Markgraf2-1/+2
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2011-01-11fixed typos in commentsThomas Waldmann1-1/+1
Signed-off-by: Steve Markgraf <steve@steve-m.de>