blob: 233301e6319284704ac093876b84ca5a5726cecf [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*******************************************************************************
37 *
38 * Filename:
39 * ---------
40 * ddload.h
41 *
42 * Project:
43 * --------
44 * MAUI
45 *
46 * Description:
47 * ------------
48 * Dynamic Download for DSP(MT6218 and later)
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 *------------------------------------------------------------------------------
55 * removed!
56 * removed!
57 * removed!
58 *
59 * removed!
60 * removed!
61 * removed!
62 *
63 * removed!
64 * removed!
65 * removed!
66 *
67 * removed!
68 * removed!
69 * removed!
70 *
71 * removed!
72 * removed!
73 * removed!
74 *
75 * removed!
76 * removed!
77 * removed!
78 *
79 * removed!
80 * removed!
81 * removed!
82 *
83 * removed!
84 * removed!
85 * removed!
86 *
87 * removed!
88 * removed!
89 * removed!
90 *
91 * removed!
92 * removed!
93 * removed!
94 *
95 * removed!
96 * removed!
97 * removed!
98 *
99 * removed!
100 * removed!
101 * removed!
102 *
103 * removed!
104 * removed!
105 * removed!
106 *
107 * removed!
108 * removed!
109 * removed!
110 *
111 * removed!
112 * removed!
113 * removed!
114 *
115 * removed!
116 * removed!
117 * removed!
118 *
119 * removed!
120 * removed!
121 * removed!
122 *
123 * removed!
124 * removed!
125 * removed!
126 *
127 * removed!
128 * removed!
129 * removed!
130 * removed!
131 * removed!
132 * removed!
133 * removed!
134 * removed!
135 * removed!
136 * removed!
137 * removed!
138 * removed!
139 * removed!
140 * removed!
141 * removed!
142 *
143 * removed!
144 * removed!
145 * removed!
146 *
147 * removed!
148 * removed!
149 * removed!
150 *
151 * removed!
152 *******************************************************************************/
153#ifndef _DDLOAD_H_
154#define _DDLOAD_H_
155
156typedef struct{
157 int Dsp_Start_Addr;
158 const char *Array_Addr;
159 int Array_Len;
160}DLL_Func;
161
162typedef struct{
163 const DLL_Func *dspFunc;
164 const char *Compressed_Array_Addr;
165 int Compressed_Array_Len;
166}DLL_FuncCompress;
167
168typedef struct{
169 DLL_Func dll;
170 unsigned char isAlloc;
171}DLL_FuncGen;
172
173
174/* ------------------------------------------------------------------------- */
175
176#define CM_PAGE 4
177
178#if (DPCHIP_DATACARD_DSP)
179 #define CM_PAGE_TCH_DDL 8
180 #define CM_PAGE_TCH2_DDL 8
181#endif
182
183/* ------------------------------------------------------------------------- */
184#define DDID_NONE 0
185#if (SPH_ENH_DDLOAD_TWO_PARTS) || (SPH_ENH_DDLOAD_THREE_PARTS)
186 #define DDID_TCH_COMMON 7
187#else
188 #define DDID_NOISE_REDUCTION 7
189#endif
190#define DDID_AudioHeader 24
191#define DDID_Internal_TCH2 254
192#define DDID_Internal_Header_Kernal 255
193#define DDID_SPH_TCH_1 6001 // For SPH ENH seperate into two parts
194#define DDID_SPH_TCH_2 6002 // For SPH ENH seperate into two parts
195#define DDID_SPH_TCH_3 6003 // For SPH ENH seperate into three parts
196
197/* ------------------------------------------------------------------------- */
198
199
200/* ----------------------------Speech Scheduler----------------------------- */
201
202//CM Page
203#define DDL_CM_PAGE_SPH_SCH 6
204
205//DDID
206#define DDID_SPH_SCH 21
207
208//DDID_INTERNAL for code table mapping
209#define DDID_INTERNAL_SPH_SCH 2010
210
211/* ------------------------------------------------------------------------- */
212
213
214void _idma_load_pm_d2(unsigned short int page, unsigned short int addr, unsigned int len, const unsigned char *image);
215void FreeFuncPtr(DLL_FuncGen *dllGenPtr);
216int GetPmDllFuncPtr(unsigned int fw_id, DLL_FuncGen *dllResult);
217
218void DSP_DynamicDownload_Init( void );
219int DSP_DynamicDownload( int dsp_fw_id );
220
221/* ------------------------------------------------------------------------- */
222
223#endif /*_DDLOAD_H_ */
224
225