亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sysend.c.bak

?? INTEL IXP425的VXWORKS BSP
?? BAK
?? 第 1 頁 / 共 3 頁
字號:
** This routine find out the PCI device, and map its memory and I/O address.* It will understand both DEC21x4x and FEI type cards.** RETURNS: N/A*/STATUS sysLanPciInit (void){    PciDevice *         pDev;           /* Pci resources */    PCI_RESOURCES *	pRsrc;		/* dec resource */    UINT32		pciBus;		/* PCI Bus number */    UINT32		pciDevice = 0;	/* PCI Device number */    UINT32		pciFunc;	/* PCI Function number */    unsigned int	ix;		/* counter */    int			iy;		/* counter */    int			unit = 0;	/* unit numbers */    UINT32		boardType = NONE; /* board type detected */#ifdef INCLUDE_FEI82557END    FEI_RESOURCE *      pFeiRes;        /* FEI specific info */#ifndef  IXP425_PCI_SIMPLE_MAPPING    void* feiMemBase=NULL;#endif#endif    /* Setup Interrupt Pointers */    feiEndIntConnect = (FUNCPTR) pciIntConnect;    feiEndIntDisconnect = (FUNCPTR) pciIntDisconnect;    /* Find the first empty entry in the endDevTable*/    while(endDevTbl[currentEndDevice].endLoadFunc != END_TBL_END)    {	currentEndDevice++;    }    /*     * The following code tries to automatically detect and configure     * all instances of supported Ethernet cards.     */    printpxu("\r\n  BOARD_TYPE_NB", BOARD_TYPE_NB);    for (ix = 0; ix < BOARD_TYPE_NB; ix++)    {        for (iy = 0; iy < IXP425_PCI_MAX_DEV; iy++)        {            if( (pDev = pciDeviceGet(boardResources[ix].vendorId,                   boardResources[ix].deviceId, iy) ) == NULL)                break;	/* skip to next vendor/product pair */            if( pDev->error == TRUE )            {                break;  /* Something wrong here */            }            /* board detected */            boardType = boardResources[ix].type;            pciBus = pDev->bus;            pciDevice = pDev->device;            pciFunc = pDev->func;            /*             * Update the END device table             *             * pciDevice for PCI cards plugged in is in the range 5 to 8.             */            pRsrc = &(pciResources[pciDevice]);            /* We only do Auto Configuration */            /* get memory base address and I/O base address */#ifdef INCLUDE_FEI82557END            	            if ((boardType >= FEI_START) &&                 (boardType < (FEI_START + TYPE_ALLOC)))                {                pFeiRes = &feiResources [unit];                pFeiRes->pciBus    = pciBus;                pFeiRes->pciDevice = pciDevice;                pFeiRes->pciFunc   = pciFunc;                pFeiRes->membaseCsr = pDev->bar[0].address;                /* Convert to CPU address */                pFeiRes->membaseCsr += CPU_PCI_MEM_ADRS;#ifdef PCI_IO_ADRS_OK                pFeiRes->iobaseCsr = pDev->bar[1].address;                pFeiRes->iobaseCsr &= ~PCI_BASE_IO;                pFeiRes->iobaseCsr += CPU_PCI_IO_ADRS;#else                pFeiRes->iobaseCsr = pFeiRes->membaseCsr;#endif                pFeiRes->membaseFlash = pDev->bar[2].address;                pFeiRes->membaseFlash += CPU_PCI_MEM_ADRS;                pFeiRes->irq = pDev->irq;                 pFeiRes->configType = boardType;                }#endif /* INCLUDE_FEI82557END */            /*             * Update the END device table & dynamically create the load             * string we need for this device             */#ifdef INCLUDE_FEI82557END            if ((boardType >= FEI_START) &&                (boardType < (FEI_START + TYPE_ALLOC)))                {                pRsrc->buf = (void *)NONE;#ifndef  IXP425_PCI_SIMPLE_MAPPING		/*allocate memory for FEI END device*/		feiMemBase = cacheDmaMalloc(FEI_TOTAL_SIZE);		if (feiMemBase == NULL)		{		    return ERROR;		}                sprintf (endLoadStr[currentEndDevice],                         "0x%x:0x%x:0x%x:0x%x:0x00:2", (UINT32)feiMemBase                         , (UINT32)FEI_TOTAL_SIZE, (UINT32)FEI_N_TFDS, (UINT32)FEI_N_RFDS);		/* set up BAR in PCI controller so that the PCI device can access		   the memory that has just been set up for it*/		if(sysPciMappingAdd((UINT32)feiMemBase, FEI_TOTAL_SIZE)!=OK)		{		    printf("sysPciMappingAdd failed in sysLanPciInit\n");		    return ERROR;		}#else	                sprintf (endLoadStr[currentEndDevice],                        "-1:0x00:0x20:0x20:0x00:2");#endif                 endDevTbl[currentEndDevice].unit = unit++;                endDevTbl[currentEndDevice].endLoadFunc = fei82557EndLoad;                endDevTbl[currentEndDevice].endLoadString =                                                endLoadStr[currentEndDevice];                endDevTbl[currentEndDevice].endLoan = 1;                currentEndDevice++;                /* enable mapped I/O addresses */                pciConfigOutWord (pciBus, pciDevice, pciFunc,                          PCI_CFG_COMMAND, PCI_CMD_IO_ENABLE | PCI_CMD_MEM_ENABLE |                          PCI_CMD_MASTER_ENABLE);                feiUnits++;                }#endif /* INCLUDE_FEI82557END */            }        }    return OK;    }#ifdef INCLUDE_FEI82557END/********************************************************************************* sys557Init - prepare LAN adapter for 82557 initialization** This routine is expected to perform any adapter-specific or target-specific* initialization that must be done prior to initializing the 82557.** The 82557 driver calls this routine from the driver attach routine before* any other routines in this library.** This routine returns the interrupt level the <pIntLvl> parameter.** RETURNS: OK or ERROR if the adapter could not be prepared for initialization.*/STATUS sys557Init    (    int	unit,			/* unit number */    FEI_BOARD_INFO * pBoard     /* board information for the end driver */    ){    volatile FEI_RESOURCE * pReso = &feiResources [unit];/*    UINT16	sum          = 0;    int		ix;    int		iy;    UINT16	value;  */    void *	testbuf = 0;	/* keep compiler quiet */  #ifdef PCI_END_DEBUG    int errors;    UINT32 testrepeat = 1000;#endif    /*     * Locate the 82557 based adapter - PRO100B, INBUSINESS and XXX.     * Note that since the INBUSINESS adapter is based upon the PRO100B     * board type, it is initialised and driven like one.     */        if (pReso->boardType != UNKNOWN)		/* only setup once */	{	    	}    else	{	   printfxu("\r\n    pReso->boardType is UNKNOWN!");	 	   	/* read the configuration in EEPROM */          #ifdef PCI_END_DEBUG	    printf("RFD_SIZE = 0x%x\n",RFD_SIZE);	    printf("CFD_SIZE    = 0x%x\n",CFD_SIZE); 	    printf("TOTAL FEI STORAGE: 0x%x\n",FEI_TOTAL_SIZE);/*	    errors=0;	    for(ix=0;ix<testrepeat; ix++)	    {		value = sys557eepromRead (unit, 0);		if(value != 0x0200)		{		    errors++;		}	    }	    printf("Test of eeprom read resulted in %d errors from %d reads\n",errors,testrepeat);  */#endif/*	    for (ix = 0; ix < EE_SIZE; ix++)	    {	    value = sys557eepromRead (unit, ix);	    pReso->eeprom[ix] = value;	    	   	    sum += value;#ifdef PCI_END_DEBUG	    printf("%4.4x ", value);	    if(ix % 4 ==0)	    {		printf("\n");	    }#endif	    }     	  	if (sum != EE_CHECKSUM)	{            printf ("\nfei%d: Invalid EEPROM checksum %#4.4x\n", unit, sum);  	}     */	/* DP83840 specific setup *//*	if (((pReso->eeprom[6]>>8) & 0x3f) == DP83840)	    {	    int reg23 = sys557mdioRead (unit, pReso->eeprom[6] & 0x1f, 23);	    sys557mdioWrite (unit, pReso->eeprom[6] & 0x1f, 23, reg23 | 0x0420);	    }    */	/* perform a system self-test. */        pReso->timeout = 16000;		/* Timeout for self-test. */	/*	 * No specific area specified, so we assume that cacheDmaMalloc() will	 * return a pointer to a suitable area. If the data cache is on,	 * this will be page-aligned, but if the data cache is off, then we	 * will just get whatever malloc returns.	 */       	if (testbuf = cacheDmaMalloc (32), testbuf == 0)	    {	    printf("fei%d cacheDmaMalloc failed\n", unit);	    return ERROR;	    }      		pReso->pResults = (volatile INT32 *)testbuf;	/* The chip requires the results buffer to be 16-byte aligned. */        pReso->pResults    = (volatile INT32 *)			     ((((int) pReso->pResults) + 0xf) & ~0xf);	/* initialise results buffer */	pReso->pResults[0] = 0;	pReso->pResults[1] = -1;		/* Issue the self-test command */	if(sysPhysToPci((void*)pReso->pResults) == NULL)	{	    printf("pReso->pResults does not reside in an area that the PCI devices can access\n");	}	/*reset the chip*/	sysPciOutLong (pReso->iobaseCsr + 0x8, 0x0);	sysDelay();	/*perform self test*/	sysPciOutLong (pReso->iobaseCsr + 0x8, sysPhysToPci((void*)pReso->pResults) | 1);#ifdef PCI_END_DEBUG	printf("Asked the PCI NIC to write result of self test to PCI ADDR:0x%x\n",(UINT32)sysPhysToPci((void*)pReso->pResults));	printf("AHB address of results: 0x%x\n", (UINT32)pReso->pResults);#endif	/* wait for results */	do	    {	    sysDelay();		/* cause a delay of at least an I/O cycle */	    }	while ((pReso->pResults[1] == -1) && (--pReso->timeout >= 0));            	if (pReso->timeout < 0)        {		/* Test optimized out. */           	    printf ("Self test failed, status %8.8x:\n"		    " Failure to initialize the 82557.\n"		    " Verify that the card is a bus-master capable slot.\n",		    pReso->pResults[1]);	}	else        {                 #ifdef PCI_END_DEBUG	    printf ("General self-test: %s.\n"		    " Serial sub-system self-test: %s.\n"		    " Internal registers self-test: %s.\n"		    " ROM checksum self-test: %s (%#8.8x).\n",		    pReso->pResults[1] & 0x1000 ? "failed" : "passed",		    pReso->pResults[1] & 0x0020 ? "failed" : "passed",		    pReso->pResults[1] & 0x0008 ? "failed" : "passed",		    pReso->pResults[1] & 0x0004 ? "failed" : "passed",		    pReso->pResults[0]);#endif        }	 printfxu("  pReso->boardType is assigned as PRO100B.");        pReso->boardType = PRO100B;	/* note that it is now initialised */        /* Save results so we can refer to them again later */        pReso->str[0] = pReso->pResults[0];        pReso->str[1] = pReso->pResults[1];        cacheDmaFree (testbuf);        pReso->pResults = pReso->str;	}    /* initialise the board information structure */        pBoard->vector	  = IVEC_TO_INUM(pReso->irq);    pBoard->baseAddr	  = pReso->iobaseCsr;       /***************************************************      *  Call functionRead Mac address from flash config space.      *      *  If successful, return true with mac address in MacAddress,      *        pBoard->enetAddr is assigned with MacAddress.      *  If failure, return false,        *        pBoard->enetAddr is assigned with sysMacBase.      ***************************************************      */   {    unsigned char MacAddress[6];    unsigned char key[100]; 	    sprintf(key, "mac_eth%d", unit);        if(GetMac(key, &MacAddress[0]) == 0)    {            	 pBoard->enetAddr[0] = MacAddress[0];	 pBoard->enetAddr[1] = MacAddress[1];	 pBoard->enetAddr[2] = MacAddress[2];	 pBoard->enetAddr[3] = MacAddress[3];	 pBoard->enetAddr[4] = MacAddress[4];	 pBoard->enetAddr[5] = MacAddress[5];          }    else    {        pBoard->enetAddr[0] = 0x00;        pBoard->enetAddr[1] = 0xe0;        pBoard->enetAddr[2] = 0x8e;        pBoard->enetAddr[3] = sysMacBase[2];        pBoard->enetAddr[4] = sysMacBase[1];        pBoard->enetAddr[5] = sysMacBase[0]+unit;    }    }	    pBoard->intEnable	  = sys557IntEnable;    pBoard->intDisable	  = sys557IntDisable;    pBoard->intAck	  = sys557IntAck;    /* install address conversion routines for driver     The fei driver needs these to figure out what addresses it needs to     tell the nic to write to (PCI addresses) in order to access the appropriate    areas of the AHB*/    pBoard->sysLocalToBus = sys557EndPhysToPci;    pBoard->sysBusToLocal = sys557EndPciToPhys;#ifdef FEI_10MB    pBoard->phySpeed	  = NULL;    pBoard->phyDpx	  = NULL;#endif        intEnable (pReso->irq);    return (OK);	    }/*******************************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91精品精华液一区二区三区| 国产丝袜在线精品| 国产视频一区不卡| ㊣最新国产の精品bt伙计久久| 久久99深爱久久99精品| 色综合久久久久网| 国产精品久久久久影视| 久久99精品国产麻豆不卡| 欧美做爰猛烈大尺度电影无法无天| 亚洲欧美一区二区视频| 99精品国产91久久久久久| 亚洲欧美一区二区视频| 色妞www精品视频| 一区二区三区日本| 欧美日韩中文国产| 一区二区三区国产豹纹内裤在线| 色妞www精品视频| 亚洲国产你懂的| 欧美日韩一区二区三区四区| 亚洲v中文字幕| 日韩午夜在线播放| 国产麻豆精品一区二区| 中文字幕成人网| 99国产麻豆精品| 亚洲精品乱码久久久久久 | 精品久久久久久久久久久院品网 | 亚洲男人的天堂av| 在线观看亚洲精品视频| 国产精品成人一区二区艾草| 国产精品自拍av| 亚洲国产精品精华液ab| 91蜜桃在线观看| 综合久久久久综合| 欧美日韩日日骚| 国产一区二区三区免费观看| 精品免费一区二区三区| 国产成人av电影在线| 亚洲影院理伦片| 精品欧美一区二区在线观看| 不卡视频在线看| 免费在线欧美视频| 国产欧美日韩在线视频| 欧美亚洲丝袜传媒另类| 美日韩黄色大片| 国产精品对白交换视频| 欧美日韩精品二区第二页| 激情国产一区二区| 亚洲欧美视频在线观看视频| 欧美一级片在线观看| 成人黄色在线视频| 亚洲第一电影网| 国产蜜臀av在线一区二区三区| 91行情网站电视在线观看高清版| 久久精品国产久精国产| 樱花影视一区二区| 久久久久久久久久久电影| 欧美在线观看一区| 国产99久久精品| 蜜桃一区二区三区在线| 亚洲黄色尤物视频| 久久久国产精华| 欧美精品第一页| 成人免费视频app| 免费成人深夜小野草| 亚洲日本成人在线观看| 日韩美女一区二区三区四区| 色94色欧美sute亚洲线路一久| 另类小说综合欧美亚洲| 一区二区三区中文在线| 国产精品污网站| 欧美成人一区二区三区在线观看| 色狠狠色噜噜噜综合网| 国产成人在线观看| 久久超碰97中文字幕| 午夜电影网一区| 亚洲精品成人在线| 国产精品三级视频| 久久九九久精品国产免费直播| 欧美日韩国产美| 欧美性色综合网| 色婷婷一区二区三区四区| 懂色av噜噜一区二区三区av| 国产一区三区三区| 蜜桃久久精品一区二区| 日韩高清电影一区| 亚洲6080在线| 亚洲综合丁香婷婷六月香| 亚洲视频香蕉人妖| 亚洲人成人一区二区在线观看| 国产日韩精品久久久| 久久久久久久综合日本| 欧美va亚洲va| 欧美大片一区二区三区| 欧美一区二区啪啪| 日韩三级在线免费观看| 欧美一区二区在线观看| 欧美日韩一区二区三区高清 | 一区二区三区不卡视频| 日韩伦理电影网| 亚洲精品免费看| 亚洲自拍偷拍图区| 亚洲第一二三四区| 热久久国产精品| 久久99精品国产麻豆不卡| 韩国三级电影一区二区| 国产呦萝稀缺另类资源| 国产一区二区不卡| 美女免费视频一区| 国产一区二区三区免费| 国产黄色精品网站| 国产sm精品调教视频网站| www.久久精品| 在线观看av一区| 51精品国自产在线| 久久尤物电影视频在线观看| 国产欧美日韩在线| 亚洲视频一二区| 日本视频中文字幕一区二区三区| 五月天丁香久久| 国内精品视频一区二区三区八戒| 国产精品一区免费在线观看| 成人毛片在线观看| 色婷婷综合久久久中文字幕| 制服丝袜一区二区三区| 久久久久久久网| 亚洲男女毛片无遮挡| 肉色丝袜一区二区| 国产精品亚洲视频| 色偷偷一区二区三区| 欧美一二三区在线| 久久综合久久鬼色中文字| 国产视频一区在线播放| 亚洲精品国产第一综合99久久| 亚洲v日本v欧美v久久精品| 六月丁香婷婷色狠狠久久| 国产成人综合自拍| youjizz国产精品| 在线观看日韩电影| 日韩视频永久免费| 亚洲欧洲韩国日本视频| 亚洲午夜久久久久中文字幕久| 亚洲电影一区二区| 久久99精品视频| 成人激情校园春色| 精品国产99国产精品| 国产色爱av资源综合区| 一区二区在线免费观看| 国产精品夜夜嗨| 7777精品伊人久久久大香线蕉的| 国产色产综合产在线视频| 日韩高清中文字幕一区| 91色porny| 51精品国自产在线| 国产精品久久久久久亚洲伦| 亚洲自拍偷拍av| 国产美女娇喘av呻吟久久| 欧美午夜在线观看| 国产人成亚洲第一网站在线播放| 亚洲最大成人综合| 成人成人成人在线视频| 精品粉嫩aⅴ一区二区三区四区| 国产精品久久久久精k8| 黄页网站大全一区二区| 色婷婷久久久综合中文字幕| 91精品视频网| 亚洲午夜日本在线观看| 成人免费视频caoporn| 91精品国产色综合久久久蜜香臀| 国产日韩一级二级三级| 日韩国产欧美在线播放| 色菇凉天天综合网| 欧美成人免费网站| 日韩专区一卡二卡| 一本一道综合狠狠老| 欧美国产激情二区三区| 另类调教123区 | 亚洲精品日日夜夜| 99re视频精品| 国产精品免费av| 国产精品一区二区久久精品爱涩| 91精品国产一区二区三区香蕉| 亚洲综合成人网| 在线精品亚洲一区二区不卡| 久久夜色精品国产噜噜av| 麻豆久久一区二区| 日韩欧美亚洲国产精品字幕久久久| 日韩精品一二三四| 欧美一级xxx| 精东粉嫩av免费一区二区三区| 欧洲一区二区三区在线| 亚洲特级片在线| 99国产精品视频免费观看| 中文字幕视频一区二区三区久| 风间由美中文字幕在线看视频国产欧美| 日韩亚洲国产中文字幕欧美| 亚洲成人精品在线观看| 欧美日韩久久久久久| 青青青爽久久午夜综合久久午夜| 欧美一区午夜精品| 国产精品123区|