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

📄 sf_regstruct.h

📁 华为 HI3510 BOOTLOADER HIBOOT 源码包
💻 H
📖 第 1 页 / 共 4 页
字号:
/************************************************************************ *                                                                      * *                          SF_regstruct                                * *                                                                      * *  Project Code:       SD592DRIVER                                     * *  Create Date:        2005/01/03                                      * *  Author:             TANGBENBING                                     * *  Modify Date:                                                        * *  Document:                                                 			* *  Function:                                                           * *  Others:                                                             * *----------------------------------------------------------------------* *                                                                      * * Copyright 2004-2005 SD592 Team Shenzhen  HuaWei Tech, Inc.   		* *                     ALL RIGHTS RESERVED                              * *                                                                      * ************************************************************************/#include "SF_TypeDef.h"#ifndef __DRIVERS_NET_HISILICON_SF_REGSTRUCT_H #define __DRIVERS_NET_HISILICON_SF_REGSTRUCT_H /***************************************************//*		Frame head structure	(Create as small endian)*//***************************************************/typedef struct {		UINT32 	DMACH32		:32;				UINT32 	SMACH16		:16;		UINT32 	DMACL16		:16;				UINT32 	SMACL32		:32;				UINT32 	VER_TOS			:16;		UINT32 	TYPE			:16;				UINT32 	FlagID			:16;		UINT32 	PackageLength	:16;				UINT32 	Protocol		:16;		UINT32 	PortMac1		:2;		UINT32 	PortMac2		:3;		UINT32 	PortMac3		:4;}EthernetFrameHead_S;/***********************************************************//*soft deal with the tcp frame*/#ifdef SoftAvoidTCPError/*TCP From down port div frame form content structure(big endian)*//*64 depth of the form*/struct TCPDivDport_S{	UINT32	new_id;		/*frame new id 16bits*/	UINT32	old_id;		/*frame old id 16bits*/	UINT32 	src_ip;		/*frame source ip 32bits*/	UINT32	AgingTime;		/*aging time 15bits*/	UINT32	vld;			/*form enable*/	struct TCPDivDport_S *Next;};/*TCP From up port div frame form content structure(big endian)*//*64 depth of the form*/struct TCPDivUport_S{	UINT32	out_port;		/*frame destination port number 16bits*/	UINT32	protocol;		/*frame protocol 8bits*/	UINT32 	id;			/*frame id 16bits*/	UINT32	src_ip;		/*frame source ip 32bits*/	UINT32	AgingTime;	/*aging time 7bits*/	UINT32	vld;			/*form enable*/	struct TCPDivUport_S *Next;};#endif/***********************//*NAT control register*//*the fdiv_ctrl,fpm_ctrl ,fim_ctrl 在default 控制为1的时候才有效*/typedef union{	struct	{		UINT32	down_fdiv_ctrl		:1;	/*下行口,查找分片表失败帧转发控制,1到cpu0丢;低位下行口*/		UINT32	up_fdiv_ctrl		:1;	/*上行口,查找分片表失败帧转发控制,1到cpu0丢;低位下行口*/		UINT32	down_fpm_ctrl		:1;	/*下行口,查找端口映射表失败帧转发控制,1到cpu0丢;低位下行口*/		UINT32	up_fpm_ctrl		:1;	/*上行口,查找端口映射表失败帧转发控制,1到cpu0丢;低位下行口*/		UINT32 	fim_ctrl		:1;	/*查找IPMAC表失败帧转发控制,1到cpu0丢;低位下行口*/		UINT32	down_dis_frag		:1;	/*下行口,分片报文处理禁止使能,1禁止就发到cpu,0 SF处理分片报文低位下行口*/		UINT32	up_dis_frag		:1;	/*上行口,分片报文处理禁止使能,1禁止就发到cpu,0 SF处理分片报文低位下行口*/		UINT32	down_nmip_ctrl	:1;	/*下行口,普通IP报文(非tcp、udp)处理控制,1发cpu,0 丢,低位下行口*/		UINT32	up_nmip_ctrl	:1;	/*上行口,普通IP报文(非tcp、udp)处理控制,1发cpu,0 丢,低位下行口*/		UINT32	reserved		:23;	/*   */	}bits ;	UINT32 w32 ;}NATControl_U;/*ARP queue structure*/struct DARP_S{	UINT32	AgingTime;	/*老化时间*/	UINT32	SProtocol;	/*sourse protocol*/	UINT32 	SPort;		/*Sourse port No*/	UINT32	SIP	;		/*sourse ip*/	UINT32	DIP	;		/*数据包的目的IP地址*/	UINT32	FrameType;	/*frame type of the 5 kinds*/	UINT32	ARPContent[(PKTLength+3)/4];	struct DARP_S *Next;};struct UPort_DivMes_S{	UINT32 	DivFail0;	UINT32 	DivFail1;	UINT32 	DivFail2;};/*Div package queue structure*/struct S_DivPKT{	UINT32	AgingTime;		/*老化时间*/	UINT32	IDAndProt;		/*分片报文标志和协议类型*/	UINT32	SourceIP;		/*分片报文源IP地址*/	UINT32 	Outside_port;		/*目的端口号ID*/	UINT32 	DivPackageLength;	/*分片包的长度*/	UINT32 	DivContent[(PKTLength+3)/4];	struct 	S_DivPKT *Next;};/*#package(1)*//*来自上行口的端口映射表(port-mac form)结构体*/typedef struct {		UINT32 	PortMac0;		UINT32 	PortMac1;		UINT32 	PortMac2;		UINT32 	PortMac3;}UPort_PortMAC_S;/*Define the MAC_DIO Register for switch fabric registers*/	/*设置帧结构的寄存器*/typedef union{	struct	{		UINT32 para			:16;  	/*输出流控帧间隔参数,缺省为16'h1fff*/		UINT32 ipg			:7;  		/*帧间隙,缺省为96*/		UINT32 pre_cnt_limit	:3;   		/*连续检测到帧前导码的个数,缺省为3*/		UINT32 reserved      	:6;   		/*     */	}bits ;	UINT32 w32 ;}Frame_Para_U;/*设置端口设定状态选择信息寄存器*/typedef union{	struct	{		UINT32 stat_ctrl	:4;	/*端口状态信息选择控制寄存器,bit3~2对应端口1,bit1~0对应端口0:*/							/*2'b10:使用CPU设定的状态信息*/							/*其他: 使用从MDIO接口获得的状态信息*/							/*缺省为00*/		UINT32 reserved	:28;	/*     */	}bits ;	UINT32 w32 ;}Port_Stat_Choice_U;/*端口软件复位寄存器*/typedef union{	struct	{		UINT32 reset_down_port		:1;	/*下行端口复位,缺省为1'b0,1有效*/		UINT32 reset_up_port		:1;	/*下行端口复位,缺省为1'b0,1有效*/		UINT32 reserved       	:30;	/*     */	}bits ;	UINT32 w32 ;}Port_Reset_U;/*CPU设定端口速度、链接、双工寄存器*/typedef union{	struct	{		UINT32 down_duplex_stat_dio	:1;   	/*CPU设定下行口双工模式,缺省为0*/		UINT32 up_duplex_stat_dio	:1;   	/*CPU设定上行口双工模式,缺省为0*/		UINT32 down_link_stat_dio	:1;   	/*CPU设定下行口链接状态,缺省为0*/		UINT32 up_link_stat_dio	:1;   	/*CPU设定上行口链接状态,缺省为0*/		UINT32 down_speed_stat_dio	:1;   	/*CPU设定下行口速度模式,缺省为0*/		UINT32 up_speed_stat_dio	:1;   	/*CPU设定上行口速度模式,缺省为0*/		UINT32 reserved       	:26;	/*     */	}bits ;	UINT32 w32 ;}Set_CPUSpeLinDup_U;/*端口的速度、链接、双工状态改变标志寄存器*/typedef union{	struct	{		UINT32 down_duplex_stat_ch	:1;   	/*下行口双工模式改变标志位*/		UINT32 up_duplex_stat_ch	:1;   	/*上行口双工模式改变标志位*/		UINT32 down_link_stat_ch	:1;   	/*下行口链接状态改变标志位*/		UINT32 up_link_stat_ch	:1;   	/*上行口链接状态改变标志位*/		UINT32 down_speed_stat_ch	:1;   	/*下行口速度模式改变标志位*/		UINT32 up_speed_stat_ch	:1;   	/*上行口速度模式改变标志位*/		UINT32 reserved       	:26;	/*     */	}bits ;	UINT32 w32 ;}Changed_SpeLinDup_U;/*MAC0_DIO*//*端口0、1的端口配置寄存器*/typedef union{	struct	{		UINT32 len_max		:11;		/*端口允许接收的最大帧长,缺省为1518                  */		UINT32 rx_min_thr		:6;		/*端口允许接收的最小帧长,缺省为42                    */		UINT32 rx_shframe_en	:1;		/*端口短帧接收使能信号,缺省为1                       */		UINT32 pause_en		:1;		/*端口流控帧发送使能信号,缺省为1                     */		UINT32 ex_loop_en		:1;		/*端口外环回使能信号                                  */		UINT32 in_loop_en		:1;		/*端口内环回使能信号                                  */		UINT32 colthreshold	:4;		/*冲突次数统计,缺省为1,表示发送出现一次冲突的帧的个数*/		UINT32 cntr_roll_dis	:1;		/*端口统计计数环回使能信号,缺省为0                   */		UINT32 cntr_clr_all		:1;		/*端口统计计数器清空信号,缺省为0                     */		UINT32 cntr_rdclr_en	:1;		/*端口统计计数器读清空使能信号,缺省为0               */		UINT32 crcgen_dis		:1;		/*CRC生成禁止控制寄存器,1表示输出帧不计算CRC,缺省为0 */		UINT32 txcrc_bad		:1;		/*发送CRC错帧计数器                                    */		UINT32 crc_rx			:1;		/*接收帧CRC错指示,1有效                               */		UINT32 reserved       	:1;   		/*     */	}bits ;	UINT32 w32 ;}Port_Conf_U;/*端口0、1计数器计数值保存寄存器*/typedef union{	struct	{		UINT32 txcrcbad_cnt	:4;	/*发送CRC校验错误计数  */		UINT32 txcrcok_cnt		:4;	/*发送CRC校验正确计数  */		UINT32 txeof_cnt		:4;	/*发送帧尾计数         */		UINT32 txsof_cnt		:4;	/*发送帧头计数         */		UINT32 rxcrcbad_cnt	:4;	/*接收到CRC校验错误计数*/		UINT32 rxcrcok_cnt		:4;	/*接收到CRC校验正确计数*/		UINT32 rxeof_cnt		:4;	/*接收到帧尾计数       */		UINT32 rxsof_cnt  		:4;	/*接收到帧头计数       */ 	}bits ; 	UINT32 w32 ;}Port_Count_U;                                /*端口0、1接收帧计数寄存器*/typedef union   {	struct	{		UINT32 cntr_stat_rx	:30;   	/*端口接收统计计数半满指示信号*/		UINT32 reserved       	:2;		/*     */	}bits ;	UINT32 w32 ;}Port_Rec_Cnt_U;/*端口0、1发送帧计数寄存器*/typedef union   {	struct	{		UINT32 cntr_stat_tx	:30;   	/*端口发送统计计数半满指示信号*/		UINT32 reserved       	:2;   		/*     */	}bits ;	UINT32 w32 ;}Port_Tra_Cnt_U;/*MDIO_DIO*//*PHY芯片配置寄存器*/typedef union   {	struct	{                UINT32 phy_inaddr	:5;	/*对外部操作的PHY的内部地址。PHY内部有32个寄存器。用5位二进制数来表示。缺省为0*/                UINT32 frq_dv		:3;	/*对外部PHY进行读写操作时,对MDC的分频系数。3位,*/                					/*用来实现对MDIO的分频值从2分频至16分频。缺省为0*/                                                                                   UINT32 phy_exaddr	:5;	/*对外部操作的PHY的对应的外部物理地址。*/                					/*一个MDIO可以对外面的27个PHY进行读写访问。每个PHY有一个相应的地址。缺省为0*/                UINT32 rw		:1;	/*用来表示对PHY的访问为读操作还是写操作。高表示写操作,低为读操作。*/                UINT32 reserved	:1;	/*                                                   */                UINT32 finish		:1;	/*完成对PHY的读/写操作后,会置1。当要进行第二次读写操作时,*/                					/*CPU会先对该位进行写清零。缺省为1                     */		UINT32 cpu_data_in:16;	/*用于MDIO模块对PHY进行对写操作的数据寄存器,进行写操作时,*/							/*CPU将要对MDIO写入的16数据先写入到该寄存器中。        */	}bits ;	UINT32 w32 ;}PHY_Conf_U;/*PHY上供读取的数据保存寄存器,只读*/typedef union   {	struct	{		UINT32 cpu_data_out	:16;   	/*用于MDIO模块对PHY进行对读操作的数据寄存器,*/									/*将从PHY读取的16位数据将写入到该寄存器中。*/		UINT32 reserved		:16;		/*     */	}bits ;	UINT32 w32 ;}Read_PHY_Data_U;/*设置PHY地址寄存器*/typedef union   {	struct	{		UINT32 phy_addr0		:5;   	/*PHY0的外部物理地址,缺省为5'd0*/		UINT32 phy_addr1		:5;   	/*PHY1的外部物理地址,缺省为5'd1*/		UINT32 reserved       	:22;	/*     */	}bits ;	UINT32 w32 ;}Set_phy_addr_U;/*PHY中速度、链接、双工模式的保存寄存器*/typedef union   {	struct	{		UINT32 down_duplex_mdio2mac	:1;   		/*从MDIO接口得到的端口双工工作状态,处于半双工或全双工方式。*/		UINT32 up_duplex_mdio2mac	:1; 		/*1为全双工方式。以bitmap的形式,每一位对应一个端口。         */		UINT32 down_link_mdio2mac	:1; 		/*从MDIO接口得到的链接状态指示。1为链接状态,0为未链接状态。*/		UINT32 up_link_mdio2mac		:1; 		/*以bitmap的形式,每一位对应一个端口。                        */		UINT32 down_speed_mdio2mac	:1; 		/*从MDIO接口得到的端口速度工作状态,处于10M或100M方式。*/		UINT32 up_speed_mdio2mac	:1; 		/*1为100M工作方式,0为10M方式。以bitmap的形式,每一位对应一个端口。*/		UINT32 reserved       		:26;		/*     */	}bits ;	UINT32 w32 ;}PHY_Read_SpeLinDup_U;#if defined(CONFIG_HISILICON_SF_V001)/*PHY芯片状态寄存器所在地址的配置寄存器*/typedef union   {	struct	{                UINT32 duplex_index      :4;	/*PHY芯片状态寄存器中存储双工信息的偏移地址,缺省值按照Intel9785设置*/                UINT32 link_index        	:4;	/*PHY芯片状态寄存器中存储链接信息的偏移地址,缺省值按照Intel9785设置*/                UINT32 speed_index       :4;	/*PHY芯片状态寄存器中存储速度信息的偏移地址,缺省值按照Intel9785设置*/		UINT32 internal_addr	:5;	/*PHY芯片存储状态信息(速度、链接和双工)的寄存器地址,*/								/*缺省值按照Intel 9785设置(待更新,应与SD592PHY芯片一致)*/		UINT32 reserved       	:15;	/*     */	}bits ;	UINT32 w32 ;}PHY_Stat_Addr_U;#elif defined(CONFIG_HISILICON_SF_V002)

⌨️ 快捷键说明

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