/*******************************************************************************
* 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;
}
Esempio n. 2
0
/*******************************************************************************
* 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;
}
Esempio n. 3
0
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;

}