Arria 10 Avalon-MM DMA接口PCIe解决方案用户指南

ID 683425
日期 10/31/2016
Public
文档目录

5.12. 控制寄存器访问(CRA)Avalon-MM从端口

表 43.  配置空间寄存器说明 可选的CRA Avalon-MM从端口提供主机访问到所选配置空间和状态寄存器。这些寄存器为只读。少于32 bits的寄存器不使用上位。
字节偏移 寄存器

Dir

说明

14'h0000 cfg_dev_ctrl[15:0]

O

cfg_devctrl[15:0]是PCI Express性能结构的器件控制。

14'h0004 cfg_dev_ctrl2[15:0]

O

cfg_dev2ctrl[15:0] 是PCI Express性能结构的器件控制2。

14'h0008 cfg_link_ctrl[15:0]

O

cfg_link_ctrl[15:0]是PCI Express性能结构的首要链路控制(primary Link Control)。

对于Gen2或Gen3的操作,您必须写1’b1到根端口的Retrain Link bit(cfg_link_ctrl的Bit[5]) 以初始化再训练(retraining)从而在Gen1 L0状态的初始化链路训练后达到较高数据速率。再训练指导LTSSM进入恢复状态。如果链路上的两个器件都具有较高数据速率性,再训练以达到较高数据速率就不会是自动事件。

14'h000C cfg_link_ctrl2[15:0]

O

cfg_link_ctrl2[31:16]是Gen2操作中PCI Express性能结构的次要链路控制寄存器。

关于Gen1 variant, 链路带宽通知位总是设置为0。而Gen2 variant,此位设置为1。

14'h0010 cfg_prm_cmd[15:0]

O

PCIe配置空间的基本/主要命令寄存器。

14'h0014 cfg_root_ctrl[7:0]

O

PCI-Express性能的根控制和状态寄存器。此寄存器仅根端口模式中可用。

14'h0018 cfg_sec_ctrl[15:0]

O

PCI-Express功能的次要总线控制和状态寄存器。此寄存器仅根端口模式中可用。

14'h001C cfg_secbus[7:0]

O

次要总线(Secondary bus)数目。根端口模式中可用。

14'h0020 cfg_subbus[7:0]

O

附属总线(Subordinate bus)数目。根端口模式中可用。

14'h0024 cfg_msi_addr_low[31:0]

O

cfg_msi_add[31:0]是MSI消息地址。

14'h0028 cfg_msi_addr_hi[63:32]

O

cfg_msi_add[63:32]是MSI上层消息地址。

14'h002C cfg_io_bas[19:0]

O

Type 1配置空间的IO基础寄存器。此寄存器仅根端口模式中可用。

14'h0030 cfg_io_lim[19:0]

O

Type 1配置空间的IO限制寄存器。此寄存器仅根端口模式中可用。

14'h0034 cfg_np_bas[11:0]

O

Type 1配置空间的非预取存储器基础寄存器。此寄存器仅根端口模式中可用。

14'h0038 cfg_np_lim[11:0]

O

Type 1配置空间的非预取存储器限制寄存器。此寄存器仅根端口模式中可用。

14'h003C cfg_pr_bas_low[31:0]

O

Type 1配置空间可预取基础寄存器的下32 bits。此寄存器仅根端口模式中可用。

14'h0040 cfg_pr_bas_hi[43:32]

O

Type 1配置空间可预取基础寄存器的上12 bits。此寄存器仅根端口模式中可用。

14'h0044 cfg_pr_lim_low[31:0]

O

Type 1配置空间可预取基础寄存器的下32 bits。此寄存器仅根端口模式中可用。

14'h0048 cfg_pr_lim_hi[43:32]

O

Type 1配置空间可预取限制寄存器上12 bits。此寄存器仅根端口模式中可用。

14'h004C cfg_pmcsr[31:0]

O

cfg_pmcsr[31:16]为电源管理控制和cfg_pmcsr[15:0]为电源管理状态寄存器。

14'h0050 cfg_msixcsr[15:0]

O

MSI-X消息控制寄存器。

14'h0054 cfg_msicsr[15:0]

O

MSIMSI消息控制。

14'h0058 cfg_tcvcmap[23:0]

O

配置流量等级(TC)/虚拟通道(VC)映射。应用层使用此信号生成一个TLP,映射基于数据包流量等级的恰当通道。

编码定义如下:
  • cfg_tcvcmap[2:0]:TC0的映射(总为0)。
  • cfg_tcvcmap[5:3]:TC1的映射。
  • cfg_tcvcmap[8:6]:TC2的映射。
  • cfg_tcvcmap[11:9]:TC3的映射。
  • cfg_tcvcmap[14:12]:TC4的映射。
  • cfg_tcvcmap[17:15]:TC5的映射。
  • cfg_tcvcmap[20:18]:TC6的映射。
  • cfg_tcvcmap[23:21]:TC7的映射。
14'h005C cfg_msi_data[15:0]

O

cfg_msi_data[15:0] 是MSI的消息数据。

14'h0060 cfg_busdev[12:0]

O

由Hard IP捕捉的总线/器件数或已编程到Hard IP的总线/器件数。域定义如下:
  • cfg_busdev[12:5]:总线数
  • cfg_busdev[4:0]::器件数
14'h0064 ltssm_reg[4:0]

O

指定当前LTSSM状态。LTSSM状态机编码定义以下状态:
  • 5'b: 00000: Detect.Quiet(检测。静音)
  • 5'b: 00001: Detect.Active(检测。有效)
  • 5'b: 00010: Polling.Active(轮询。有效)
  • 5'b: 00011: Polling.Compliance(轮询。合规)
  • 5'b: 00100: Polling.Configuration(轮询。配置)
  • 5'b: 00101: Polling.Speed(轮询。速度)
  • 5'b: 00110: config.Linkwidthstart(配置。链路宽度开始)
  • 5'b: 00111: Config.Linkaccept(配置。链路接受)
  • 5'b: 01000: Config.Lanenumaccept(配置。通道数接受)
  • 5'b: 01001: Config.Lanenumwait(配置。通道数等待)
  • 5'b: 01010: Config.Complete(配置。完成)
  • 5'b: 01011: Config.Idle(配置。空闲)
  • 5'b: 01100: Recovery.Rcvlock(恢复。恢复时钟)
  • 5'b: 01101: Recovery.Rcvconfig(恢复。恢复配置)
  • 5'b: 01110: Recovery.Idle(恢复。空闲)
  • 5'b: 01111: L0
  • 5'b: 10000: Disable(禁用)
  • 5'b: 10001: Loopback.Entry(环回。进入)
  • 5'b: 10010: Loopback.Active(环回。有效)
  • 5'b: 10011: Loopback.Exit(环回。退出)
  • 5'b: 10100: Hot.Reset(热。复位)
  • 5'b: 10101: LOs
  • 5'b: 11001: L2.transmit.Wake(L2。发送。唤醒)
  • 5'b: 11010: Speed.Recovery(速度。恢复)
  • 5'b: 11011: Recovery.Equalization, Phase 0(恢复。均衡,Phase 0)
  • 5'b: 11100: Recovery.Equalization, Phase 1(恢复。均衡,Phase 1)
  • 5'b: 11101: Recovery.Equalization, Phase 2(恢复。均衡,Phase 2)
  • 5'b: 11110: recovery.Equalization, Phase 3(恢复。均衡,Phase 3)
14'h0068 current_speed_reg[1:0]

O

显示PCIe链路的当前速度。编码定义如下:

  • 2b’00:未定义
  • 2b’01:Gen1
  • 2b’10:Gen2
  • 2b’11:Gen3
14'h006C lane_act_reg[3:0]

O

通道有效模式:该信号显示链路训练期间执行配置的通道数。编码定义如下:

  • 4’b0001: 1个lane
  • 4’b0010: 2个lanes
  • 4’b0100: 4个lanes
  • 4’b1000: 8个lanes