/******************************************************************************* * mvSysPexInit - Initialize the Pex subsystem * * DESCRIPTION: * * INPUT: * None * OUTPUT: * None * RETURN: * None * *******************************************************************************/ MV_STATUS mvSysPexInit(MV_U32 pexIf, MV_PEX_TYPE pexType) { MV_PEX_HAL_DATA halData; MV_UNIT_WIN_INFO addrWinMap[MAX_TARGETS + 1]; MV_STATUS status; status = mvCtrlAddrWinMapBuild(addrWinMap, MAX_TARGETS + 1); if(status == MV_OK) status = mvPexWinInit(pexIf, pexType, addrWinMap); if(status == MV_OK) { halData.ctrlModel = mvCtrlModelGet(); halData.maxPexIf = mvCtrlPexMaxIfGet(); status = mvPexInit(pexIf, pexType, &halData); } return status; }
/******************************************************************************* * mvSysPexInit - Initialize the Pex subsystem * * DESCRIPTION: * * INPUT: * None * OUTPUT: * None * RETURN: * None * *******************************************************************************/ MV_STATUS mvSysPexInit(MV_U32 pexIf, MV_PEX_TYPE pexType) { MV_PEX_HAL_DATA halData; MV_UNIT_WIN_INFO addrWinMap[MAX_TARGETS + 1]; MV_STATUS status; if (MV_FALSE == mvCtrlPwrClckGet(PEX_UNIT_ID, pexIf)) return MV_ERROR; status = mvCtrlAddrWinMapBuild(addrWinMap, MAX_TARGETS + 1); if (status == MV_OK) status = mvPexWinInit(pexIf, pexType, addrWinMap); if (status == MV_OK) { halData.ctrlModel = mvCtrlModelGet(); halData.maxPexIf = mvCtrlPexMaxIfGet(); halData.ctrlFamily=mvCtrlDevFamilyIdGet(halData.ctrlModel); status = mvPexInit(pexIf, pexType, &halData); } return status; }
MV_STATUS mvPciIfInit(MV_U32 pciIf, PCI_IF_MODE pciIfmode) { PCI_IF_TYPE pciIfType = mvPciIfTypeGet(pciIf); if (PCI_IF_TYPE_CONVEN_PCIX == pciIfType) { #if defined(MV_INCLUDE_PCI) MV_PCI_MOD pciMod; if (PCI_IF_MODE_HOST == pciIfmode) { pciMod = MV_PCI_MOD_HOST; } else if (PCI_IF_MODE_DEVICE == pciIfmode) { pciMod = MV_PCI_MOD_DEVICE; } else { mvOsPrintf("%s: ERROR!!! Bus %d mode %d neither host nor device!\n", __FUNCTION__, pciIf, pciIfmode); return MV_FAIL; } return mvPciInit(pciIf - MV_PCI_START_IF, pciMod); #else return MV_OK; #endif } else if (PCI_IF_TYPE_PEX == pciIfType) { #if defined(MV_INCLUDE_PEX) MV_PEX_TYPE pexType; if (PCI_IF_MODE_HOST == pciIfmode) { pexType = MV_PEX_ROOT_COMPLEX; } else if (PCI_IF_MODE_DEVICE == pciIfmode) { pexType = MV_PEX_END_POINT; } else { mvOsPrintf("%s: ERROR!!! Bus %d type %d neither root complex nor" \ " end point\n", __FUNCTION__, pciIf, pciIfmode); return MV_FAIL; } return mvPexInit(pciIf - MV_PEX_START_IF, pexType); #else return MV_OK; #endif } else { mvOsPrintf("%s: ERROR!!! Invalid pciIf %d\n", __FUNCTION__, pciIf); } return MV_FAIL; }