文档目录

4.8. RX配置和状态寄存器

表 23.  RX配置和状态寄存器
字偏移 寄存器名称 说明 访问权限 HW复位值
0x00A0 rx_transfer_control
  • Bit 0—RX路径使能。

    0:使能RX路径。

    1:禁用RX路径。MAC IP核丢弃全部传入帧。

  • Bits 31:1—保留。

更改该寄存器中的值会影响数据包边界。但不会影响正在进行中的传输。

RW 0x0
0x00A2 rx_transfer_status

MAC设置下列位以显示RX数据路径的状态。

  • Bits 7:0—保留。
  • Bit 8:RX数据路径状态。

    0:RX数据路径空闲。

    1:RX数据传输正在进行中。

  • Bits 11:9—保留。
  • Bit 12:RX数据路径复位状态。

    0:RX数据路径未处于复位中。

    1:RX数据路径处于复位中。

RO 0x0
0x00A4 rx_padcrc_control
  • Bits [1:0]—接收中的填充和CRC移除。

    00:保留填充字节和CRC字段,并将其转发至客户端。

    01:仅保持填充字节。MAC IP内核在转发RX帧前到客户端之前会先移除CRC字段。

    11:将RX转发至客户端之前,先移除填充字节和CRC字段。

    10:保留。

  • Bits 31:2—保留。

先配置该寄存器,然后使能用于操作的MAC IP核。

RW 0x1
0x00A6 rx_crccheck_control 接收中的CRC检查。
  • Bit 0—始终将该位设置为0。
  • Bit 1—CRC检查使能。

    0:忽略此CRC字段。

    1:检查CRC字段并向avalon_st_rx_error[1]avalon_st_rxstatus_error报告状态。

  • Bits 31:2—保留。

先配置该寄存器,然后使能用于操作的MAC IP核。

RW 0x2
0x00A8 rx_custom_preamble_forward 8
  • Bit 0—将自定义前导码转发配置到客户端。

    0:从RX帧中移除自定义前导码。

    1:保留并将自定义前导码转发到客户端。

  • Bits 31:1—保留。

先配置该寄存器,然后使能用于操作的MAC IP核。

RW 0x0
0x00AA rx_preamble_control 8
  • Bit 0—使能接收中的前导码直通。

    0:禁用前导码直通。MAC IP核在数据包解封处理期间查看START和SFD。

    1:使能前导码直通。MAC IP核在解封装处理期间仅查看START。

  • Bits 31:1—保留。

先配置该寄存器,然后使能用于操作的MAC IP核。

RW 0x0
0x00AC rx_frame_control

先配置该寄存器,然后使能用于操作的MAC IP核。

RW 0x3
Bit 0—EN_ALLUCAST

0:使用主MAC地址过滤RX单播帧。除具有主MAC地址的单播帧,MAC IP内核丢弃带有目地地址的单播帧。

1:接受所有RX单播帧。

将该位和EN_ALLMCAST设置为1等效于将MAC IP内核置于混杂模式。

Bit 1—EN_ALLMCAST

0:丢弃所有RX多播帧。

1:接受所有RX多播帧。

将该位和EN_ALLUCAST位设置为1等效于将MAC IP内核置于混杂模式。

Bit 2—保留。
Bit 3—FWD_CONTROL。开启Priority-based Flow Control参数时, 除了IEEE 802.3暂停帧和基于优先级的控制帧,该位将影响其他所有控制帧。当Priority-based Flow Control参数未被使能时,除IEEE 802.3暂停帧外,该位会影响所有控制帧。

0:丢弃控制帧。

1:将控制帧转发至客户端。

Bit 4—FWD_PAUSE

0:丢弃暂停帧。

1:将暂停帧转发至客户端。

Bit 5—IGNORE_PAUSE

0:处理暂停帧。

1:忽略暂停帧。

Bits 15:6—保留。
0x00AC rx_frame_control Bit 16—EN_SUPP0

0:禁用补充地址0。

1:使能补充地址0。

RW 0x3
Bit 17—EN_SUPP1

0:禁用补充地址1。

1:使能补充地址1。

Bit 18—EN_SUPP2

0:禁用补充地址2。

1:使能补充地址2。

Bit 19—EN_SUPP3

0:禁用补充地址3。

1:使能补充地址3。

Bits 31:20—保留。
0x00AE rx_frame_maxlength
  • Bits 15:0—指定允许的最大帧长度。当RX帧长度超出该寄存器中的指定值时,MAC置位avalon_st_rx_error[3]信号。
  • Bits 16:31—保留。
先配置该寄存器,然后使能用于操作的MAC IP核。
RW 1518
0x00AF rx_vlan_detection
  • Bit 0—RX VLAN检测禁用。

    0:MAC检测VLAN和堆栈式VLAN帧。

    1:MAC不会检测VLAN和堆栈式VLAN帧。接收时,MAC将它们作为基础帧处理并将其标签视为载荷字节。

  • Bits 31:1—保留。
RW 0x0
0x00B0 rx_frame_spaddr0_0 可指定多达四个6-byte补充地址:
  • rx_framedecoder_spaddr0_0/1
  • rx_framedecoder_spaddr1_0/1
  • rx_framedecoder_spaddr2_0/1
  • rx_framedecoder_spaddr3_0/1
先配置补充地址,然后使能MAC RX数据路径。以与主MAC地址相同的方式,将补充地址映射到各个寄存器中。请参阅关于primary_mac_addr0primary_mac__addr1的说明。设置下列条件后,MAC IP核使用补充地址过滤单播帧:
  • 使用rx_frame_control寄存器中的各个位使能补充地址的用途。
  • rx_frame_control寄存器的en_allucast位设置为0。
RW 0x0
0x00B1 rx_frame_spaddr0_1
0x00B2 rx_frame_spaddr1_0
0x00B3 rx_frame_spaddr1_1
0x00B4 rx_frame_spaddr2_0
0x00B5 rx_frame_spaddr2_1
0x00B6 rx_frame_spaddr3_0
0x00B7 rx_frame_spaddr3_1
0x00C0 rx_pfc_control 9
  • Bits 7:0—使能RX数据路径上基于优先级的流程控制。。将位n设置为0以使能优先级列队n的基于优先级的流程控制。例如,将rx_pfc_control[0]设置为0使能列队0。
  • Bits 15:9—保留。
  • Bit 16—配置给基于优先级的控制帧到客户帧的转发。

    0:丢弃控制帧。

    1:将控制帧转发至客户端。

  • Bits 31:17—保留。
先配置该寄存器,然后使能用于配置的MAC IP核。
RW 0x1
0x00FC rx_pktovrflow_error 36-bit错误计数器收集FIFO缓冲器持续上溢时被截断的RX帧数:
  • 0x00FC =错误计数器的较低32位。
  • 0x00FD =错误计数器的较高4个位占据位[3:0]。位[31:4]未使用。

读取计数器时,先读取较低32位,接着读取较高4个位。读取后,IP核将计数器清零。

RO 0x0
0x00FD
0x00FE rx_pktovrflow_etherStatsDropEvents 36-bit错误计数器收集FIFO缓冲器持续上溢时被截断的RX帧数:
  • 0x00FE =错误计数器的较低32位。
  • 0x00FF =错误计数器的较高4个位占据位[3:0]。位[31:4]未使用。

读取计数器时,先读取较低32位,接着读取较高4个位。读取后,IP核将计数器清零。

RO 0x0
0x00FF
8 仅在开启Enable preamble pass-through mode项时使用该寄存器。未使用时就被保留。
9 仅在开启Enable preamble pass-through mode项时使用该寄存器。未使用时就被保留。