summaryrefslogtreecommitdiffstats
path: root/src/target/firmware
AgeCommit message (Collapse)AuthorFilesLines
2010-05-17layer1: remove 'l1s_cb' and l1_signal mechanismHarald Welte6-76/+25
the l1s signal was an old mechanism between l1test and the layer1 before we introduced the L1CTL protocol. This commit removes all leftover references to it. It also disables the l1test app, as it would no longer work without major modifications (using l1ctl from within the phone).
2010-05-17layer1: introduce concept of a 'l1 completion'Harald Welte4-0/+51
The idea is that the L1S part can schedule a completion handler which will then execute in the asynchronous L1A part. This should keep the FIQ priority L1S extremely short, deferring most of the work into the L1A part that runs in regular process context.
2010-05-17cosmetic/whitespace changeHarald Welte1-3/+3
2010-04-29don't enable TX by default!!!Harald Welte1-1/+1
2010-04-29Merge branch 'master' of gitosis@git.osmocom.org:osmocom-bbAndreas Eversberg8-27/+98
2010-04-29Fixes and improvements of layer23.Andreas Eversberg2-2/+2
2010-04-28layer1/mframe_sched: Make task update saferSylvain Munaut2-5/+32
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 Munaut7-15/+65
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-04-28fw/layer1: Change the tdma_schedule_set return value to # frames spannedSylvain Munaut1-3/+4
Previously, it returned the number of item + number of frames spanned by the set. But that value isn't that useful and wasn't used by anyone. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-04-28Remove some gsm time keeping utils now in libosmocoreSylvain Munaut1-7/+0
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-04-28fw/layer1: Fix a printf warning uint32_t is 'long unsigned'Sylvain Munaut1-1/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-04-28target/layer1: Fix typo in l23 message reception debugSylvain Munaut1-1/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-04-24sercomm: implemented a trivial echo dlci.Ingo Albrecht2-0/+4
2010-04-12UART initialisation, serial port errorsChristian Vogel1-0/+10
Additional initialisations for the UART to make the data corruption from the PC to the Phone go away. I've seen a lot of systematic character swaps on the serial port, especially in the vincinity of 0-bytes. As the XON/XOFF registers are the only thing in the UART that look like they would consider the actual data sent, I've added this initialisation to uart.c This makes the problem go away completely on my C123. To check for it I've added CRCs to the HDLC protocol and checked for bad frames, and also compared them in a (patched) osmocon that just sends random garbate in a special DLCI. The bad frames I observed always looked like this (number in parenthesis define number of omitted bytes, for brevity): <------ good bytes ----------> <-recvd|sent-> <----- identical again ------> d0 e0 00 00..(107)..f7 ce 17 c4 < 0c 00|00 0c > db 70 ba cb..(67)..d8 6d 3a 1f 31 e1 00 00..(47)..38 ca 2f e5 < 0c 00|00 0c > f8 a3 77 5f..(127)..5b 72 ff 4a <-- good -> <--- bad -----> <---- good again -------------> dc e1 00 00 < 0c 00|00 0c > 87 cb 24 83..(178)..2f 69 b3 51 ae e2 00 00..(167)..bd 18 6f a1 < 0c 00|00 0c > 2f 53 d2 b2..(7)..da c7 1b 63 dc e3 00 00..(131)..8e 2c b0 a8 < 0c 00|00 0c > 40 62 56 5f..(43)..f0 3a 47 f7 Formerly I was observing about 10 packets for every 2000 sent (with 192 bytes of payload each). Now, with the added initialisation, I see (as the time of writing this email) 12000 packets with 192 bytes each sent, with 0 bytes missing, corrupted, flipped).
2010-04-10fix disabling of the calypso bootrom on targets with nIBOOT tied to low:Steve Markgraf1-4/+3
* bit 8 always needs to be 1 when overriding the setting of the nIBOOT pin, so now we set both bits (9 and 8) to 1, and clear bit 9 if we want to enable the romloader * to be sure, this was tested on a target with nIBOOT high (C155) and a Alcatel VLE5 pulled to low, and works fine Signed-off-by: Steve Markgraf <steve@steve-m.de>
2010-04-09layer1: move FB and SB detection into prim_fbsb.cHarald Welte5-421/+477
2010-04-09layer1: move normal burst receive code to prim_rx_nb.cHarald Welte5-134/+184
2010-04-09layer1: move transmit normal burst routines to prim_tx_nb.cHarald Welte3-144/+189
2010-04-09layer1: reorganize code, introduce prim_{pm,rach}.cHarald Welte7-214/+333
The new plan for layer1 is to structure the source code not based on whether it is part of l1s/l1a or other parts, but based on 'primitives'. All code that relates to transmitting a RACH burst should be in one file, same for all code related to power management. Those files are called layer1/prim_*.c
2010-04-09layer1: fix off-by-one error when transmitting bursts in the uplinkHarald Welte1-0/+6
Prior to this fix, only 3 out of 4 bursts of every mac block were received by the BTS at all. Thanks to Dieter Spaar for spending so much time to debug this issue!
2010-04-08firmware: whitespace fixes in calypso_uart.SHarald Welte1-2/+2
2010-04-08firmware: proper namespace in manifest.Ingo Albrecht2-4/+8
2010-04-08firmware: simplified makefile a little, fixing a dependency bug on the way.Ingo Albrecht1-12/+13
2010-04-08firmware: Allow for selective board and environment builds.Ingo Albrecht1-2/+2
2010-04-08firmware: section symbols.Ingo Albrecht2-2/+23
2010-04-08firmware: correct linker scripts, more commonplace section naming, ↵Ingo Albrecht6-147/+157
reorganized start code.
2010-04-08firmware: linker script indentation and comments.Ingo Albrecht1-11/+6
2010-04-08firmware: make dependencies for linker scriptsIngo Albrecht1-2/+4
2010-04-08firmware: removed old board.cIngo Albrecht1-4/+0
2010-04-08firmware: Fixed osmoload linker script so it works in some situations.Ingo Albrecht1-3/+3
2010-04-08firmware: Fixed ramload linker script to include additional rodata sections.Ingo Albrecht1-1/+1
2010-04-08firmware: Introduced a build manifest.Ingo Albrecht3-6/+26
2010-04-08firmware: Support for building for multiple target environments.Ingo Albrecht3-7/+88
2010-04-07layer1: bsic should be uint8_t, not uint32_tHarald Welte1-1/+1
2010-04-07layer1: add 'struct mon_state' argument to read_{fb,sb}_result()Harald Welte1-24/+25
rather than operating on a global variable.
2010-04-07layer1: coding style cleanupHarald Welte1-36/+39
I didn't touch the TX side, as it is still very fragile...
2010-04-07layer1: reset l1s.sb.count to 0 in l1s_rest()Harald Welte1-0/+1
When we reset layer1, the SB counter should be set to 0 again to correctly perform multiple SB l1 tasks without rebooting.
2010-04-07layer1: remove sb_cnt and sb_once static global variablesHarald Welte2-9/+11
and instead move them into the l1s data structure
2010-04-07layer1: remove static global variable last_task_fnrHarald Welte1-8/+4
2010-04-07layer1: cosmetic cleanupHarald Welte1-8/+6
2010-04-07layer1: replace fb_once with l1s.fb.modeHarald Welte2-12/+15
It's time to get rid of some of the old global static variables.
2010-04-06layer1: add l1s_cell_info (sync info) for neighbor cellsHarald Welte1-0/+4
We don't actually use this information array yet... but hopefully we'll start filling it soon.
2010-04-06layer1: more comments about l1s data structure fieldsHarald Welte1-3/+16
also, change fn_offset from unsigned to signed.
2010-04-06layer1: properly reset fb_once and sb_once when syncing to new cellHarald Welte3-3/+16
2010-04-06layer1: deactivate all mframe tasks at L1CTL_DM_EST_REQ timeHarald Welte1-0/+1
When we process a L1CTL_DM_EST_REQ (try FCCH/SCH recognition), we need to deactivate all scheduled multiframe tasks.
2010-04-05l1ctl protocol: Introduce multi-part message DONE flagHarald Welte2-0/+5
In case a single request from L2 triggers multiple response messages from L1, we need a way to signal via L1CTL if the response is the final or some intermediate response.
2010-03-27layer1: include last ARFCN of PM range in reportHarald Welte1-1/+1
2010-03-27Implement L23-triggered L1 power measurement scanHarald Welte4-14/+79
Now layer23 can ask L1 to scan an entire range of ARFCN's and do power measurements. This is the first step in the cell (re)selection process.
2010-03-27sercomm: ESCAPE every NUL (0x00) byte in the data streamHarald Welte1-1/+2
For some reason, at least on the C123, a sequence of multiple NUL bytes seems to get corrupted somewhere in the Rx side on the phone itself (the NUL plus the following character get dropped). We now simply work around this issue by having our sercomm/HDLC layer escape all NUL octets in the stream.
2010-03-27sercomm: Fix ESCAPE'd character at end of bufferHarald Welte1-8/+15
If we're transmitting a to-be-escaped character as the last byte of the buffer, the code generated the sequence ESCAPE FLAG rather than ESCAPE last_byte FLAG. This fixes the bug.