view cdg-hybrid/sap/rrlc.pdf @ 275:79cfefc1e2b4

audio mode load: gracefully handle mode files of wrong AEC version Unfortunately our change of enabling L1_NEW_AEC (which is necessary in order to bring our Calypso ARM fw into match with the underlying DSP reality) brings along a change in the audio mode file binary format and file size - all those new tunable AEC parameters do need to be stored somewhere, after all. But we already have existing mode files in the old format, and setting AEC config to garbage when loading old audio modes (which is what would happen without the present change) is not an appealing proposition. The solution implemented in the present change is as follows: the audio mode loading code checks the file size, and if it differs from the active version of T_AUDIO_MODE, the T_AUDIO_AEC_CFG structure is cleared - set to the default (disabled AEC) for the compiled type of AEC. We got lucky in that this varying T_AUDIO_AEC_CFG structure sits at the end of T_AUDIO_MODE!
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 30 Jul 2021 02:55:48 +0000
parents 35f7a1dc9f7d
children
line wrap: on
line source

;********************************************************************************
;*** File           : rrlc.pdf
;*** Creation       : Wed Mar 11 09:58:47 CST 2009
;*** XSLT Processor : Apache Software Foundation / http://xml.apache.org/xalan-j / supports XSLT-Ver: 1
;*** Copyright      : (c) Texas Instruments AG, Berlin Germany 2002
;********************************************************************************
;*** Document Type  : Service Access Point Specification
;*** Document Name  : rrlc
;*** Document No.   : 8443.101.02.008
;*** Document Date  : 2002-10-11
;*** Document Status: BEING_PROCESSED
;*** Document Author: VK
;********************************************************************************



PRAGMA 	SRC_FILE_TIME 	"Thu Nov 29 09:52:52 2007"
PRAGMA 	LAST_MODIFIED 	"2002-10-11"
PRAGMA 	ID_AND_VERSION 	"8443.101.02.008"



CONST 	MAX_NCELL_EOTD_L1 	12 	; Max no. of NC observed for EOTD
CONST 	MAX_NCELL_EOTD 	15 	; Max no. of NC reported in the Measurement Assistance Data Element (3GPP 04.31)
CONST 	MAX_NCELL_EOTD_SI 	32 	; Max no. of NC reported in the Measurement Assistance Data SI List Element (3GPP 04.31)
CONST 	XCOR_NO 	18 	; Cross-correlation values (real & imaginary)



VALTAB 	VAL_cause
VAL 	0 	LCS_OK 	"no error"
VAL 	10 	LCS_WRONG_BTS 	"Serving Cell BTS differs from Reference BTS"
VAL 	20 	LCS_HANDOVER 	"handover occured during Position Measurement procedure"

VALTAB 	VAL_sb_flag
VAL 	0 	EOTD_INVALID 	"invalid data"
VAL 	1 	EOTD_VALID 	"valid data"

VALTAB 	VAL_eotd_mode
VAL 	0 	EOTD_IDLE 	"Idle mode"
VAL 	1 	EOTD_DEDIC 	"Dedicated or packet mode"

VALTAB 	VAL_exp_otd
VAL 	0 - 1250 	"The used resolution is 1 bits. This OTD value is the OTD value of TS0s (i.e. the difference in starting of TS0), not only the OTD between starts of bursts expected OTD between the scell and the specified cell. Note: 1250 is interpreted as 0"

VALTAB 	VAL_fn
VAL 	2715648 	FNMAX 	"max Frame Number + 1 (26*51*2048)"

VALTAB 	VAL_mfrm_offset
VAL 	0 - 51 	"multiframes/ 51 is interpreted as 0"

VALTAB 	VAL_otd_type
VAL 	0 	ROUGH_RTD 	"only rough RTD has been provided by the NW"
VAL 	1 	EXPECTED_OTD 	"only expectedOTD has been provided by the NW"
VAL 	2 	BOTH_OTD 	"Both OTD / RTD types have been provided by the NW"

VALTAB 	VAL_rough_rtd
VAL 	0 - 1250 	"rough RTD in bits (see expected OTD)"

VALTAB 	VAL_tav
VAL 	0 - 63 	"valid TA values"
VAL 	255 	TA_NOT_AVAIL 	"no Timing Advance in Idle Mode"

VALTAB 	VAL_uncertainty
VAL 	0 	UNC_MAX_2BIT 	"uncertainty in bits. 0 - 2 bits"
VAL 	1 	UNC_MAX_4BIT 	"uncertainty in bits. 3 - 4 bits"
VAL 	2 	UNC_MAX_8BIT 	"uncertainty in bits. 5 - 8 bits"
VAL 	3 	UNC_MAX_12BIT 	"uncertainty in bits. 9 - 12 bits"
VAL 	4 	UNC_MAX_16BIT 	"uncertainty in bits. 13 - 16 bits"
VAL 	5 	UNC_MAX_22BIT 	"uncertainty in bits. 17 - 22 bits"
VAL 	6 	UNC_MAX_30BIT 	"uncertainty in bits. 23 - 30 bits"
VAL 	7 	UNC_GT_30BIT 	"uncertainty in bits.  > 30 bits"




VAR 	arfcn 	"Channel number" 	S


VAR 	bsic 	"Base station ID code" 	B


VAR 	cause 	"Cause Identifier" 	B

VAL 	@p_rrlc - VAL_cause@ 	

VAR 	cell_id 	"Cell ID" 	S


VAR 	eotd_crosscor 	"Cross-correlation data" 	T


VAR 	sb_flag 	"data on SCH could be decoded, 'sb' stems from Sch Burst" 	B

VAL 	@p_rrlc - VAL_sb_flag@ 	

VAR 	eotd_mode 	"Operation mode" 	B

VAL 	@p_rrlc - VAL_eotd_mode@ 	

VAR 	exp_otd 	"expectedOTD" 	S

VAL 	@p_rrlc - VAL_exp_otd@ 	

VAR 	fn 	"full frame number" 	L

VAL 	@p_rrlc - VAL_fn@ 	

VAR 	lac 	"Location area code" 	S


VAR 	mcc 	"Mobile country code" 	B


VAR 	mfrm_offset 	"multiframe offset" 	B

VAL 	@p_rrlc - VAL_mfrm_offset@ 	

VAR 	mnc 	"Mobile country code" 	B


VAR 	time_tag 	"Nominal Position" 	L


VAR 	otd_type 	"OTD type" 	B

VAL 	@p_rrlc - VAL_otd_type@ 	

VAR 	req_id 	"Request Identifier" 	S


VAR 	rough_rtd 	"rough RTD" 	S

VAL 	@p_rrlc - VAL_rough_rtd@ 	

VAR 	d_eotd_nrj 	"Signal level" 	L


VAR 	tav 	"Timing advance" 	B

VAL 	@p_rrlc - VAL_tav@ 	

VAR 	uncertainty 	"Uncertainty of expected OTD" 	B

VAL 	@p_rrlc - VAL_uncertainty@ 	




COMP 	assist_data 	 "Assistance Data"
{
 	arfcn 	 ; channel number
 	bsic 	 ; Base Station Id Code
 	mfrm_offset 	 ; multiframe offset
 	otd_type 	 ; otd type
 	exp_otd 	 ; expected otd
 	uncertainty 	 ; uncertainty of exp. otd
 	rough_rtd 	 ; rough rtd
}



COMP 	eotd_sc_res 	 "EOTD SC Results at start of measurement"
{
 	sb_flag 	 ; Valid flag; named 'Data Valid' by Lower Layer task
 	bsic 	 ; base station identity code
 	arfcn 	 ; channel number
 	eotd_crosscor 	[XCOR_NO] 	 ; Cross correlation; real and imaginary parts for m=p-4 tp p+4
 	d_eotd_nrj 	 ; Sum of Amplitudes; named 'RSSI' by Cursor task
 	time_tag 	 ; Time tag; named 'Nominal Position' by Lower Layer task; in of case 1st SC measurement time_tag takes on the SCH Frame Number
}
TYPEDEF COMP eotd_sc_res 	eotd_sc_res1 	 "EOTD SC Results at stop of measurement"
TYPEDEF COMP eotd_sc_res 	eotd_nc_res 	 "EOTD NC Results"






; RRLC_MEAS_REQ 	0x80000040
; RRLC_MEAS_IND 	0x80004040
; RRLC_ERROR_IND 	0x80014040



PRIM 	RRLC_MEAS_REQ 	0x80000040
{
 	req_id 	 ; Request ID
 	< () 	arfcn 	> 	 ; Reference BTS ARFCN
 	< () 	bsic 	> 	 ; Reference BTS BSIC
 	< () 	assist_data 	[0..MAX_NCELL_EOTD] 	> 	 ; Assistance Data; The network may provide Assistance Data for up to 15 BTSs, however Layer1 can cope with 12 at one time. ALR will perform the mapping 15->12?
}






PRIM 	RRLC_MEAS_IND 	0x80004040
{
 	mcc 	[3] 	 ; Mobile Coutry Code
 	mnc 	[3] 	 ; Mobile Network Code
 	lac 	 ; Location Area Code
 	cell_id 	 ; CellID
 	eotd_mode 	 ; Mode
 	req_id 	 ; Request Ident; passed from MPH
 	tav 	 ; Timing Advance; passed from MPH
 	fn 	 ; Frame Number; passed from MPH
 	eotd_sc_res 	 ; EOTD SC Results; passed from MPH
 	eotd_sc_res1 	 ; EOTD SC Results; passed from MPH
 	eotd_nc_res 	[1..MAX_NCELL_EOTD_L1] 	 ; EOTD NC Results; passed from MPH
}






PRIM 	RRLC_ERROR_IND 	0x80014040
{
 	cause 	 ; cause ID
}