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
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.
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 }