⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eth_ctl.c

📁 华为 HI3510 BOOTLOADER HIBOOT 源码包
💻 C
📖 第 1 页 / 共 5 页
字号:
	if (u8PortNo == 1)	{		AddrForPort = 0x0100;	}	pu32StaticCnt->drop_event	= *(UINT32 *) (SF_Statis + (AddrForPort | 0x0000));	pu32StaticCnt->crcerr = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0004));	        	pu32StaticCnt->undersizepkts = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0008));	pu32StaticCnt->oversizepkts = *(UINT32 *) (SF_Statis + (AddrForPort | 0x000c));	        	pu32StaticCnt->fragments = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0010));    	pu32StaticCnt->jabber = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0014));	        	pu32StaticCnt->broadcastpkts = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0018));	pu32StaticCnt->multicastpkts = *(UINT32 *) (SF_Statis + (AddrForPort | 0x001c));	        	pu32StaticCnt->pkts64 = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0020));		        	pu32StaticCnt->pkts65_127 = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0024));	        	pu32StaticCnt->pkts128_255 = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0028));	        	pu32StaticCnt->pkts256_511 = *(UINT32 *) (SF_Statis + (AddrForPort | 0x002c));	        	pu32StaticCnt->pkts512_1023 = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0030));	        	pu32StaticCnt->pkts1024_1518 = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0034));	        	pu32StaticCnt->pkts_1518 = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0038));	        	pu32StaticCnt->ifinucastpkts = *(UINT32 *) (SF_Statis + (AddrForPort | 0x003c));	        	pu32StaticCnt->ifinnucastpkts = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0040));	        	pu32StaticCnt->ifindiscards = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0044));	        	pu32StaticCnt->ifinerrors = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0048));	        	pu32StaticCnt->ifinmulticast = *(UINT32 *) (SF_Statis + (AddrForPort | 0x004c));	        	pu32StaticCnt->ifinbroadcast = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0050));	        	pu32StaticCnt->dot3alignmenterr = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0054));		pu32StaticCnt->dot3fcserr = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0058));	        	pu32StaticCnt->dot3internalrecerr = *(UINT32 *) (SF_Statis + (AddrForPort | 0x005c));      	pu32StaticCnt->dot3inpause = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0060));	        	pu32StaticCnt->dot3unkpause = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0064));	        	pu32StaticCnt->dot3dribble = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0068));	        	pu32StaticCnt->octets = *(UINT32 *) (SF_Statis + (AddrForPort | 0x006c));	 	        	pu32StaticCnt->pkts = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0070));		        	pu32StaticCnt->ifinoctets = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0074));	        	pu32StaticCnt->broadcastpkts_tx =	*(UINT32 *) (SF_Statis + (AddrForPort | 0x0080));	pu32StaticCnt->multicastpkts_tx =	*(UINT32 *) (SF_Statis + (AddrForPort | 0x0084));	pu32StaticCnt->ifoutdiscards = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0088));	        	pu32StaticCnt->ifouterrors = *(UINT32 *) (SF_Statis + (AddrForPort | 0x008c));	        	pu32StaticCnt->ifoutucastpkts = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0090));	        	pu32StaticCnt->ifoutnucastpkts = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0094));	 	pu32StaticCnt->ifoutmulticast = *(UINT32 *) (SF_Statis + (AddrForPort | 0x0098));	        	pu32StaticCnt->ifoutbroadcast = *(UINT32 *) (SF_Statis + (AddrForPort | 0x009c));	        	pu32StaticCnt->pkts64_tx = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00a0));	        	pu32StaticCnt->pkts65_127_tx = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00a4));	        	pu32StaticCnt->pkts128_255_tx = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00a8));	        	pu32StaticCnt->pkts256_511_tx = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00ac));	        	pu32StaticCnt->pkts512_1023_tx = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00b0));	 	pu32StaticCnt->pkts1024_1518_tx = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00b4));		pu32StaticCnt->pkts_1518_tx = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00b8));	        	pu32StaticCnt->dot3singlecol = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00bc));	        	pu32StaticCnt->dot3multiplecol = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00c0));		pu32StaticCnt->dot3latecol = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00c4));	        	pu32StaticCnt->dot3excessivecol =	*(UINT32 *) (SF_Statis + (AddrForPort | 0x00c8));	pu32StaticCnt->dot3colcnt = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00cc));	        	pu32StaticCnt->dot3defer = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00d0));	        	pu32StaticCnt->pkts_tx = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00d4));	 		pu32StaticCnt->octets_tx = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00d8));	        	pu32StaticCnt->collisions = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00dc));	        	pu32StaticCnt->ifoutoctets = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00e0));	        	pu32StaticCnt->dot3outpause = *(UINT32 *) (SF_Statis + (AddrForPort | 0x00e4));	        	#ifdef SfTest		SF_Print("SF count information is %ld\n",pu32StaticCnt->drop_event);		SF_Print("SF count information is %ld\n",pu32StaticCnt->crcerr);		SF_Print("SF count information is %ld\n",pu32StaticCnt->undersizepkts);		SF_Print("SF count information is %ld\n",pu32StaticCnt->oversizepkts);		SF_Print("SF count information is %ld\n",pu32StaticCnt->fragments);		SF_Print("SF count information is %ld\n",pu32StaticCnt->jabber);		SF_Print("SF count information is %ld\n",pu32StaticCnt->broadcastpkts);		SF_Print("SF count information is %ld\n",pu32StaticCnt->multicastpkts);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts64);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts65_127);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts128_255);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts256_511);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts512_1023);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts1024_1518);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts_1518);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifinucastpkts);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifinnucastpkts);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifindiscards);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifinerrors);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifinmulticast);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifinbroadcast);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3alignmenterr);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3fcserr);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3internalrecerr);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3inpause);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3unkpause);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3dribble);		SF_Print("SF count information is %ld\n",pu32StaticCnt->octets);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifinoctets);		SF_Print("SF count information is %ld\n",pu32StaticCnt->broadcastpkts_tx);		SF_Print("SF count information is %ld\n",pu32StaticCnt->multicastpkts_tx);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifoutdiscards);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifouterrors);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifoutucastpkts);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifoutnucastpkts);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifoutmulticast);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifoutbroadcast);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts64_tx);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts65_127_tx);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts128_255_tx);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts256_511_tx);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts512_1023_tx);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts1024_1518_tx);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts_1518_tx);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3singlecol);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3multiplecol);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3latecol);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3excessivecol);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3colcnt);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3defer);		SF_Print("SF count information is %ld\n",pu32StaticCnt->pkts_tx);		SF_Print("SF count information is %ld\n",pu32StaticCnt->octets_tx);		SF_Print("SF count information is %ld\n",pu32StaticCnt->collisions);		SF_Print("SF count information is %ld\n",pu32StaticCnt->ifoutoctets);		SF_Print("SF count information is %ld\n",pu32StaticCnt->dot3outpause);	#endif}#endif/*======================================================================= *  函数名称:void ETH_SetPortShortFrameReceive(In UINT32 u32ShorReceEn) *  初稿完成:2005/1/6    *  作    者:   *  函数功能:设置端口短帧接收使能/禁止 *  输入参数: 短帧接收使能/禁止设置 *			u32ShorReceEn:1->使能;0->禁止 *  输出参数:   *  返回类型:  无 *  其他说明:  *  调用函数:  建议  *  主调函数:  建议 *========================================================================*/void ETH_SetPortShortFrameReceive(In UINT32 u32ShorReceEn){	Port_Conf_U SetShorReceEn;	SetShorReceEn.w32 = *(UINT32 *) ETH_MAC0_REG(0);	SetShorReceEn.bits.rx_shframe_en = u32ShorReceEn;	*(UINT32 *) ETH_MAC0_REG(0) = SetShorReceEn.w32;}/*======================================================================= *  函数名称:void ETH_SetPortPostFrameSend(In UINT32 u32PostFraSenEn) *  初稿完成:2005/1/6    *  作    者:   *  函数功能:设置端口流控帧发送使能/禁止 *  输入参数:流控帧发送使能/禁止设置 *			u32PostFraSenEn:1->使能;0->禁止 *  输出参数:   *  返回类型:  无 *  其他说明:  *  调用函数:  建议  *  主调函数:  建议 *========================================================================*/void ETH_SetPortPostFrameSend(In UINT32 u32PostFraSenEn){	Port_Conf_U SetPostFraSenEn;	SetPostFraSenEn.w32 = *(UINT32 *) ETH_MAC0_REG(0);	SetPostFraSenEn.bits.pause_en = u32PostFraSenEn;	*(UINT32 *) ETH_MAC0_REG(0) = SetPostFraSenEn.w32;}/*======================================================================= *  函数名称:void ETH_SetPortCountRollCtrl(  In UINT32 u32Value)  *  初稿完成:2005/1/6    *  作    者:   *  函数功能:设置端口的统计信息计满是否回零 *  输入参数: 需要设置计数器满回零的端口置1,否则置0 *  输出参数:   *  返回类型:  无 *  其他说明:  *  调用函数:  建议  *  主调函数:  建议 *========================================================================*/void ETH_SetPortCountRollCtrl( In UINT32 u32Value) {	Port_Conf_U CntRollCtrl;	CntRollCtrl.w32 = *(UINT32 *) ETH_MAC0_REG(0);	CntRollCtrl.bits.cntr_roll_dis = u32Value;	*(UINT32 *) ETH_MAC0_REG(0) = CntRollCtrl.w32;}/*======================================================================= *  函数名称:void ETH_ReadFrameCRCErrorFlag (Out UINT32 *u32RecFraCRCErr, Out UINT32 *u32TraFraCRCErr)  *  初稿完成:2005/1/15    *  作    者:   *  函数功能:读取的接收帧CRC校验出错标志,读取的发送帧CRC校验出错标志 *  输入参数: *  输出参数: *  返回类型:  无 *  其他说明:  *  调用函数:  建议  *  主调函数:  建议 *========================================================================*/void ETH_ReadFrameCRCErrorFlag (Out UINT32 *u32RecFraCRCErr, Out UINT32 *u32TraFraCRCErr){	Port_Conf_U FrameCRCError;	FrameCRCError.w32 = *(UINT32 *) ETH_MAC0_REG(0);	*(UINT32 *)u32RecFraCRCErr = FrameCRCError.bits.crc_rx;	*(UINT32 *)u32TraFraCRCErr = FrameCRCError.bits.txcrc_bad;}/*======================================================================= *  函数名称:void ETH_SetFrameCRCCtlRebuild ( In UINT32 u32CRCRebuild) *  初稿完成:2005/1/15    *  作    者:   *  函数功能:CRC生成时是否需要修改原来的CRC位,重新计算CRC *  输入参数:CRC重新生成设置位 *			u32CRCRebuild:0->从新计算;1->不从新计算 *  输出参数: *  返回类型:  无 *  其他说明:  *  调用函数:  建议  *  主调函数:  建议 *========================================================================*/void ETH_SetFrameCRCCtlRebuild ( In UINT32 u32CRCRebuild){	Port_Conf_U FrameCRCRebuild;	FrameCRCRebuild.w32 = *(UINT32 *) ETH_MAC0_REG(0);	FrameCRCRebuild.bits.crcgen_dis= u32CRCRebuild;	*(UINT32 *) ETH_MAC0_REG(0) = FrameCRCRebuild.w32;}/*======================================================================= *  函数名称:UINT32 ETH_SetLongFrameLength(In UINT32 u32Value) *  初稿完成:2005/1/5    *  作    者:   *  函数功能:设置最长帧的长度 *  输入参数: 最长帧长度 *  输出参数: *  返回类型:  无 *  其他说明:  *  调用函数:  建议  *  主调函数:  建议 *========================================================================*/void ETH_SetLongFrameLength( In UINT32 u32Value){	Port_Conf_U SetLongFrame;	SetLongFrame.w32 = *(UINT32 *) ETH_MAC0_REG(0);	SetLongFrame.bits.len_max = u32Value;	*(UINT32 *) ETH_MAC0_REG(0) = SetLongFrame.w32;}/*======================================================================= *  函数名称:UINT32 ETH_SetShortFrameLength(In UINT32 u32Value) *  初稿完成:2005/1/5    *  作    者:   *  函数功能:设置最短帧的长度 *  输入参数:最短帧长度 *  输出参数: *  返回类型:  无 *  其他说明:  *  调用函数:  建议  *  主调函数:  建议 *========================================================================*/void ETH_SetShortFrameLength(In UINT32 u32Value){	Port_Conf_U SetLongFrame;	SetLongFrame.w32 = *(UINT32 *) ETH_MAC0_REG(0);	SetLongFrame.bits.rx_min_thr = u32Value;	*(UINT32 *) ETH_MAC0_REG(0) = SetLongFrame.w32;}/*======================================================================= *  函数名称:void ETH_SetLoopBackEnable(In UINT32 u32ExLoop, In UINT32 u32InLoop) *  初稿完成:2005/1/5    *  作    者:   *  函数功能:设置内环回和外环回使能 *  输入参数:使能-1,否则-0 *  输出参数: *  返回类型:  无 *  其他说明:  *  调用函数:  建议  *  主调函数:  建议 *========================================================================*/void ETH_SetLoopBackEnable(In UINT32 u32ExLoop, In UINT32 u32InLoop){	Port_Conf_U SetLoopBack;	SetLoopBack.w32 = *(UINT32 *) ETH_MAC0_REG(0);	SetLoopBack.bits.ex_loop_en = u32ExLoop;	SetLoopBack.bits.in_loop_en = u32InLoop;	*(UINT32 *) ETH_MAC0_REG(0) = SetLoopBack.w32;}/*=======================================================================*							MDIO REG**=======================================================================*//*======================================================================= *  函数名称:UINT32 ETH_SetPHYExternAddress(In UINT32 u32PHYAddr)     *  初稿完成:2005/1/7    *  作    者:   *  函数功能:用于是设置对应端口链接的PHY外部物理地址 *  输入参数:Phy Addr. *  输出参数: *  返回类型:  无 *  其他说明:  *  调用函数:  建议  *  主调函数:  建议 *========================================================================*/void ETH_SetPHYExternAddress(In UINT32 u32PHYAddr)   {	Set_phy_addr_U SetPHYExAddr;	SetPHYExAddr.w32 = *(UINT32 *) ETH_MDIO_REG(2);	SetPHYExAddr.bits.phy_addr0= u32PHYAddr;	*(UINT32 *) ETH_MDIO_REG(2) = SetPHYExAddr.w32;}/*======================================================================= *  函数名称:void ETH_SetPHYFrequency(In UINT32 u32PHYFreq)    *  初稿完成:2005/1/7    *  作    者:   *  函数功能:通过配置分频系数配置外部PHY进行读写操作时的速度 *  输入参数:分频系数(2分频到16分频) *  输出参数: *  返回类型:  无 *  其他说明:  *  调用函数:  建议 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -