⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drvmiu.h

📁 mstar 776 开发的车载dvd
💻 H
字号:
////////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2006-2007 MStar Semiconductor, Inc.
// All rights reserved.
//
// Unless otherwise stipulated in writing, any and all information contained
// herein regardless in any format shall remain the sole proprietary of
// MStar Semiconductor Inc. and be kept in strict confidence
// (¨MStar Confidential Information〃) by the recipient.
// Any unauthorized act including without limitation unauthorized disclosure,
// copying, use, reproduction, sale, distribution, modification, disassembling,
// reverse engineering and compiling of the contents of MStar Confidential
// Information is unlawful and strictly prohibited. MStar hereby reserves the
// rights to any and all damages, losses, costs and expenses resulting therefrom.
//
////////////////////////////////////////////////////////////////////////////////

#ifndef DRVMIU_H
#define DRVMIU_H

#include "memtype.h"
#include "datatype.h"
#include "drvge.h"
#include "board.h"
#include "Bin_ID.h"
#include "chip/compat.h"

#define MIU_PROT_BLK0 0
#define MIU_PROT_BLK1 1
#define MIU_PROT_BLK2 2

#define MIU_DMA_FLASH2SDRAM	0x05
#define MIU_DMA_SRAM2SDRAM	0x09
#define MIU_DMA_SDRAM2SRAM	0x0B
#define MIU_DMA_SDRAM2SDRAM	0x0C

#define MIU_ALIGN_UNIT  8

typedef enum
{
    MIU_ALIGN_SRC,
    MIU_ALIGN_DST,
    MIU_ALIGN_BOTH,
    MIU_ALIGN_NONE,
} MIUALIGNTYPE;


typedef enum
{
    MCID_GOP,
    MCID_FLASH,
    MCID_MAD,
    MCID_MAD_W,
    MCID_MVD,
    MCID_VDMCU,
    MCID_GE,
    MCID_GE_R,
    MCID_GE_W,
    MCID_HKMCU,
    MCID_HKMCU_XD,
} MIUCLIENTID;

typedef enum
{
    MCPY_GENERAL,            // Not special type
    // Engine
    MCPY_LOADMVDFW,
    MCPY_LOADVDMCUFW,
    MCPY_GOP,
    MCPY_MAD,
    MCPY_TSP,
    MCPY_MADI,
    MCPY_TTX,
    MCPY_CARDREADER,
    MCPY_VOP,
    MCPY_HKMCU,
    // Data
    MCPY_LOADFONT,
    MCPY_LOADBITMAP,
    MCPY_LOADLOGO,
    MCPY_CC,
    MCPY_DATABASE,
    MCPY_CCS,
} MCPY_TYPE;

extern void MDrv_MIU_InitialMiuToSDRAMX16(void);
extern void MDrv_MIU_Protect(U8 Blockx,U8 ProtectId, U32 u32Start, U32 u32End, BOOLEAN bEnable);

extern void MDrv_MIU_Copy(U32 srcaddr, U32 dstaddr, U32 len, MEMCOPYTYPE type);
extern void MDrv_MIU_XCopy(U8 type, U32 srcaddr, U32 dstaddr, U32 len);

extern void MDrv_MIU_Set_BinHeader_Addr(U32 addr);
extern U32 MDrv_MIU_Get_BinHeader_Addr(void);
extern BOOLEAN MDrv_MIU_Get_BinInfo(BINFORMAT *pBinInfo);
extern void MDrv_MIU_Get_BitmapInfo(U16 bmphandle, Bitmap_Info *pBitmapInfo);
extern void MDrv_MIU_Set_BitmapInfo(U16 bmphandle, Bitmap_Info *pBitmapInfo);
extern void MDrv_MIU_Get_FontInfo(U8 fonthandle, FONT_INFO *pFontInfo);
extern void MDrv_MIU_Set_FontInfo(U8 fonthandle, FONT_INFO *pFontInfo);

#define MDrv_MIU_SDRAM2VARCopy(srcaddr, dstaddr, len)  MDrv_Sys_CopyMIU2VAR(srcaddr, dstaddr, len)
#define MDrv_MIU_VAR2SDRAMCopy(srcaddr, dstaddr, len)  MDrv_Sys_CopyVAR2MIU(srcaddr, dstaddr, len)
//extern void MDrv_MIU_SDRAM2VARCopy(U32 srcaddr, U8* dstaddr, U32 len);
//extern void MDrv_MIU_VAR2SDRAMCopy(U8 *srcaddr, U32 dstaddr, U32 len);

#if ENABLE_SSC
extern void MDrv_MIU_SscEnable(BOOLEAN enable);
extern BOOLEAN MDrv_MIU_SscStatus(void);
extern void MDrv_MIU_SscStep(U8 StepValue);
extern U8 MDrv_MIU_SscStepValue(void);
extern void MDrv_MIU_SscSpan(U16 SpanValue);
extern U16 MDrv_MIU_SscSpanValue(void);
void MDrv_MIU_SetSsc(U16 u16Periodx100Hz, U16 u16Percentx100, BOOLEAN bEnable);
#endif

extern void MDrv_MIU_SPI_SetOffset(U32 u32Offset);
extern U32 MDrv_MIU_SPI_GetOffset(void);
extern void MDrv_MIU_SetRoundRobin(BOOLEAN bEnable);
extern void MDrv_MIU_W1_DRAM2DRAMCopy(U32 srcaddr, U32 dstaddr, U32 len, MEMCOPYTYPE type);
extern void MDrv_MIU_Set_DRAM2DRAM_Mode(BOOLEAN mode);
extern BOOLEAN MDrv_MIU_Get_DRAM2DRAM_Mode();

#if (CHIP_HAS_DMA_CRC16)

#include "drvGlobal.h"

#define MDrv_DMA_SetCrcPolynomial(u16Vec)   MDrv_Write2Byte(REG_DMA_CRC_POLYNOMIAL, u16Vec)
#define MDrv_DMA_SetCrcInitial(u16Init)     MDrv_Write2Byte(REG_DMA_CRC_INITIAL, u16Init)
#define MDrv_DMA_ClearCrc()                 MDrv_WriteByte(REG_DMA_CRC_CLEAR, 1)
#define MDrv_DMA_EnableCrc(bEnable)         MDrv_WriteByte(REG_DMA_CRC_EN, (bEnable) ? 1 : 0)
#define MDrv_DMA_GetCrcResult()             MDrv_Read2Byte(REG_DMA_CRC_RESULT)

#else

#define MDrv_DMA_SetCrcPolynomial(u16Vec)   _FUNC_NOT_USED()
#define MDrv_DMA_SetCrcInitial(u16Init)     _FUNC_NOT_USED()
#define MDrv_DMA_ClearCrc()                 _FUNC_NOT_USED()
#define MDrv_DMA_EnableCrc(bEnable)         _FUNC_NOT_USED()
#define MDrv_DMA_GetCrcResult()             0

#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -