xref: /utopia/UTPA2-700.0.x/mxlib/include/drvMIU.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise:
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2006-2007 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // (¡§MStar Confidential Information¡¨) by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94 
95 //////////////////////////////////////////////////////////////////////////////////////////////////
96 ///
97 /// @file   drvMIU.h
98 /// @brief  MIU Driver Interface
99 /// @author MStar Semiconductor Inc.
100 ///////////////////////////////////////////////////////////////////////////////////////////////////
101 
102 /*! \defgroup G_MIU MIU interface
103     \ingroup  G_PERIPHERAL
104 
105     \brief
106     MIU is an IP used to manage DRAM, and it supports DRAM Protection, IP Selection, and IP Mask.
107 
108     <b>Features</b>
109 
110     - MIU Protect: Enable/Disable IPs to read/write a specific memory range.
111     - IP Select: To change IPs used in MIU0/MIU1
112     - IP Mask: To disable IPs using DRAM.
113 
114     <b> MIU Block Diagram: </b> \n
115     \image html drvMIU_pic1.png
116 
117      \defgroup G_MIU_INIT Initialization Task relative
118      \ingroup  G_MIU
119      \defgroup G_MIU_COMMON Common Task relative
120      \ingroup  G_MIU
121      \defgroup G_MIU_CONTROL Control relative
122      \ingroup  G_MIU
123      \defgroup G_MIU_PROTECT Protect Task relative
124      \ingroup  G_MIU
125      \defgroup G_MIU_ToBeModified MIU api to be modified
126      \ingroup  G_MIU
127      \defgroup G_MIU_ToBeRemove MIU api to be removed
128      \ingroup  G_MIU
129 */
130 
131 #ifndef _DRV_MIU_H_
132 #define _DRV_MIU_H_
133 
134 #ifdef __cplusplus
135 extern "C"
136 {
137 #endif
138 
139 #include "MsTypes.h"
140 #include "MsDevice.h"
141 #include "UFO.h"
142 
143 //-------------------------------------------------------------------------------------------------
144 // Defines
145 //-------------------------------------------------------------------------------------------------
146 #ifdef STELLAR
147 #define _MIU_INTERNEL_USE 1
148 #endif
149 //-------------------------------------------------------------------------------------------------
150 // Macros
151 //-------------------------------------------------------------------------------------------------
152 #define MIU_DRV_VERSION                 /* Character String for DRV/API version             */  \
153     MSIF_TAG,                           /* 'MSIF'                                           */  \
154     MSIF_CLASS,                         /* '00'                                             */  \
155     MSIF_CUS,                           /* 0x0000                                           */  \
156     MSIF_MOD,                           /* 0x0000                                           */  \
157     MSIF_CHIP,                                                                                  \
158     MSIF_CPU,                                                                                   \
159     {'M','I','U','_'},                  /* IP__                                             */  \
160     {'0','1'},                          /* 0.0 ~ Z.Z                                        */  \
161     {'0','2'},                          /* 00 ~ 99                                          */  \
162     {'0','0','2','6','4','8','8','5'},  /* CL#                                              */  \
163     MSIF_OS
164 
165 #define MIU_CLIENT_MAX  0x30
166 
167 
168 #define bit_check(x,bit_pos)  ((x & bit_pos) != 0) ? TRUE : FALSE
169 
170 
171 #define set_req_mask_info(reg_addr,base_addr,bEnable,id_pos)  \
172     MST_MACRO_START                                                     \
173     reg_addr = base_addr;                                               \
174     reg_addr = reg_addr + (MS_U16)((id_pos >> 4) * 0x20);                  \
175     if(reg_addr == 0x1286)                                              \
176         reg_addr = 0x06F6;                                              \
177     else if(reg_addr == 0x0686)                                         \
178         reg_addr = 0x0628;                                              \
179     reg_addr = reg_addr + (MS_U16)(bit_check(id_pos,BIT3));                \
180     HAL_MIU_WriteRegBit(reg_addr, bEnable , (1 << (id_pos & (BIT2|BIT1|BIT0)))); \
181     MST_MACRO_END
182 
183 #ifdef ALIGN
184 #undef ALIGN
185 #define ALIGN(_val_,_shift_) (((_val_) >> _shift_) << _shift_)
186 #else
187 #define ALIGN(_val_,_shift_) (((_val_) >> _shift_) << _shift_)
188 #endif
189 
190 //#define _MIU_INTERNEL_USE         //for internel test only
191 #define _ALIGN(_val_,_shift_) (((_val_) >> _shift_) << _shift_)
192 
193 //-------------------------------------------------------------------------------------------------
194 // Type and Structure Declaration
195 //-------------------------------------------------------------------------------------------------
196 typedef enum
197 {
198     CLIENT_TSPIWB,          // orz
199     CLIENT_STRLD,
200     CLIENT_HK51_ICACHE,    // MAU0
201     CLIENT_AEON_I,          // MAU0
202     CLIENT_FLH_W,           // MAU1
203     CLIENT_HK51_XDATA,     // MAU1
204     CLIENT_AEON,            // MAU1
205     CLIENT_OD_LSB,
206     CLIENT_GOP2,
207     CLIENT_VE,
208     CLIENT_FDSEICH,
209     CLIENT_TSP,
210     CLIENT_TTXSK,
211     CLIENT_SVD_DB,
212     CLIENT_FDDECICH,
213     CLIENT_OPM,
214     CLIENT_DC,
215     CLIENT_GOP,
216     CLIENT_GOP0,
217     CLIENT_GOP1,
218     CLIENT_DNRB,    // DNR
219     CLIENT_COMB,
220     CLIENT_OD,
221     CLIENT_MADDMA2,   // DMA2
222     CLIENT_MAD,
223     CLIENT_SVD_EN,
224     CLIENT_GE,
225     CLIENT_BDMA,   // MIU_DMA
226     CLIENT_NFC,
227     CLIENT_USBP1,  // USB20 ??
228     CLIENT_USBP2,  //USB20_1 ??
229     CLIENT_RVD,
230     CLIENT_SVDINTP,
231     CLIENT_MVD,
232     CLIENT_AESDMA,
233     CLIENT_TTX,
234     CLIENT_JPD,
235     CLIENT_EMAC,
236     CLIENT_MAX
237 } euMIUClientIDTYPE;
238 
239 typedef struct
240 {
241     MS_U8 miu;
242     MS_U8 protect_id;
243 } stMIUClientID_t;
244 
245 typedef enum
246 {
247     MIU_CLIENT_NONE,    //none can access
248     MIU_CLIENT_DUMMY,
249     MIU_CLIENT_ADCDVIPLL_W,
250     MIU_CLIENT_AESDMA_RW,
251     MIU_CLIENT_AU_R2_RW,
252     MIU_CLIENT_BDMA_RW,
253     MIU_CLIENT_DC_R,                //same as MIU_CLIENT_MVOP_64BIT_R
254     MIU_CLIENT_DISP_IPATH_DI_W,
255     MIU_CLIENT_DISP_IPATH_MR_RW,
256     MIU_CLIENT_DISP_IPATH_NR_RW,
257     MIU_CLIENT_DMA2_RW,
258     MIU_CLIENT_DNRA_RW,
259     MIU_CLIENT_DSCRMB_RW,
260     MIU_CLIENT_DVBC_ADC_RW,
261     MIU_CLIENT_EMAC_RW,
262     MIU_CLIENT_FCIE_RW,
263     MIU_CLIENT_FDDECICH_R,
264     MIU_CLIENT_FDSEICH_R,
265     MIU_CLIENT_G3D_RW,
266     MIU_CLIENT_GE_RW,
267     MIU_CLIENT_GOP_W,
268     MIU_CLIENT_GOP0_R,
269     MIU_CLIENT_GOP1_R,
270     MIU_CLIENT_GOP2_R,
271     MIU_CLIENT_GOP3_R,
272     MIU_CLIENT_HISPEED_UART_RW,
273     MIU_CLIENT_HVD_RW,
274     MIU_CLIENT_HVD_BBU_R,
275     MIU_CLIENT_JPD_RW,
276     MIU_CLIENT_M4VE_ME_R,
277     MIU_CLIENT_M4VE0_RW,
278     MIU_CLIENT_M4VE2_RW,
279     MIU_CLIENT_MAU_RW,
280     MIU_CLIENT_MAU0_W,
281     MIU_CLIENT_MAU1_R,
282     MIU_CLIENT_MFE0_W,
283     MIU_CLIENT_MFE1_R,
284     MIU_CLIENT_MHEG5_DCACHE_RW,
285     MIU_CLIENT_MHEG5_ICACHE_R,
286     MIU_CLIENT_MHEG5_ICACHE_RW,
287     MIU_CLIENT_MHEG5_GDMA_RW,
288     MIU_CLIENT_MIPS_R,
289     MIU_CLIENT_MIPS_W,
290     MIU_CLIENT_MIPS_RW,
291     MIU_CLIENT_MOBF_RW,
292     MIU_CLIENT_MPIF_RW,
293     MIU_CLIENT_MVD_RW,
294     MIU_CLIENT_MVD_BBU_RW,
295     MIU_CLIENT_MVOP_64BIT_R,
296     MIU_CLIENT_MVOP_128BIT_R,
297     MIU_CLIENT_NAND_RW,
298     MIU_CLIENT_OD_R,
299     MIU_CLIENT_OD_W,
300     MIU_CLIENT_OD_LSB_W,
301     MIU_CLIENT_OD_LSB_R,
302     MIU_CLIENT_OPW_W,
303     MIU_CLIENT_OTG_RW,
304     MIU_CLIENT_PM51_RW,
305     MIU_CLIENT_PVR_W,
306     MIU_CLIENT_PVR2_W,
307     MIU_CLIENT_R2M_R,
308     MIU_CLIENT_R2M_W,
309     MIU_CLIENT_RASP0_W,
310     MIU_CLIENT_RASP1_W,
311     MIU_CLIENT_RVD_BBU_R,
312     MIU_CLIENT_RVD_RW,
313     MIU_CLIENT_SC_DNR_R,
314     MIU_CLIENT_SC_DNR_W,
315     MIU_CLIENT_SC_IPMAIN_R,
316     MIU_CLIENT_SC_IPMAIN_W,
317     MIU_CLIENT_SC_IPSUB_R,
318     MIU_CLIENT_SC_IPSUB_W,
319     MIU_CLIENT_SC_OP_R,
320     MIU_CLIENT_SC_OPM_R,
321     MIU_CLIENT_SC_TNR_R,
322     MIU_CLIENT_SC_TNR_W,
323     MIU_CLIENT_STRLD_RW,
324     MIU_CLIENT_TSP_R,
325     MIU_CLIENT_TSP_W,
326     MIU_CLIENT_TSP_ORZ_R,
327     MIU_CLIENT_TSP_ORZ_W,
328     MIU_CLIENT_USB20_RW,
329     MIU_CLIENT_USB_UHC0_RW,
330     MIU_CLIENT_USB_UHC1_RW,
331     MIU_CLIENT_USB_UHC2_RW,
332     MIU_CLIENT_VD_COMB_R,
333     MIU_CLIENT_VD_COMB_W,
334     MIU_CLIENT_VD_TTX_RW,
335     MIU_CLIENT_VD_TTXSL_W,
336     MIU_CLIENT_VD_TTXSK_W,
337     MIU_CLIENT_VE_W,
338     MIU_CLIENT_VE_R,
339     MIU_CLIENT_VIF_ADC_W,
340     MIU_CLIENT_VIVALDI9_AUDMA_RW,
341     MIU_CLIENT_VIVALDI9_DECODER_R,
342     MIU_CLIENT_VIVALDI9_DMA_RW,
343     MIU_CLIENT_VIVALDI9_LNKLST_R,
344     MIU_CLIENT_VIVALDI9_MAD_RW,
345     MIU_CLIENT_VIVALDI9_SE_R,
346     MIU_CLIENT_MSP_ICACHE_RW,
347     MIU_CLIENT_DISP_IPATH_DI_RW,
348     MIU_CLIENT_MVOP1_R,
349     MIU_CLIENT_LDM_W,
350     MIU_CLIENT_LDM_R,
351     MIU_CLIENT_T3D_W,
352     MIU_CLIENT_T3D_R,
353     MIU_CLIENT_MIIC0_RW,
354     MIU_CLIENT_MIIC1_RW,
355     MIU_CLIENT_MIIC2_W,
356     MIU_CLIENT_MAXID,
357     MIU_CLIENT_SC_IPMAIN_RW,
358     MIU_CLIENT_SC_IPSUB_RW,
359     MIU_CLIENT_SC_OPMAIN_RW,
360     MIU_CLIENT_FRC_OSD_RW,
361     MIU_CLIENT_FRC_IP_R,
362     MIU_CLIENT_FRC_IP_W,
363     MIU_CLIENT_FRC_OD_R,
364     MIU_CLIENT_FRC_OD_W,
365     MIU_CLIENT_FRC_OPM_R,
366     MIU_CLIENT_FRC_R2_RW,
367     MIU_CLIENT_FRC_SC_RW,
368     MIU_CLIENT_SC_OP_W,
369     MIU_CLIENT_SECURE_R2_RW,
370     MIU_CLIENT_SC_2D3D_RW,
371     MIU_CLIENT_SC_OD_W,
372     MIU_CLIENT_SC_OD_R,
373     MIU_CLIENT_SC_LD_RW,
374     MIU_CLIENT_GPD_RW,
375     MIU_CLIENT_VP6_RW,
376     MIU_CLIENT_SDIO_RW,
377     MIU_CLIENT_G3D0_RW,
378     MIU_CLIENT_G3D1_RW,
379     MIU_CLIENT_SECEMAC_RW,
380     MIU_CLIENT_USB_UHC3_RW,
381     MIU_CLIENT_TSP_PVR0_W,
382     MIU_CLIENT_TSP_PVR1_W,
383     MIU_CLIENT_MAU0_RW,
384     MIU_CLIENT_MAU1_RW,
385     MIU_CLIENT_TSP_SEC_W,
386     MIU_CLIENT_OPM_R,
387     MIU_CLIENT_USB3_RW,
388     MIU_CLIENT_SC_DIPW_RW,
389     MIU_CLIENT_CMD_QUEUE_RW,
390     MIU_CLIENT_TSO_RW,
391     MIU_CLIENT_VE_2DMCDI_RW,
392     MIU_CLIENT_SC_IPSUB2_R,
393     MIU_CLIENT_SC_IPSUB2_W,
394     MIU_CLIENT_MIIC_DMA_RW,
395     MIU_CLIENT_UART_DMA_RW,
396     MIU_CLIENT_NJPD_RW,
397     MIU_CLIENT_XD2MIU_RW,
398     MIU_CLIENT_VD_R2D_RW,
399     MIU_CLIENT_VD_R2I_R,
400     MIU_CLIENT_TSP_ORZ_RW,
401     MIU_CLIENT_MVOP_SUB_R,
402     MIU_CLIENT_SC_DIPW_W,
403     MIU_CLIENT_T3D_RW,
404     MIU_CLIENT_BT_RW,
405     MIU_CLIENT_VE_VBI_R,
406     MIU_CLIENT_ARM_RW,
407     MIU_CLIENT_SC1_OP_R,
408     MIU_CLIENT_SC1_IPMAIN_RW,
409     MIU_CLIENT_GOP4_R,
410     MIU_CLIENT_GOP5_R,
411     MIU_CLIENT_GMAC_RW,
412     MIU_CLIENT_SATA_RW,
413     MIU_CLIENT_SC_LOCALDIMING_RW,
414     MIU_CLIENT_JPD720P_RW,
415     MIU_CLIENT_SC_IPM2_R,
416     MIU_CLIENT_VIVALDI_DSC_R,
417     MIU_CLIENT_TSP_JPD_RW,
418     MIU_CLIENT_DEMOD_W,
419     MIU_CLIENT_DEMOD_R,
420     MIU_CLIENT_DEMOD_ADCDMA_W,
421     MIU_CLIENT_GPU_RW,
422     MIU_CLIENT_PDW1_RW,
423     MIU_CLIENT_GPO0_PDW0_RW,
424     MIU_CLIENT_EVD_R,
425     MIU_CLIENT_EVD_RW,
426     MIU_CLIENT_SC_FRCL_R,
427     MIU_CLIENT_SC_FRCR_R,
428     MIU_CLIENT_VD_VBI_RW, // do not use this client; use MIU_CLIENT_VD_TTXSL_W instead
429     MIU_CLIENT_VD_MHEG5_ICACHE_RW,
430     MIU_CLIENT_TSP00_RW,
431     MIU_CLIENT_TSP01_RW,
432     MIU_CLIENT_TSP02_RW,
433     MIU_CLIENT_TSP03_RW,
434     MIU_CLIENT_TSP04_RW,
435     MIU_CLIENT_TSP05_RW,
436     MIU_CLIENT_TSP06_RW,
437     MIU_CLIENT_VIVALDI9_COMBINE_RW,
438     MIU_CLIENT_TSP07_RW,
439     MIU_CLIENT_ISDBT_TDI_R,
440     MIU_CLIENT_ISDBT_TDI_W,
441     MIU_CLIENT_FI_Queue0_WR,
442     MIU_CLIENT_FI_Queue1_WR,
443     MIU_CLIENT_SWDC_RW,
444     MIU_CLIENT_ISDB1_RW,
445     MIU_CLIENT_ISDB2_RW,
446     MIU_CLIENT_MIIC3_RW,
447     MIU_CLIENT_SECAU_R2_RW,
448     MIU_CLIENT_SC_LOCALDIMING_R_RW,
449     MIU_CLIENT_SC_LOCALDIMING_L_RW,
450     MIU_CLIENT_SC0_L_RW,
451     MIU_CLIENT_SC0_R_RW,
452     MIU_CLIENT_TSP_FIQ_RW,
453     MIU_CLIENT_EVD_R2D_RW,
454     MIU_CLIENT_EVD_R2I_R,
455     MIU_CLIENT_SECHVD_RW,
456     MIU_CLIENT_SECEVD_RW,
457     MIU_CLIENT_MFDEC_R,
458     MIU_CLIENT_SECMFDEC_R,
459     MIU_CLIENT_MIUTEST_R,
460     MIU_CLIENT_GOP3_PDW0_RW,
461     MIU_CLIENT_SC1_OPMAIN_RW,
462     MIU_CLIENT_SC2_IPSUB_RW,
463     MIU_CLIENT_SC_IPMAIN2_RW,
464     MIU_CLIENT_SC2_OPMAIN_RW,
465     MIU_CLIENT_SC_ODL_RW,
466     MIU_CLIENT_SC_ODR_RW,
467     MIU_CLIENT_SC1_IPSUB_RW,
468     MIU_CLIENT_EVD_BBU_R,
469     MIU_CLIENT_SC_DWIN_W,
470     MIU_CLIENT_ZDEC_RW,
471     MIU_CLIENT_ZDEC_ACP_RW,
472     MIU_CLIENT_USB30_1_RW,
473     MIU_CLIENT_USB30_2_RW,
474     MIU_CLIENT_3RDHVD_RW,
475     MIU_CLIENT_VP9_RW,
476     MIU_CLIENT_FRC_R,
477     MIU_CLIENT_FRCM_W,
478     MIU_CLIENT_SC_OD_RW,
479     MIU_CLIENT_SC_OPSUB_W,
480     MIU_CLIENT_FRCS_W,
481     MIU_CLIENT_EVD_MTFC_W,
482     MIU_CLIENT_EVD_MTFY_W,
483     MIU_CLIENT_ZDEC2_RW,
484     MIU_CLIENT_SC2_IPMAIN_RW,
485     MIU_CLIENT_MTF_W,
486     MIU_CLIENT_DBG_R,
487     MIU_CLIENT_DS_R,
488     MIU_CLIENT_FRC_R2,
489     MIU_CLIENT_MVD_RTO_RW,
490     MIU_CLIENT_FRC_FSCM2_RW,
491     MIU_CLIENT_FRC_FSCM3_RW,
492     MIU_CLIENT_FRC_IPM0_W,
493     MIU_CLIENT_FRC_IPM1_W,
494     MIU_CLIENT_FRC_OPM0_R,
495     MIU_CLIENT_FRC_OPM1_R,
496     MIU_CLIENT_FRC_OPME0_R,
497     MIU_CLIENT_FRC_OPME1_R,
498     MIU_CLIENT_FRC_OPMI0_R,
499     MIU_CLIENT_FRC_OPMI1_R,
500     MIU_CLIENT_FRC_ME_W,
501     MIU_CLIENT_FRC_ME_R,
502     MIU_CLIENT_FRC_HR_W,
503     MIU_CLIENT_FRC_HR_R,
504     MIU_CLIENT_FRC_MI_MERGE_RW,
505     MIU_CLIENT_MC2D_RW,
506     MIU_CLIENT_CMD_QUEUE1_RW,
507     MIU_CLIENT_USB_UHC4_RW,
508     MIU_CLIENT_DEMOD_RW,
509     MIU_CLIENT_VE_RW,
510     MIU_CLIENT_SC_PDW_W,
511     MIU_CLIENT_VIVALDI9_R2_ARB_RW,
512     MIU_CLIENT_MCU51_DB_TOOL_RW,
513     MIU_CLIENT_TSP_RW,
514     MIU_CLIENT_TSP_ORZ2_RW,
515     MIU_CLIENT_EVD_BBU_RW,
516     MIU_CLIENT_DVBC_ADC_W,
517     MIU_CLIENT_GMAC1_RW,
518     MIU_CLIENT_MFE_RW,
519     MIU_CLIENT_VD_R2_L_I_R,
520     MIU_CLIENT_VD_R2_L_D_RW,
521     MIU_CLIENT_CA_MIU_CROSSBAR_2_RW,
522     MIU_CLIENT_TSP08_RW,
523     MIU_CLIENT_ZDEC_LZDMA_RW,
524     MIU_CLIENT_EVD2_BBU_R,
525     MIU_CLIENT_GOP3_DWIN_RW,
526     MIU_CLIENT_MVOP_256BIT_R,
527     MIU_CLIENT_MFDEC1_R,
528     MIU_CLIENT_SC_DYN_SCL_R,
529     MIU_CLIENT_SC1_OPM_R,
530     MIU_CLIENT_ZDEC_ACP_W,
531     MIU_CLIENT_CMD_QUEUE_R,
532     MIU_CLIENT_VIVALDI9_DECODER_RW,
533     MIU_CLIENT_DEMOD_ADCDMA_RW,
534     MIU_CLIENT_MIU_BIST,
535     MIU_CLIENT_CA_MIU_CROSSBAR_0_RW,
536     MIU_CLIENT_CA_MIU_CROSSBAR_1_RW,
537     MIU_CLIENT_SECGMAC_RW,
538     MIU_CLIENT_AU_R2_1_RW,
539     MIU_CLIENT_TSO_1_RW,
540     MIU_CLIENT_TSIO_RW,
541     MIU_CLIENT_PCIE_OUTBOUND_RW,
542     MIU_CLIENT_PCIE_INBOUND_RW,
543     MIU_CLIENT_DDI_0_RW,
544     MIU_CLIENT_SC_DIPW_1_RW,
545     MIU_CLIENT_EVD_ENGINE1_RW,
546     MIU_CLIENT_HVD_ENGINE1_RW,
547     MIU_CLIENT_DDI_1_RW,
548     MIU_CLIENT_MFDEC0_1_R,
549     MIU_CLIENT_MFDEC1_1_R,
550     MIU_CLIENT_AUTO_DOWNLOAD_R,
551     MIU_CLIENT_MFEH_R,
552     MIU_CLIENT_AUDIO_RW,
553     MIU_CLIENT_OD_RW,
554     MIU_CLIENT_MVOP1_256BIT_R,
555     MIU_CLIENT_MVD_256BIT_RW,
556     MIU_CLIENT_TSP_FILEIN_RW,
557     MIU_CLIENT_TSP_SEC_RW,
558     MIU_CLIENT_HDR_L_RW,
559     MIU_CLIENT_HDR_R_RW,
560     MIU_CLIENT_MIU_CMD_RW,
561     MIU_CLIENT_G256_POST_ARB_RW,
562     MIU_CLIENT_G128_POST_ARB_RW,
563     MIU_CLIENT_G3_PRE_ARB_RW,
564     MIU_CLIENT_EVD_2_MIU0_RW,
565     MIU_CLIENT_EVD_2_MIU1_RW,
566     MIU_CLIENT_DEMOD_MCU51_WR,
567     MIU_CLIENT_DEMOD1_WR,
568     MIU_CLIENT_DEMOD2_WR,
569     MIU_CLIENT_DEMOD3_WR,
570     MIU_CLIENT_DEMOD4_WR,
571     MIU_CLIENT_DEMOD5_WR,
572     MIU_CLIENT_DEMOD6_WR,
573     MIU_CLIENT_TSO_TX_RW,
574     MIU_CLIENT_TSO_RX_RW,
575     MIU_CLIENT_SC_DIP_RW,
576     MIU_CLIENT_SC_DIP_DI_RW,
577     MIU_CLIENT_ADL_RW,
578     //Add new after here
579 }eMIUClientID;
580 
581 typedef enum
582 {
583     //IP Access MIU0 only
584     MIU_SELTYPE_MIU0 = 0,
585     //IP Access MIU1 only
586     MIU_SELTYPE_MIU1,
587     //IP can access MIU0 & MIU1
588     MIU_SELTYPE_MIU_ALL,
589     //IP Access MIU2 only
590     MIU_SELTYPE_MIU2,
591     //IP Access MIU3 only
592     MIU_SELTYPE_MIU3
593 
594 }eMIU_SelType;
595 
596 typedef struct
597 {
598     MS_U8 u8Gp:4;
599     MS_U8 u8BitPos:4;
600 }MIU_ClientInfo;
601 
602 typedef struct DLL_PACKED
603 {
604     MS_BOOL bHit;
605     MS_U8   u8Group;
606     MS_U8   u8ClientID;
607     MS_U8   u8Block;
608 }MIU_PortectInfo;
609 
610 typedef struct
611 {
612     MS_U8   u81st;
613     MS_U8   u82nd;
614     MS_U8   u83rd;
615     MS_U8   u84th;
616 }MIU_GroupPriority;
617 
618 typedef enum
619 {
620   E_MIU_0 = 0,
621   E_MIU_1,
622   E_MIU_2,
623   E_MIU_3,
624   E_MIU_NUM,
625 } MIU_ID;
626 
627 typedef enum
628 {
629   E_MIU_DDR_32MB = 0,
630   E_MIU_DDR_64MB,
631   E_MIU_DDR_128MB,
632   E_MIU_DDR_256MB,
633   E_MIU_DDR_512MB,
634   E_MIU_DDR_1024MB,
635   E_MIU_DDR_2048MB,
636   E_MIU_DDR_4096MB,
637   E_MIU_DDR_8192MB,
638 }MIU_DDR_SIZE;
639 
640 typedef enum
641 {
642   E_MIU_DDR3,
643   E_MIU_DDR4
644 }MIU_DDR_TYPE;
645 
646 typedef enum
647 {
648   E_MIU_CLIENT_64BIT = 0,
649   E_MIU_CLIENT_128BIT,
650   E_MIU_CLIENT_256BIT,
651 }eMIU_ClientWidth;
652 
653 #define MST_MACRO_START     do {
654 #define MST_MACRO_END       } while (0)
655 
656 
657 #define set_client_info(client_data,miu_pos,id_code)         \
658         MST_MACRO_START                                      \
659         client_data->miu = miu_pos;                          \
660         client_data->protect_id = id_code;                   \
661         MST_MACRO_END
662 
663 
664 //-------------------------------------------------------------------------------------------------
665 // Extern Global Variabls
666 //-------------------------------------------------------------------------------------------------
667 
668 ////////////////////////////////////////////////////////////////////////////////
669 // include utopia v2  header files here
670 ////////////////////////////////////////////////////////////////////////////////
671 #include "drvMIU_v2.h"
672 
673 //-------------------------------------------------------------------------------------------------
674 // Extern Functions
675 //-------------------------------------------------------------------------------------------------
676 //-------------------------------------------------------------------------------------------------
677 /// MOBF Encrypt
678 /// @ingroup G_MIU_ToBeRemove
679 /// @param u32Key \b IN: Key
680 /// @param bEnable \b IN: TRUE/FLASE
681 /// @return DRVAESDMA_OK : Success
682 /// @return Others : Fail
683 //-------------------------------------------------------------------------------------------------
684 void    MDrv_MIU_Mask_Req_OPM_R(MS_U8 u8Mask, MS_U8 u8Miu);
685 //-------------------------------------------------------------------------------------------------
686 /// MOBF Encrypt
687 /// @ingroup G_MIU_ToBeRemove
688 /// @param u32Key \b IN: Key
689 /// @param bEnable \b IN: TRUE/FLASE
690 /// @return DRVAESDMA_OK : Success
691 /// @return Others : Fail
692 //-------------------------------------------------------------------------------------------------
693 void    MDrv_MIU_Mask_Req_DNRB_R(MS_U8 u8Mask, MS_U8 u8Miu);
694 //-------------------------------------------------------------------------------------------------
695 /// MOBF Encrypt
696 /// @ingroup G_MIU_ToBeRemove
697 /// @param u32Key \b IN: Key
698 /// @param bEnable \b IN: TRUE/FLASE
699 /// @return DRVAESDMA_OK : Success
700 /// @return Others : Fail
701 //-------------------------------------------------------------------------------------------------
702 void    MDrv_MIU_Mask_Req_DNRB_W(MS_U8 u8Mask, MS_U8 u8Miu);
703 //-------------------------------------------------------------------------------------------------
704 /// MOBF Encrypt
705 /// @ingroup G_MIU_ToBeRemove
706 /// @param u32Key \b IN: Key
707 /// @param bEnable \b IN: TRUE/FLASE
708 /// @return DRVAESDMA_OK : Success
709 /// @return Others : Fail
710 //-------------------------------------------------------------------------------------------------
711 void    MDrv_MIU_Mask_Req_DNRB_RW(MS_U8 u8Mask, MS_U8 u8Miu);
712 //-------------------------------------------------------------------------------------------------
713 /// MOBF Encrypt
714 /// @ingroup G_MIU_ToBeRemove
715 /// @param u32Key \b IN: Key
716 /// @param bEnable \b IN: TRUE/FLASE
717 /// @return DRVAESDMA_OK : Success
718 /// @return Others : Fail
719 //-------------------------------------------------------------------------------------------------
720 void    MDrv_MIU_Mask_Req_SC_RW(MS_U8 u8Mask, MS_U8 u8Miu);
721 //-------------------------------------------------------------------------------------------------
722 /// MOBF Encrypt
723 /// @ingroup G_MIU_ToBeRemove
724 /// @param u32Key \b IN: Key
725 /// @param bEnable \b IN: TRUE/FLASE
726 /// @return DRVAESDMA_OK : Success
727 /// @return Others : Fail
728 //-------------------------------------------------------------------------------------------------
729 void    MDrv_MIU_Mask_Req_MVOP_R(MS_U8 u8Mask, MS_U8 u8Miu);
730 //-------------------------------------------------------------------------------------------------
731 /// MOBF Encrypt
732 /// @ingroup G_MIU_ToBeRemove
733 /// @param u32Key \b IN: Key
734 /// @param bEnable \b IN: TRUE/FLASE
735 /// @return DRVAESDMA_OK : Success
736 /// @return Others : Fail
737 //-------------------------------------------------------------------------------------------------
738 void    MDrv_MIU_Mask_Req_MVD_R(MS_U8 u8Mask, MS_U8 u8Miu);
739 //-------------------------------------------------------------------------------------------------
740 /// MOBF Encrypt
741 /// @ingroup G_MIU_ToBeRemove
742 /// @param u32Key \b IN: Key
743 /// @param bEnable \b IN: TRUE/FLASE
744 /// @return DRVAESDMA_OK : Success
745 /// @return Others : Fail
746 //-------------------------------------------------------------------------------------------------
747 void    MDrv_MIU_Mask_Req_MVD_W(MS_U8 u8Mask, MS_U8 u8Miu);
748 //-------------------------------------------------------------------------------------------------
749 /// MOBF Encrypt
750 /// @ingroup G_MIU_ToBeRemove
751 /// @param u32Key \b IN: Key
752 /// @param bEnable \b IN: TRUE/FLASE
753 /// @return DRVAESDMA_OK : Success
754 /// @return Others : Fail
755 //-------------------------------------------------------------------------------------------------
756 void    MDrv_MIU_Mask_Req_MVD_RW(MS_U8 u8Mask, MS_U8 u8Miu);
757 //-------------------------------------------------------------------------------------------------
758 /// MOBF Encrypt
759 /// @ingroup G_MIU_ToBeRemove
760 /// @param u32Key \b IN: Key
761 /// @param bEnable \b IN: TRUE/FLASE
762 /// @return DRVAESDMA_OK : Success
763 /// @return Others : Fail
764 //-------------------------------------------------------------------------------------------------
765 void    MDrv_MIU_Mask_Req_AUDIO_RW(MS_U8 u8Mask, MS_U8 u8Miu);
766 //-------------------------------------------------------------------------------------------------
767 /// MOBF Encrypt
768 /// @ingroup G_MIU_CONTROL
769 /// @param u32Key \b IN: Key
770 /// @param bEnable \b IN: TRUE/FLASE
771 /// @return DRVAESDMA_OK : Success
772 /// @return Others : Fail
773 //-------------------------------------------------------------------------------------------------
774 void    MDrv_MIU_MaskReq(MS_U8 u8Miu, eMIUClientID eClientID);
775 //-------------------------------------------------------------------------------------------------
776 /// MOBF Encrypt
777 /// @ingroup G_MIU_CONTROL
778 /// @param u32Key \b IN: Key
779 /// @param bEnable \b IN: TRUE/FLASE
780 /// @return DRVAESDMA_OK : Success
781 /// @return Others : Fail
782 //-------------------------------------------------------------------------------------------------
783 void    MDrv_MIU_UnMaskReq(MS_U8 u8Miu, eMIUClientID eClientID);
784 //-------------------------------------------------------------------------------------------------
785 /// MOBF Encrypt
786 /// @ingroup G_MIU_INIT
787 /// @param u32Key \b IN: Key
788 /// @param bEnable \b IN: TRUE/FLASE
789 /// @return DRVAESDMA_OK : Success
790 /// @return Others : Fail
791 //-------------------------------------------------------------------------------------------------
792 void    MDrv_MIU_InitCounter(void);
793 //-------------------------------------------------------------------------------------------------
794 /// MOBF Encrypt
795 /// @ingroup G_MIU_ToBeRemove
796 /// @param u32Key \b IN: Key
797 /// @param bEnable \b IN: TRUE/FLASE
798 /// @return DRVAESDMA_OK : Success
799 /// @return Others : Fail
800 //-------------------------------------------------------------------------------------------------
801 void    MDrv_MIU_VOP_SwitchMIU(MS_U8 u8MiuID);
802 //-------------------------------------------------------------------------------------------------
803 /// MOBF Encrypt
804 /// @ingroup G_MIU_PROTECT
805 /// @param u32Key \b IN: Key
806 /// @param bEnable \b IN: TRUE/FLASE
807 /// @return DRVAESDMA_OK : Success
808 /// @return Others : Fail
809 //-------------------------------------------------------------------------------------------------
810 void    MDrv_MIU_PrintMIUProtectInfo(void);
811 //-------------------------------------------------------------------------------------------------
812 /// MOBF Encrypt
813 /// @ingroup G_MIU_PROTECT
814 /// @param u32Key \b IN: Key
815 /// @param bEnable \b IN: TRUE/FLASE
816 /// @return DRVAESDMA_OK : Success
817 /// @return Others : Fail
818 //-------------------------------------------------------------------------------------------------
819 MS_U8*  MDrv_MIU_GetDefaultClientID_KernelProtect(void);
820 //-------------------------------------------------------------------------------------------------
821 /// MOBF Encrypt
822 /// @ingroup G_MIU_CONTROL
823 /// @param u32Key \b IN: Key
824 /// @param bEnable \b IN: TRUE/FLASE
825 /// @return DRVAESDMA_OK : Success
826 /// @return Others : Fail
827 //-------------------------------------------------------------------------------------------------
828 MS_U16  MDrv_MIU_GetBusWidth(void);
829 //-------------------------------------------------------------------------------------------------
830 /// MOBF Encrypt
831 /// @ingroup G_MIU_CONTROL
832 /// @param u32Key \b IN: Key
833 /// @param bEnable \b IN: TRUE/FLASE
834 /// @return DRVAESDMA_OK : Success
835 /// @return Others : Fail
836 //-------------------------------------------------------------------------------------------------
837 MS_BOOL MDrv_MIU_SetSsc(MS_U16 u16Fmodulation, MS_U16 u16FDeviation,MS_BOOL bEnable);
838 //-------------------------------------------------------------------------------------------------
839 /// MOBF Encrypt
840 /// @ingroup G_MIU_CONTROL
841 /// @param u32Key \b IN: Key
842 /// @param bEnable \b IN: TRUE/FLASE
843 /// @return DRVAESDMA_OK : Success
844 /// @return Others : Fail
845 //-------------------------------------------------------------------------------------------------
846 MS_BOOL MDrv_MIU_SetSscValue(MS_U8 u8MiuDev, MS_U16 u16Fmodulation, MS_U16 u16FDeviation, MS_BOOL bEnable);
847 //-------------------------------------------------------------------------------------------------
848 /// MOBF Encrypt
849 /// @ingroup G_MIU_COMMON
850 /// @param u32Key \b IN: Key
851 /// @param bEnable \b IN: TRUE/FLASE
852 /// @return DRVAESDMA_OK : Success
853 /// @return Others : Fail
854 //-------------------------------------------------------------------------------------------------
855 MS_BOOL MDrv_MIU_GetClientID(euMIUClientIDTYPE client_name, stMIUClientID_t *client_read, stMIUClientID_t *client_write);
856 //-------------------------------------------------------------------------------------------------
857 /// MOBF Encrypt
858 /// @ingroup G_MIU_CONTROL
859 /// @param u32Key \b IN: Key
860 /// @param bEnable \b IN: TRUE/FLASE
861 /// @return DRVAESDMA_OK : Success
862 /// @return Others : Fail
863 //-------------------------------------------------------------------------------------------------
864 MS_BOOL MDrv_MIU_Mask(euMIUClientIDTYPE client_name);
865 //-------------------------------------------------------------------------------------------------
866 /// MOBF Encrypt
867 /// @ingroup G_MIU_CONTROL
868 /// @param u32Key \b IN: Key
869 /// @param bEnable \b IN: TRUE/FLASE
870 /// @return DRVAESDMA_OK : Success
871 /// @return Others : Fail
872 //-------------------------------------------------------------------------------------------------
873 MS_BOOL MDrv_MIU_Unmask(euMIUClientIDTYPE client_name);
874 //-------------------------------------------------------------------------------------------------
875 /// MOBF Encrypt
876 /// @ingroup G_MIU_CONTROL
877 /// @param u32Key \b IN: Key
878 /// @param bEnable \b IN: TRUE/FLASE
879 /// @return DRVAESDMA_OK : Success
880 /// @return Others : Fail
881 //-------------------------------------------------------------------------------------------------
882 MS_BOOL MDrv_MIU_MaskByPort(euMIUClientIDTYPE client_name,stMIUClientID_t *ByPort);
883 //-------------------------------------------------------------------------------------------------
884 /// MOBF Encrypt
885 /// @ingroup G_MIU_CONTROL
886 /// @param u32Key \b IN: Key
887 /// @param bEnable \b IN: TRUE/FLASE
888 /// @return DRVAESDMA_OK : Success
889 /// @return Others : Fail
890 //-------------------------------------------------------------------------------------------------
891 MS_BOOL MDrv_MIU_UnmaskByPort(euMIUClientIDTYPE client_name,stMIUClientID_t *ByPort);
892 //-------------------------------------------------------------------------------------------------
893 /// MOBF Encrypt
894 /// @ingroup G_MIU_ToBeRemove
895 /// @param u32Key \b IN: Key
896 /// @param bEnable \b IN: TRUE/FLASE
897 /// @return DRVAESDMA_OK : Success
898 /// @return Others : Fail
899 //-------------------------------------------------------------------------------------------------
900 MS_BOOL MDrv_MIU_SetIOMapBase(void);
901 //-------------------------------------------------------------------------------------------------
902 /// MOBF Encrypt
903 /// @ingroup G_MIU_PROTECT
904 /// @param u32Key \b IN: Key
905 /// @param bEnable \b IN: TRUE/FLASE
906 /// @return DRVAESDMA_OK : Success
907 /// @return Others : Fail
908 //-------------------------------------------------------------------------------------------------
909 MS_BOOL MDrv_MIU_ProtectAlign(MS_U32 *u32PageShift);
910 //-------------------------------------------------------------------------------------------------
911 /// MOBF Encrypt
912 /// @ingroup G_MIU_COMMON
913 /// @param u32Key \b IN: Key
914 /// @param bEnable \b IN: TRUE/FLASE
915 /// @return DRVAESDMA_OK : Success
916 /// @return Others : Fail
917 //-------------------------------------------------------------------------------------------------
918 MS_BOOL MDrv_MIU_Dram_Size(MS_U8 MiuID, MS_U8 DramSize);
919 //-------------------------------------------------------------------------------------------------
920 /// MOBF Encrypt
921 /// @ingroup G_MIU_COMMON
922 /// @param u32Key \b IN: Key
923 /// @param bEnable \b IN: TRUE/FLASE
924 /// @return DRVAESDMA_OK : Success
925 /// @return Others : Fail
926 //-------------------------------------------------------------------------------------------------
927 MS_BOOL MDrv_MIU_Dram_ReadSize(MS_U8 MiuID, MIU_DDR_SIZE *pDramSize);
928 //-------------------------------------------------------------------------------------------------
929 /// MOBF Encrypt
930 /// @ingroup G_MIU_COMMON
931 /// @param u32Key \b IN: Key
932 /// @param bEnable \b IN: TRUE/FLASE
933 /// @return DRVAESDMA_OK : Success
934 /// @return Others : Fail
935 //-------------------------------------------------------------------------------------------------
936 MS_U8 MDrv_MIU_ClinetNumber(MS_U8 u8Blockx);
937 //-------------------------------------------------------------------------------------------------
938 /// MOBF Encrypt
939 /// @ingroup G_MIU_PROTECT
940 /// @param u32Key \b IN: Key
941 /// @param bEnable \b IN: TRUE/FLASE
942 /// @return DRVAESDMA_OK : Success
943 /// @return Others : Fail
944 //-------------------------------------------------------------------------------------------------
945 MS_BOOL MDrv_MIU_Protect( MS_U8 u8Blockx, MS_U8 *pu8ProtectId, MS_PHY phyStart, MS_PHY phyEnd, MS_BOOL bSetFlag );
946 
947 MS_BOOL MDrv_MIU_ProtectEx( MS_U8 u8Blockx, MS_U32 *pu32ProtectId, MS_PHY phy64Start, MS_PHY phy64End, MS_BOOL bSetFlag );
948 //-------------------------------------------------------------------------------------------------
949 /// MOBF Encrypt
950 /// @ingroup G_MIU_COMMON
951 /// @param u32Key \b IN: Key
952 /// @param bEnable \b IN: TRUE/FLASE
953 /// @return DRVAESDMA_OK : Success
954 /// @return Others : Fail
955 //-------------------------------------------------------------------------------------------------
956 MS_BOOL MDrv_MIU_IsSupportMIU1(void);
957 //-------------------------------------------------------------------------------------------------
958 /// MOBF Encrypt
959 /// @ingroup G_MIU_CONTROL
960 /// @param u32Key \b IN: Key
961 /// @param bEnable \b IN: TRUE/FLASE
962 /// @return DRVAESDMA_OK : Success
963 /// @return Others : Fail
964 //-------------------------------------------------------------------------------------------------
965 MS_BOOL MDrv_MIU_SelMIU(eMIUClientID eClientID, eMIU_SelType eType);
966 //-------------------------------------------------------------------------------------------------
967 /// MOBF Encrypt
968 /// @ingroup G_MIU_COMMON
969 /// @param u32Key \b IN: Key
970 /// @param bEnable \b IN: TRUE/FLASE
971 /// @return DRVAESDMA_OK : Success
972 /// @return Others : Fail
973 //-------------------------------------------------------------------------------------------------
974 MS_BOOL MDrv_MIU_GetClientInfo(MS_U8 u8MiuDev, eMIUClientID eClientID, MIU_ClientInfo *pInfo);
975 //-------------------------------------------------------------------------------------------------
976 /// MOBF Encrypt
977 /// @ingroup G_MIU_PROTECT
978 /// @param u32Key \b IN: Key
979 /// @param bEnable \b IN: TRUE/FLASE
980 /// @return DRVAESDMA_OK : Success
981 /// @return Others : Fail
982 //-------------------------------------------------------------------------------------------------
983 MS_BOOL MDrv_MIU_GetProtectInfo(MS_U8 u8MiuDev, MIU_PortectInfo *pInfo);
984 //-------------------------------------------------------------------------------------------------
985 /// MOBF Encrypt
986 /// @ingroup G_MIU_COMMON
987 /// @param u32Key \b IN: Key
988 /// @param bEnable \b IN: TRUE/FLASE
989 /// @return DRVAESDMA_OK : Success
990 /// @return Others : Fail
991 //-------------------------------------------------------------------------------------------------
992 MS_BOOL MDrv_MIU_SetGroupPriority(MS_U8 u8MiuDev, MIU_GroupPriority sPriority);
993 //-------------------------------------------------------------------------------------------------
994 /// MOBF Encrypt
995 /// @ingroup G_MIU_COMMON
996 /// @param u32Key \b IN: Key
997 /// @param bEnable \b IN: TRUE/FLASE
998 /// @return DRVAESDMA_OK : Success
999 /// @return Others : Fail
1000 //-------------------------------------------------------------------------------------------------
1001 MS_BOOL MDrv_MIU_SetHPriorityMask(MS_U8 u8MiuDev, eMIUClientID eClientID, MS_BOOL bMask);
1002 //-------------------------------------------------------------------------------------------------
1003 /// MOBF Encrypt
1004 /// @ingroup G_MIU_COMMON
1005 /// @param u32Key \b IN: Key
1006 /// @param bEnable \b IN: TRUE/FLASE
1007 /// @return DRVAESDMA_OK : Success
1008 /// @return Others : Fail
1009 //-------------------------------------------------------------------------------------------------
1010 MS_BOOL MDrv_MIU_GetLibVer(const MSIF_Version **ppVersion);
1011 //-------------------------------------------------------------------------------------------------
1012 /// MOBF Encrypt
1013 /// @ingroup G_MIU_CONTROL
1014 /// @param u32Key \b IN: Key
1015 /// @param bEnable \b IN: TRUE/FLASE
1016 /// @return DRVAESDMA_OK : Success
1017 /// @return Others : Fail
1018 //-------------------------------------------------------------------------------------------------
1019 MS_BOOL MDrv_MIU_EnableScramble(MS_BOOL bEnable);
1020 //-------------------------------------------------------------------------------------------------
1021 /// MOBF Encrypt
1022 /// @ingroup G_MIU_CONTROL
1023 /// @param u32Key \b IN: Key
1024 /// @param bEnable \b IN: TRUE/FLASE
1025 /// @return DRVAESDMA_OK : Success
1026 /// @return Others : Fail
1027 //-------------------------------------------------------------------------------------------------
1028 MS_BOOL MDrv_MIU_IsScrambleEnabled(void);
1029 //-------------------------------------------------------------------------------------------------
1030 /// MOBF Encrypt
1031 /// @ingroup G_MIU_COMMON
1032 /// @param u32Key \b IN: Key
1033 /// @param bEnable \b IN: TRUE/FLASE
1034 /// @return DRVAESDMA_OK : Success
1035 /// @return Others : Fail
1036 //-------------------------------------------------------------------------------------------------
1037 MS_BOOL MDrv_MIU_GetLoading(MS_U8 u8MiuDev, MS_U32 *Loading);
1038 //-------------------------------------------------------------------------------------------------
1039 /// MOBF Encrypt
1040 /// @ingroup G_MIU_INIT
1041 /// @param u32Key \b IN: Key
1042 /// @param bEnable \b IN: TRUE/FLASE
1043 /// @return DRVAESDMA_OK : Success
1044 /// @return Others : Fail
1045 //-------------------------------------------------------------------------------------------------
1046 MS_BOOL MDrv_MIU_Init(void);
1047 //-------------------------------------------------------------------------------------------------
1048 /// MOBF Encrypt
1049 /// @ingroup G_MIU_COMMON
1050 /// @param u32Key \b IN: Key
1051 /// @param bEnable \b IN: TRUE/FLASE
1052 /// @return DRVAESDMA_OK : Success
1053 /// @return Others : Fail
1054 //-------------------------------------------------------------------------------------------------
1055 MS_U32 MDrv_MIU_SetPowerState(EN_POWER_MODE u16PowerState);
1056 //-------------------------------------------------------------------------------------------------
1057 /// MOBF Encrypt
1058 /// @ingroup G_MIU_COMMON
1059 /// @param u32Key \b IN: Key
1060 /// @param bEnable \b IN: TRUE/FLASE
1061 /// @return DRVAESDMA_OK : Success
1062 /// @return Others : Fail
1063 //-------------------------------------------------------------------------------------------------
1064 MS_BOOL MDrv_MIU_GetClientWidth(MS_U8 u8MiuDevi, eMIUClientID eClientID, eMIU_ClientWidth *pClientWidth);
1065 
1066 MS_BOOL MDrv_MIU_GetDramType(MIU_ID eMiu, MIU_DDR_TYPE* pType);
1067 
1068 #ifdef _MIU_INTERNEL_USE
1069 //-------------------------------------------------------------------------------------------------
1070 /// MOBF Encrypt
1071 /// @ingroup G_MIU_COMMON
1072 /// @param u32Key \b IN: Key
1073 /// @param bEnable \b IN: TRUE/FLASE
1074 /// @return DRVAESDMA_OK : Success
1075 /// @return Others : Fail
1076 //-------------------------------------------------------------------------------------------------
1077 DLL_PUBLIC MS_BOOL MDrv_MIU_GetLoading(MS_U8 u8MiuDev, MS_U32 *Loading);
1078 #endif
1079 
1080 #ifdef __cplusplus
1081 }
1082 #endif
1083 
1084 #endif // _DRV_MIU_H_
1085 
1086