基于DWC_ether_qos的以太网驱动开发-描述符格式介绍

原创 嵌入式Lee 2023-09-04 11:46

.描述符格式

1.1 前言

前面我们介绍了描述符链表的工作模式,重点是了解环形链表是如何环形的,以及相关的寄存器。驱动编写就需要更进一步,了解描述符的具体内容,即4个描述符的每个字段的含义。

描述符包含两个缓冲区指针和长度信息,以及一些其他的控制信息。

下面的读取格式指的是硬件读,软件写的格式,回写格式相反。

1.2发送描述符

读取格式

这里的读取指的硬件去读取,即软件写硬件读。

 


TDES0

名字

描述

31:0

BUF1AP

缓冲区1地址指针或TSO头地址指针这些位表示缓冲区1的物理地址。当设置以下位时,这些位指示TSO标头地址指针:

■ TSE bit of TDES3

■ FD bit of TDES3

TDES1

名字

描述

31:0

BUF2AP

缓冲区2或缓冲区1地址指针.当使用描述符环结构时,该位指示缓冲区2的物理地址。缓冲区地址对齐没有限制。在4048位寻址模式中,这些位表示缓冲区1地址指针的最高有效816.

TDES2

名字

描述

31

IOC

本描述符处理完产生中断

30

TTSE/TMWD

传输时间戳启用或外部TSO内存写入禁用如果TSE位未置位,则此位启用描述符引用的传输数据包的IEEE1588时间戳

如果TSE位被置位并且外部TSO存储器被启用,则设置该位将禁用该数据包的外部TSO内存写入

 

29:16

B2L

缓冲区2长度驱动程序设置此字段。设置后,此字段指示缓冲区2的长度。

15:14

VTIR

VLAN标记插入或替换这些位请求MAC在传输数据包之前执行VLAN标记或取消标记。当为数据包启用VLAN标签插入、替换或删除时,应用程序必须适当设置CRC填充控制位。以下列表描述了这些位的值:

■ 2'b00:不要添加VLAN标记。

■ 2'b01:在传输之前从数据包中删除VLAN标签。此选项应仅用于VLAN数据包。

■ 2'b10:插入一个VLAN标签,标签值编程在MAC_VLAN_Incl寄存器或上下文描述符中。

■ 2'b11:用MAC_VLAN_Incl寄存器或上下文描述符中编程的标签值替换数据包中的VLAN标签。此选项应仅用于VLAN数据包。

当在配置核心时选择启用SAVLAN插入Tx选项时,这些位有效

13:0

HLB1L

标头长度或缓冲区1长度对于标头长度,只取位[9:0]。大小13:0仅适用于解释缓冲区1长度时。

如果通过TDES3TSE位启用TCP分段卸载功能,则此字段等于标头长度。当TSE位在TDES3中设置时,报头长度包括从以太网源地址到TCP报头结束的长度(以字节为单位)。TSO功能支持的最大标头长度为1023字节。TSO功能支持的最大标头长度为1023字节。

如果未启用TCP分段卸载功能,则此字段等于缓冲区1长度。

TDES3

名字

描述

31

OWN

软件准备完描述符后,置位该位,表示DMA拥有该描述符,DMA处理完该描述符后清零该位,此时软件拥有该描述符。

注意该位软件要在描述符准备完后最后置位。该位实际是硬件和软件的读写互斥量,硬件和软件都是R-M-W的操作次序。

30

CTXT

设置为1表示Context类型的描述符,正常设置为0.

29

FD

设置为1表示本描述符对应的缓冲区数据是MAC帧的第一段。

28

LD

设置为1表示本描述符对应的缓冲区数据是MAC帧的最后段。此时B1LB2L不能为0.

27:26

CPC

CRC和填充控制

该字段控制Tx数据包的CRC填充插入。仅当设置了第一个描述符位(TDES3[29]FD时,此字段才有效。以下列表描述了位[27:26]的值:

■ 2’b00:CRC和填充插入MAC在长度大于或等于60字节的传输数据包的末尾附加循环冗余校验(CRC)。MAC自动将填充和CRC附加到长度小于60字节的数据包中。

■ 2'b01:CRC插入(禁用填充插入)MAC在传输数据包的末尾附加CRC,但不附加填充。应用程序应确保从传输缓冲区传输的数据包中存在填充字节,也就是说,从传输缓冲区时传输的数据包包长大于或等于60字节。

■ 2’b10:禁用CRC插入MAC不会在传输数据包的末尾附加CRC。应用程序应确保填充和CRC字节存在于从传输缓冲区传输的数据包中。

■ 2'b11:CRC替换MAC用重新计算的CRC字节替换传输数据包的最后四个字节。应用程序应确保填充和CRC字节存在于从传输缓冲区传输的数据包中。

此字段仅对第一个描述符有效。注意:设置TSE位时,MAC会忽略此字段,因为CRC填充插入总是用于分段。

 

25:23

SAIC

SAMAC地址插入控制

这些位请求MAC将以太网数据包中的源地址字段添加或替换为MAC地址0寄存器中给定的值。当为数据包启用SA插入控制时,应用程序必须适当设置CRC填充控制位。位25指定用于插入或替换源地址的MAC地址寄存器(10)值。以下列表描述了位[24:23]的值:

■ 2'b00:不包括源地址

■ 2'b01:包括或插入源地址。为了实现可靠的传输,应用程序必须提供没有源地址的帧。■ 2'b10:替换源地址。为了实现可靠的传输,应用程序必须为帧提供源地址。

■ 2'b11:保留

当在配置核心时选择Enable SA and VLAN Insertion on Tx(启用SAVLAN插入Tx)选项并且设置了First Segment control bitTDES3[29])时,这些位在EQOS-DMAEQOS-AXIEQOS-AHB配置中有效。此字段仅对第一个描述符有效。

22:19

SOLTNUM

THL

SOLTNUM:AV模式下的插槽号控制位

这些位指示应从TDES0TDES1寻址的相应缓冲器中取出数据的时隙间隔

当提取传输描述符时,DMA将该字段中的时隙号值与RSN字段DMA_CH#_slot_Function_Control_Status中保持的时隙间隔进行比较。只有当值匹配时,它才会从缓冲区中获取数据。这些位仅对AV频道有效

THL:TCP标头长度如果设置了TSE位,则此字段包含TCP标头的长度。此字段的最小值必须为5。此字段仅对第一个描述符有效。

18

TSE

TCP分段启用

当该位被设置时,DMA对数据包执行TCP分段。仅当FD位被设置时,此位才有效

17:16

CIC/TPL

校验和插入控制或TCP有效负载长度这些位控制校验和计算和插入。以下列表描述了位编码:

■2'b00:校验和插入已禁用。

■ 2'b01:仅启用IP标头校验和计算和插入。■ 2'b10:启用IP标头校验和和有效负载校验和计算和插入,但硬件中不计算伪标头校验和。

■ 2'b11:IP报头校验和和有效载荷校验和计算和插入启用,伪报头校验和在硬件中计算。

当选择Enable Transmit TCP/IP Checksum Offload(启用传输TCP/IP校验和卸载)选项并重置TSE位时,此字段有效。设置TSE位时,此字段包含TCP有效负载长度的高位[17:16]。这允许TCP数据包长度字段跨越TDES3[17:0],以提供256KB的数据包长度支持。此字段仅对第一个描述符有效。

15

TPL

保留或TCP有效负载长度当TSE位被重置时,该位被保留。设置TSE位时,这是TCP有效载荷长度[17:0]的第15

只有在配置核心时选择了Enable TCP Segmentation Offloading for TCP/IP Packets(为TCP/IP数据包启用TCP分段卸载)选项时,此字段才有效。

 

14:0

FL/TPL

数据包长度或TCP有效负载长度此字段等于要传输的数据包的长度(以字节为单位)。当TSE位未设置时,此字段等于要发送的数据包的总长度:Ethernet Header Length + TCP /IP Header Length – Preamble Length –

SFD Length + Ethernet Payload LengthTSE位被设置时,该字段等于TCP有效载荷长度的低15位。此长度不包括以太网标头或TCP/IP标头长度。

回写格式

这里的回写指的硬件回写,即软件读硬件写。

注意:回写格式仅适用于相应数据包的最后一个描述符。LD位(TDES3[28]置位的描述符中,DMA在描述符中回写相应传输数据包的状态和时间戳信息

 

TDES0

名字

描述

31:0

TTSL

传输数据包时间戳低DMA使用为相应传输数据包捕获的时间戳的最低有效32位来更新此字段。只有在数据包的第一个描述符中设置了TDES2TTSE位时,DMA才会写入时间戳。仅当描述符中的Last Segment位(LS)已设置并且timestamp statusTTSS)位已设置时,此字段才具有时间戳。

TDES1

名字

描述

31:0

TTSH

传输数据包时间戳高DMA使用为相应接收数据包捕获的时间戳的最高有效32位来更新此字段。只有当TDES2TTSE位设置在数据包的第一个描述符中时,DMA才写入时间戳。仅当描述符中的Last Segment位(LS)已设置并且timestamp statusTTSS)位已设置时,此字段才具有时间戳。

 

TDES2

保留

TDES3

名字

描述

31

OWN

见读取格式

30

CTXT

29

FD

28

LD

2716

保留


17

TTSS

Tx时间戳状态此状态位指示已捕获对应传输数据包的时间戳。当设置该位时,TDES2TDES3具有为传输数据包捕获的时间戳值。仅当描述符中的最后一段控制位(TDES3[28])设置时,此字段才有效。此位仅在启用IEEE1588时间戳功能时有效;否则,它将被保留。

16

保留


15

ES

错误摘要此位表示以下位的逻辑或:

■ TDES3[0]: IP Header Error

■ TDES3[14]: Jabber Timeout

■ TDES3[13]: Packet Flush

■ TDES3[12]: Payload Checksum Error

■ TDES3[11]: Loss of Carrier

■ TDES3[10]: No Carrier

■ TDES3[9]: Late Collision

■ TDES3[8]: Excessive Collision

■ TDES3[3]: Excessive Deferral

■ TDES3[2]: Underflow Error

14

JT

Jabber超时此位表示MAC发送器已经历Jabber暂停。仅当未设置MAC_Configuration寄存器的JD位时,才设置该位。

13

FF

数据包刷新此位表示DMAMTL由于CPU给出的软件刷新命令而刷新了数据包。

 

12

PCE

有效负载校验和错误此位表示校验和卸载引擎出现故障,并且没有将任何校验和插入封装的TCPUDPICMP有效负载中。此故障可能是由于字节不足,如IP标头的有效负载长度字段所示,或者MTL在存储和转发模式下开始将数据包转发到MAC发送器,但尚未计算校验和。第二种错误情况仅在传输FIFO深度小于正在传输的以太网数据包的长度时发生,以避免死锁,MTLFIFO满时开始转发数据包,即使在存储和转发模式下也是如此。当未启用完全校验和卸载引擎时,保留此位

11

LOC

载波丢失该比特表示在分组传输期间发生载波丢失(即,在分组传输过程中,gmii_crs_i信号在一个或多个传输时钟周期内不活动)。这仅对在没有冲突的情况下发送的分组有效,并且当MAC在半双工模式下操作时有效。

10

NC

无载波该位表示在传输期间没有断言来自PHY的载波感测信号

9

LC

延迟冲突该位表示由于在冲突窗口之后发生冲突而中止了分组传输(在MII模式中包括Preamble64字节时间和在GMII模式中包括PreambleCarrier Extension512字节时间)。如果设置了欠流错误,则此位无效

 

8

EC

过度冲突此位表示在尝试传输当前数据包时,在连续发生16次冲突后,传输被中止。如果在MAC_Configuration寄存器中设置了DR位,则在第一次冲突之后设置该位,并且中止数据包的传输

7:4

CC

冲突计数此4位计数器值表示在传输数据包之前发生的冲突数。设置EC位时,计数无效。

 

3

ED

过度延迟此位表示如果在MAC_Configuration寄存器中设置了DC位,则由于超过24288位时间的过度延迟(在1000Mbps模式或Jumbo Packet enabled模式下为155680位时间),传输结束。

2

UF

欠流错误此位表示MAC中止了数据包,因为数据从系统内存延迟到达。下溢错误可能是由于以下任一情况而发生的:■ DMA在传输数据包时遇到空的传输缓冲区应用程序填充MTL Tx FIFO的速度慢于MAC传输速率。传输过程进入暂停状态,并设置与MTL_Interrupt_Status寄存器中的队列相对应的下溢位。

1

DB

延迟位此位表示MAC由于载波的存在而在发送之前延迟。此位仅在半双工模式下有效。

 

0

IHE

IP标头错误设置IP标头错误时,此位表示校验和卸载引擎检测到IP标头错误。此位仅在启用Tx校验和卸载时有效。否则,它将被保留。如果COE检测到IP标头错误,如果以太网类型字段指示IPv4有效负载,它仍然插入IPv4标头校验和。

传输上下文描述符

见手册21.5.2

1.3接收描述符

读取格式

在接收描述符(读取格式)中,如果缓冲区地址字段全部为0,则DWC_ether_qos不会将数据传输到该缓冲区,并跳到下一个缓冲区或下一个描述符。

 

RDES0

名字

描述

31:0

BUF1AP

标题或缓冲器1地址指针.

当通道的控制寄存器的SPH位被复位时,这些位指示缓冲器1的物理地址。当SPH位被设置时,这些位指示报头缓冲器的物理地址,Rx DMA在该物理地址写入接收到的分组的L2/L3/L4报头字节。应用程序可以为该缓冲器编程一个字节对齐的地址,这意味着该字段的LS位可以是非零的。然而,在传输数据包的开始时,DMA执行RDES0[1:0](或者在64-/128位配置的情况下,RDES0[2:0]/[3:0])为零的写入操作。然而,分组数据按照缓冲区地址指针给出的实际偏移量进行移位。如果地址指针指向存储数据包中间或最后部分的缓冲区,DMA将忽略偏移地址并写入数据宽度所指示的完整位置

 

RDES1

名字

描述

31:0

BUF1AP

64位地址模式的BUF1AP的高32位,32位不使用

RDES2

名字

描述

31:0

BUF2AP

缓冲器2地址指针这些位表示缓冲器2的物理地址。当设置DMA_CH#_Control寄存器的SPH位时,缓冲区地址指针必须与总线宽度对齐,即RDES2[3:02:01:0]=0,对应于1286432总线宽度。LSB在内部被忽略。当DMA_CH#_Control寄存器的SPH位复位时,RDES2值没有限制。然而,RxDMA仅在传输数据包的起始字节时使用指针地址的LS位。如果BUF2AP给出了存储数据包中间或最后部分的缓冲器的地址,DMA将忽略BUF2AP[3:02:01:0](对应于1286432位数据总线)并写入完整位置。

 

RDES3

名字

描述

31:0

OWN

TX描述符

30

IOC

TX描述符

29:26

保留


25

BUF2V

缓冲区2地址有效当设置此位时,它向DMA指示RDES2中指定的缓冲区2的地址有效。应用程序必须设置此位,以便DMA可以使用RDES2中的缓冲区2地址所指向的地址来写入接收到的数据包数据。

 

24

BUF1V

缓冲区1地址有效设置后,向DMA指示RDES1中指定的缓冲区1的地址有效。如果DMA可以使用RDES1中缓冲区1地址所指向的地址来写入接收到的数据包数据,则应用程序必须设置此值

23:0

保留


回写格式

 

RDES0

名字

描述

31:16

IVT

内部VLAN标记如果设置了RDES3RS0V位,则此字段包含接收到的数据包的内部VLAN标记。仅当启用了双VLAN标记处理和VLAN标记剥离时,此选项才有效。

15:0

OVT

外部VLAN标记如果设置了RDES3RS0V位,则此字段包含接收到的数据包的外部VLAN标记

RDES1

仅对最后一个描述符有效(设置了RDES3[28]

名字

描述

31:16

OPC

 

OAM Sub-Type Code:

RDES3的比特[18:16]被设置为3’b111;

MAC Control Packet opcode:

RDES3的比特[18:16]被设置为3’b110

15

TD

丢弃的时间戳

此位表示捕获了此数据包的时间戳,但由于溢出,它在MTL Rx FIFO中被丢弃。只有选择时间戳功能时,此位才可用。否则,保留此位

14

TSA

可用时间戳当存在时间戳时,此位指示时间戳值在上下文描述符字2RDES2)和字1RDES1)中可用。只有当设置了最后一个描述符位(RDES3[28])时,这才有效。上下文描述符被写入下一个描述符中,刚好在数据包的最后一个正常描述符之后。

13

PV

PTP版本该比特指示所接收的PTP消息具有IEEE 1588版本2格式。当该位被重置时,它指示IEEE 1588版本1格式。只有当您选择时间戳功能时,此位才可用。否则,该位被保留。

12

PFT

PTP数据包类型此位表示PTP消息直接通过以太网发送。只有当您选择时间戳功能时,此位才可用。否则,该位被保留。

11:8

PMT

PTP Message Type

只有选择时间戳功能时,这些位才可用。

■ 0000: No PTP message received

■ 0001: SYNC (all clock types)

■ 0010: Follow_Up (all clock types)

■ 0011: Delay_Req (all clock types)

■ 0100: Delay_Resp (all clock types)

■ 0101: Pdelay_Req (in peer-to-peer transparent clock)

■ 0110: Pdelay_Resp (in peer-to-peer transparent clock)

■ 0111: Pdelay_Resp_Follow_Up (in peer-to-peer transparent clock)

■ 1000: Announce

■ 1001: Management

■ 1010: Signaling

■ 1011–1110: Reserved

■ 1111: PTP packet with Reserved message type

7

IPCE

IP Payload ErrorIP有效负载错误)当设置此位时,它指示以下情况之一:■ MAC计算的16IP有效载荷校验和(即TCPUDPICMP校验和)与接收段中相应的校验和字段不匹配。■ TCPUDPICMP段长度与IP标头字段中的有效负载长度值不匹配。■ TCPUDPICMP段长度小于TCPUDPICMP允许的最小段长度。当RDES3的位15ES)被设置时,该位未被设置

6

IPCB

IP校验和旁路此位表示校验和卸载引擎被旁路。当您选择启用接收TCP/IP校验和检查功能时,此位可用

 

5

IPV6

IPv6标头存在此位表示检测到IPv6标头。当选择Enable Split Header Feature(启用拆分标头功能)选项并设置通道控制寄存器的SPH位时,IPV6标头在RDES0所指向的标头缓冲区中可用。

4

IPV4

IPV4标头存在此位表示检测到IPV4标头。当RDES3SPH位被设置时,IPV4报头在RDES0所指向的报头缓冲区中可用。

 

3

IPHE

IP标头错误当设置此位时,表示以下情况之一:■ MAC计算的16IPv4标头校验和与接收到的校验和字节不匹配。■ IP数据报版本与以太网类型值不一致。以太网数据包没有预期的IP标头字节数。当位5或位4被设置时,该位是有效的。当您选择启用接收TCP/IP校验和检查功能时,此位可用。

 

2:0

PT

有效载荷类型这些比特指示由接收校验和卸载引擎(COE)处理的IP数据报中封装的有效载荷的类型:■ 3'b0000:未知类型或未处理IP/AV有效负载■ 20013月:UDP■ 20103月:TCP■ 20113月:ICMP■ 3'b110AV标记数据包■ 3'b111:AV标签的控制包■ 3'b101:AV未标记控制数据包■ 3'b100:IGMP如果IPV4标头存在位被设置为else DCBLLDP)控制包如果COE由于存在IP标头错误或碎片IP而不处理IP数据报的有效载荷,则将这些位设置为3'b000

RDES2

名字

描述

31:29

L3L4FM

匹配的第3层和第4层滤波器数量这些比特指示与接收到的分组匹配的第三层和第四层滤波器的数量:只有当位28或位27被设置为高时,该字段才有效。当多个滤波器匹配时,这些位给出最低滤波器的数目

 

28

L4FM

4层过滤器匹配

当设置此位时,它表示接收到的数据包与启用的第4层端口号字段之一匹配。只有当下列条件之一成立时,才会给出此状态

3层字段未启用,所有启用的第4层字段匹配所有启用的第3层和第4层筛选器字段匹配

当不止一个过滤器匹配时,该位给出由位[31:29]指示的过滤器的第4层过滤器状态

 

27

L3FM

3层筛选器匹配设置此位时,表示接收到的数据包与启用的第3IP地址字段之一匹配。只有当下列条件之一成立时,才会给出此状态:所有启用的第3层字段匹配,所有启用的4字段被绕过所有启用的过滤器字段匹配当多个过滤器匹配时,该位给出由位[31:29]指示的过滤器的第3层过滤器状态。

26:19

MADRM

MAC地址匹配或哈希值当HF位重置时,此字段包含与接收到的数据包的目标地址匹配的MAC地址寄存器号。仅当DAF位被重置时,此字段才有效。设置HF位时,此字段包含MAC计算的哈希值。当与哈希值相对应的比特被设置在哈希过滤器寄存器中时,数据包通过哈希过滤器。

 

18

HF

哈希过滤器状态设置此位时,表示数据包通过了MAC地址哈希过滤器。比特[26:19]表示散列值。

17

DAF

当设置此位时,目标地址过滤器失败,这表明数据包在Mac上的DA过滤器失败。

16

SAF

SA地址筛选器失败设置此位时,表示数据包未通过MAC中的SA筛选器。

15

OTS

VLAN筛选器状态设置时,此位指示接收数据包的VLAN标记通过VLAN筛选器。此位仅在未启用DWC-EQOS-ERVFE时有效。如果启用了DWC-EQOS-ERVFE,则该位将重新定义为外部VLAN标记筛选器状态(OTS)。有关详细信息,请参阅第235页的过滤器状态。此位对单个和双VLAN标记帧都有效。

14

ITS

内部VLAN标记筛选器状态(ITS)此位仅在启用DWC_EQOS_ERVFE时有效。有关更多详细信息,请参阅第235页的过滤器状态。当启用双VLAN处理时,此位仅对双VLAN标记帧有效。

 

13:11

保留


10

ARPNR

未生成ARP应答当设置此位时,表示MAC没有为接收到的ARP请求数据包生成ARP应答。当MAC忙于发送对早期ARP请求的ARP回复时(一次只处理一个ARP请求),设置此位。当未选择Enable IPv4 ARP Offload(启用IPv4 ARP卸载)选项时,保留此位。

 

9:0

HL

L3/L4报头长度该字段包含由MACL3L4报头边界处分割的分组的报头的长度,如MAC接收器所识别的。仅当第一描述符位被设置(FD1)时,该字段才有效。

头数据被写入相应描述符的缓冲器1地址。如果标头长度为零,则此字段无效。这意味着MAC没有识别和分割报头。选择启用拆分标头功能选项时,此字段有效。

RDES3

名字

描述

31

OWN


30

CTXT


29

FD


28

LD


27

RS2V

接收状态RDES2有效设置此位时,表示RDES2中的状态有效,并且由DMA写入。仅当RDES3LD位被设置时,该位才有效。

26

RS1V

接收状态RDES1有效设置此位时,表示RDES1中的状态有效,并且由DMA写入。仅当RDES3LD位被设置时,该位才有效。

25

RS0V

接收状态RDES0有效设置此位时,表示RDES0中的状态有效,并且由DMA写入。仅当RDES3LD位被设置时,该位才有效。

24

CE

CRC错误设置此位时,表示在接收到的数据包上发生了循环冗余校验(CRC)错误。仅当RDES3LD位设置时,此字段才有效

23

GP

巨型数据包设置此位时,表示数据包长度超过指定的最大以太网大小151815222000字节(如果设置了巨型数据包启用,则为90189022字节)。注:巨型数据包仅表示数据包的长度。它不会导致任何数据包截断

 

22

RWT

接收看门狗超时设置此位时,表示接收看门狗计时器在接收当前数据包时已过期。看门狗超时后,当前数据包被截断。

21

OE

溢出错误设置此位时,表示接收到的数据包由于Rx FIFO中的缓冲区溢出而损坏。注意:此位仅在DMA将部分数据包传输到应用程序时设置。只有当Rx FIFO在阈值模式下操作时才会发生这种情况。在存储转发模式中,所有部分数据包都会完全丢弃在Rx FIFO

 

20

RE

接收错误当设置此位时,它指示在分组接收期间断言gmii_rxer_i信号,而断言gmii_rxdv_i信号。该错误还包括GMII和半双工模式中的载波扩展错误。错误可以是较少扩展名或没有扩展名,也可以是扩展期间的错误(rxd=0f

 

19

DE

漂移位错误设置此位时,表示接收到的数据包具有非整数倍的字节(奇数半字节)。此位仅在MII模式下有效。

18:16

LT

长度/类型字段此字段指示接收到的数据包是长度数据包还是类型数据包。这3个比特的编码如下:

■ 3'b000: The packet is a length packet

■ 3'b001: The packet is a type packet.

■ 3'b011: The packet is a ARP Request packet type

■ 3'b100: The packet is a type packet with VLAN Tag

■ 3'b101: The packet is a type packet with Double VLAN Tag

■ 3'b110: The packet is a MAC Control packet type

■ 3'b111: The packet is a OAM packet type

■ 3'b010: Reserved

15

ES

错误摘要设置此位时,表示以下位的逻辑或:

仅当RDES3LD位被设置时,此字段才有效。

■ RDES3[24]: CRC Error

■ RDES3[19]: Dribble Error

■ RDES3[20]: Receive Error

■ RDES3[22]: Watchdog Timeout

■ RDES3[21]: Overflow Error

■ RDES3[23]: Giant Packet

14:0

PL

数据包长度这些比特指示被传送到系统存储器(包括CRC)的接收数据包的字节长度。当RDES3LD位被设置和/或溢出错误位被重置时,此字段有效。当启用IP校验和计算并且接收到的分组不是MAC控制分组时,分组长度还包括附加到以太网分组的两个字节。当设置RDES3LD位时,此字段有效。当未设置Last DescriptorError Summary位时,此字段指示当前数据包已传输的累计字节数。

接收上下文描述符

见手册21.6.3

只有DMA能写,提供最后一个包的扩展状态信息,

RDES3b30 CTXT标记该类型

1.4 Split Header Support 模式

DMA可以分别处理接收到的包的报头和有效载荷。支持MAC帧,IP包,TCP/UDP包三个级别的包类型。

见手册21.3

1.5总结

以上信息来源手册的简单整理,以备查询,实际调试过程中以对照手册为准。

一些关键的字段可以帮助调试等需要了解,重点了解OWN位的互斥作用,即硬件和软件的R-M-W操作。


评论
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 173浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 171浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 126浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 166浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 81浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 204浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 556浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 188浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 70浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 108浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 85浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 221浏览
我要评论
2
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦