annotate target-utils/calversion/dsp_bringup.c @ 441:1dcc9e4b71fd

target-utils/calversion: program written, compiles
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 26 Dec 2018 06:40:02 +0000
parents
children ca98f800bbf3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This module contains the dsp_power_on() function from TCS211,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * stripped and adapted for the present DSP version determination
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * standalone program.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include "types.h"
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include "leadapi.h"
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include "dsp_const.h"
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include "dsp_defty.h"
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 /* definitions originally in l1_types.h */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 typedef unsigned char BOOL;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 typedef char CHAR;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 typedef unsigned char UWORD8;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 typedef signed char WORD8;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 typedef unsigned short UWORD16;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 typedef short WORD16;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 typedef unsigned long UWORD32;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 typedef long WORD32;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 /* definitions originally in l1_confg.h */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 #define DSP_START 0x7000
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 #define INSTALL_ADD 0x7002 // Used to set gprs_install_address pointer
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 #define C_PLL_CONFIG 0x154 // For VTCXO = 13 MHz and max DSP speed = 84.5 Mips
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 #define C_DSP_SW_WORK_AROUND 0x000E
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 #define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 #define C_DEBUG_BUFFER_SIZE 7 // Real size is incremented by 1 for DSP write pointer.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 #define C_DEBUG_TRACE_TYPE 0x0000 // Level = BASIC; Features = Timer + Buffer Header + Burst.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 /* DSP reset control register definitions */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 #define MEM_CLKM_ADDR 0xfffffd00 /* CLKM registers addr. */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 #define CLKM_CNTL_RST (MEM_CLKM_ADDR + 4) /* CLKM Reset Control reg. */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 #define CLKM_LEAD_RST 0x0002
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 #define CLKM_EXT_RST 0x0004
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 /*-------------------------------------------------------*/
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 /* dsp_power_on() */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 /*-------------------------------------------------------*/
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 /* Parameters : */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 /* Return : */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 /* Functionality : */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 /* Remarq : USART Buffer is 256 characters. While USART*/
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 /* is not run during Application_Initialize */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 /* (hisrs not served because Nucleus scheduler*/
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 /* is not running yet) : */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 /* ==> check string size < 256 !!!!!! */
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 /*-------------------------------------------------------*/
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 void dsp_power_on(void)
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 {
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 UWORD16 dsp_start_address;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 UWORD16 param_size;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 API i;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 volatile API *pt;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 WORD16 j;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 volatile T_NDB_MCU_DSP * dsp_ndb_ptr;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 static API_SIGNED param_tab[] = {
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 D_TRANSFER_RATE,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 // ..................Latencies
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 D_LAT_MCU_BRIDGE, D_LAT_MCU_HOM2SAM,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 D_LAT_MCU_BEF_FAST_ACCESS, D_LAT_DSP_AFTER_SAM,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 //...................p_gprs_install_adress
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 D_HOLE,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 //...................d_misc_config
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 D_MISC_CONFIG,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 //...................d_cn_sw_workaround
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 C_DSP_SW_WORK_AROUND,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 //...................Reserved
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 D_HOLE, D_HOLE,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 D_HOLE, D_HOLE,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 //...................Frequency burst
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 D_FB_MARGIN_BEG, D_FB_MARGIN_END,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 D_NSUBB_IDLE, D_NSUBB_DEDIC, D_FB_THR_DET_IACQ,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 D_FB_THR_DET_TRACK,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 //...................Demodulation
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 D_DC_OFF_THRES, D_DUMMY_THRES, D_DEM_POND_GEWL,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 D_DEM_POND_RED,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 //...................TCH Full Speech
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 D_MACCTHRESH1, D_MLDT, D_MACCTHRESH,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 D_GU, D_GO, D_ATTMAX,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 D_SM, D_B,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 //...................V42 bis
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 D_V42B_SWITCH_HYST, D_V42B_SWITCH_MIN, D_V42B_SWITCH_MAX,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 D_V42B_RESET_DELAY,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 //...................TCH Half Speech
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 D_LDT_HR, D_MACCTRESH_HR, D_MACCTRESH1_HR,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 D_GU_HR, D_GO_HR, D_B_HR,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 D_SM_HR, D_ATTMAX_HR,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 //...................Added variables for EFR
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 C_MLDT_EFR, C_MACCTHRESH_EFR, C_MACCTHRESH1_EFR,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 C_GU_EFR, C_GO_EFR, C_B_EFR,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 C_SM_EFR, C_ATTMAX_EFR,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 //...................Full rate variables
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 D_SD_MIN_THR_TCHFS,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 D_MA_MIN_THR_TCHFS, D_MD_MAX_THR_TCHFS, D_MD1_MAX_THR_TCHFS,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 //...................TCH Half Speech
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 D_SD_MIN_THR_TCHHS, D_MA_MIN_THR_TCHHS, D_SD_AV_THR_TCHHS,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 D_MD_MAX_THR_TCHHS, D_MD1_MAX_THR_TCHHS,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 //...................TCH Enhanced Full Rate Speech
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 D_SD_MIN_THR_TCHEFS, D_MA_MIN_THR_TCHEFS, D_MD_MAX_THR_TCHEFS,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 D_MD1_MAX_THR_TCHEFS, D_WED_FIL_INI,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 D_WED_FIL_TC, D_X_MIN, D_X_MAX,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 D_SLOPE, D_Y_MIN, D_Y_MAX,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 D_WED_DIFF_THRESHOLD,D_MABFI_MIN_THR_TCHHS,D_FACCH_THR,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 D_MAX_OVSPD_UL, D_SYNC_THRES, D_IDLE_THRES,
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 D_M1_THRES, D_MAX_OVSP_DL, D_GSM_BGD_MGT
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 };
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 param_size = 79;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 // NDB pointer.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 dsp_ndb_ptr = (volatile T_NDB_MCU_DSP *) NDB_ADR;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 //-------------
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 // DSP STARTUP
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 //-------------
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 {
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 // Release Lead reset before DSP code/patch download to insure proper reset of DSP
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 printf("Releasing DSP core from reset\n");
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 (*(unsigned short *) CLKM_CNTL_RST) &= ~CLKM_LEAD_RST;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 // GSM 1.5
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 //-----------------------------------------------------------------
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 // After RESET release, DSP is in SAM Mode ! while API_CNTR (0xF900)
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 // register is in reset state: HOM mode, PLL off, Bridge off. No ws
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 // are applied for MCU<-->API access !!!!! So, MCU must wait for
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 // end of Leadboot execution before accessing API.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 //wait_ARM_cycles(convert_nanosec_to_cycles(10000)); // wait 10us
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 osmo_delay_ms(10);
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 // NO DOWNLOAD...
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 {
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 // Wait for READY status from DSP.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 printf("Waiting for DSP bootloader READY status\n");
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 while(*((volatile UWORD16 *)DOWNLOAD_STATUS) != LEAD_READY);
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 // Set DSP start address.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 dsp_start_address = DSP_START;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 }
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 }
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 //--------------------------------------------------------------
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 // Loading of NDB parameters.......
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 //--------------------------------------------------------------
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 printf("Loading NDB parameters\n");
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 // Initialize background control variable to No background. Background tasks can be launch in GPRS
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 // as in GSM.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 dsp_ndb_ptr->d_background_enable = 0;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 dsp_ndb_ptr->d_background_abort = 0;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 dsp_ndb_ptr->d_background_state = 0;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 dsp_ndb_ptr->d_debug_ptr = 0x0074;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 dsp_ndb_ptr->d_debug_bk = 0x0001;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 dsp_ndb_ptr->d_pll_config = C_PLL_CONFIG;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 dsp_ndb_ptr->p_debug_buffer = C_DEBUG_BUFFER_ADD;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 dsp_ndb_ptr->d_debug_buffer_size = C_DEBUG_BUFFER_SIZE;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 dsp_ndb_ptr->d_debug_trace_type = C_DEBUG_TRACE_TYPE;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 // Deep Sleep work around used on Calypso
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 // This init is used to backward compatibility with old patch.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 dsp_ndb_ptr->d_dsp_state = C_DSP_IDLE3;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 dsp_ndb_ptr->d_audio_gain_ul = 0;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191 dsp_ndb_ptr->d_audio_gain_dl = 0;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 // for patch >= 2100, use new AEC
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194 dsp_ndb_ptr->d_es_level_api = 0x5213;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195 dsp_ndb_ptr->d_mu_api = 0x5000;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 //--------------------------------------------------------------
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 // Loading of PARAM area.......
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 //--------------------------------------------------------------
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 printf("Loading PARAM area\n");
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 // Load PARAM memory...
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 pt = (volatile API *) PARAM_ADR;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 for (i=0; i<param_size; i++) *pt++ = param_tab[i];
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 {
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 T_PARAM_MCU_DSP *pt_param = (T_PARAM_MCU_DSP *) PARAM_ADR;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 // "d_gprs_install_address" has to be set only if no PATCH is download, i.e.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 // "d_gprs_install_address" is automatically set by DSP if a PATCH is download
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 pt_param->d_gprs_install_address = INSTALL_ADD;
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 }
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214 printf("Booting DSP main code\n");
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215 *(volatile UWORD16 *) DOWNLOAD_SIZE = 0; // Size=0 to force DSP to start from address...
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 *(volatile UWORD16 *) DOWNLOAD_ADDR = dsp_start_address; // Start address.
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 *(volatile UWORD16 *) DOWNLOAD_STATUS = BLOCK_READY; // Start DSP...
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 osmo_delay_ms(50);
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 printf("DSP reports version 0x%04X 0x%04X\n",
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 dsp_ndb_ptr->d_version_number1, dsp_ndb_ptr->d_version_number2);
1dcc9e4b71fd target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222 }