PCIE协议解析 synopsys IP loopback 读书笔记(1)
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 读书笔记(1)的更多相关文章
- 《图解tcp/ip》读书笔记(二)
<图解tcp/ip>读书笔记(二) 本周主要阅读的是本书的第三章--数据链路. 当然了,从某些角度讲,我认为这一章就是计算机网络的最基本的内容之一.整章讲述了数据链路层的作用和相关技术,主 ...
- 《图解tcp/ip》读书笔记(一)
我先讲三句话: 一."万物互联的时代到了."我们生活在这样一个互联网急速发展的时代,也许很快就会发现,你能接触到的一切都可以连接到互联网了,电脑.手机这 ...
- C++ 11学习和掌握 ——《深入理解C++ 11:C++11新特性解析和应用》读书笔记(一)
因为偶然的机会,在图书馆看到<深入理解C++ 11:C++11新特性解析和应用>这本书,大致扫下,受益匪浅,就果断借出来,对于其中的部分内容进行详读并亲自编程测试相关代码,也就有了整理写出 ...
- tcp/ip 卷一 读书笔记(1)tcp/ip 概述
TCP/IP协议概述 术语 广域网 WAN 局域网 LAN TCP/IP四层网络模型 TCP/IP通常被认为是一个四层协议系统 网络接口层 包括arp,rarp协议,包括操作系统中的网卡驱动程序和对应 ...
- tcp/ip 卷一 读书笔记(3)为什么既要有IP地址又要有MAC地址
网络层 首先明确一点,并不是所有的网络之间传输数据都需要mac地址和ip地址,比如说点对点线路之间的通信就没有MAC地址,网络层使用ipx协议时就没有ip地址,但是在当前的主流网络中,我们都使用ip地 ...
- TCP/IP协议详解 卷1—读书笔记(1)
0. 前言 本系列简要记录该书的关键点,用以梳理知识点. 1. 简介 简述链路层下的一些相关协议,如以太网IP数据报,802标准,SLIP,CSLIP,PPP. 链路层主要为上层(IP)和本层(ARP ...
- 《图解TCP/IP》读书笔记
一.国际惯例:书托 这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识.掌握TCP/IP的基本技能. 书中讲解了网络基础知识.TCP/IP基础知识.数据链路.IP协议.IP协 ...
- tcp/ip 卷一 读书笔记(2)物理层和链路层网络
物理层和链路层网络 术语 链路 是一对相邻结点间的物理线路,中间没有任何其他的交换结点. 数据链路 除了物理线路外,还必须有通信协议来控制这些数据的传输. 帧 数据链路层的协议数据单元(PDU) 串行 ...
- 《图解TCP/IP》读书笔记(转)
reference: https://www.cnblogs.com/edisonchou/p/5987827.html 一.国际惯例:书托 这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TC ...
随机推荐
- 基于python2【重要】怎么自行搭建简单的web服务器
基本流程:1.需要的支持 1)python本身有SimpleHTTPServer 2)ForkStaticServer.py支持,该文件放在python7目录下 3)将希望共享 ...
- windows下命令行终端使用rz上传文件参数详解
rz命令: (X) = option applies to XMODEM only (Y) = option applies to YMODEM only (Z) = option applies t ...
- Centos下和Win7下查看端口占用情况
Centos #会列出所有正在使用的端口及关联的进程/应用 netstat -nap #portnumber要用具体的端口号代替,可以直接列出该端口听使用进程/应用 lsof -i :portnumb ...
- 架构-到底什么时候该使用MQ【转】
点击:<查看原文> 一.缘起 一切脱离业务的架构设计与新技术引入都是耍流氓. 引入一个技术之前,首先应该解答的问题是,这个技术解决什么问题. 就像微服务分层架构之前,应该首先回答,为什么要 ...
- CSVWriter生成文件时writer.writeRecord();方法保存的文件末尾多一个空行
一.问题,CSVWriter生成文件时使用writer.writeRecord();方法保存的文件末尾多一个空行,效果图如下: 目标结果:(去掉末尾空行) 二.关键代码如下(修改前代码): /** * ...
- HDUOJ---老人是真饿了
悼念512汶川大地震遇难同胞——老人是真饿了 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- 不让复制是不可能的----js获取选中文字
在360百科.知乎上经常会遇见禁止复制文本的情形,这能挡住一部分人复制,却挡不住程序员的复制. HTML都给我了,难道一小段文本我都拿不下来吗? F12打开控制台,然后选中文本,在控制台下粘贴以下代码 ...
- js跨域问题解释 使用jsonp或jQuery的解决方案
js跨域及解决方案 1.什么是跨域 我们经常会在页面上使用ajax请求访问其他服务器的数据,此时,客户端会出现跨域问题. 跨域问题是由于javascript语言安全限制中的同源策略造成的. 简单来说, ...
- VS2010编译Boost 1.56
(1)首先下载源代码:http://softlayer-dal.dl.sourceforge.net/project/boost/boost/1.56.0/boost_1_56_0.zip 解压到某个 ...
- HDU 2227 Find the nondecreasing subsequences (数状数组)
Find the nondecreasing subsequences Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/3 ...