跳到主要内容

10. PAXI寄存器映射

概述

[DOC] SUE2.0 Software Interface:

"Registers are implemented in a 4 KB address space, but not all addresses in this space have a defined register. PAXI Address use 12-bit address space (4K page)."

  • 寄存器空间: 4 KB地址空间 (12-bit地址)
  • 访问接口: AMBA 3 APB
  • 注意: 事务进行中修改寄存器可能产生不可预期的效果, 通常在初始化时配置

寄存器字段类型约定

[DOC]:

类型说明
RW读写。可自由读写
RO只读。写操作无效
RW1C只读, 写1清除。硬件置1, 软件写1清除, 写0无效
Rsvd保留。读返回0, 写无效

完整地址映射

[DOC] SUE2.0 Address Map:

基本控制寄存器 (0x000 ~ 0x080)

地址寄存器名称复位值说明
0x000Watermark RegisterDesign-definedRevision ID (RO)
0x004Interrupt Mask RegisterUser-defined中断屏蔽寄存器
0x008Interrupt Indicator Register0x0000_0000中断状态寄存器
0x00CCtrl Register0x0000_0080PAXI控制 (CBFC/VC/WSTRB/Loopback)
0x010Ethernet Frame Length RegisterUVIP_PAXI_MAX_FRAME_LEN最大MAC帧长度 (RO)
0x014Soft Reset Register0x0000_0000软复位触发 (RW1C, 自清除)
0x018FIFO Overflow Register0x0000_0000FIFO溢出指示
0x01CPAXI Status Register0x0000_0007PAXI状态 (IDLE/Pattern/Error)
0x020Latency Ctrl Register0x0000_0000延迟测量控制
0x024DAXI W Latency Result0x0000_0000写延迟结果
0x028DAXI R Latency Result0x0000_0000读延迟结果
0x02CDAXI W Latency Result ID0x0000_0000写延迟结果ID
0x030DAXI W Latency Result ADDR LOW0x0000_0000写延迟结果地址低位
0x034DAXI W Latency Result ADDR HIGH0x0000_0000写延迟结果地址高位
0x038DAXI R Latency Result ID0x0000_0000读延迟结果ID
0x03CDAXI R Latency Result ADDR LOW0x0000_0000读延迟结果地址低位
0x040DAXI R Latency Result ADDR HIGH0x0000_0000读延迟结果地址高位
0x044Remote APB CTRL Register0x0000_0000远程APB控制
0x048Remote APB DATA Register0x0000_0000远程APB写数据
0x04CRemote APB RDATA Register0x0000_0000远程APB读数据 (RO)
0x050Message Ctrl Register0x0000_0000消息控制 (Linkup/Error)
0x054Remote APB Timeout Threshold0x0010_0000远程APB超时阈值
0x058RX REQ Buffer Water Mark参数化REQ通道PFC水位线
0x05CRX RSP Buffer Water Mark参数化RSP通道PFC水位线
0x060RX MUL Buffer Water Mark参数化MUL通道PFC水位线
0x064Pattern Generator Write Ctrl0x0000_0000Pattern写控制
0x068Pattern Generator Read Ctrl0x0000_0000Pattern读控制
0x06CPattern Generator Ctrl Register0x0000_1005Pattern配置 (MPS/GAP/DA_SEL)
0x070Channel Weight Register0x0008_0008REQ/RSP通道权重
0x074Channel Weight Register20x0100_0008APB/MUL通道权重
0x078Remote APB Higher Address Register0x0000_0000远程APB高位地址
0x07CTX Buffer Ctrl Register0x0000_00FFTX Buffer AR/B打包控制
0x080RX Multicast Timeout Register0x03d0_9000多播B响应超时阈值

错误/状态寄存器 (0x200 ~ 0x3FC)

地址范围寄存器名称数量复位值说明
0x200~0x27CRemote Error Status Register 0~31320x0000_0000远端DA错误状态位图, 每寄存器覆盖32个DA
0x280~0x2FCRemote PCS Linkup Register 0~31320x0000_0000远端PCS Link-up状态位图
0x300~0x37CRetry Error Register 0~31320x0000_0000DA重传失败状态位图
0x380~0x3FCMulti DA Enable Register 0~31320xFFFF_FFFFDA使能位图, 默认全部使能

[推导] 与旧版对比, SUE2.0的重大变化:

  • 移除: DA MAP寄存器区 (旧版0x200~0x4FC, 128 DA x 2寄存器), 因per-DA Credit机制已被RC Link CBFC替代
  • 移除: Ctrl Channel Credit寄存器区 (旧版0xA80~0xB7C)
  • 移除: Credit Update Status寄存器区 (旧版0xC80~0xE7C)
  • 新增: Multi DA Enable Register (0x380~0x3FC), 控制哪些DA参与Linkup消息发送
  • 新增: Channel Weight Register (0x070/0x074), TX通道仲裁权重
  • 新增: TX Buffer Ctrl Register (0x07C), AR/B打包控制
  • 新增: RX Multicast Timeout Register (0x080), 多播超时配置
  • 新增: 8个Latency Result寄存器 (0x024~0x040), 扩展了延迟测量结果 (ID + 地址)
  • 变更: 水位线从DAXI/CAXI改为REQ/RSP/MUL三通道
  • 变更: 错误/状态区地址从0xA00起移到0x200起, 扩展到32个寄存器覆盖最多1024个DA

重点寄存器详解

Interrupt Mask Register (0x004) - 中断屏蔽

[DOC] SUE2.0 3.2.2:

Bit字段类型说明
31:13RSVDRO保留
12MULTI_CAST Timeout MASKRW多播超时中断屏蔽
11MULTI_CAST RETRY ERR CLR MASKRW多播重传错误清除中断屏蔽
10RETRY ERR CLR MASKRW单播重传错误清除中断屏蔽
9PAT DATA ERR MASKRWPattern Generator读写错误屏蔽
8PAT RD DONE MASKRWPattern读完成屏蔽
7PAT WR DONE MASKRWPattern写完成屏蔽
6RSVDRO保留
5APB_Linkup_MSG MASKRWPCS Linkup消息屏蔽
4LM timeout MASKRW延迟测量超时屏蔽
3LM done MASKRW延迟测量完成屏蔽
2APB_ERR_MSG MASKRWAPB消息错误屏蔽
1E2E_RETRY_ERR MASKRWRC Link E2E Retry错误屏蔽
0OFLOW_IND MASKRWFIFO溢出屏蔽

[推导] 与旧版对比: bit6从"DA update MASK"变为保留 (Credit Update机制已移除), 新增bit10~12的多播和重传错误清除中断, bit1从"L2 Retry"改为"E2E Retry"。

Interrupt Indicator Register (0x008) - 中断状态

[DOC] SUE2.0 3.2.3:

Bit字段类型说明
31:13RSVDRO保留
12MULTI_CAST TIMEOUTRW1C多播B响应超时
11MULTI_CAST RETRY ERR CLRRW1C多播重传错误清除完成
10RETRY ERR CLRRW1C单播重传错误清除完成
9PAT DATA ERRRW1CPattern Generator读写数据不匹配
8PAT RD DONERW1CPattern Generator读完成
7PAT WR DONERW1CPattern Generator写完成
6RSVDRO保留
5APB_Linkup_MSGRW1C收到远端PCS link-up消息
4LM timeoutRW1C延迟测量超时
3LM doneRW1C延迟测量完成
2APB_ERR_MSGRW1CAPB消息错误
1E2E_RETRY_ERRRW1CRC Link E2E Retry失败
0OFLOW_INDRW1CFIFO溢出

Ctrl Register (0x00C) - 控制寄存器

[DOC] SUE2.0 3.2.4:

Bit字段类型说明
31:15ReservedRO保留
14Error Handle TriggerRW1C写1触发错误处理流程
13Self-retry err clr enRW1: PAXI自动进入retry错误处理; 0: 软件介入控制
12rx ost constr enRW1: RX Master在outstanding达限时停止发送; 0: 不限制
11:9APB VCRWAPB事务的虚拟通道选择
8VC mapping modeRW1: 用户自定义VC映射; 0: PAXI固定映射
7CBFC_ENRW1: 使能CBFC模式; 0: 使能PFC模式
6WSTRB_ENRW1: Flit中携带WSTRB; 0: 不携带
5PAT_ENRWPattern Generator使能
4:2ReservedRO保留
1Remote loopbackRWAXI接口环回
0loopbackRWMAC接口环回 (TX out -> RX in)

[推导] 复位值0x0000_0080表示默认CBFC_EN=1 (启用CBFC模式)。与旧版对比:

  • 旧版bit4:2为CST (Credit Stop Threshold), 已移除
  • 新增: WSTRB_EN (bit6), CBFC_EN (bit7), VC mode (bit8), APB VC (bit11:9), rx ost (bit12), 错误处理控制 (bit13~14)

Ethernet Frame Length Register (0x010)

[DOC] SUE2.0 3.2.5:

Bit字段类型说明
31:16ReservedRO保留
15:0Ethernet Frame lengthRO最大帧长 (字节)

[DOC]: 默认值为REQ和RSP帧中较大者。REQ帧长 = header + AW + (W beat数 x W长度); RSP帧长 = header + (R OST数 x R数据长度)。

FIFO Overflow Register (0x018)

[DOC] SUE2.0 3.2.7:

TX方向 (Bit[14:10]) - 仅Data通道:

Bit说明
14data W buffer overflow
13data R buffer overflow
12data AW buffer overflow
11data AR buffer overflow
10data B buffer overflow

RX方向 (Bit[7:0]) - Data通道 + VC Buffer:

Bit说明
7data MUL buffer overflow
6data RESP buffer overflow
5data REQ buffer overflow
4data W buffer overflow
3data R buffer overflow
2data AW buffer overflow
1data AR buffer overflow
0data B buffer overflow

[推导] 与旧版对比的重大变化:

  • TX: 从10个buffer (Data 5 + Ctrl 5) 减少到5个 (仅Data通道), 反映了SUE2.0中Ctrl通道合并到统一通道
  • RX: 从10个buffer变为8个 (Data 5个AXI通道 + REQ/RESP/MUL 3个VC buffer)
  • RX新增的bit5~7对应REQ/RESP/MUL三个VC缓冲区的溢出检测

PAXI Status Register (0x01C)

[DOC] SUE2.0 3.2.8:

Bit字段类型说明
31:19ReservedRO保留
18MULTI-CAST TIMEOUTRW1C多播B响应超时
17MULTI-CAST RETRY ERRRW1C多播重传失败
16RX_MULTI_CAST_ERR_STATRO1: RX多播错误处理未完成; 0: 完成
15TX_MULTI_CAST_ERR_STATRO1: TX多播错误处理未完成; 0: 完成
14RX_ERR_STATRO1: RX错误处理未完成; 0: 完成
13TX_ERR_STATRO1: TX错误处理未完成; 0: 完成
12:9PAT_WR_ERRRW1CPattern写错误 (每bit对应1个DA)
8:5PAT_RD_ERRRW1CPattern读错误 (每bit对应1个DA)
4PAT_WR_DONERW1CPattern写完成
3PAT_RD_DONERW1CPattern读完成
2RX_IDLERORX空闲状态
1TX_IDLEROTX空闲状态
0IDLEROPAXI整体空闲

[推导] 新增bit13~18用于错误处理状态跟踪:

  • TX_ERR_STAT/RX_ERR_STAT: 单播错误处理进度
  • TX/RX_MULTI_CAST_ERR_STAT: 多播错误处理进度
  • MULTI-CAST RETRY ERR/TIMEOUT: 多播错误类型指示

Latency Ctrl Register (0x020)

[DOC] SUE2.0 3.2.9:

Bit字段类型说明
31:20+DAWReservedRO保留
20+DAW-1:20Destination addressRWDA模式下的目标地址
19Latency measureRW写1使能Pattern Generator总延迟测量
18Latency measure loopback modeRW环回测量模式, 需远端先设loopback=1
17Mode selectRW1: DA模式延迟测量; 0: AXI ID模式延迟测量
16Latency mode enableRW延迟测量使能
15:0AXI IDRWAXI事务ID

[推导] 与旧版对比新增:

  • Mode select (bit17): 新增DA模式, 可按目标地址而非AXI ID进行延迟测量
  • Destination address (bit20+): DA模式下指定测量目标
  • Latency measure (bit19): 新增Pattern Generator总轮次延迟测量

注: DAW为UVIP_PAXI_DA_WIDTH参数。

Latency Result寄存器 (0x024~0x040)

[DOC] SUE2.0 3.2.10~3.2.17:

SUE2.0将延迟结果从4个寄存器扩展到8个:

地址名称说明
0x024DAXI W Latency Resultbit31: done, bit[30:0]: 写延迟 (cycle)
0x028DAXI R Latency Resultbit31: done, bit[30:0]: 读延迟 (cycle)
0x02CDAXI W Latency Result IDbit[DAW-1:0]: 捕获的AW ID
0x030DAXI W Latency Result ADDR LOWbit[31:0]: 捕获的AW地址低32位
0x034DAXI W Latency Result ADDR HIGHbit[DAW-1:0]: 捕获的AW地址高位
0x038DAXI R Latency Result IDbit[DAW-1:0]: 捕获的AR ID
0x03CDAXI R Latency Result ADDR LOWbit[31:0]: 捕获的AR地址低32位
0x040DAXI R Latency Result ADDR HIGHbit[DAW-1:0]: 捕获的AR地址高位

[推导] 新增的ID和ADDR寄存器支持DA模式测量 -- 当按目标地址匹配时, 可以精确记录匹配到的事务的ID和完整地址, 便于调试分析。

Remote APB CTRL Register (0x044)

[DOC] SUE2.0 3.2.18:

Bit字段类型说明
31:22DARW远程APB目标DA
21:1ADDRRW远程APB地址
0WRRW1=写, 0=读

Message Ctrl Register (0x050)

[DOC] SUE2.0 3.2.21:

Bit字段类型说明
31:22DARW远端DA地址 (高位有效)
21:2ReservedRO保留
1Link-upRW触发link-up消息
0errRW触发error消息

[推导] 与旧版对比: bit2~15的Credit Update相关字段 (WR/CH/ACK/REQ/INC/CV) 全部移除, 仅保留Link-up和err触发。这反映了Credit Update协商机制在SUE2.0中被CBFC完全替代。

Water Mark寄存器 (0x058/0x05C/0x060)

[DOC] SUE2.0 3.2.23~3.2.25:

三个水位线寄存器格式相同:

位域名称说明
[31:16]HI WM高水位线
[15:0]LO WM低水位线
寄存器地址通道高水位默认低水位默认
RX REQ Buffer Water Mark0x058REQ32帧 + 1 RTT1 RTT
RX RSP Buffer Water Mark0x05CRSP32帧 + 1 RTT1 RTT
RX MUL Buffer Water Mark0x060MUL8帧 + 1 RTT1 RTT

[DOC]: 剩余深度(1 RTT)用于在PFC反压期间吸收额外流入的数据。最大帧长度与用户当前配置相关。

[推导] 与旧版对比: 从DAXI/CAXI两个水位线寄存器 (0x058/0x05C) 改为REQ/RSP/MUL三个, 新增0x060用于多播通道。

Pattern Generator Ctrl Register (0x06C)

[DOC] SUE2.0 3.2.28:

Bit字段类型说明
31:16ReservedRO保留
15:12DA_SELRW目标DA选择, 每bit控制一个DA通道, 最多4个DA
11:4GAPRWAR/AW burst之间的间隔 (空闲周期数)
3:0MPSRW数据包大小: 0=128B, 1=256B, 2=512B, 3=1KB, 4=2KB, 5=4KB

[推导] 与旧版对比新增:

  • MPS: 可配置数据包大小 (旧版固定4KB)
  • GAP: burst间空闲周期控制, 用于模拟不同流量模式

Channel Weight Register (0x070)

[DOC] SUE2.0 3.2.29:

Bit字段默认值说明
31:16RSP CH WEIGHT0x0008RSP通道权重
15:0REQ CH WEIGHT0x0008REQ通道权重

Channel Weight Register2 (0x074)

[DOC] SUE2.0 3.2.30:

Bit字段默认值说明
31:16APB CH WEIGHT0x0100APB通道权重
15:0MUL CH WEIGHT0x0008多播通道权重

[推导] APB默认权重0x0100远高于其他通道(0x0008), 确保APB管理消息优先传输。

TX Buffer Ctrl Register (0x07C)

[DOC] SUE2.0 3.2.32:

Bit字段默认值说明
31:14Reserved-保留
13:8TX_BUF_WM0x00AR/B buffer水位线, 单个Flit中AR或B数量不超过此值
7:0TX_BUF_ACC_TW0xFFAR/B buffer累积时间窗口

[DOC]:

  • TX_BUF_WM最小值0表示每个Flit只打包1个AR或B; 最大值15
  • TX_BUF_ACC_TW最小值为1
  • 如果WM值超过时间窗口, 时间窗口约束失效

Remote Error Status Register 031 (0x2000x27C)

[DOC] SUE2.0 3.2.34:

位域说明类型
[31:0]每bit对应一个DA的远端错误状态RW1C

Register 0 覆盖 DA0DA31, Register 131 覆盖 DA32~DA1023。

Remote PCS Linkup Register 031 (0x2800x2FC)

[DOC] SUE2.0 3.2.35:

位域说明类型
[31:0]每bit对应一个DA的远端PCS link-up状态RW1C

Retry Error Register 031 (0x3000x37C)

[DOC] SUE2.0 3.2.36:

位域说明类型
[31:0]每bit对应一个DA的重传失败状态RW1C

Multi DA Enable Register 031 (0x3800x3FC)

[DOC] SUE2.0 3.2.37:

位域说明类型
[31:0]DA使能位图, bit置0的DA不发送link-up消息RW

默认值: 0xFFFF_FFFF (所有DA默认使能)。

寄存器空间布局总览

0x000 +--------- 基本控制寄存器区 (34个寄存器)
| 0x000: Watermark (Revision ID)
| 0x004: Interrupt Mask
| 0x008: Interrupt Indicator
| 0x00C: Ctrl Register
| 0x010: Ethernet Frame Length
| 0x014: Soft Reset
| 0x018: FIFO Overflow
| 0x01C: PAXI Status
| 0x020: Latency Ctrl
| 0x024~0x040: Latency Results (8个)
| 0x044~0x04C: Remote APB (3个)
| 0x050: Message Ctrl
| 0x054: Remote APB Timeout
| 0x058~0x060: RX Buffer Water Mark (REQ/RSP/MUL)
| 0x064~0x06C: Pattern Generator (3个)
| 0x070~0x074: Channel Weight (2个)
| 0x078: Remote APB Higher Address
| 0x07C: TX Buffer Ctrl
| 0x080: RX Multicast Timeout
0x084 +--------- 保留区
0x200 +--------- 远端状态/错误寄存器区
| 0x200~0x27C: Remote Error Status (32个, DA0~1023)
| 0x280~0x2FC: Remote PCS Linkup (32个, DA0~1023)
| 0x300~0x37C: Retry Error (32个, DA0~1023)
| 0x380~0x3FC: Multi DA Enable (32个, DA0~1023)
0x400 +--------- 保留区
0xFFF +--------- 4KB地址空间结束