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

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

?? sysend.c

?? vxwork arm920 bsp開發包
?? C
?? 第 1 頁 / 共 3 頁
字號:
    if (pReso->boardType == PRO100B)		/* only setup once */	{	}    else	{	/* read the configuration in EEPROM */	for (ix = 0; ix < EE_SIZE; ix++)	    {	    value = sys557eepromRead (unit, ix);	    pReso->eeprom[ix] = value;	    sum += value;	    }	if (sum != EE_CHECKSUM)	    printf ("fei%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. */	/*	 * We require either a cache-line sized buffer in order to be	 * able to flush the cache, or use a buffer that is marked as	 * non-cacheable. If the driver is configured to use a defined	 * area of memory, we assume that it will be marked as	 * non-cacheable. We will use that (temporarily).	 */#ifdef INTEGRATOR_ENET_FIXED_BUF_ADRS	pReso->pResults = (volatile INT32 *)sysEnetBufAdrs [unit];#else	/*	 * 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;#ifdef INTEGRATOR_ENET_CHECK_BUFFERS	if (((UINT32)pReso->pResults) < INTEGRATOR_HDR_SSRAM_SIZE)	    {	    printf("fei%d: cacheDmaMalloc() returned address in \		    header card SSRAM\n", unit);	    return ERROR;	    }#endif /* INTEGRATOR_ENET_CHECK_BUFFERS */#endif /* INTEGRATOR_ENET_FIXED_BUF_ADRS */	/* 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 */#ifdef INTEGRATOR_ENET_FIXED_BUF_ADRS	/* If fixed address specified, no address conversion will be required */	sysOutLong (pReso->iobaseCsr + SCB_PORT, (int)pReso->pResults | 1);#else /* INTEGRATOR_ENET_FIXED_BUF_ADRS */	/*	 * If using cacheDmaMalloc() it will return a "low-alias" address in	 * SDRAM, and this will need converting to a "high-alias"	 * address, so it can be accessed from the PCI bus.	 */	sysOutLong (pReso->iobaseCsr + SCB_PORT,		    sys557CpuToPci(unit, (int)pReso->pResults) | 1);#endif /* INTEGRATOR_ENET_FIXED_BUF_ADRS */	/* wait for results */	do	    {	    sysDelay();		/* cause a delay of at least an I/O cycle */	    }	while ((pReso->pResults[1] == -1) && (--pReso->timeout >= 0));        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];#ifndef INTEGRATOR_ENET_FIXED_BUF_ADRS        cacheDmaFree (testbuf);#endif        pReso->pResults = pReso->str;	}    /* initialise the board information structure */    pBoard->vector	  = IVEC_TO_INUM(pReso->irq);    pBoard->baseAddr	  = pReso->iobaseCsr;    for (ix = 0, iy = 0; ix < 3; ix++)	{	pBoard->enetAddr[iy++] = pReso->eeprom[ix] & 0xff;	pBoard->enetAddr[iy++] = (pReso->eeprom[ix] >> 8) & 0xff;	}    pBoard->intEnable	  = sys557IntEnable;    pBoard->intDisable	  = sys557IntDisable;    pBoard->intAck	  = sys557IntAck;    /* install address conversion routines for driver, if appropriate */#ifndef INTEGRATOR_ENET_FIXED_BUF_ADRS    pBoard->sysLocalToBus = sys557CpuToPci;    pBoard->sysBusToLocal = sys557PciToCpu;#else    pBoard->sysLocalToBus = NULL;    pBoard->sysBusToLocal = NULL;#endif#ifdef FEI_10MB    pBoard->phySpeed	  = NULL;    pBoard->phyDpx	  = NULL;#endif    return (OK);    }/********************************************************************************* sys557IntAck - acknowledge an 82557 interrupt** This routine performs any 82557 interrupt acknowledge that may be* required.  This typically involves an operation to some interrupt* control hardware.** This routine gets called from the 82557 driver's interrupt handler.** This routine assumes that the PCI configuration information has already* been setup.** RETURNS: OK, or ERROR if the interrupt could not be acknowledged.*/LOCAL STATUS sys557IntAck    (    int	unit		/* unit number */    )    {    FEI_RESOURCE * pReso = &feiResources [unit];    switch (pReso->boardType)	{	case PRO100B:		/* handle PRO100B LAN Adapter */	    /* no addition work necessary for the PRO100B */	    break;	default:	    return (ERROR);	}    return (OK);    }/********************************************************************************* sys557IntEnable - enable 82557 interrupts** This routine enables 82557 interrupts.  This may involve operations on* interrupt control hardware.** The 82557 driver calls this routine throughout normal operation to terminate* critical sections of code.** This routine assumes that the PCI configuration information has already* been setup.** RETURNS: OK, or ERROR if interrupts could not be enabled.*/LOCAL STATUS sys557IntEnable    (    int	unit		/* unit number */    )    {    FEI_RESOURCE * pReso = &feiResources [unit];    switch (pReso->boardType)	{	case PRO100B:		/* handle PRO100B LAN Adapter */	    intEnable (pReso->irq);	    break;	default:	    return (ERROR);	}    return (OK);    }/********************************************************************************* sys557IntDisable - disable 82557 interrupts** This routine disables 82557 interrupts.  This may involve operations on* interrupt control hardware.** The 82557 driver calls this routine throughout normal operation to enter* critical sections of code.** This routine assumes that the PCI configuration information has already* been setup.** RETURNS: OK, or ERROR if interrupts could not be disabled.*/LOCAL STATUS sys557IntDisable    (    int	unit		/* unit number */    )    {    FEI_RESOURCE * pReso = &feiResources [unit];    switch (pReso->boardType)	{	case PRO100B:		/* handle PRO100B LAN Adapter */	    intDisable (pReso->irq);	    break;	default:	    return (ERROR);	}    return (OK);    }/********************************************************************************* sys557eepromRead - read a word from the 82557 EEPROM** RETURNS: the EEPROM data word read in.*/LOCAL UINT16 sys557eepromRead    (    int	unit,		/* unit number */    int	location	/* address of word to be read */    )    {    UINT32 iobase = feiResources[unit].iobaseCsr;    UINT16 retval = 0;    UINT16 dataval;    volatile UINT16 dummy;    int ix;    sysOutWord (iobase + SCB_EEPROM, EE_CS);	/* enable EEPROM */    /* write the READ opcode */    for (ix = EE_CMD_BITS - 1; ix >= 0; ix--)	{        dataval = (EE_CMD_READ & (1 << ix)) ? EE_DI : 0;        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval);        sysDelay ();	/* delay for one I/O READ cycle */        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval | EE_SK);        sysDelay ();	/* delay for one I/O READ cycle */        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval);        sysDelay ();	/* delay for one I/O READ cycle */        }    /* write the location */    for (ix = EE_ADDR_BITS - 1; ix >= 0; ix--)	{        dataval = (location & (1 << ix)) ? EE_DI : 0;        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval);        sysDelay ();	/* delay for one I/O READ cycle */        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval | EE_SK);        sysDelay ();	/* delay for one I/O READ cycle */        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval);        sysDelay ();	/* delay for one I/O READ cycle */	dummy = sysInWord (iobase + SCB_EEPROM);        }    if ((dummy & EE_DO) == 0)		/* dummy read */	;    /* read the data */    for (ix = EE_DATA_BITS - 1; ix >= 0; ix--)	{        sysOutWord (iobase + SCB_EEPROM, EE_CS | EE_SK);        sysDelay ();	/* delay for one I/O READ cycle */        retval = (retval << 1) |	         ((sysInWord (iobase + SCB_EEPROM) & EE_DO) ? 1 : 0);        sysOutWord (iobase + SCB_EEPROM, EE_CS);        sysDelay ();	/* delay for one I/O READ cycle */        }    sysOutWord (iobase + SCB_EEPROM, 0x00);	/* disable EEPROM */    return (retval);    }/********************************************************************************* sys557mdioRead - read MDIO** RETURNS: read value*/LOCAL UINT32 sys557mdioRead    (    int	unit,		/* unit number */    int phyId,		/* PHY ID */    int location	/* location to read */    )    {    UINT32 iobase = feiResources[unit].iobaseCsr;    int timeout   = 64*4;	/* <64 usec. to complete, typ 27 ticks */    int val;    sysOutLong (iobase + SCB_MDI, 0x08000000 | (location<<16) | (phyId<<21));    do {    	sysDelay ();	/* delay for one I/O READ cycle */    	val = sysInLong (iobase + SCB_MDI);    	if (--timeout < 0)    	    printf ("sys557mdioRead() timed out with val = %8.8x.\n", val);        } while (! (val & 0x10000000));    return (val & 0xffff);    }/********************************************************************************* sys557mdioWrite - write MDIO** RETURNS: write value*/LOCAL UINT32 sys557mdioWrite    (    int unit,		/* unit number */    int phyId,		/* PHY ID */    int location,	/* location to write */    int value		/* value to write */    )    {    UINT32 iobase = feiResources[unit].iobaseCsr;    int timeout   = 64*4;	/* <64 usec. to complete, typ 27 ticks */    int val;    sysOutLong (iobase + SCB_MDI,		0x04000000 | (location<<16) | (phyId<<21) | value);    do {    	sysDelay ();	/* delay for one I/O READ cycle */    	val = sysInLong (iobase + SCB_MDI);    	if (--timeout < 0)    	    printf ("sys557mdioWrite() timed out with val = %8.8x.\n", val);        } while (! (val & 0x10000000));    return (val & 0xffff);    }/********************************************************************************* sys557Show - shows 82557 configuration** This routine shows the (Intel Pro Express 100) configuration** RETURNS: N/A*/void sys557Show    (    int	unit		/* unit number */    )    {    FEI_RESOURCE * pReso = &feiResources [unit];    UINT32 iobase       = pReso->iobaseCsr;    UCHAR etheraddr[6];    int ix;    int iy;    if (unit > INTEGRATOR_MAX_END_DEVS)	{	printf ("Illegal unit number %d\n", unit);	return;	}    if (pReso->boardType != PRO100B)	{	printf ("Unit %d not an FEI device\n", unit);	return;	}    for (ix = 0, iy = 0; ix < 3; ix++)	{        etheraddr[iy++] = pReso->eeprom[ix];        etheraddr[iy++] = pReso->eeprom[ix] >> 8;        }    printf ("fei%d: Intel EtherExpress Pro 10/100 at %#8x ", unit, iobase);    for (ix = 0; ix < 5; ix++)    	printf ("%2.2X:", etheraddr[ix]);    printf ("%2.2X\n", etheraddr[ix]);    printf ("CSR mem base address = %x, Flash mem base address = %x\n",	    pReso->membaseCsr, pReso->membaseFlash);    if (pReso->eeprom[3] & 0x03)        printf ("Receiver lock-up bug exists -- enabling work-around.\n");    printf ("Board assembly %4.4x%2.2x-%3.3d, Physical connectors present:",	pReso->eeprom[8], pReso->eeprom[9]>>8, pReso->eeprom[9] & 0xff);    for (ix = 0; ix < 4; ix++)	if (pReso->eeprom[5] & (1 << ix))	    printf ("%s", connectors [ix]);    printf ("\nPrimary interface chip %s PHY #%d.\n",	phys[(pReso->eeprom[6]>>8)&15], pReso->eeprom[6] & 0x1f);    if (pReso->eeprom[7] & 0x0700)	printf ("Secondary interface chip %s.\n",		phys[(pReso->eeprom[7]>>8)&7]);#if	FALSE  /* we don't show PHY specific info at this time */    /* ToDo: Read and set PHY registers through MDIO port. */    for (ix = 0; ix < 2; ix++)	printf ("MDIO register %d is %4.4x.\n",		ix, sys557mdioRead (unit, pReso->eeprom[6] & 0x1f, ix));    for (ix = 5; ix < 7; ix++)	printf ("MDIO register %d is %4.4x.\n",		ix, sys557mdioRead (unit, pReso->eeprom[6] & 0x1f, ix));    printf ("MDIO register %d is %4.4x.\n",	    25, sys557mdioRead (unit, pReso->eeprom[6] & 0x1f, 25));#endif	/* FALSE */    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        {	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 /* INCLUDE_FEI82557END */#endif /* INCLUDE_END */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品久| 欧美视频中文字幕| 欧美精品亚洲二区| 国产精品久久国产精麻豆99网站| 午夜精品久久久久久久久久| 播五月开心婷婷综合| 日韩精品一区二| 性感美女极品91精品| 99精品久久久久久| 国产日韩av一区| 久久不见久久见免费视频7| 欧美午夜在线观看| 亚洲欧洲制服丝袜| 丁香婷婷综合色啪| 久久丝袜美腿综合| 蜜臀av性久久久久蜜臀aⅴ流畅 | 日韩中文字幕区一区有砖一区| 国产麻豆欧美日韩一区| 日韩一区二区三区精品视频| 亚洲综合网站在线观看| 风流少妇一区二区| 久久精品水蜜桃av综合天堂| 青青草精品视频| 91精品国产综合久久精品性色| 一区二区三区在线免费观看| av在线一区二区三区| 久久久久国产精品麻豆ai换脸| 蜜臀久久99精品久久久久久9| 欧美三级电影在线看| 亚洲一区二区在线免费观看视频| 欧美sm美女调教| 日韩经典一区二区| 欧美精品xxxxbbbb| 日日欢夜夜爽一区| 717成人午夜免费福利电影| 亚洲成a人片综合在线| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲男人电影天堂| 色偷偷88欧美精品久久久| 亚洲男帅同性gay1069| 91网页版在线| 一区二区三区在线观看视频| 色诱亚洲精品久久久久久| 亚洲另类色综合网站| 在线中文字幕不卡| 亚洲第一在线综合网站| 欧美色网站导航| 午夜精品一区二区三区免费视频 | 91女神在线视频| 一区二区三区视频在线看| 色久综合一二码| 亚洲一卡二卡三卡四卡| 欧美三级日韩三级| 麻豆91小视频| 久久久99精品免费观看不卡| 成人免费视频视频| 亚洲色图视频网| 欧美色图片你懂的| 麻豆精品在线播放| 久久久久久久久久久99999| 成人sese在线| 亚洲一区影音先锋| 欧美一区二区三区四区高清| 另类小说欧美激情| 中文字幕免费不卡| 91免费版在线| 婷婷久久综合九色综合伊人色| 6080yy午夜一二三区久久| 久国产精品韩国三级视频| 欧美极品少妇xxxxⅹ高跟鞋| 色噜噜狠狠成人网p站| 日韩一区精品字幕| 精品国产人成亚洲区| heyzo一本久久综合| 亚洲一级不卡视频| 精品av久久707| av在线综合网| 日本在线播放一区二区三区| 亚洲精品在线免费观看视频| av资源网一区| 蜜桃av一区二区在线观看| 亚洲国产电影在线观看| 欧美色图片你懂的| 欧美一区二区久久久| 国产精品996| 亚洲国产一区二区三区| 欧美不卡一区二区三区| 99精品欧美一区二区三区小说| 日韩电影在线免费看| 欧美激情综合五月色丁香小说| 在线免费不卡电影| 国产在线精品免费av| 亚洲专区一二三| 久久免费偷拍视频| 欧美日韩国产综合一区二区| 国产精品 欧美精品| 亚洲成人免费电影| 日本一区二区三区久久久久久久久不 | 国产在线一区二区| 一区二区三区四区视频精品免费| 精品日韩一区二区三区| 91蜜桃传媒精品久久久一区二区| 美国av一区二区| 亚洲精品免费在线播放| 2024国产精品| 欧美喷水一区二区| caoporn国产一区二区| 久久国产夜色精品鲁鲁99| 一区二区三区高清| 中文字幕第一区二区| 欧美一级欧美三级| 色一情一伦一子一伦一区| 国产精品综合久久| 首页国产欧美久久| 亚洲欧美日韩国产成人精品影院| 精品成人a区在线观看| 欧美日韩免费观看一区二区三区| 成人天堂资源www在线| 精品综合免费视频观看| 日韩精品亚洲专区| 一区二区三区电影在线播| 国产精品精品国产色婷婷| 久久综合九色综合欧美亚洲| 欧美日韩国产高清一区| 一卡二卡三卡日韩欧美| 欧美国产欧美综合| 精品国产免费人成电影在线观看四季 | 97精品电影院| 国产精品123| 国产在线精品一区二区不卡了| 青青草国产成人av片免费| 亚洲国产婷婷综合在线精品| 亚洲人精品午夜| 国产精品久久毛片| 国产欧美精品区一区二区三区 | 欧美精品日日鲁夜夜添| 日本久久精品电影| 99精品欧美一区二区三区综合在线| 国产成人欧美日韩在线电影| 九九国产精品视频| 美国精品在线观看| 久久精品999| 蜜臀av亚洲一区中文字幕| 日本在线不卡视频| 日本不卡1234视频| 日韩综合小视频| 日韩激情中文字幕| 奇米精品一区二区三区四区| 亚洲福利一二三区| 亚洲成年人网站在线观看| 亚洲香肠在线观看| 亚洲国产精品久久人人爱蜜臀| 亚洲国产成人va在线观看天堂| 亚洲综合久久久| 亚洲一区二区影院| 调教+趴+乳夹+国产+精品| 亚洲h精品动漫在线观看| 亚洲电影在线免费观看| 午夜av一区二区| 免费看精品久久片| 精品在线播放免费| 国产成人亚洲综合a∨婷婷图片| 国产成人综合视频| 成人午夜短视频| 99国产一区二区三精品乱码| 91免费看`日韩一区二区| 欧美亚洲禁片免费| 欧美日韩国产精品自在自线| 91精选在线观看| 精品剧情v国产在线观看在线| 欧美精品一区二区在线观看| 久久久久久久久久久久久夜| 中文字幕第一页久久| 亚洲欧美色综合| 亚洲成人黄色影院| 日韩va亚洲va欧美va久久| 久久电影网站中文字幕 | 亚洲国产你懂的| 日韩1区2区日韩1区2区| 久久99最新地址| 成人精品一区二区三区四区| 91毛片在线观看| 538在线一区二区精品国产| 26uuu亚洲综合色| 国产精品久久精品日日| 亚洲国产精品人人做人人爽| 蜜臀av一区二区| 成人ar影院免费观看视频| 欧美伊人精品成人久久综合97| 欧美一区二区三区日韩视频| 久久这里只有精品首页| 亚洲欧美色一区| 免费观看在线色综合| 成熟亚洲日本毛茸茸凸凹| 在线影视一区二区三区| 精品国偷自产国产一区| 综合色天天鬼久久鬼色| 天堂一区二区在线| 粉嫩一区二区三区性色av| 欧美日韩在线一区二区|