/******************************************************************************* * mvAudioAddrDecShow - Print the AUDIO address decode map. * * DESCRIPTION: * This function print the AUDIO address decode map. * * INPUT: * None. * * OUTPUT: * None. * * RETURN: * None. * *******************************************************************************/ MV_VOID mvAudioUnitAddrDecShow(int unit) { MV_AUDIO_DEC_WIN win; int i; mvOsOutput( "\n" ); mvOsOutput( "AUDIO:\n" ); mvOsOutput( "----\n" ); for( i = 0; i < MV_AUDIO_MAX_ADDR_DECODE_WIN; i++ ) { memset( &win, 0, sizeof(MV_AUDIO_DEC_WIN) ); mvOsOutput( "win%d - ", i ); if( mvAudioWinGet(unit, i, &win) == MV_OK ) { if( win.enable ) { mvOsOutput( "%s base %08x, ", mvCtrlTargetNameGet(win.target), win.addrWin.baseLow ); mvOsOutput( "...." ); mvSizePrint( win.addrWin.size ); mvOsOutput( "\n" ); } else mvOsOutput( "disable\n" ); } } }
static MV_VOID mvXorAddrDecShowUnit(MV_U32 unit) { MV_XOR_DEC_WIN win; int i; mvOsOutput( "\n" ); mvOsOutput( "XOR %d:\n", unit ); mvOsOutput( "----\n" ); for( i = 0; i < XOR_MAX_ADDR_DEC_WIN; i++ ) { memset( &win, 0, sizeof(MV_XOR_DEC_WIN) ); mvOsOutput( "win%d - ", i ); if( mvXorTargetWinGet(unit, i, &win ) == MV_OK ) { if( win.enable ) { mvOsOutput( "%s base %x, ", mvCtrlTargetNameGet(win.target), win.addrWin.baseLow ); mvSizePrint( win.addrWin.size ); mvOsOutput( "\n" ); } else mvOsOutput( "disable\n" ); } } }
/******************************************************************************* * mvEthAddrDecShow - Print the Etherent address decode map. * * DESCRIPTION: * This function print the Etherent address decode map. * * INPUT: * None. * * OUTPUT: * None. * * RETURN: * None. * *******************************************************************************/ void mvEthPortAddrDecShow(int port) { MV_ETH_DEC_WIN win; int i; mvOsOutput( "\n" ); mvOsOutput( "ETH #%d:\n", port ); mvOsOutput( "----\n" ); for( i = 0; i < ETH_MAX_DECODE_WIN; i++ ) { memset( &win, 0, sizeof(ETH_MAX_DECODE_WIN) ); mvOsOutput( "win%d - ", i ); if( mvEthWinGet(port, i, &win ) == MV_OK ) { if( win.enable ) { mvOsOutput( "%s base %08x, ", mvCtrlTargetNameGet(win.target), win.addrWin.baseLow ); mvOsOutput( "...." ); mvSizePrint( win.addrWin.size ); mvOsOutput( "\n" ); } else mvOsOutput( "disable\n" ); } } return; }
/******************************************************************************* * mvCpuIfAddDecShow - Print the CPU address decode map. * * DESCRIPTION: * This function print the CPU address decode map. * * INPUT: * None. * * OUTPUT: * None. * * RETURN: * None. * *******************************************************************************/ MV_VOID mvCpuIfAddDecShow(MV_VOID) { MV_CPU_DEC_WIN win; MV_U32 target; mvOsOutput( "\n" ); mvOsOutput( "CPU Interface\n" ); mvOsOutput( "-------------\n" ); for( target = 0; target < MAX_TARGETS; target++ ) { memset( &win, 0, sizeof(MV_CPU_DEC_WIN) ); mvOsOutput( "%s ",mvCtrlTargetNameGet(target)); mvOsOutput( "...." ); if( mvCpuIfTargetWinGet( target, &win ) == MV_OK ) { if( win.enable ) { mvOsOutput( "base %08x, ", win.addrWin.baseLow ); mvSizePrint( win.addrWin.size ); mvOsOutput( "\n" ); } else mvOsOutput( "disable\n" ); } else if( mvCpuIfTargetWinGet( target, &win ) == MV_NO_SUCH ) { mvOsOutput( "no such\n" ); } } }
MV_VOID mvTdmAddrDecShow(MV_VOID) { MV_TDM_DEC_WIN win; int i; mvOsOutput( "\n" ); mvOsOutput( "TDM:\n" ); mvOsOutput( "----\n" ); for( i = 0; i < TDM_MBUS_MAX_WIN; i++ ) { memset( &win, 0, sizeof(MV_TDM_DEC_WIN) ); mvOsOutput( "win%d - ", i ); if (mvTdmWinGet(i, &win ) == MV_OK ) { if( win.enable ) { mvOsOutput( "%s base %08x, ", mvCtrlTargetNameGet(win.target), win.addrWin.baseLow); mvOsOutput( "...." ); mvSizePrint( win.addrWin.size ); mvOsOutput( "\n" ); } else mvOsOutput( "disable\n" ); } } }
/******************************************************************************* * mvAhbToMbusAddDecShow - Print the AHB to MBus bridge address decode map. * * DESCRIPTION: * This function print the CPU address decode map. * * INPUT: * None. * * OUTPUT: * None. * * RETURN: * None. * *******************************************************************************/ MV_VOID mvAhbToMbusAddDecShow(MV_VOID) { MV_AHB_TO_MBUS_DEC_WIN win; MV_U32 winNum; mvOsOutput( "\n" ); mvOsOutput( "AHB To MBUS Bridge:\n" ); mvOsOutput( "-------------------\n" ); for( winNum = 0; winNum < MAX_AHB_TO_MBUS_WINS; winNum++ ) { memset( &win, 0, sizeof(MV_AHB_TO_MBUS_DEC_WIN) ); mvOsOutput( "win%d - ", winNum ); if( mvAhbToMbusWinGet( winNum, &win ) == MV_OK ) { if( win.enable ) { mvOsOutput( "%s base %08x, ", mvCtrlTargetNameGet(win.target), win.addrWin.baseLow ); mvOsOutput( "...." ); mvSizePrint( win.addrWin.size ); mvOsOutput( "\n" ); } else mvOsOutput( "disable\n" ); } } }
/******************************************************************************* * mvSataAddrDecShow - Print the SATA address decode map. * * DESCRIPTION: * This function print the SATA address decode map. * * INPUT: * None. * * OUTPUT: * None. * * RETURN: * None. * *******************************************************************************/ MV_VOID mvSataAddrDecShow(MV_VOID) { MV_SATA_DEC_WIN win; int i,j; for( j = 0; j < MV_SATA_MAX_CHAN; j++ ) { if (MV_FALSE == mvCtrlPwrClckGet(SATA_UNIT_ID, j)) return; mvOsOutput( "\n" ); mvOsOutput( "SATA %d:\n", j ); mvOsOutput( "----\n" ); for( i = 0; i < MV_SATA_MAX_ADDR_DECODE_WIN; i++ ) { memset( &win, 0, sizeof(MV_SATA_DEC_WIN) ); mvOsOutput( "win%d - ", i ); if( mvSataWinGet(j, i, &win ) == MV_OK ) { if( win.enable ) { mvOsOutput( "%s base %08x, ", mvCtrlTargetNameGet(win.target), win.addrWin.baseLow ); mvOsOutput( "...." ); mvSizePrint( win.addrWin.size ); mvOsOutput( "\n" ); } else mvOsOutput( "disable\n" ); } } } }
static MV_VOID mvXorAddrDecShowUnit(MV_U32 unit) { MV_UNIT_WIN_INFO win; int i; mvOsOutput( "\n" ); mvOsOutput( "XOR %d:\n", unit ); mvOsOutput( "----\n" ); for( i = 0; i < XOR_MAX_ADDR_DEC_WIN; i++ ) { memset( &win, 0, sizeof(MV_UNIT_WIN_INFO) ); mvOsOutput( "win%d - ", i ); if( mvXorTargetWinRead(unit, i, &win ) == MV_OK ) { if( win.enable ) { /* In MV88F6781 there is no differentiation between different DRAM Chip Selects, */ /* they all use the same target ID and attributes. So in order to print correctly */ /* we use i as the target. When i is 1 it is SDRAM_CS1 etc. */ if (mvCtrlTargetByWinInfoGet(&win) != SDRAM_CS0) { mvOsOutput( "%s base %08x, ", mvCtrlTargetNameGet(mvCtrlTargetByWinInfoGet(&win)), win.addrWin.baseLow); } else { mvOsOutput( "%s base %08x, ", mvCtrlTargetNameGet(i), win.addrWin.baseLow); } mvSizePrint( win.addrWin.size ); mvOsOutput( "\n" ); } else mvOsOutput( "disable\n" ); } } }
/******************************************************************************* * mvTsuAddrDecShow * * DESCRIPTION: * Print the TSU address decode map. * * INPUT: * None. * * OUTPUT: * None. * * RETURN: * None. * *******************************************************************************/ void mvTsuAddrDecShow(void) { MV_TSU_DEC_WIN win; int i; if (MV_FALSE == mvCtrlPwrClckGet(TS_UNIT_ID, 0)) return; mvOsOutput( "\n" ); mvOsOutput( "TSU:\n"); mvOsOutput( "----\n" ); for(i = 0; i < TSU_MAX_DECODE_WIN; i++) { memset(&win, 0, sizeof(TSU_MAX_DECODE_WIN)); mvOsOutput( "win%d - ", i ); if(mvTsuWinGet(i, &win ) == MV_OK ) { if(win.enable == MV_TRUE) { mvOsOutput("%s base %08x, ", mvCtrlTargetNameGet(win.target), win.addrWin.baseLow); mvOsOutput( "...." ); mvSizePrint(win.addrWin.size ); mvOsOutput( "\n" ); } else { mvOsOutput( "disable\n" ); } } } return; }
/******************************************************************************* * mvAhbToMbusAddDecShow - Print the Ahb to MBus bridge address decode map. * * DESCRIPTION: * This function print the CPU address decode map. * * INPUT: * cpu - CPU id * * OUTPUT: * None. * * RETURN: * None. * *******************************************************************************/ MV_VOID mvAhbToMbusAddDecShow(MV_U32 cpu) { MV_AHB_TO_MBUS_DEC_WIN win; MV_U32 winNum; /* Check parameters */ if (cpu >= MV_MAX_CPU) { mvOsPrintf("mvAhbToMbusAddDecShow: ERR. Invalid cpu %d\n", cpu); return; } mvOsOutput( "\n" ); mvOsOutput( "CPU %d, AHB To MBUS Bridge:\n", cpu); mvOsOutput( "-------------------\n" ); for( winNum = 0; winNum < MAX_AHB_TO_MBUS_WINS; winNum++ ) { memset( &win, 0, sizeof(MV_AHB_TO_MBUS_DEC_WIN) ); mvOsOutput( "win%d - ", winNum ); if( mvAhbToMbusWinGet(cpu, winNum, &win ) == MV_OK ) { if( win.enable ) { mvOsOutput( "%s base %08x, ", mvCtrlTargetNameGet(win.target), win.addrWin.baseLow ); mvOsOutput( "...." ); mvSizePrint( win.addrWin.size ); mvOsOutput( "\n" ); } else mvOsOutput( "disable\n" ); } } }
/******************************************************************************* * mvNflashPrint - Print NAND flash information structure. * * DESCRIPTION: * Prints all the feilds in the NAND flash info structure. * * INPUT: * pFlash - Flash information. * * OUTPUT: * None * * RETURN: * None * *******************************************************************************/ MV_VOID mvNflashPrint(MV_NFLASH_INFO *pFlash) { int i, lockedBlocksFound = 0; NFLASH_LOCK_MODE lockMode; if (NULL == pFlash) { mvOsOutput ("Missing or unknown FLASH type\n"); return; } mvOsOutput ("NAND Flash information:\n"); mvOsOutput ("Manufacture: "); switch (pFlash->pNflashStruct->devVen) { case SAMSUNG_MANUF: mvOsOutput ("SAMSUNG\n"); break; default: mvOsOutput ("Unknown Vendor 0x%x\n", pFlash->pNflashStruct->devVen); break; } mvOsOutput ("Flash Type : "); switch (pFlash->pNflashStruct->devId) { case K9F5608Q0C: mvOsOutput ("K9F5608Q0C (x8-bit)\n"); break; case K9F5608D0C: mvOsOutput ("K9F5608D0C or K9F5608U0C(x8-bit)\n"); break; case K9F5616Q0C: mvOsOutput ("K9F5616Q0C (x16-bit)\n"); break; case K9F5616D0C: mvOsOutput ("K9F5616D0C or K9F5616U0C(x16-bit)\n"); break; default: mvOsOutput ("Unknown device id 0x%x\n", pFlash->pNflashStruct->devId); break; } mvOsOutput("Flash "); mvSizePrint(pFlash->pNflashStruct->size); mvOsOutput ("\n"); mvOsOutput("Flash base Address: 0x%x\n",pFlash->baseAddr); mvOsOutput("Flash device Width: %d.\n", pFlash->devWidth); mvOsOutput("Number of blocks: %d\n", pFlash->pNflashStruct->blockNum); mvOsOutput ("Block Start Addresses:"); for (i = 0; i < pFlash->pNflashStruct->blockNum; ++i) { lockMode = mvNflashBlockLockStsGet(pFlash,i); if (BLOCK_UNLOCK == lockMode) { continue; } lockedBlocksFound++; if ((i % 5) == 0) mvOsOutput ("\n "); mvOsOutput (" %08x %s", mvNflashBlkOffsGet(pFlash, i), (lockMode == BLOCK_LOCK) ? "Lock" : "Tight"); } mvOsOutput("\n"); mvOsOutput("Found %d Read only blocks\n", lockedBlocksFound); return; }
/******************************************************************************* * mvUsbAddrDecShow - Print the USB address decode map. * * DESCRIPTION: * This function print the USB address decode map. * * INPUT: * None. * * OUTPUT: * None. * * RETURN: * None. * *******************************************************************************/ MV_VOID mvUsbAddrDecShow(MV_VOID) { MV_UNIT_WIN_INFO addrDecWin; int i, winNum; mvOsOutput( "\n" ); mvOsOutput( "USB:\n" ); mvOsOutput( "----\n" ); for(i=0; i<mvCtrlUsbMaxGet(); i++) { mvOsOutput( "Device %d:\n", i); for(winNum = 0; winNum < MV_USB_MAX_ADDR_DECODE_WIN; winNum++) { memset(&addrDecWin, 0, sizeof(MV_DEC_WIN) ); mvOsOutput( "win%d - ", winNum ); if( mvUsbWinRead(i, winNum, &addrDecWin ) == MV_OK ) { if( addrDecWin.enable ) { /* In MV88F6781 there is no differentiation between different DRAM Chip Selects, */ /* they all use the same target ID and attributes. So in order to print correctly */ /* we use i as the target. When i is 1 it is SDRAM_CS1 etc. */ if (mvCtrlTargetByWinInfoGet(&addrDecWin) != SDRAM_CS0) { mvOsOutput( "%s base %08x, ", mvCtrlTargetNameGet(mvCtrlTargetByWinInfoGet(&addrDecWin)), addrDecWin.addrWin.baseLow ); } else { mvOsOutput( "%s base %08x, ", mvCtrlTargetNameGet(winNum), addrDecWin.addrWin.baseLow); } mvSizePrint( addrDecWin.addrWin.size ); #if defined(MV645xx) || defined(MV646xx) switch( addrDecWin.addrWinAttr.swapType) { case MV_BYTE_SWAP: mvOsOutput( "BYTE_SWAP, " ); break; case MV_NO_SWAP: mvOsOutput( "NO_SWAP , " ); break; case MV_BYTE_WORD_SWAP: mvOsOutput( "BYTE_WORD_SWAP, " ); break; case MV_WORD_SWAP: mvOsOutput( "WORD_SWAP, " ); break; default: mvOsOutput( "SWAP N/A , " ); } switch( addrDecWin.addrWinAttr.cachePolicy ) { case NO_COHERENCY: mvOsOutput( "NO_COHERENCY , " ); break; case WT_COHERENCY: mvOsOutput( "WT_COHERENCY , " ); break; case WB_COHERENCY: mvOsOutput( "WB_COHERENCY , " ); break; default: mvOsOutput( "COHERENCY N/A, " ); } switch( addrDecWin.addrWinAttr.pcixNoSnoop ) { case 0: mvOsOutput( "PCI-X NS inactive, " ); break; case 1: mvOsOutput( "PCI-X NS active , " ); break; default: mvOsOutput( "PCI-X NS N/A , " ); } switch( addrDecWin.addrWinAttr.p2pReq64 ) { case 0: mvOsOutput( "REQ64 force" ); break; case 1: mvOsOutput( "REQ64 detect" ); break; default: mvOsOutput( "REQ64 N/A" ); } #endif /* MV645xx || MV646xx */ mvOsOutput( "\n" ); } else mvOsOutput( "disable\n" ); } } } }