PCIE协议解析 synopsys IP loopback 读书笔记

Posted yf869778412

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PCIE协议解析 synopsys IP loopback 读书笔记相关的知识,希望对你有一定的参考价值。

1      Overview

Core支持单个Pcie内核的Loopback功能,该功能主要为了做芯片验证,以及在没有远程接收器件的情况下完成自己的回环。同时,Core也支持有远程接收器件的loopback,在该中情况下,远程接收器件称为loopback slave。该种模式可以用来完成板级的debug,BER测试,系统调试。

   在做Loopback的时候需要注意将“Link up”强制写成1(根据specification该位应该是0),造成系统处于L0状态的假象,以便系统完成link的initialize。

1.1    Local Digital Loopback (PIPE/RMMI)

本地的Loopback分为3个阶段:Entering Local Loopback、In PIPE Loopback、Exiting Local Loopback

技术分享图片

 

1.1.1    Entering Local Loopback

Loopback将PIPE/RMMI RX 与自身的PIPE/RMMI TX相连,在该种Loopback模式下,只能运行LTSSM(link training and statues statemachine),而且在该状态下无法进行自身的training和进入到L0状态。进入local loopback的流程如下:

?  先要disable“Gen3 Control Register GEN3_RELATED_OFF.

?  Set the PIPE_LOOPBACK bit in the PIPE_LOOPBACK_CONTROL_OFFregister.

?  Set the LOOPBACK_ENABLE bit in the PORT_LINK_CTRL_OFF register.

技术分享图片

1.1.2    In PIPE Loopback

在该Loopback 模式下,通过虚拟系统进入L0状态,可以进行link initialize。在进入了Loopback mode以后,Core会为VC0(??)的flow control进行初始化。当该初始化完成后,application就可以通过XALI0/1/2接口发送TLP。当TLP包 loopback回来后,application 需要发送complete以响应自身发的TLP包。当TLP和DLLP被发出同时被收回时,接口将对自身启动flow control。在L0阶段,当TLP因为link 错误而没有被接收到时,TLP包将会被重新发送。TLP的发送将会像正常的link一样进行credit 检测,而接收,也会在L0阶段进行正常的error check和filter check。

MessageConsiderations

当接口是一个上行接口(USP),你必须保证没有使能生成的error message。当有错误发生在PCIelink时,同时你使能了error message的生成,那么USP将会生成一个 Error Message。有接口生成的数据包将会loopback到他自身,而USP不期望接收message,他将会生成一个附加的message。(是说系统会被阻塞么??)

在进入L0阶段时,DSP接口必须自动的发送Set_Slot_Power_Limitmessage,而该message将会被自身发送并且接收回来。但是DSP接口是不期望接收到Set_Slot_Power_Limit message的,所有该message将会被作为无效的message,同时Device Status 中的unsupported requestdetected bit将会被置位。

    在DSP接口中,Core内部生成的message 将会与application通过XALI0/1/2生成的TLP混合在一起发送。

Enumeration and BAR Setup

你必须配置BARS(USP),memory/IO rangs(DSP),将memoryspace 和 bus master 置位,以便可以接收filter accepts TLP。或者,可以将filter rules关掉,以便一些本该被滤掉的TLP能够被接收。

在Loopback 模式下,可以通过DBI 初始化BAR。

 

Gen3 Operation

Youmust set the Gen3 Equalization Disable bit in the “Gen3 Control Register” GEN3_RELATED_OFF, as the PHY has no role in local loopback.

1.1.3     Exiting Local Loopback

Toexit loopback mode:

■ Clear the PIPE_LOOPBACK bit in the PIPE_LOOPBACK_CONTROL_OFF register.

■ Clear the LOOPBACK_ENABLE bit in the PORT_LINK_CTRL_OFF register.

1.2   配置流程

在loopback模式下,好像没有提到角色为RC或EP,而称为Loopback master 和salve,所以我认为loopback的时候不区分RC和EP的,但是有USP和DSP的区别,不知道怎么设置???

 

这个流程是我自己根据手册推敲的,不知道对不对:

1、 SII app_ltssm_enable = 0  disablelink training;

2、  DBI 配置系统基本信息

3、  SII app_ltssm_enable = 1  enable  link training(这里应该配置不会成功);

4、   DBI “Link up”强制写成1(具体是哪个寄存器需要找一下),让系统认为link training 已经完成,并且进入了LTSSM  L0阶段

5、  DBI 进入loopback

?  先要disable“Gen3 Control Register GEN3_RELATED_OFF.

?  Set the PIPE_LOOPBACK bit in the PIPE_LOOPBACK_CONTROL_OFFregister.

?  Set the LOOPBACK_ENABLE bit in the PORT_LINK_CTRL_OFF register.

6、设置BAR(USP),而如果是DSP,设置memory/IO ranges,在前期可以turn off the filter rules。

7、  开始传输TLP。

转载:https://blog.csdn.net/yijingjijng/article/details/48028695

以上是关于PCIE协议解析 synopsys IP loopback 读书笔记的主要内容,如果未能解决你的问题,请参考以下文章

PCIE协议解析 synopsys IP PCI Express Capability 读书笔记(13)

PCIE协议解析 synopsys IP Register配置空间 读书笔记

PCIE协议解析 synopsys IP 基本配置空间总结 读书笔记(14)

PCIE协议解析 synopsys IP Configuration Space Header 读书笔记

PCIE协议解析 synopsys IP Power Management Capability 读书笔记(10)

PCIE协议解析 synopsys IP MSI-X Capability 读书笔记(12)