FreeCalypso > hg > freecalypso-tools
annotate target-utils/calversion/dsp_bringup.c @ 921:74d284add54d
fc-fsio: guard against bogus readdir results from the target
If the FFS being operated on contains SE K2x0 extended filenames,
readdir will return strings that are bad for printing. We need to
guard against this possibility, and also against possible other
bogosity that could be sent by other alien firmwares.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 31 Dec 2022 22:55:23 +0000 |
parents | ca98f800bbf3 |
children |
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. |
498
ca98f800bbf3
calversion utility: removed osmo_delay_ms()
Mychaela Falconia <falcon@freecalypso.org>
parents:
441
diff
changeset
|
156 /* |
ca98f800bbf3
calversion utility: removed osmo_delay_ms()
Mychaela Falconia <falcon@freecalypso.org>
parents:
441
diff
changeset
|
157 * TI's firmware code waits 10 us, but we'll give it a more generous |
ca98f800bbf3
calversion utility: removed osmo_delay_ms()
Mychaela Falconia <falcon@freecalypso.org>
parents:
441
diff
changeset
|
158 * 1 ms because our clocking setup is a little different, coming from |
ca98f800bbf3
calversion utility: removed osmo_delay_ms()
Mychaela Falconia <falcon@freecalypso.org>
parents:
441
diff
changeset
|
159 * the boot ROM: on platforms with 13 MHz CLKTCXO the DSP will run |
ca98f800bbf3
calversion utility: removed osmo_delay_ms()
Mychaela Falconia <falcon@freecalypso.org>
parents:
441
diff
changeset
|
160 * at the same frequency as the ARM, rather than the typical double. |
ca98f800bbf3
calversion utility: removed osmo_delay_ms()
Mychaela Falconia <falcon@freecalypso.org>
parents:
441
diff
changeset
|
161 */ |
ca98f800bbf3
calversion utility: removed osmo_delay_ms()
Mychaela Falconia <falcon@freecalypso.org>
parents:
441
diff
changeset
|
162 wait_ARM_cycles(13000); |
441
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 // NO DOWNLOAD... |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 { |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 // Wait for READY status from DSP. |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 printf("Waiting for DSP bootloader READY status\n"); |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 while(*((volatile UWORD16 *)DOWNLOAD_STATUS) != LEAD_READY); |
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 // Set DSP start address. |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 dsp_start_address = DSP_START; |
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 } |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 //-------------------------------------------------------------- |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 // Loading of NDB parameters....... |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 //-------------------------------------------------------------- |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 printf("Loading NDB parameters\n"); |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 // 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
|
180 // as in GSM. |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 dsp_ndb_ptr->d_background_enable = 0; |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 dsp_ndb_ptr->d_background_abort = 0; |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 dsp_ndb_ptr->d_background_state = 0; |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 dsp_ndb_ptr->d_debug_ptr = 0x0074; |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 dsp_ndb_ptr->d_debug_bk = 0x0001; |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 dsp_ndb_ptr->d_pll_config = C_PLL_CONFIG; |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 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
|
188 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
|
189 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
|
190 |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 // Deep Sleep work around used on Calypso |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 // 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
|
193 dsp_ndb_ptr->d_dsp_state = C_DSP_IDLE3; |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 dsp_ndb_ptr->d_audio_gain_ul = 0; |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 dsp_ndb_ptr->d_audio_gain_dl = 0; |
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 // for patch >= 2100, use new AEC |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 dsp_ndb_ptr->d_es_level_api = 0x5213; |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 dsp_ndb_ptr->d_mu_api = 0x5000; |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 //-------------------------------------------------------------- |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 // Loading of PARAM area....... |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 //-------------------------------------------------------------- |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 printf("Loading PARAM area\n"); |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 // Load PARAM memory... |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 pt = (volatile API *) 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 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
|
210 |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 { |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 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
|
213 |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 // "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
|
215 // "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
|
216 pt_param->d_gprs_install_address = INSTALL_ADD; |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 } |
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 printf("Booting DSP main code\n"); |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 *(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
|
221 *(volatile UWORD16 *) DOWNLOAD_ADDR = dsp_start_address; // Start address. |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 *(volatile UWORD16 *) DOWNLOAD_STATUS = BLOCK_READY; // Start DSP... |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 |
498
ca98f800bbf3
calversion utility: removed osmo_delay_ms()
Mychaela Falconia <falcon@freecalypso.org>
parents:
441
diff
changeset
|
224 /* give it a very generous 50 ms wait */ |
ca98f800bbf3
calversion utility: removed osmo_delay_ms()
Mychaela Falconia <falcon@freecalypso.org>
parents:
441
diff
changeset
|
225 wait_ARM_cycles(13000 * 50); |
441
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 printf("DSP reports version 0x%04X 0x%04X\n", |
1dcc9e4b71fd
target-utils/calversion: program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 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
|
228 } |