DMA 接收描述符
接收描述符 RDES4~7(RDES4状态信息,RDES5 Reserved,RDES6~7 时钟戳信息)的应用,需要设置寄存器DMA0/1_CONF的ALT_DES_SIZ = 1。
接收描述符 RDES0
Bit | 域描述 |
---|---|
31 | RX_PRC,Receive in Process,接收进行中。
|
30 | DA_FLT,Destination Address Filter Fail,目的地址过滤失败。
|
29:16 | RX_FRM_LEN,Receive Frame Length,接收到的帧的长度,此域在最后一个描述符有效,并且无异常发生。 |
15 | RXERR_STS,Receive Error Status,接收错误状态指示位。
|
14 | RX_DES_ERR,Receive Descriptor Error,接收描述符错误,此域在最后一个描述符有效。
|
13 | SA_FLT,Source Address Filter Fail,源地址过滤失败。
|
12 | RX_LEN_ERR,Receive Length Error,接收长度错误。
|
11 | RXFIFO_OF_ERR,RXFIFO Overflow Error,接收溢出错误。
|
10 | VLAN_TAG,VLAN Tag,此位置1表示接收的帧位VLAN帧。 |
9 | START_DES,Start Descriptor,第一个描述符。
|
8 | END_DES,End Descriptor,最后一个描述符。
|
7 | TMSTMP_AVL/ IP_CHSM_ERR/ GNT_FRM 此位可指示三种状态:
|
6 | LT_COL_ERR,Late Collision Error,Late Collision错误。
|
5 | RX_FRM_TYP,Receive Frame Type,接收帧的类型。
|
4 | RX_WD_TO_ERR,Receive Watchdog Timeout Error,接收看门狗的超时错误。
|
3 | RX_ERR,Receive Error,接收过程出现RX_ERR信号。
|
2 | Reserved |
1 | RX_CRC_ER,RReceive CRC Error,接收CRC错误,此域只有在最后一个描述符有效。
|
0 | EXT_STS_AVA/ RX_MAC_ADDR
|
接收描述符 RDES1
Bit | 域描述 |
---|---|
31 | DIS_COMP_INT,Disable Complete Interrupt,禁止接收完成中断的产生。0x0:未禁止0x1:禁止 |
30:29 | Reserved |
28:16 | RX_BUF2_SIZ,Receive Buffer2 Size,接收缓存2的空间大小。 |
15 | RX_END_RNG,Receive End of Ring,指示在DMA的Ring模式下,此描述为最后的描述符,完成后跳转回起始描述符。 |
14 | RX_DMA_MOD,Receive DMA Mode,接收DMA的模式。0x0:Ring模式;0x1:Chain模式 |
13 | Reserved |
12:0 | RX_BUF1_SIZ,Receive Buffer1 Size,接收缓存1的空间大小。 |
接收描述符 RDES2
Bit | 域描述 |
---|---|
31:0 | BUF1_ADDRBuffer1 Address,Buffer1地址指针,Buffer1的物理地址。 |
接收描述符 RDES3
Bit | 域描述 |
---|---|
31:0 | BUF2_ADDR/NXT_DES_ADDR 在DMA采用Ring模式时,这里为BUF2_ADDR,而采用Chain模式时,这里为NXT_DES_ADDR。BUF2_ADDR,Buffer2 Address,Buffer2地址指针,Buffer2的物理地址。NXT_DES_ADDR,Next Descriptor Address,下一个描述符的地址,指向下一个描述符的物理地址,从而将描述符连接起来。 |
接收描述符 RDES4
Bit | 域描述 |
---|---|
31:21 | Reserved |
20:18 | VLAN_TAG_PRI_V,VLAN Tag Priority Value,此域内容填入接收到的包的VLAN TAG用户值域。 |
17 | AV_TAG_PKT_RCD,AV Tagged Packet Received,此位置1表示接收到带AV标签的数据包。 |
16 | AV_PKT_RCD,AV Packet Received,此位置1表示接收到AV包。 |
15 | Reserved |
14 | TMSTMP_DRP,Timestamp Dropped,时钟戳丢失,由于RXFIFO溢出,导致时钟戳丢失。0x0:无效;0x1:时钟戳丢失 |
13 | PTP_VER,PTP Version,PTP版本。0x0:IEEE1588;0x1:IEEE1588V2 |
12 | RX_PTP_FRM,Received PTP Frame Type,接收到PTP帧的类型。0x0:接收到PTP报文通过UDP-IPV4或UDP-IPV6的形式传送0x1:接收到PTP报文直接通过以太网帧形式传送 |
11:8 | PTP_RX_MSG_TYP,Received PTP Message Type,接收到的PTP消息报文类型。
|
7 | RX_IPV6_PKT,Received IPV6 Packet,接收到IPV6包。
|
6 | RX_IPV4_PKT,Received IPV4 Packet,接收到IPV4包。
|
5 | DIS_IP_CHSUM,Disable IP Checksum Function,关闭IP校验和功能。
|
4 | IP_PL_ERR,IP Payload
Error,IP包校验错误,接收到的IP包的TCP/UDP/ICMP的校验和错误,或长度错误。
|
3 | IP_HD_ERR,IP Header
Error,接收到的IP包的首部校验和与计算的校验和不一致,或者IP版本与Ethernet Type域值不一致。
|
2:0 | IP_PKT_TYP,IP Packet Type,IP包类型,此域只有在BIT6/7生效时才有效。
|
接收描述符 RDES6
Bit | 域描述 |
---|---|
31:0 | RX_STMP_LO,Receive Timestamp Low 32bit,接收时间戳的低32位,此域由DMA自动填写,与TDES7的高32bit组成完整的时间戳。 |
接收描述符 RDES7
Bit | 域描述 |
---|---|
31:0 | RX_STMP_HI,Receive Timestamp High 32bit,发送时间戳的高32位,此域由DMA自动填写,与TDES7的低32bit组成完整的时间戳。 |