?? ucode4.c
字號:
}
#endif
// Chuan 278 2002/10/28: Load DSP ERAM
switch (bCode)
{
/*
case UCODE_DSPRAM_TONE:
#ifdef SYSTEM_8051
dwRAM = _dwTONERAM ;
#else
bRet = _OpenUCODE ( "toneram.inc" );
#endif
break ;
*/
case UCODE_DSPRAM_DVD:
#ifdef SYSTEM_8051
dwRAM = _dwDVDERAM ;
#else
bRet = _OpenUCODE ( "dvderam.inc" );
#endif
break ;
#ifdef SUPPORT_WMA
case UCODE_DSPRAM_WMA: //Kevin1.08
#ifdef SYSTEM_8051
dwRAM = _dwWMAERAM ;
#else
bRet = _OpenUCODE ( "wmaeram.inc" );
#endif
break ;
#endif
}
#ifdef SUPPORT_DRAM_PROTECTION
//Chuan1.02, unprotect ERAM
W99AV_WriteRegDW( UCPR1, 0x0000, 0x0000);
#endif
if (!W99AV_WriteDRAMBurst (ERAM_ADDR, &(dwRAM[START]), (WORD)dwRAM[1]))
{
#ifdef SUPPORT_PRINTF
printf ("\nWrite ERAM Error [0x%x] = [0x%lx]", ERAM_ADDR+_UCODEIndex, dwRAM[_UCODEIndex+2]) ;
#endif
bRet = FALSE ;
}
#ifdef SUPPORT_DRAM_PROTECTION
//Chuan1.02, protect ERAM form ERAM_ADDR to ERAM_END_ADDR
dwTemp = 0x01000000 | ((DWORD)(ERAM_END_ADDR>>8)<<12) | ERAM_ADDR>>8;
W99AV_WriteRegDW( UCPR1, LOWORD(dwTemp), HIWORD(dwTemp));
#endif
// Chuan 278 2002/10/28: Release A_RST
W99AV_WriteRegDW (PCR, __wW99AVPCRLow, __wW99AVPCRHigh) ;
break ;
}
#ifndef SYSTEM_8051
if (pdwUcode)
{
_hfree(pdwUcode);
pdwUcode = NULL;
}
#endif
return bRet ;
}
// ********************************************************************
// Function : UCODE4_CheckCode
// Description : Check the desired micro-code
// Arguments : bRam, the desired ucode;
// Return : TRUE or FALSE
// Side Effect :
// ********************************************************************
#pragma DISABLE
BYTE UCODE4_CheckCode (BYTE bRam, BYTE bCode)
{
bRet = TRUE ;
#ifdef CHECK_UCODE_LOAD
switch (bRam)
{
// Chuan1.10, Move Parser Code to UCODE4
case UCODE_PRAM :
switch (bCode)
{
case UCODE_DVDPRAM :
#ifdef SYSTEM_8051
dwRAM = _dwDVDPAR ;
#else
bRet = _OpenUCODE ("dvdpar.inc");
#endif
break ;
// Chuan 278 2002/10/30: The code related to CSS key management in DVDPRAM.INC has been moved out.
case UCODE_KEYPRAM :
#ifdef SYSTEM_8051
dwRAM = _dwKEYPAR ;
#else
bRet = _OpenUCODE ("keypar.inc");
#endif
break ;
case UCODE_CDROMPRAM :
#ifdef SYSTEM_8051
dwRAM = _dwCDROMPAR ;
#elif defined(BITSTREAM_WITHOUT_SYNC)
bRet = _OpenUCODE ( "dosall.inc" ); // Chuan2.80p, DosTest - Host path w/o SYNC
#else
bRet = _OpenUCODE ( "cdrompar.inc" ); // Chuan2.80p, Emulator ATAPIIF/CDIF only
#endif
break ;
case UCODE_ALLPRAM :
#ifdef SYSTEM_8051
dwRAM = _dwALLPAR ;
#elif defined(BITSTREAM_WITHOUT_SYNC)
bRet = _OpenUCODE ( "dosall.inc" ); // Chuan2.80p, DosTest - Host path w/o SYNC
#else
bRet = _OpenUCODE ( "allpar.inc" ); // Chuan2.80p, Emulator ATAPIIF/CDIF only
#endif
break ;
// wyc1.10, new parser code to play DVD-DAT / CD-DAT files.
case UCODE_DATPRAM:
#ifdef SYSTEM_8051
dwRAM = _dwDATPAR ;
#else
bRet = _OpenUCODE ( "datpar.inc" ); // Chuan2.80p, Emulator ATAPIIF/CDIF only
#endif
break;
#ifdef BITSTREAM_WITHOUT_SYNC
case UCODE_DOSJPEG:
bRet = _OpenUCODE ( "dosjpeg.inc" ); // Chuan2.80p, DosTest - Host path w/o SYNC
break ;
#endif
default :
#ifdef SUPPORT_PRINTF
printf ("\nWrong Parser Ramcode specified !") ;
#endif
return FALSE ;
}
////////////////////////////////////////
// Check download PRAM procedure
__wW99AVPCRLow &= 0xDFFF ; //(Bit 13, Parser Disable)
W99AV_WriteRegDW (PCR, __wW99AVPCRLow, __wW99AVPCRHigh) ;
// Soft Reset Parser
__wW99AVPCRLow |= 0x1000 ; //(Bit 12, Parser Reset)
W99AV_WriteRegDW (PCR, __wW99AVPCRLow, __wW99AVPCRHigh) ;
// LLY.043 end ...
for(_UCODEIndex=0; _UCODEIndex<dwRAM[1];_UCODEIndex++)
{
W99AV_OutIndex(W99AV_AIRID_PARRAM | _UCODEIndex) ;
W99AV_InData();
W99AV_OutIndex(W99AV_AIRID_PARRAM | _UCODEIndex) ;
dwData=W99AV_InData()&0xfffff;
if(dwData!=dwRAM[_UCODEIndex+START])
{
#ifdef SUPPORT_PRINTF
printf ("\nCheck PRAM %d Error [0x%lx] != [0x%lx]", _UCODEIndex, dwData, dwRAM[_UCODEIndex+START]) ;
#endif
bRet = FALSE ;
break ;
}
}
// LLY.043, fix recursive call -- expand HAL_ControlParser(HAL_PARSER_ENABLE) procedure
// Restore previous state
__wW99AVPCRLow &= 0xEFFF ; //(Bit 12, Parser Reset)
W99AV_WriteRegDW (PCR, __wW99AVPCRLow, __wW99AVPCRHigh) ;
//DVD016MICKY
__wW99AVPCRLow |= 0x2000 ; //(Bit 13, Parser Enable)
W99AV_WriteRegDW (PCR, __wW99AVPCRLow, __wW99AVPCRHigh) ;
// LLY.043 end ...
break ;
case UCODE_DSPRAM :
// Chuan 278 2002/10/28: Check DSP PRAM first.
switch (bCode)
{
/*
case UCODE_DSPRAM_TONE:
#ifdef SYSTEM_8051
dwRAM = _dwTONPRAM ;
#else
bRet = _OpenUCODE ( "tonpram.inc" );
#endif
break ;
*/
#ifdef SUPPORT_WMA
case UCODE_DSPRAM_WMA: //Kevin1.08
#ifdef SYSTEM_8051
dwRAM = _dwWMAPRAM ;
#else
bRet = _OpenUCODE ( "wmapram.inc" );
#endif
break ;
#endif
}
dwData = W99AV_AIRID_DSPMEM | 0x00010000L ;
// Chuan 278 2002/10/28: Keep A_RST high
W99AV_WriteRegDW (PCR,(WORD)(__wW99AVPCRLow|0x0020), __wW99AVPCRHigh) ;
for (_UCODEIndex=0; _UCODEIndex<dwRAM[1]; _UCODEIndex++)
{
W99AV_OutIndex(dwData | _UCODEIndex) ;
W99AV_InData();
W99AV_OutIndex(dwData | _UCODEIndex) ;
dwTemp=W99AV_InData() & 0x0fffffff;
if(dwTemp!=dwRAM[_UCODEIndex+START])
{
#ifdef SUPPORT_PRINTF
printf ("\nCheck DSP PM RAM %d Error [0x%lx] != [0x%lx]", _UCODEIndex, dwTemp, dwRAM[_UCODEIndex+START]) ;
#endif
bRet = FALSE ;
break ;
}
}
#ifndef SYSTEM_8051
if (pdwUcode)
{
_hfree(pdwUcode);
pdwUcode = NULL;
}
#endif
// Chuan 278 2002/10/28: Check DSP ERAM
switch (bCode)
{
/*
case UCODE_DSPRAM_TONE:
#ifdef SYSTEM_8051
dwRAM = _dwTONERAM ;
#else
bRet = _OpenUCODE ( "toneram.inc" );
#endif
break ;
*/
#ifdef SUPPORT_WMA
case UCODE_DSPRAM_WMA: //Kevin1.08
#ifdef SYSTEM_8051
dwRAM = _dwWMAERAM ;
#else
bRet = _OpenUCODE ( "wmaeram.inc" );
#endif
break ;
#endif
}
for (_UCODEIndex=0; _UCODEIndex<dwRAM[1]; _UCODEIndex++)
{
W99AV_ReadDRAMData (ERAM_ADDR+_UCODEIndex, &dwTemp) ;
if(dwTemp!=dwRAM[_UCODEIndex+START])
{
#ifdef SUPPORT_PRINTF
printf ("\nCheck ERAM %d Error [0x%lx] != [0x%lx]", _UCODEIndex, dwTemp, dwRAM[_UCODEIndex+START]) ;
#endif
bRet = FALSE ;
break ;
}
}
W99AV_WriteRegDW (PCR, __wW99AVPCRLow, __wW99AVPCRHigh) ;
break ;
}
#ifndef SYSTEM_8051
if (pdwUcode)
{
_hfree(pdwUcode);
pdwUcode = NULL;
}
#endif
#endif // #ifdef CHECK_UCODE_LOAD
return bRet ;
}
#endif // #ifndef SUPPORT_GZIP_COMPRESSION
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -