BOOL MfcSfrMemMapping(void) { BOOL ret = FALSE; // virtual address mapping vir_pMFC_SFR = (volatile S3C6400_MFC_SFR *)Phy2Vir_AddrMapping(S3C6400_BASEADDR_MFC_SFR, S3C6400_MFC_SFR_SW_RESET_ADDR); if (vir_pMFC_SFR == NULL) { LOG_MSG(LOG_ERROR, "MfcSfrMapping", "For MFC_SFR: VirtualAlloc failed!\r\n"); return ret; } LOG_MSG(LOG_TRACE, "MfcSfrMapping", "VIRTUAL ADDR MFC SFR : 0x%X\n", vir_pMFC_SFR); vir_pSW_RESET = (unsigned int *) ((int)vir_pMFC_SFR + S3C6400_MFC_SFR_SW_RESET_ADDR); // Physical address mapping phyMFC_SFR = S3C6400_BASEADDR_MFC_SFR; phySW_RESET = S3C6400_BASEADDR_MFC_SFR + S3C6400_MFC_SFR_SW_RESET_ADDR; ret = TRUE; return ret; }
BOOL MfcBitProcBufMemMapping() { BOOL ret = FALSE; // FIRWARE/WORKING/PARAMETER BUFFER <-- virtual bitprocessor buffer address mapping vir_pBITPROC_BUF = (volatile unsigned char *)Phy2Vir_AddrMapping(S3C6400_BASEADDR_MFC_BITPROC_BUF, MFC_BITPROC_BUF_SIZE); if (vir_pBITPROC_BUF == NULL) { LOG_MSG(LOG_ERROR, "MfcBitProcBufMapping", "For BITPROC_BUF: VirtualAlloc failed!\r\n"); return ret; } // Physical register address mapping phyBITPROC_BUF = S3C6400_BASEADDR_MFC_BITPROC_BUF; ret = TRUE; return ret; }
BOOL MfcDataBufMemMapping() { BOOL ret = FALSE; // STREAM BUFFER, FRAME BUFFER <-- virtual data buffer address mapping vir_pDATA_BUF = (volatile unsigned char *)Phy2Vir_AddrMapping(S3C6400_BASEADDR_MFC_DATA_BUF, MFC_DATA_BUF_SIZE); if (vir_pDATA_BUF == NULL) { LOG_MSG(LOG_ERROR, "MfcDataBufMapping", "For DATA_BUF: VirtualAlloc failed!\r\n"); return ret; } // Physical register address mapping phyDATA_BUF = S3C6400_BASEADDR_MFC_DATA_BUF; ret = TRUE; return ret; }