annotate src/g23m-gsm/alr2/alr_gprs.h @ 303:f76436d19a7a default tip

!GPRS config: fix long-standing AT+COPS chance hanging bug There has been a long-standing bug in FreeCalypso going back years: sometimes in the AT command bring-up sequence of an ACI-only MS, the AT+COPS command would produce only a power scan followed by cessation of protocol stack activity (only L1 ADC traces), instead of the expected network search sequence. This behaviour was seen in different FC firmware versions going back to Citrine, and seemed to follow some law of chance, not reliably repeatable. This bug has been tracked down and found to be specific to !GPRS configuration, stemming from our TCS2/TCS3 hybrid and reconstruction of !GPRS support that was bitrotten in TCS3.2/LoCosto version. ACI module psa_mms.c, needed only for !GPRS, was missing in the TCS3 version and had to be pulled from TCS2 - but as it turns out, there is a new field in the MMR_REG_REQ primitive that needs to be set correctly, and that psa_mms.c module is the place where this initialization needed to be added.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 08 Jun 2023 08:23:37 +0000
parents 3a14ee9a9843
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 +-----------------------------------------------------------------------------
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 | Project :
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 | Modul : J:\g23m-gsm\alr\alr_gprs.h
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 +-----------------------------------------------------------------------------
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 | Copyright 2002 Texas Instruments Berlin, AG
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 | All rights reserved.
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 |
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 | This file is confidential and a trade secret of Texas
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 | Instruments Berlin, AG
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 | The receipt of or possession of this file does not convey
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 | any rights to reproduce or disclose its contents or to
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 | manufacture, use, or sell anything it may describe, in
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 | whole, or in part, without the specific written consent of
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 | Texas Instruments Berlin, AG.
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 +-----------------------------------------------------------------------------
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 | Purpose :
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 +-----------------------------------------------------------------------------
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 */
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 typedef struct {
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 UBYTE v_ptmsi;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 ULONG ptmsi;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 UBYTE v_ptmsi2;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 ULONG ptmsi2;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 UBYTE ign_pgm;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 UBYTE pbcch;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 UBYTE check_bsic;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 UBYTE ptm;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 UBYTE pim;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 UBYTE sync_only;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 UBYTE pcco_active;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 } T_ALR_GPRS_DATA;
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 #define SI13_ON_NBCCH 0
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 #define SI13_ON_EBCCH 1
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 void gprs_alr_get_table (const T_FUNC** tab,
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 USHORT* n);
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 void gprs_alr_mon_ctrl_req (T_MPH_MON_CTRL_REQ* ctrl_req);
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 BOOL gprs_alr_check_packet_paging (UBYTE* frame,
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 UBYTE which);
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 BOOL gprs_alr_check_packet_paging_2(UBYTE* frame,
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 UBYTE which);
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 BOOL gprs_alr_check_ptmsi (ULONG ptmsi_pag);
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 void gprs_alr_store_ptmsi (UBYTE indic,
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 ULONG tmsi);
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 void gprs_alr_store_ptmsi2 (UBYTE indic2,
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 ULONG tmsi2);
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 void gprs_alr_check_downlink_assign(T_MPHC_DATA_IND* data_ind);
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 void gprs_alr_init (void);
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 BOOL gprs_check_read_si13_only (UBYTE si13_position);
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 void gprs_check_page_mode (T_MPHC_DATA_IND* data_ind);
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 void set_gprs_support( UBYTE support );
3a14ee9a9843 src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 GLOBAL BOOL gprs_alr_is_supported (void);