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

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

?? skgeinit.c

?? 移植好的楊創utu2440F ARM9 的uboot1.1.4代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
SK_IOC	IoC,		/* IO context */int		Port)		/* Port Index (MAC_1 + n) */{	SK_GEPORT	*pPrt;	SK_U32		RxWm;	SK_U32		TxWm;	pPrt = &pAC->GIni.GP[Port];	RxWm = SK_BMU_RX_WM;	TxWm = SK_BMU_TX_WM;	if (!pAC->GIni.GIPciSlot64 && !pAC->GIni.GIPciClock66) {		/* for better performance */		RxWm /= 2;		TxWm /= 2;	}	/* Rx Queue: Release all local resets and set the watermark */	SK_OUT32(IoC, Q_ADDR(pPrt->PRxQOff, Q_CSR), CSR_CLR_RESET);	SK_OUT32(IoC, Q_ADDR(pPrt->PRxQOff, Q_F), RxWm);	/*	 * Tx Queue: Release all local resets if the queue is used !	 * 		set watermark	 */	if (pPrt->PXSQSize != 0) {		SK_OUT32(IoC, Q_ADDR(pPrt->PXsQOff, Q_CSR), CSR_CLR_RESET);		SK_OUT32(IoC, Q_ADDR(pPrt->PXsQOff, Q_F), TxWm);	}	if (pPrt->PXAQSize != 0) {		SK_OUT32(IoC, Q_ADDR(pPrt->PXaQOff, Q_CSR), CSR_CLR_RESET);		SK_OUT32(IoC, Q_ADDR(pPrt->PXaQOff, Q_F), TxWm);	}	/*	 * Do NOT enable the descriptor poll timers here, because	 * the descriptor addresses are not specified yet.	 */}	/* SkGeInitBmu *//****************************************************************************** * *	TestStopBit() -	Test the stop bit of the queue * * Description: *	Stopping a queue is not as simple as it seems to be. *	If descriptor polling is enabled, it may happen *	that RX/TX stop is done and SV idle is NOT set. *	In this case we have to issue another stop command. * * Returns: *	The queues control status register */static SK_U32 TestStopBit(SK_AC	*pAC,		/* Adapter Context */SK_IOC	IoC,		/* IO Context */int		QuIoOffs)	/* Queue IO Address Offset */{	SK_U32	QuCsr;	/* CSR contents */	SK_IN32(IoC, Q_ADDR(QuIoOffs, Q_CSR), &QuCsr);	if ((QuCsr & (CSR_STOP | CSR_SV_IDLE)) == 0) {		/* Stop Descriptor overridden by start command */		SK_OUT32(IoC, Q_ADDR(QuIoOffs, Q_CSR), CSR_STOP);		SK_IN32(IoC, Q_ADDR(QuIoOffs, Q_CSR), &QuCsr);	}	return(QuCsr);}	/* TestStopBit *//****************************************************************************** * *	SkGeStopPort() - Stop the Rx/Tx activity of the port 'Port'. * * Description: *	After calling this function the descriptor rings and Rx and Tx *	queues of this port may be reconfigured. * *	It is possible to stop the receive and transmit path separate or *	both together. * *	Dir =	SK_STOP_TX 	Stops the transmit path only and resets the MAC. *				The receive queue is still active and *				the pending Rx frames may be still transferred *				into the RxD. *		SK_STOP_RX	Stop the receive path. The tansmit path *				has to be stopped once before. *		SK_STOP_ALL	SK_STOP_TX + SK_STOP_RX * *	RstMode = SK_SOFT_RST	Resets the MAC. The PHY is still alive. *			SK_HARD_RST	Resets the MAC and the PHY. * * Example: *	1) A Link Down event was signaled for a port. Therefore the activity *	of this port should be stopped and a hardware reset should be issued *	to enable the workaround of XMAC errata #2. But the received frames *	should not be discarded. *		... *		SkGeStopPort(pAC, IoC, Port, SK_STOP_TX, SK_HARD_RST); *		(transfer all pending Rx frames) *		SkGeStopPort(pAC, IoC, Port, SK_STOP_RX, SK_HARD_RST); *		... * *	2) An event was issued which request the driver to switch *	the 'virtual active' link to an other already active port *	as soon as possible. The frames in the receive queue of this *	port may be lost. But the PHY must not be reset during this *	event. *		... *		SkGeStopPort(pAC, IoC, Port, SK_STOP_ALL, SK_SOFT_RST); *		... * * Extended Description: *	If SK_STOP_TX is set, *		o disable the MAC's receive and transmitter to prevent *		  from sending incomplete frames *		o stop the port's transmit queues before terminating the *		  BMUs to prevent from performing incomplete PCI cycles *		  on the PCI bus *		- The network Rx and Tx activity and PCI Tx transfer is *		  disabled now. *		o reset the MAC depending on the RstMode *		o Stop Interval Timer and Limit Counter of Tx Arbiter, *		  also disable Force Sync bit and Enable Alloc bit. *		o perform a local reset of the port's Tx path *			- reset the PCI FIFO of the async Tx queue *			- reset the PCI FIFO of the sync Tx queue *			- reset the RAM Buffer async Tx queue *			- reset the RAM Buffer sync Tx queue *			- reset the MAC Tx FIFO *		o switch Link and Tx LED off, stop the LED counters * *	If SK_STOP_RX is set, *		o stop the port's receive queue *		- The path data transfer activity is fully stopped now. *		o perform a local reset of the port's Rx path *			- reset the PCI FIFO of the Rx queue *			- reset the RAM Buffer receive queue *			- reset the MAC Rx FIFO *		o switch Rx LED off, stop the LED counter * *	If all ports are stopped, *		o reset the RAM Interface. * * Notes: *	o This function may be called during the driver states RESET_PORT and *	  SWITCH_PORT. */void SkGeStopPort(SK_AC	*pAC,	/* adapter context */SK_IOC	IoC,	/* I/O context */int		Port,	/* port to stop (MAC_1 + n) */int		Dir,	/* Direction to Stop (SK_STOP_RX, SK_STOP_TX, SK_STOP_ALL) */int		RstMode)/* Reset Mode (SK_SOFT_RST, SK_HARD_RST) */{#ifndef SK_DIAG	SK_EVPARA Para;#endif /* !SK_DIAG */	SK_GEPORT *pPrt;	SK_U32	DWord;	SK_U32	XsCsr;	SK_U32	XaCsr;	SK_U64	ToutStart;	int		i;	int		ToutCnt;	pPrt = &pAC->GIni.GP[Port];	if ((Dir & SK_STOP_TX) != 0) {		/* disable receiver and transmitter */		SkMacRxTxDisable(pAC, IoC, Port);		/* stop both transmit queues */		/*		 * If the BMU is in the reset state CSR_STOP will terminate		 * immediately.		 */		SK_OUT32(IoC, Q_ADDR(pPrt->PXsQOff, Q_CSR), CSR_STOP);		SK_OUT32(IoC, Q_ADDR(pPrt->PXaQOff, Q_CSR), CSR_STOP);		ToutStart = SkOsGetTime(pAC);		ToutCnt = 0;		do {			/*			 * Clear packet arbiter timeout to make sure			 * this loop will terminate.			 */			SK_OUT16(IoC, B3_PA_CTRL, (Port == MAC_1) ? PA_CLR_TO_TX1 :				PA_CLR_TO_TX2);			/*			 * If the transfer stucks at the MAC the STOP command will not			 * terminate if we don't flush the XMAC's transmit FIFO !			 */			SkMacFlushTxFifo(pAC, IoC, Port);			XsCsr = TestStopBit(pAC, IoC, pPrt->PXsQOff);			XaCsr = TestStopBit(pAC, IoC, pPrt->PXaQOff);			if (SkOsGetTime(pAC) - ToutStart > (SK_TICKS_PER_SEC / 18)) {				/*				 * Timeout of 1/18 second reached.				 * This needs to be checked at 1/18 sec only.				 */				ToutCnt++;				if (ToutCnt > 1) {					/* Might be a problem when the driver event handler					 * calls StopPort again. XXX.					 */					/* Fatal Error, Loop aborted */					SK_ERR_LOG(pAC, SK_ERRCL_HW, SKERR_HWI_E018,						SKERR_HWI_E018MSG);#ifndef SK_DIAG					Para.Para64 = Port;					SkEventQueue(pAC, SKGE_DRV, SK_DRV_PORT_FAIL, Para);#endif /* !SK_DIAG */					return;				}				/*				 * Cache incoherency workaround: Assume a start command				 * has been lost while sending the frame.				 */				ToutStart = SkOsGetTime(pAC);				if ((XsCsr & CSR_STOP) != 0) {					SK_OUT32(IoC, Q_ADDR(pPrt->PXsQOff, Q_CSR), CSR_START);				}				if ((XaCsr & CSR_STOP) != 0) {					SK_OUT32(IoC, Q_ADDR(pPrt->PXaQOff, Q_CSR), CSR_START);				}			}			/*			 * Because of the ASIC problem report entry from 21.08.1998 it is			 * required to wait until CSR_STOP is reset and CSR_SV_IDLE is set.			 */		} while ((XsCsr & (CSR_STOP | CSR_SV_IDLE)) != CSR_SV_IDLE ||				 (XaCsr & (CSR_STOP | CSR_SV_IDLE)) != CSR_SV_IDLE);		/* Reset the MAC depending on the RstMode */		if (RstMode == SK_SOFT_RST) {			SkMacSoftRst(pAC, IoC, Port);		}		else {			SkMacHardRst(pAC, IoC, Port);		}		/* Disable Force Sync bit and Enable Alloc bit */		SK_OUT8(IoC, MR_ADDR(Port, TXA_CTRL),			TXA_DIS_FSYNC | TXA_DIS_ALLOC | TXA_STOP_RC);		/* Stop Interval Timer and Limit Counter of Tx Arbiter */		SK_OUT32(IoC, MR_ADDR(Port, TXA_ITI_INI), 0L);		SK_OUT32(IoC, MR_ADDR(Port, TXA_LIM_INI), 0L);		/* Perform a local reset of the port's Tx path */		/* Reset the PCI FIFO of the async Tx queue */		SK_OUT32(IoC, Q_ADDR(pPrt->PXaQOff, Q_CSR), CSR_SET_RESET);		/* Reset the PCI FIFO of the sync Tx queue */		SK_OUT32(IoC, Q_ADDR(pPrt->PXsQOff, Q_CSR), CSR_SET_RESET);		/* Reset the RAM Buffer async Tx queue */		SK_OUT8(IoC, RB_ADDR(pPrt->PXaQOff, RB_CTRL), RB_RST_SET);		/* Reset the RAM Buffer sync Tx queue */		SK_OUT8(IoC, RB_ADDR(pPrt->PXsQOff, RB_CTRL), RB_RST_SET);		/* Reset Tx MAC FIFO */		if (pAC->GIni.GIGenesis) {			/* Note: MFF_RST_SET does NOT reset the XMAC ! */			SK_OUT8(IoC, MR_ADDR(Port, TX_MFF_CTRL2), MFF_RST_SET);			/* switch Link and Tx LED off, stop the LED counters */			/* Link LED is switched off by the RLMT and the Diag itself */			SkGeXmitLED(pAC, IoC, MR_ADDR(Port, TX_LED_INI), SK_LED_DIS);		}		else {			/* Reset TX MAC FIFO */			SK_OUT8(IoC, MR_ADDR(Port, TX_GMF_CTRL_T), (SK_U8)GMF_RST_SET);		}	}	if ((Dir & SK_STOP_RX) != 0) {		/*		 * The RX Stop Command will not terminate if no buffers		 * are queued in the RxD ring. But it will always reach		 * the Idle state. Therefore we can use this feature to		 * stop the transfer of received packets.		 */		/* stop the port's receive queue */		SK_OUT32(IoC, Q_ADDR(pPrt->PRxQOff, Q_CSR), CSR_STOP);		i = 100;		do {			/*			 * Clear packet arbiter timeout to make sure			 * this loop will terminate			 */			SK_OUT16(IoC, B3_PA_CTRL, (Port == MAC_1) ? PA_CLR_TO_RX1 :				PA_CLR_TO_RX2);			DWord = TestStopBit(pAC, IoC, pPrt->PRxQOff);			/* timeout if i==0 (bug fix for #10748) */			if (--i == 0) {				SK_ERR_LOG(pAC, SK_ERRCL_HW, SKERR_HWI_E024,					SKERR_HWI_E024MSG);				break;			}			/*			 * because of the ASIC problem report entry from 21.08.98			 * it is required to wait until CSR_STOP is reset and			 * CSR_SV_IDLE is set.			 */		} while ((DWord & (CSR_STOP | CSR_SV_IDLE)) != CSR_SV_IDLE);		/* The path data transfer activity is fully stopped now */		/* Perform a local reset of the port's Rx path */		 /*	Reset the PCI FIFO of the Rx queue */		SK_OUT32(IoC, Q_ADDR(pPrt->PRxQOff, Q_CSR), CSR_SET_RESET);		/* Reset the RAM Buffer receive queue */		SK_OUT8(IoC, RB_ADDR(pPrt->PRxQOff, RB_CTRL), RB_RST_SET);		/* Reset Rx MAC FIFO */		if (pAC->GIni.GIGenesis) {			SK_OUT8(IoC, MR_ADDR(Port, RX_MFF_CTRL2), MFF_RST_SET);			/* switch Rx LED off, stop the LED counter */			SkGeXmitLED(pAC, IoC, MR_ADDR(Port, RX_LED_INI), SK_LED_DIS);		}		else {			/* Reset Rx MAC FIFO */			SK_OUT8(IoC, MR_ADDR(Port, RX_GMF_CTRL_T), (SK_U8)GMF_RST_SET);		}	}}	/* SkGeStopPort *//****************************************************************************** * *	SkGeInit0() - Level 0 Initialization * * Description: *	- Initialize the BMU address offsets * * Returns: *	nothing */static void SkGeInit0(SK_AC	*pAC,		/* adapter context */SK_IOC	IoC)		/* IO context */{	int i;	SK_GEPORT *pPrt;	for (i = 0; i < SK_MAX_MACS; i++) {		pPrt = &pAC->GIni.GP[i];		pPrt->PState = SK_PRT_RESET;		pPrt->PRxQOff = QOffTab[i].RxQOff;		pPrt->PXsQOff = QOffTab[i].XsQOff;		pPrt->PXaQOff = QOffTab[i].XaQOff;		pPrt->PCheckPar = SK_FALSE;		pPrt->PIsave = 0;		pPrt->PPrevShorts = 0;		pPrt->PLinkResCt = 0;		pPrt->PAutoNegTOCt = 0;		pPrt->PPrevRx = 0;		pPrt->PPrevFcs = 0;		pPrt->PRxLim = SK_DEF_RX_WA_LIM;		pPrt->PLinkMode = SK_LMODE_AUTOFULL;		pPrt->PLinkSpeedCap = SK_LSPEED_CAP_1000MBPS;		pPrt->PLinkSpeed = SK_LSPEED_1000MBPS;		pPrt->PLinkSpeedUsed = SK_LSPEED_STAT_UNKNOWN;		pPrt->PLinkModeConf = SK_LMODE_AUTOSENSE;		pPrt->PFlowCtrlMode = SK_FLOW_MODE_SYM_OR_REM;		pPrt->PLinkBroken = SK_TRUE; /* See WA code */		pPrt->PLinkCap = (SK_LMODE_CAP_HALF | SK_LMODE_CAP_FULL |				SK_LMODE_CAP_AUTOHALF | SK_LMODE_CAP_AUTOFULL);		pPrt->PLinkModeStatus = SK_LMODE_STAT_UNKNOWN;		pPrt->PFlowCtrlCap = SK_FLOW_MODE_SYM_OR_REM;		pPrt->PFlowCtrlStatus = SK_FLOW_STAT_NONE;		pPrt->PMSCap = 0;		pPrt->PMSMode = SK_MS_MODE_AUTO;		pPrt->PMSStatus = SK_MS_STAT_UNSET;		pPrt->PAutoNegFail = SK_FALSE;		pPrt->PLipaAutoNeg = SK_LIPA_UNKNOWN;		pPrt->PHWLinkUp = SK_FALSE;	}	pAC->GIni.GIPortUsage = SK_RED_LINK;}	/* SkGeInit0*/#ifdef SK_PCI_RESET/****************************************************************************** * *	SkGePciReset() - Reset PCI interface * * Description: *	o Read PCI configuration. *	o Change power state to 3. *	o Change power state to 0. *	o Restore PCI configuration. * * Returns: *	0:	Success. *	1:	Power state could not be changed to 3. */static int SkGePciReset(SK_AC	*pAC,		/* adapter context */SK_IOC	IoC)		/* IO context */{	int		i;	SK_U16	PmCtlSts;	SK_U32	Bp1;	SK_U32	Bp2;	SK_U16	PciCmd;	SK_U8	Cls;	SK_U8	Lat;	SK_U8	ConfigSpace[PCI_CFG_SIZE];	/*	 * Note: Switching to D3 state is like a software reset.	 *		 Switching from D3 to D0 is a hardware reset.	 *		 We have to save and restore the configuration space.	 */	for (i = 0; i < PCI_CFG_SIZE; i++) {		SkPciReadCfgDWord(pAC, i*4, &ConfigSpace[i]);	}	/* We know the RAM Interface Arbiter is enabled. */	SkPciWriteCfgWord(pAC, PCI_PM_CTL_STS, PCI_PM_STATE_D3);	SkPciReadCfgWord(pAC, PCI_PM_CTL_STS, &PmCtlSts);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷激情一区二区三区| 91麻豆精品国产自产在线观看一区 | 久久毛片高清国产| 成人污污视频在线观看| 亚洲欧美电影一区二区| 欧美三级在线看| 久久99精品网久久| 中文字幕中文字幕在线一区 | 亚洲自拍偷拍麻豆| 日韩精品一区二区三区老鸭窝 | 911精品产国品一二三产区| 欧美熟乱第一页| 国产盗摄精品一区二区三区在线| 亚洲综合在线免费观看| 久久亚洲精品国产精品紫薇| 欧美无乱码久久久免费午夜一区| 欧美专区日韩专区| 丁香天五香天堂综合| 日韩av在线免费观看不卡| 国产精品久久久久久久久搜平片| 国产精品久久久久久久蜜臀| 亚洲免费观看在线观看| 亚洲成av人片在线观看| 国产精品免费视频观看| 久久先锋影音av| 中文av字幕一区| 亚洲精品国产a久久久久久| 久久精品欧美一区二区三区不卡 | 99久久99久久精品国产片果冻 | 国产suv精品一区二区883| 99国产精品久久久久久久久久 | 国产精品麻豆网站| 亚洲国产精品自拍| 亚洲综合999| 另类小说综合欧美亚洲| 午夜欧美一区二区三区在线播放| 亚洲欧洲精品一区二区三区| 中文字幕欧美激情一区| 国产日韩欧美高清在线| 26uuu精品一区二区| 国产精品免费视频观看| 亚洲成人久久影院| 国产suv精品一区二区三区| 在线国产亚洲欧美| 精品99一区二区三区| 日韩精品中文字幕一区| 一区视频在线播放| 麻豆国产欧美日韩综合精品二区 | 激情六月婷婷综合| 日本视频一区二区| 成人动漫一区二区在线| 97国产一区二区| 91精品国产91久久综合桃花| 777奇米四色成人影色区| 久久久精品tv| 丝袜a∨在线一区二区三区不卡| 天堂影院一区二区| 成人免费视频免费观看| 精品视频一区三区九区| 日本一区二区三区电影| 五月天网站亚洲| 北条麻妃国产九九精品视频| 99精品桃花视频在线观看| 91精品午夜视频| 综合分类小说区另类春色亚洲小说欧美| 中文字幕精品一区二区精品绿巨人 | 日韩电影一区二区三区四区| 成人午夜精品一区二区三区| 91麻豆精品国产91久久久| 中文字幕一区二| 国产麻豆视频精品| 99精品国产一区二区三区不卡| 91精品国产综合久久久久久漫画| 一区在线观看免费| 国产91清纯白嫩初高中在线观看| 欧美一区二区视频在线观看| 日韩伦理电影网| 成人一二三区视频| 久久亚区不卡日本| 日本欧洲一区二区| 欧美日韩一区二区三区在线| 中文字幕一区二区三中文字幕| 国产一区二区三区四区五区美女 | 国产日韩欧美制服另类| 日本不卡视频一二三区| 国产99一区视频免费| 精品久久久久一区| 亚洲色图欧美在线| 成人性色生活片免费看爆迷你毛片| 日韩欧美aaaaaa| 三级一区在线视频先锋| 欧美三级乱人伦电影| 一区二区三区中文免费| 一本久道中文字幕精品亚洲嫩| 国产精品美女久久久久aⅴ| 国产大陆a不卡| 久久综合色天天久久综合图片| 日本va欧美va欧美va精品| 欧美另类高清zo欧美| 亚洲国产精品激情在线观看| 国内精品国产成人| 精品欧美一区二区久久| 麻豆国产欧美一区二区三区| 日韩免费高清电影| 国内精品第一页| 欧美激情综合网| 成人免费高清视频在线观看| 国产日产欧产精品推荐色| 国产福利一区二区三区视频在线| 久久久久久综合| 岛国精品一区二区| 中文字幕中文字幕在线一区| 91无套直看片红桃| 久久久久国产精品免费免费搜索| 国产伦精品一区二区三区视频青涩| 欧美一级搡bbbb搡bbbb| 日精品一区二区| 欧美一二三区在线| 亚洲国产综合视频在线观看| 欧美色图天堂网| 日本不卡在线视频| 日韩精品专区在线影院重磅| 精品中文av资源站在线观看| 久久久久久**毛片大全| 97精品国产露脸对白| 亚洲资源中文字幕| 日韩欧美成人午夜| 国产一区二区在线影院| 中文一区在线播放| 色综合久久综合网欧美综合网| 一区二区三区四区中文字幕| 色综合天天综合在线视频| 欧美v亚洲v综合ⅴ国产v| 国产中文一区二区三区| 综合在线观看色| 678五月天丁香亚洲综合网| 开心九九激情九九欧美日韩精美视频电影| 911精品国产一区二区在线| 国内精品国产成人| 亚洲免费观看高清在线观看| 欧美体内she精视频| 日本成人中文字幕在线视频| 久久久精品人体av艺术| 91日韩精品一区| 青青草国产精品亚洲专区无| 久久久精品人体av艺术| bt欧美亚洲午夜电影天堂| 午夜伊人狠狠久久| 久久综合久久综合久久| 91国偷自产一区二区开放时间| 国产精品高潮久久久久无| 欧美综合色免费| 国精产品一区一区三区mba视频 | 欧美一区二区高清| 成人成人成人在线视频| 水蜜桃久久夜色精品一区的特点| 精品国产乱码久久久久久蜜臀| eeuss影院一区二区三区| 婷婷中文字幕综合| 国产精品久久一卡二卡| 欧美亚一区二区| 国产综合色视频| 亚洲一区二区精品久久av| 久久久久9999亚洲精品| 欧美夫妻性生活| 国产成人免费在线视频| 亚洲二区视频在线| 国产精品毛片久久久久久| 精品免费一区二区三区| 99精品国产视频| 国产成人综合在线| 五月婷婷另类国产| 亚洲视频网在线直播| 精品国产一区二区三区久久影院| 欧美在线视频你懂得| 成人手机电影网| 久久超级碰视频| 日韩电影网1区2区| 亚洲精品国产视频| 国产精品久线观看视频| 久久久久久久久久电影| 欧美一区二区三区色| 欧美在线视频不卡| 色综合 综合色| 成人午夜精品在线| 国产激情91久久精品导航| 美女视频黄频大全不卡视频在线播放| 亚洲女与黑人做爰| 国产精品视频一二三| 国产色综合久久| 精品美女在线播放| 日韩无一区二区| 欧美精品九九99久久| 欧美图区在线视频| 欧美中文字幕一区| 91久久精品网| 色噜噜久久综合| 色哟哟国产精品免费观看| 99久久免费视频.com| 99久久99久久精品免费观看|