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)的更多相关文章

  1. 《图解tcp/ip》读书笔记(二)

    <图解tcp/ip>读书笔记(二) 本周主要阅读的是本书的第三章--数据链路. 当然了,从某些角度讲,我认为这一章就是计算机网络的最基本的内容之一.整章讲述了数据链路层的作用和相关技术,主 ...

  2. 《图解tcp/ip》读书笔记(一)

           我先讲三句话:        一."万物互联的时代到了."我们生活在这样一个互联网急速发展的时代,也许很快就会发现,你能接触到的一切都可以连接到互联网了,电脑.手机这 ...

  3. C++ 11学习和掌握 ——《深入理解C++ 11:C++11新特性解析和应用》读书笔记(一)

    因为偶然的机会,在图书馆看到<深入理解C++ 11:C++11新特性解析和应用>这本书,大致扫下,受益匪浅,就果断借出来,对于其中的部分内容进行详读并亲自编程测试相关代码,也就有了整理写出 ...

  4. tcp/ip 卷一 读书笔记(1)tcp/ip 概述

    TCP/IP协议概述 术语 广域网 WAN 局域网 LAN TCP/IP四层网络模型 TCP/IP通常被认为是一个四层协议系统 网络接口层 包括arp,rarp协议,包括操作系统中的网卡驱动程序和对应 ...

  5. tcp/ip 卷一 读书笔记(3)为什么既要有IP地址又要有MAC地址

    网络层 首先明确一点,并不是所有的网络之间传输数据都需要mac地址和ip地址,比如说点对点线路之间的通信就没有MAC地址,网络层使用ipx协议时就没有ip地址,但是在当前的主流网络中,我们都使用ip地 ...

  6. TCP/IP协议详解 卷1—读书笔记(1)

    0. 前言 本系列简要记录该书的关键点,用以梳理知识点. 1. 简介 简述链路层下的一些相关协议,如以太网IP数据报,802标准,SLIP,CSLIP,PPP. 链路层主要为上层(IP)和本层(ARP ...

  7. 《图解TCP/IP》读书笔记

    一.国际惯例:书托 这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识.掌握TCP/IP的基本技能. 书中讲解了网络基础知识.TCP/IP基础知识.数据链路.IP协议.IP协 ...

  8. tcp/ip 卷一 读书笔记(2)物理层和链路层网络

    物理层和链路层网络 术语 链路 是一对相邻结点间的物理线路,中间没有任何其他的交换结点. 数据链路 除了物理线路外,还必须有通信协议来控制这些数据的传输. 帧 数据链路层的协议数据单元(PDU) 串行 ...

  9. 《图解TCP/IP》读书笔记(转)

    reference: https://www.cnblogs.com/edisonchou/p/5987827.html 一.国际惯例:书托 这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TC ...

随机推荐

  1. Cocos2d 编译js为jsc bytecode文件

    使用: cocos jscompile -s XXX(目录名,会递归) -d (输出的目录)   但编译后的jsc比原来的js更大了     如果只是为了代码的保密性,也许只需要用yuicompres ...

  2. 怎么解决numpy和matplotlib无法安装问题

    使用python setup.py install 折腾了半天没办法解决,最终用 “pip install  包名”   这个办法解决了. 以后忠诚的爱上了pip了 numpy不要轻易升级,升级可能会 ...

  3. 转 Linux定时执行任务命令at和crontab

    本文介绍在Linux下的两种定时执行任务的方法:at命令,以及crontab服务. (1)at命令 假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了. 设置at命令很简单,指示定 ...

  4. Tomcat服务器版本号泄露-低危漏洞修复

    一.问题描述Tomcat报错页面泄漏Apache Tomcat/7.0.52相关版本号信息,是攻击者攻击的途径之一.因此实际当中建议去掉版本号信息.二.解决办法 1.进入到tomcat/lib目录下, ...

  5. 【mysql】关于ICP、MRR、BKA等特性

    一.Index Condition Pushdown(ICP) Index Condition Pushdown (ICP)是mysql使用索引从表中检索行数据的一种优化方式,从mysql5.6开始支 ...

  6. Maven Package Plugins And Maven Test

    在使用Maven时候,大家避免不了使用大量插件: 1. maven-compiler-plugin 指定JDK版本和编码方式 ? ?compiler插件能解决2个问题: 第一:指定JDK版本--mav ...

  7. 老男孩linux实战培训初级班第二次课前考试题

    ################################################################ 本文内容摘录于老男孩linux实战运维培训中心课前考试题(答案部分) ...

  8. socket编程及API简介

    什么是TCP/IP.UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域 ...

  9. XSS安全处理

    Security.class.php文件 <?php class Security { public $filename_bad_chars = array( '../', '<!--', ...

  10. 【脚下生根】之深度探索安卓OpenGL投影矩阵

    世界变化真快,前段时间windows开发技术热还在如火如荼,web技术就开始来势汹汹,正当web呈现欣欣向荣之际,安卓小机器人,咬过一口的苹果,winPhone开发平台又如闪电般划破了混沌的web世界 ...