comparison L1/include/l1_proto.h @ 3:f93dab57b032

L1/include: TCS211-based version restored
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 09 Jun 2016 00:45:00 +0000
parents 75a11d740a02
children
comparison
equal deleted inserted replaced
2:7c13c26f1aa4 3:f93dab57b032
12 /**************************************/ 12 /**************************************/
13 void hisr (void); 13 void hisr (void);
14 14
15 void frit_task (UWORD32 argc, void *argv); 15 void frit_task (UWORD32 argc, void *argv);
16 void l1s_task (UWORD32 argc, void *argv); 16 void l1s_task (UWORD32 argc, void *argv);
17 #if FF_L1_IT_DSP_USF
18 void usf_task (UWORD32 argc, void *argv);
19 #endif
20 void l1s_synch (void); 17 void l1s_synch (void);
21 18
22 void l1s_task_scheduler_process (void); 19 void l1s_task_scheduler_process (void);
23 void l1s_execute_frame (void); 20 void l1s_execute_frame (void);
24 void l1s_meas_manager (void); 21 void l1s_meas_manager (void);
25 void l1s_end_manager (void); 22 void l1s_end_manager (void);
26 void l1s_schedule_tasks (WORD32 *pending_task); 23 void l1s_schedule_tasks (WORD32 *pending_task);
27 void l1s_merge_manager (WORD32 dl_pending_task); 24 void l1s_merge_manager (WORD32 dl_pending_task);
28 25
29 void l1s_dedicated_mode_manager (void); 26 void l1s_dedicated_mode_manager (void);
30 void l1s_keep_mftab_hist (void);
31 27
32 /**************************************/ 28 /**************************************/
33 /* prototypes of L1_PWMGR.C functions */ 29 /* prototypes of L1_PWMGR.C functions */
34 /**************************************/ 30 /**************************************/
35 void l1s_sleep_manager (void); 31 void l1s_sleep_manager (void);
36 void l1s_wakeup (void); 32 void l1s_gauging_task (void);
37 void l1s_wakeup_adjust (void); 33 void l1s_gauging_task_end (void);
38 void GAUGING_Handler (void); 34 WORD32 l1s_get_next_gauging_in_Packet_Idle(void);
39 UWORD8 l1s_recover_Os (void); 35 void l1s_wakeup (void);
40 UWORD8 l1s_check_System (void); 36 void l1s_wakeup_adjust (void);
41 void l1s_recover_Frame (void); 37 void GAUGING_Handler (void);
42 void l1s_recover_HWTimers (void); 38 UWORD8 l1s_recover_Os (void);
43 BOOL l1s_compute_wakeup_ticks (void); 39 UWORD8 l1s_check_System (void);
44 void l1s_gauging_task (void); 40 void l1s_recover_Frame (void);
45 void l1s_gauging_task_end (void); 41 void l1s_recover_HWTimers (void);
46 UWORD32 l1s_get_next_gauging_in_Packet_Idle(void); 42 BOOL l1s_compute_wakeup_ticks (void);
47 void l1s_adapt_traffic_controller (void);
48 43
49 /**************************************/ 44 /**************************************/
50 /* prototypes of L1_MFMGR.C functions */ 45 /* prototypes of L1_MFMGR.C functions */
51 /**************************************/ 46 /**************************************/
52 void l1s_clear_mftab (T_FRM *frmlst); 47 void l1s_clear_mftab (T_FRM *frmlst);
66 void l1s_ctrl_msagc (UWORD8 task, UWORD8 param2); 61 void l1s_ctrl_msagc (UWORD8 task, UWORD8 param2);
67 void l1s_ctrl_fb (UWORD8 param1, UWORD8 param2); 62 void l1s_ctrl_fb (UWORD8 param1, UWORD8 param2);
68 void l1s_ctrl_fb26 (UWORD8 task, UWORD8 param2); 63 void l1s_ctrl_fb26 (UWORD8 task, UWORD8 param2);
69 void l1s_ctrl_sbgen (UWORD8 task, UWORD8 attempt); 64 void l1s_ctrl_sbgen (UWORD8 task, UWORD8 attempt);
70 void l1s_ctrl_sb26 (UWORD8 task, UWORD8 param2); 65 void l1s_ctrl_sb26 (UWORD8 task, UWORD8 param2);
71 #if ((REL99 == 1) && (FF_BHO == 1)) 66
72 void l1s_ctrl_fbsb (UWORD8 task , UWORD8 param2);
73 #endif
74 void l1s_ctrl_smscb (UWORD8 task, UWORD8 burst_id); 67 void l1s_ctrl_smscb (UWORD8 task, UWORD8 burst_id);
75 68
76 void l1s_ctrl_snb_dl (UWORD8 task, UWORD8 param2); 69 void l1s_ctrl_snb_dl (UWORD8 task, UWORD8 param2);
77 void l1s_ctrl_snb_ul (UWORD8 task, UWORD8 param2); 70 void l1s_ctrl_snb_ul (UWORD8 task, UWORD8 param2);
78 void l1s_ctrl_nnb (UWORD8 task, UWORD8 param2); 71 void l1s_ctrl_nnb (UWORD8 task, UWORD8 param2);
96 void l1s_read_snb_dl (UWORD8 task, UWORD8 burst_id); 89 void l1s_read_snb_dl (UWORD8 task, UWORD8 burst_id);
97 void l1s_read_nnb (UWORD8 task, UWORD8 param); 90 void l1s_read_nnb (UWORD8 task, UWORD8 param);
98 void l1s_read_dedic_dl (UWORD8 task, UWORD8 burst_id); 91 void l1s_read_dedic_dl (UWORD8 task, UWORD8 burst_id);
99 92
100 void l1s_read_tx_result (UWORD8 param1, UWORD8 param2); 93 void l1s_read_tx_result (UWORD8 param1, UWORD8 param2);
101
102 #if FF_EMR
103 void l1s_read_dedic_scell_meas (UWORD8 meas, UWORD8 sub_flag, T_EMR_PARAMS *emr_params);
104 #else //FF_EMR
105 void l1s_read_dedic_scell_meas (UWORD8 meas, UWORD8 sub_flag); 94 void l1s_read_dedic_scell_meas (UWORD8 meas, UWORD8 sub_flag);
106 #endif //FF_EMR
107 void l1s_dedic_reporting (void); 95 void l1s_dedic_reporting (void);
108 96
109 void l1s_read_fb (UWORD8 task, UWORD32 fb_flag, UWORD32 toa, UWORD32 attempt, 97 void l1s_read_fb (UWORD8 task, UWORD32 fb_flag, UWORD32 toa, UWORD32 attempt,
110 UWORD32 pm, UWORD32 angle, UWORD32 snr); 98 UWORD32 pm, UWORD32 angle, UWORD32 snr);
111 void l1s_read_sb (UWORD8 task,UWORD32 flag, API *data, UWORD32 toa, UWORD8 attempt, 99 void l1s_read_sb (UWORD8 task,UWORD32 flag, API *data, UWORD32 toa, UWORD8 attempt,
112 UWORD32 pm, UWORD32 angle, UWORD32 snr); 100 UWORD32 pm, UWORD32 angle, UWORD32 snr);
113 #if ((REL99 == 1) && (FF_BHO == 1))
114 void l1s_read_fbsb (UWORD8 task, UWORD8 attempt, BOOL fb_flag, BOOL sb_flag, API *data,
115 UWORD32 toa, UWORD32 pm, UWORD32 angle, UWORD32 snr);
116 #endif
117 void l1s_read_sacch_dl (API *info_address, UWORD32 task_rx); 101 void l1s_read_sacch_dl (API *info_address, UWORD32 task_rx);
118 void l1s_read_dcch_dl (API *info_address, UWORD32 task_rx); 102 void l1s_read_dcch_dl (API *info_address, UWORD32 task_rx);
119 void l1s_read_l3frm (UWORD8 pwr_level, API *info_address, UWORD32 task_rx); 103 void l1s_read_l3frm (UWORD8 pwr_level, API *info_address, UWORD32 task_rx);
120 void l1s_reset_tx_ptr(UWORD8 param1, UWORD8 param2);
121 104
122 105
123 /**************************************/ 106 /**************************************/
124 /* prototypes of L1_AFUNC functions */ 107 /* prototypes of L1_AFUNC functions */
125 /**************************************/ 108 /**************************************/
137 void l1a_send_confirmation (UWORD32 SignalCode,UWORD8 queue_type); 120 void l1a_send_confirmation (UWORD32 SignalCode,UWORD8 queue_type);
138 void l1a_send_result (UWORD32 SignalCode, xSignalHeaderRec *msg, UWORD8 queue); 121 void l1a_send_result (UWORD32 SignalCode, xSignalHeaderRec *msg, UWORD8 queue);
139 UWORD8 l1a_encode_rxqual (UWORD32 inlevel); 122 UWORD8 l1a_encode_rxqual (UWORD32 inlevel);
140 void l1a_report_failling_ncell_sync (UWORD32 SignalCode, UWORD8 neigh_id); 123 void l1a_report_failling_ncell_sync (UWORD32 SignalCode, UWORD8 neigh_id);
141 UWORD8 l1a_clip_txpwr (UWORD8 supplied_txpwr, UWORD16 radio_freq); 124 UWORD8 l1a_clip_txpwr (UWORD8 supplied_txpwr, UWORD16 radio_freq);
142 void l1a_add_time_delta (UWORD32 *time_alignmt, UWORD32 *fn_offset, WORD32 delta); 125 void l1a_correct_timing (UWORD8 neigh_id,UWORD32 time_alignmt,UWORD32 fn_offset);
143 void l1a_compensate_sync_ind (T_MPHC_NCELL_SYNC_IND * msg); 126 void l1a_add_time_delta (UWORD32 *time_alignmt, UWORD32 *fn_offset, WORD32 delta);
144 void l1a_compute_Eotd_data (UWORD8 *first_scell, UWORD8 neigh_id, UWORD32 SignalCode, xSignalHeaderRec *msg); 127 void l1a_compensate_sync_ind (T_MPHC_NCELL_SYNC_IND * msg);
145 void l1a_correct_timing (UWORD8 neigh_id,UWORD32 time_alignmt,UWORD32 fn_offset); 128 void l1a_compute_Eotd_data (UWORD8 *first_scell, UWORD8 neigh_id, UWORD32 SignalCode, xSignalHeaderRec *msg);
129 #if (L1_MPHC_RXLEV_IND_REPORT_SORT==1)
130 void l1a_sort_freq_reported_in_rxlev_ind(T_POWER_ARRAY *data_tab,UWORD16 data_tab_size,UWORD16 *index_tab,UWORD16 index_tab_size);
131 #endif
146 132
147 /**************************************/ 133 /**************************************/
148 /* prototypes of L1_FUNC functions */ 134 /* prototypes of L1_FUNC functions */
149 /**************************************/ 135 /**************************************/
150 void dsp_power_on (void); 136 void dsp_power_on (void);
151 #if ((ANALOG == 1) || (ANALOG == 2) || (ANALOG == 3) || (ANALOG == 11)) 137 #if ((ANALOG == 1) || (ANALOG == 2) || (ANALOG == 3))
152 void l1_abb_power_on (void); 138 void l1_abb_power_on (void);
153 #endif 139 #endif
154 void tpu_init (void); 140 void tpu_init (void);
155 141
156 void l1s_reset_db_mcu_to_dsp (T_DB_MCU_TO_DSP *page_ptr); 142 void l1s_reset_db_mcu_to_dsp (T_DB_MCU_TO_DSP *page_ptr);
157 #if (DSP == 38) || (DSP == 39)
158 void l1s_reset_db_common_mcu_to_dsp (T_DB_COMMON_MCU_TO_DSP *page_ptr);
159 #endif
160 void l1s_reset_db_dsp_to_mcu (T_DB_DSP_TO_MCU *page_ptr); 143 void l1s_reset_db_dsp_to_mcu (T_DB_DSP_TO_MCU *page_ptr);
161 void initialize_l1var (void); 144 void initialize_l1var (void);
162 void l1_initialize (T_MMI_L1_CONFIG *mmi_l1_config); 145 void l1_initialize (T_MMI_L1_CONFIG *mmi_l1_config);
163 void l1_pwr_mgt_init (void); 146 void l1_pwr_mgt_init (void);
164 void l1_dpll_init_var (void); 147 void l1_dpll_init_var (void);
172 UWORD8 l1s_ADC_decision_on_NP (void); 155 UWORD8 l1s_ADC_decision_on_NP (void);
173 #if (AMR == 1) 156 #if (AMR == 1)
174 UWORD8 l1s_amr_get_ratscch_type (API *a_ratscch_dl); 157 UWORD8 l1s_amr_get_ratscch_type (API *a_ratscch_dl);
175 void l1s_amr_update_from_ratscch (API *a_ratscch_dl); 158 void l1s_amr_update_from_ratscch (API *a_ratscch_dl);
176 #endif 159 #endif
177 void l1_memcpy_16bit(void *dst,void* src,unsigned int len);
178 160
179 161
180 /**************************************/ 162 /**************************************/
181 /* prototypes of L1_DRIVE functions */ 163 /* prototypes of L1_DRIVE functions */
182 /**************************************/ 164 /**************************************/
183 // MCU-DSP interface drivers. 165 // MCU-DSP interface drivers.
184 //--------------------------- 166 //---------------------------
185
186 #if (FF_L1_FAST_DECODING == 1)
187 void l1ddsp_load_fast_dec_task(API task, UWORD8 burst_id);
188 #endif
189 void l1ddsp_load_info (UWORD32 task, 167 void l1ddsp_load_info (UWORD32 task,
190 API *info_ptr, 168 API *info_ptr,
191 UWORD8 *data); 169 UWORD8 *data);
192 void l1ddsp_load_monit_task (API monit_task, 170 void l1ddsp_load_monit_task (API monit_task,
193 API fb_mode); 171 API fb_mode);
201 void l1ddsp_load_ra_task (API ra_task); 179 void l1ddsp_load_ra_task (API ra_task);
202 180
203 181
204 void l1ddsp_load_txpwr (UWORD8 txpwr, 182 void l1ddsp_load_txpwr (UWORD8 txpwr,
205 UWORD16 radio_freq); 183 UWORD16 radio_freq);
206
207 // SAIC low level driver function
208 #if (L1_SAIC != 0)
209 void l1ddsp_load_swh_flag (UWORD16 SWH_flag, UWORD16 SAIC_flag);
210 #endif
211
212 void l1ddsp_read_iq_dump(UWORD8 task);
213 void l1ddsp_apc_load_apcctrl2(UWORD16 apcctrl2);
214 void l1ddsp_apc_set_manual_mode(void);
215 void l1ddsp_apc_set_automatic_mode(void);
216
217 #ifdef TESTMODE
218 void l1ddsp_apc_load_apclev(UWORD16 apclev);
219 #endif
220
221 #if (AMR == 1) 184 #if (AMR == 1)
222 #if (FF_L1_TCH_VOCODER_CONTROL == 1) 185 #if (FF_L1_TCH_VOCODER_CONTROL == 1)
223 // Add the AMR synchro bit in the driver's paramters 186 // Add the AMR synchro bit in the driver's paramters
224 void l1ddsp_load_tch_param (T_TIME_INFO *next_time, 187 void l1ddsp_load_tch_param (T_TIME_INFO *next_time,
225 UWORD8 chan_mode, 188 UWORD8 chan_mode,
227 UWORD8 subchannel, 190 UWORD8 subchannel,
228 UWORD8 tch_loop, 191 UWORD8 tch_loop,
229 UWORD8 sync_tch, 192 UWORD8 sync_tch,
230 UWORD8 sync_amr, 193 UWORD8 sync_amr,
231 UWORD8 reset_sacch, 194 UWORD8 reset_sacch,
232 #if !FF_L1_IT_DSP_DTX
233 UWORD8 vocoder_on); 195 UWORD8 vocoder_on);
234 #else
235 UWORD8 vocoder_on,
236 BOOL dtx_dsp_interrupt);
237 #endif
238 #else 196 #else
239 void l1ddsp_load_tch_param (T_TIME_INFO *next_time, 197 void l1ddsp_load_tch_param (T_TIME_INFO *next_time,
240 UWORD8 chan_mode, 198 UWORD8 chan_mode,
241 UWORD8 chan_type, 199 UWORD8 chan_type,
242 UWORD8 subchannel, 200 UWORD8 subchannel,
243 UWORD8 tch_loop, 201 UWORD8 tch_loop,
244 UWORD8 sync_tch, 202 UWORD8 sync_tch,
245 #if !FF_L1_IT_DSP_DTX
246 UWORD8 sync_amr); 203 UWORD8 sync_amr);
247 #else
248 UWORD8 sync_amr,
249 BOOL dtx_dsp_interrupt);
250 #endif
251 #endif 204 #endif
252 #else 205 #else
253 #if (FF_L1_TCH_VOCODER_CONTROL == 1) 206 #if (FF_L1_TCH_VOCODER_CONTROL == 1)
254 void l1ddsp_load_tch_param (T_TIME_INFO *next_time, 207 void l1ddsp_load_tch_param (T_TIME_INFO *next_time,
255 UWORD8 chan_mode, 208 UWORD8 chan_mode,
256 UWORD8 chan_type, 209 UWORD8 chan_type,
257 UWORD8 subchannel, 210 UWORD8 subchannel,
258 UWORD8 tch_loop, 211 UWORD8 tch_loop,
259 UWORD8 sync_tch, 212 UWORD8 sync_tch,
260 UWORD8 reset_sacch, 213 UWORD8 reset_sacch,
261 #if !FF_L1_IT_DSP_DTX
262 UWORD8 vocoder_on); 214 UWORD8 vocoder_on);
263 #else
264 UWORD8 vocoder_on,
265 BOOL dtx_dsp_interrupt);
266 #endif
267 #else 215 #else
268 void l1ddsp_load_tch_param (T_TIME_INFO *next_time, 216 void l1ddsp_load_tch_param (T_TIME_INFO *next_time,
269 UWORD8 chan_mode, 217 UWORD8 chan_mode,
270 UWORD8 chan_type, 218 UWORD8 chan_type,
271 UWORD8 subchannel, 219 UWORD8 subchannel,
272 UWORD8 tch_loop, 220 UWORD8 tch_loop,
273 #if !FF_L1_IT_DSP_DTX
274 UWORD8 sync_tch); 221 UWORD8 sync_tch);
275 #else
276 UWORD8 sync_tch,
277 BOOL dtx_dsp_interrupt);
278 #endif
279 #endif 222 #endif
280 #endif 223 #endif
281 224
282 #if (L1_VOCODER_IF_CHANGE == 0) 225 BOOL enable_tch_vocoder (BOOL vocoder_on);
283 BOOL enable_tch_vocoder (BOOL vocoder_on); 226
284 #endif // L1_VOCODER_IF_CHANGE == 0
285 BOOL l1_select_mcsi_port (UWORD8 port); 227 BOOL l1_select_mcsi_port (UWORD8 port);
286 228
287 void l1ddsp_load_ciph_param (UWORD8 a5mode, 229 void l1ddsp_load_ciph_param (UWORD8 a5mode,
288 T_ENCRYPTION_KEY *ciph_key); 230 T_ENCRYPTION_KEY *ciph_key);
289 void l1ddsp_load_tch_mode (UWORD8 dai_mode, 231 void l1ddsp_load_tch_mode (UWORD8 dai_mode,
290 BOOL dtx_allowed); 232 BOOL dtx_allowed);
291 #if (AMR == 1) 233 #if (AMR == 1)
292 void l1ddsp_load_amr_param (T_AMR_CONFIGURATION amr_param, UWORD8 cmip); 234 void l1ddsp_load_amr_param (T_AMR_CONFIGURATION amr_param, UWORD8 cmip);
293 #endif 235 #endif
294 void l1ddsp_stop_tch (void); 236
295 void l1ddsp_load_afc (API afc); 237 void l1ddsp_stop_tch (void);
238
296 239
297 // MCU-TPU interface drivers. 240 // MCU-TPU interface drivers.
298 //--------------------------- 241 //---------------------------
299 void l1dtpu_meas (UWORD16 radio_freq, 242 void l1dtpu_meas (UWORD16 radio_freq,
300 WORD8 agc, 243 WORD8 agc,
301 UWORD8 lna_off, 244 UWORD8 lna_off,
302 UWORD16 win_id, 245 UWORD16 win_id,
303 UWORD16 tpu_synchro, 246 UWORD16 tpu_synchro,
304 UWORD8 adc_active 247 UWORD8 adc_active);
305 #if(RF_FAM == 61)
306 ,UWORD8 afc_mode
307 ,UWORD8 if_ctl
308 #endif
309 );
310 void l1dtpu_neig_fb (UWORD16 radio_freq, 248 void l1dtpu_neig_fb (UWORD16 radio_freq,
311 WORD8 agc, 249 WORD8 agc,
312 UWORD8 lna_off); 250 UWORD8 lna_off);
313 void l1dtpu_neig_fb26 (UWORD16 radio_freq, 251 void l1dtpu_neig_fb26 (UWORD16 radio_freq,
314 WORD8 agc, 252 WORD8 agc,
318 WORD8 agc, 256 WORD8 agc,
319 UWORD8 lna_off, 257 UWORD8 lna_off,
320 UWORD32 time_alignmt, 258 UWORD32 time_alignmt,
321 UWORD32 offset_serv, 259 UWORD32 offset_serv,
322 UWORD8 reload_flag, 260 UWORD8 reload_flag,
323 UWORD8 attempt 261 UWORD8 attempt);
324 #if(RF_FAM == 61)
325 ,UWORD8 if_ctl
326 #endif
327 );
328 void l1dtpu_neig_sb26 (UWORD16 radio_freq, 262 void l1dtpu_neig_sb26 (UWORD16 radio_freq,
329 WORD8 agc, 263 WORD8 agc,
330 UWORD8 lna_off, 264 UWORD8 lna_off,
331 UWORD32 time_alignmt, 265 UWORD32 time_alignmt,
332 UWORD32 fn_offset, 266 UWORD32 fn_offset,
333 UWORD32 offset_serv 267 UWORD32 offset_serv);
334 #if(RF_FAM == 61)
335 ,UWORD8 if_ctl
336 #endif
337 );
338 void l1dtpu_serv_rx_nb (UWORD16 radio_freq, 268 void l1dtpu_serv_rx_nb (UWORD16 radio_freq,
339 WORD8 agc, 269 WORD8 agc,
340 UWORD8 lna_off, 270 UWORD8 lna_off,
341 UWORD32 synchro_serv, 271 UWORD32 synchro_serv,
342 UWORD32 new_offset, 272 UWORD32 new_offset,
343 BOOL change_offset, 273 BOOL change_offset,
344 UWORD8 adc_active 274 UWORD8 adc_active);
345 #if(RF_FAM == 61)
346 ,UWORD8 csf_filter_choice
347 ,UWORD8 if_ctl
348 #endif
349 #if (NEW_SNR_THRESHOLD == 1)
350 ,UWORD8 saic_flag
351 #endif /* NEW_SNR_THRESHOLD*/
352 );
353 void l1dtpu_serv_tx_nb (UWORD16 radio_freq, 275 void l1dtpu_serv_tx_nb (UWORD16 radio_freq,
354 UWORD8 timing_advance, 276 UWORD8 timing_advance,
355 UWORD32 offset_serv, 277 UWORD32 offset_serv,
356 UWORD8 txpwr, 278 UWORD8 txpwr,
357 UWORD8 adc_active); 279 UWORD8 adc_active);
359 WORD8 agc, 281 WORD8 agc,
360 UWORD8 lna_off, 282 UWORD8 lna_off,
361 UWORD32 time_alignmt, 283 UWORD32 time_alignmt,
362 UWORD32 offset_serv, 284 UWORD32 offset_serv,
363 UWORD8 reload_flag, 285 UWORD8 reload_flag,
364 UWORD8 nop 286 UWORD8 nop);
365 #if(RF_FAM == 61)
366 ,UWORD8 if_ctl
367 #endif
368 #if (NEW_SNR_THRESHOLD == 1)
369 ,UWORD8 saic_flag
370 #endif /* NEW_SNR_THRESHOLD*/
371 );
372
373 void l1dtpu_serv_tx_ra (UWORD16 radio_freq, 287 void l1dtpu_serv_tx_ra (UWORD16 radio_freq,
374 UWORD32 offset_serv, 288 UWORD32 offset_serv,
375 UWORD8 txpwr, 289 UWORD8 txpwr,
376 UWORD8 adc_active); 290 UWORD8 adc_active);
377 291
425 339
426 void l1a_idle_ba_list_meas_process (xSignalHeaderRec *msg); 340 void l1a_idle_ba_list_meas_process (xSignalHeaderRec *msg);
427 void l1a_idle_full_list_meas_process (xSignalHeaderRec *msg); 341 void l1a_idle_full_list_meas_process (xSignalHeaderRec *msg);
428 void l1a_test_process (xSignalHeaderRec *msg); 342 void l1a_test_process (xSignalHeaderRec *msg);
429 void l1a_freq_band_configuration (xSignalHeaderRec *msg); 343 void l1a_freq_band_configuration (xSignalHeaderRec *msg);
430 void l1a_at_power_process (xSignalHeaderRec *msg); 344
431
432 #if(L1_CHECK_COMPATIBLE == 1)
433 void l1a_checkmsg_compatibility (xSignalHeaderRec *msg);
434 #endif
435 #if (OP_L1_STANDALONE == 1) 345 #if (OP_L1_STANDALONE == 1)
436 // Dynamic configuration process for L1 standalone only 346 // Dynamic configuration process for L1 standalone only
437 void l1a_test_config_process (xSignalHeaderRec *msg); 347 void l1a_test_config_process (xSignalHeaderRec *msg);
438 #endif 348 #endif
439 349
456 366
457 367
458 /**************************************/ 368 /**************************************/
459 /* Prototypes for Nu_main. */ 369 /* Prototypes for Nu_main. */
460 /**************************************/ 370 /**************************************/
371 UWORD32 get_arm_version (void);
372 void usart_hisr (void);
461 void Adc_timer (UWORD32 id); 373 void Adc_timer (UWORD32 id);
462
463 /**************************************/ 374 /**************************************/
464 /* Prototypes for l2 task */ 375 /* Prototypes for l2 task */
465 /**************************************/ 376 /**************************************/
466 T_RADIO_FRAME *dll_read_dcch (UWORD8 chn_mode); 377 T_RADIO_FRAME *dll_read_dcch (UWORD8 chn_mode);
467 T_RADIO_FRAME *dll_read_sacch (UWORD8 chn_mode); 378 T_RADIO_FRAME *dll_read_sacch (UWORD8 chn_mode);
476 UWORD8 channel_mode, 387 UWORD8 channel_mode,
477 UWORD8 blk_seq_number); 388 UWORD8 blk_seq_number);
478 UWORD8 *tx_tch_data (void); 389 UWORD8 *tx_tch_data (void);
479 390
480 #if (SEND_FN_TO_L2_IN_DCCH==1) 391 #if (SEND_FN_TO_L2_IN_DCCH==1)
481 #if (L1_SAGEM_INTERFACE == 1)
482 void dll_dcch_downlink (API *info_address,
483 UWORD8 valid_flag,
484 UWORD32 frame_number,
485 UWORD8 channel_type);
486 #else
487 void dll_dcch_downlink (API *info_address, 392 void dll_dcch_downlink (API *info_address,
488 UWORD8 valid_flag, 393 UWORD8 valid_flag,
489 UWORD32 frame_number); 394 UWORD32 frame_number);
490 #endif
491 #else
492 #if (L1_SAGEM_INTERFACE == 1)
493 void dll_dcch_downlink (API *info_address,
494 UWORD8 valid_flag,
495 UWORD8 channel_type);
496 #else 395 #else
497 void dll_dcch_downlink (API *info_address, 396 void dll_dcch_downlink (API *info_address,
498 UWORD8 valid_flag); 397 UWORD8 valid_flag);
499 #endif
500 #endif 398 #endif
501 399
502 /***************************************/ 400 /***************************************/
503 /* Prototypes of L1_TRACE.c functions */ 401 /* Prototypes of L1_TRACE.c functions */
504 /***************************************/ 402 /***************************************/
505 void l1_trace_message (xSignalHeaderRec *msg); 403 void l1_trace_message (xSignalHeaderRec *msg);
506 void send_debug_sig (UWORD8 debug_code, UWORD8 task); 404 void send_debug_sig (UWORD8 debug_code, UWORD8 task);
507 void l1_trace_cpu_load (UWORD8 cpu_load); 405 void l1_trace_cpu_load (UWORD8 cpu_load);
406 void l1_trace_ratscch(UWORD16 fn, UWORD16 amr_change_bitmap);
508 407
509 #if (TRACE_TYPE==7) // CPU_LOAD 408 #if (TRACE_TYPE==7) // CPU_LOAD
510 void l1_cpu_load_start (void); 409 void l1_cpu_load_start (void);
511 void l1_cpu_load_stop (void); 410 void l1_cpu_load_stop (void);
512 void l1_cpu_load_init (void); 411 void l1_cpu_load_init (void);
514 #endif 413 #endif
515 414
516 /***************************************/ 415 /***************************************/
517 /* Prototypes of HW_DEBUG.c functions */ 416 /* Prototypes of HW_DEBUG.c functions */
518 /***************************************/ 417 /***************************************/
418 void get_usart_characters (void); // HISR for Rx characters
519 void wait_for_next_message (CHAR *); 419 void wait_for_next_message (CHAR *);
520 420
521 /***************************************/ 421 /***************************************/
522 /* Prototypes of L1_DEBUG.c functions */ 422 /* Prototypes of L1_DEBUG.c functions */
523 /***************************************/ 423 /***************************************/
533 void trace_ULPD (CHAR *text, UWORD32 frame_number); 433 void trace_ULPD (CHAR *text, UWORD32 frame_number);
534 void log_fct (CHAR *fct_name, UWORD32 radio_freq); 434 void log_fct (CHAR *fct_name, UWORD32 radio_freq);
535 void trace_msg (CHAR *msg_name, CHAR *queue_name); 435 void trace_msg (CHAR *msg_name, CHAR *queue_name);
536 void log_msg (CHAR *msg_name, CHAR *queue_name); 436 void log_msg (CHAR *msg_name, CHAR *queue_name);
537 void trace_dedic (void); 437 void trace_dedic (void);
538 void trace_fct_simu (CHAR *fct_name, UWORD32 radio_freq); 438 void trace_fct_simu (CHAR *fct_name, WORD32 radio_freq);
539 void trace_flowchart_msg (CHAR *msg_name, CHAR *dest_queue_name); 439 void trace_flowchart_msg (CHAR *msg_name, CHAR *dest_queue_name);
540 void trace_flowchart_l1tsk (UWORD32 bit_register, UWORD32 *src_register_set); 440 void trace_flowchart_l1tsk (UWORD32 bit_register, UWORD32 *src_register_set);
541 void trace_flowchart_dedic (WORD32 SignalCode); 441 void trace_flowchart_dedic (WORD32 SignalCode);
542 void trace_flowchart_tpu (CHAR *task_name); 442 void trace_flowchart_tpu (CHAR *task_name);
543 void trace_flowchart_dsp (CHAR *task_name); 443 void trace_flowchart_dsp (CHAR *task_name);
544 void trace_flowchart_dsp_tpu (CHAR *task_name); 444 void trace_flowchart_dsp_tpu (CHAR *task_name);
545 void trace_flowchart_dspres (CHAR *task_name); 445 void trace_flowchart_dspres (CHAR *task_name);
546 void trace_flowchart_dsptx (CHAR *task_name); 446 void trace_flowchart_dsptx (CHAR *task_name);
547 void trace_flowchart_header (void); 447 void trace_flowchart_header (void);
548 void trace_sim_freq_band_configuration (UWORD8 freq_band_config); 448 void trace_sim_freq_band_configuration (UWORD8 freq_band_config);
549 #if (TOA_ALGO == 2)
550 void trace_toa_sim_ctrl (UWORD16 SNR_val, UWORD16 TOA_val, UWORD32 l1_mode,
551 UWORD32 frames_counter, UWORD32 cumul_counter,WORD16 cumul);
552 void trace_toa_sim_update (WORD16 toa_shift, UWORD32 tpu_offset);
553 #endif
554 #if (L1_SAIC != 0)
555 void trace_saic_sim (UWORD32 Il_for_rxlev, UWORD32 l1_mode, UWORD32 SWH_flag);
556 #endif
557 449
558 /**************************************/ 450 /**************************************/
559 /* prototypes of control functions */ 451 /* prototypes of control functions */
560 /**************************************/ 452 /**************************************/
561 #if (VCXO_ALGO == 0) 453 #if (VCXO_ALGO == 0)
570 WORD16 angle, 462 WORD16 angle,
571 WORD32 snr, 463 WORD32 snr,
572 UWORD16 radio_freq, 464 UWORD16 radio_freq,
573 UWORD32 l1_mode); 465 UWORD32 l1_mode);
574 #endif 466 #endif
575
576 #if (TOA_ALGO == 2)
577 WORD16 l1ctl_toa (UWORD8 phase,
578 UWORD32 l1_mode,
579 UWORD16 SNR_val,
580 UWORD16 TOA_val);
581 #else
582 WORD16 l1ctl_toa (UWORD8 phase, 467 WORD16 l1ctl_toa (UWORD8 phase,
583 UWORD32 l1_mode, 468 UWORD32 l1_mode,
584 UWORD16 SNR_val, 469 UWORD16 SNR_val,
585 UWORD16 TOA_val, 470 UWORD16 TOA_val,
586 BOOL *toa_update, 471 BOOL *toa_update,
587 UWORD16 *toa_period_count 472 UWORD16 *toa_period_count);
588 #if (FF_L1_FAST_DECODING == 1)
589 ,UWORD8 skipped_values
590 #endif /* FF_L1_FAST_DECODING */
591 );
592 #endif
593
594 // SAIC Control Function
595 #if (L1_SAIC != 0)
596 UWORD8 l1ctl_saic (UWORD8 IL_for_rxlev,
597 UWORD32 l1_mode
598 #if (NEW_SNR_THRESHOLD == 1)
599 ,UWORD8 task,
600 UWORD8 * saic_flag
601 #endif /* NEW_SNR_THRESHOLD*/
602 );
603 #endif
604
605 UWORD8 l1ctl_txpwr (UWORD8 target_txpwr, 473 UWORD8 l1ctl_txpwr (UWORD8 target_txpwr,
606 UWORD8 current_txpwr); 474 UWORD8 current_txpwr);
607 475
608 // Utility for agc control algorithms 476 // Utility for agc control algorithms
609 477
610 void l1ctl_encode_lna (UWORD8 input_level, 478 void l1ctl_encode_lna (UWORD8 input_level,
611 UWORD8 * lna_state, 479 UWORD8 * lna_state,
612 UWORD16 radio_freq); 480 UWORD16 radio_freq);
613 UWORD8 l1ctl_find_max (UWORD8 *buff, 481 UWORD8 l1ctl_find_max (UWORD8 *buff,
614 UWORD8 buffer_len); 482 UWORD8 buffer_len);
615
616 // Automatic Gain Control Algorithms 483 // Automatic Gain Control Algorithms
617 void l1ctl_pgc2 (UWORD8 pm_high_agc, 484 void l1ctl_pgc2 (UWORD8 pm_high_agc,
618 UWORD8 pm_low_agc, 485 UWORD8 pm_low_agc,
619 UWORD16 radio_freq); 486 UWORD16 radio_freq);
620 UWORD8 l1ctl_csgc (UWORD8 pm, 487 UWORD8 l1ctl_csgc (UWORD8 pm,
639 T_INPUT_LEVEL *traffic_meas_ptr); 506 T_INPUT_LEVEL *traffic_meas_ptr);
640 #endif 507 #endif
641 508
642 UWORD16 l1ctl_get_g_magic (UWORD16 radio_freq); 509 UWORD16 l1ctl_get_g_magic (UWORD16 radio_freq);
643 UWORD16 l1ctl_get_lna_att (UWORD16 radio_freq); 510 UWORD16 l1ctl_get_lna_att (UWORD16 radio_freq);
644 UWORD16 l1ctl_update_TPU_with_toa(void); 511 void l1ctl_update_TPU_with_toa(void);
645
646 #if (FF_L1_FAST_DECODING == 1)
647 void l1ctl_pagc_missing_bursts (UWORD8 skipped_values);
648 #endif
649 512
650 //functions for customization 513 //functions for customization
651 void Cust_init_std (void); 514 void Cust_init_std (void);
652 void Cust_init_params (void); 515 void Cust_init_params (void);
653 WORD8 Cust_get_agc_from_IL (UWORD16 radio_freq, UWORD16 agc_index, UWORD8 table_id,UWORD8 lna_off_val); 516 WORD8 Cust_get_agc_from_IL (UWORD16 radio_freq, UWORD16 agc_index, UWORD8 table_id);
654 WORD8 l1ctl_encode_delta1 (UWORD16 radio_freq); 517 WORD8 l1ctl_encode_delta1 (UWORD16 radio_freq);
655 WORD8 l1ctl_encode_delta2 (UWORD16 radio_freq); 518 WORD8 l1ctl_encode_delta2 (UWORD16 radio_freq);
656 void Cust_get_ramp_tab (API *a_ramp, UWORD8 txpwr_ramp_up, UWORD8 txpwr_ramp_down, UWORD16 radio_freq); 519 void Cust_get_ramp_tab (API *a_ramp, UWORD8 txpwr_ramp_up, UWORD8 txpwr_ramp_down, UWORD16 radio_freq);
657 #if ((ANALOG == 1) || (ANALOG == 2) || (ANALOG == 3) || (RF_FAM == 61)) 520 #if ((ANALOG == 1) || (ANALOG == 2) || (ANALOG == 3))
658 UWORD16 Cust_get_pwr_data(UWORD8 txpwr, UWORD16 radio_freq 521 UWORD16 Cust_get_pwr_data(UWORD8 txpwr, UWORD16 radio_freq);
659 #if(REL99 && FF_PRF) 522 #endif
660 ,UWORD8 number_uplink_timeslot 523
661 #endif 524
662 ); 525
663 #endif
664
665 #if (RF_FAM == 61)
666 void l1_drp_wrapper_init (void);
667 void l1_drp_init (void);
668 void l1dapc_init_ramp_tables(void );
669 void cust_get_if_dco_ctl_algo (UWORD16* dco_algo_ctl, UWORD8* if_ctl,
670 UWORD8 input_level_flag, UWORD8 input_level, UWORD16 radio_freq, UWORD8 if_threshold);
671 #endif
672
673 void l1s_restore_synchro(void);
674
675 #if (FF_L1_FAST_DECODING == 1)
676 BOOL l1s_check_deferred_control(UWORD8 task, UWORD8 burst_id);
677 BOOL l1s_check_fast_decoding_authorized(UWORD8 task);
678 #endif /* FF_L1_FAST_DECODING */
679
680 #if (DRP_FW_EXT == 1)
681 void l1_get_boot_result_and_version(T_L1_BOOT_VERSION_CODE * p_version);
682 #endif /* DRP_FW_EXT */
683
684 /*-----------------------------------------------------------------*/
685 /* Prototypes of MULTIBAND related functions */
686 /*-----------------------------------------------------------------*/
687 #if (L1_FF_MULTIBAND == 1)
688 #if 0
689 UWORD16 l1_multiband_radio_freq_convert_into_operative_radio_freq(UWORD16 radio_freq);
690 UWORD8 l1_multiband_radio_freq_convert_into_physical_band_id(UWORD16 radio_freq);
691 UWORD8 l1_multiband_radio_freq_convert_into_effective_band_id(UWORD16 radio_freq);
692 void l1_multiband_fill_power_meas_array(UWORD16 power_array_size, T_FULL_LIST_MEAS *full_list);
693 UWORD8 l1_multiband_map_radio_freq_into_tpu_table(UWORD16 radio_freq);
694 void l1_multiband_increment_effective_band_id(UWORD8 *effective_band_id);
695 void l1_multiband_trace_params(UWORD8 multiband_table_id, UWORD8 multiband_trace_id) ;
696 void l1_multiband_tpu_get_power_classes(T_L1_MULTIBAND_POWER_CLASS multiband_power_class[]);
697 void l1_multiband_error_handler(UWORD16 radio_freq);
698 #endif // if 0
699
700 #endif /*if(L1_FF_MULTIBAND == 1)*/
701
702