srio调试过程和错误的基本判决.docx

上传人:sk****8 文档编号:2989542 上传时间:2019-05-16 格式:DOCX 页数:4 大小:17.66KB
下载 相关 举报
srio调试过程和错误的基本判决.docx_第1页
第1页 / 共4页
srio调试过程和错误的基本判决.docx_第2页
第2页 / 共4页
srio调试过程和错误的基本判决.docx_第3页
第3页 / 共4页
srio调试过程和错误的基本判决.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、最近发现论坛上好多 SRIO 的帖子,刚好应客户需求我总结了一些 SRIO 的东西,在这里也分享出来,作为抛砖引玉吧。首先坦白来说我不是太懂 SRIO,至少 SRIO 协议我没完全看过,O( _)O,为了给客户写这些东西,我也查阅了很多资料和书籍,如果有不对的地方,欢迎大家讨论和指正。(论坛上的 SRIO 大虾很多,比如 Zhan,Allen 等,嘿嘿)SRIO 其实不是个通用的名字,真正能 google 到的叫 Lp-serial,这个全称是什么暂且买个关子,它是一种协议,就是规定了两个都遵照这种协议的设备可以通信。要注意的是这里规定的是两个设备,不是三个也不是四个,这个理解是比较重要的。比

2、如你一个 switch 连接了 3个 DSP 和 2 个 FPGA,这 5 个都可以通过 SRIO 协议通信的。但是本质上,这 3 个 DSP 和2 个 FPGA 都是和 Switch 通信,再进一步来说这个协议是端到端的协议。之所以要说明这个问题,就是很多客户反映的 DSP 到 FPAG 发包木有成功,如果中间有 switch,那么你需要检查 DSP 到 switch 的链路,switch 到 FPGA 的链路。而不是笼统的去看 DSP 到 FPGA,这就是协议的本质。再说协议,协议规定了 SRIO 在物理层传递是按照固定的报文的。如果你是做原始的 SRIO的 IP,那么你需要手动的拼接这些

3、报文;如果你用 TI 芯片,恭喜你,TI 使用 LSU 帮你拼接,你只需要配置 LSU 寄存器就可以了。所以有人问 LSU 怎么填,那么如果你懂了协议里面的包格式,同时了解 LSU 如何对应到协议中去,那么你就不会有任何疑问了。(这当然是说的简单啊)继而就说到 SRIO 的错误检测了,通常遇到 SRIO 错误,我们这里抛去硬件信号质量错误(这种错误需要看眼图)。我们一般首先会看 offset 为 0x158 的 SPn_ERR_STAT 寄存器。比特位域如下表所示,这个寄存器可以分为 3 个部分来看,一是 port 状态,二是输出和输出的 stop error,三是重传的 stop error

4、。我们下面分三部分重点说明各个状态是什么意义。Bit Name Description0 Port_Uninitialized输入和输出端口未初始化,bit0 和 bit1 是互斥的,在同一时刻有且只有 1 个 bit 为 1 (硬件自动设置和清除 )1 Port_Ok输入和输出端口已经被初始化完成,且双方互相发送error-free 控制符号(硬件自动设置和清除)2 Port_Error输入或者输出端口遇到一个硬件无法恢复的错误,主要是指 link-response 未收到或者收到错误 response4 Port_Write_Pnd端口要求发起一个 port-write 的维护操作告知对端

5、错误状态。Port-write 的接收方式是预先定义好的,当出现端口错误的时候就会往该方发送 port-write 的维护报文8 Input_Error_STP 输入端口检测到一个传输错误(硬件自动设置和清除)9 Input_Error_ENC输入端口曾经检测到一个传输错误,随着 bit8 的置位而置位,写 1 可清除10 Input_Retry_STP 输入端口进入重传停止状态16 Output_Error_STP 输出端口检测到一个传输错误(硬件自动设置和清除)17 Output_Error_ENC输出端口曾经检测到一个传输错误,随着 bit16 的置位而置位,写 1 可清除18 Outp

6、ut_Retry_STP 输出端口进入重传停止状态(硬件自动设置和清除)19 Output_Retried 输出端口重传标志,随着 bit18 设置而置位,写 1 可清除20 Output_Retry_Enc 输出口曾经处于输出重传状态24 Output_Degrd_Enc 输出端口的 degraded 错误数达到或者超过门限值25 Output_Fail_Enc 输出端口的 Failed 错误数达到或者超过门限值26 Output_Pkt_Drop 输出端口丢弃一个包(只对 Switch 设备)Port uninitialized and Port Ok端口未初始化和端口 OK 是一组状态,

7、端口状态只能是未初始化或者 OK。通常在刚开始的时候端口状态时未初始化的,需要用户进行初始化配置才能变成端口 OK 状态。端口的初始化配置主要是端口的接收时钟窗对齐以及端口宽度的确认过程;大部分情况端口宽度通常是固定配置的,只有接收时钟窗需要调整。接收时钟窗调整的过程是,两个连接的设备都互相向对方不停的发送 training control symbol 和 link-request control symbol。成功收到并检测出 control symbol 的端口会回复一个 idle control symbol,收到 idle control symbol 的端口会清除 port uni

8、nitialized状态转为 port ok 状态。Input and Output Error Stop输入和输出停止错误是成双成对存在的错误发生场景:设备 A 给设备 B 发送报文设备 B 发现接收到的 idle 控制符号或者报文错误,那么设备 B 进入 input error stop 状态(该 bit 置 1,同时 input error encounter 也置位)。设备 B 发送 PNA(packet-not-accpet)控制符号给设备 A设备 A 收到 PNA 后停止发送任何消息,备份当前发送失败的消息并进入 output error stop状态(该 bit 置 1,同时 o

9、utput error encounter 也置位)。错误恢复场景:前提:设备 A 处于 output error stop,设备 B 处于 input error stop设备 A 发送 link-request 给设备 B设备 B 回应 link-response 给设备 A,并清除 input error stop 状态设备 A 收到 link-response,清除 output error stop 状态。设备 A 继续发送上次未成功报文或者发送优先级更高的报文Input and Output Retry Stop输入和输出重传错误是成双成对存在的错误发生场景:设备 A 给设备 B

10、发送报文设备 B 发现一些临时问题导致不能接收报文(比如没有空闲 buffer 可以接收),那么设备 B丢弃该报文,进入 input retry stop 状态(该 bit 置 1,同时 input retry encounter 也置位)。设备 B 发送 PR(packet-retry )控制符号给设备 A设备 A 收到 PR 后停止发送任何消息,备份当前发送失败的消息并进入 output retry stop 状态(该 bit 置 1,同时 output retry encounter 也置位)。错误恢复场景:前提:设备 A 处于 output retry stop,设备 B 处于 input retry stop设备 A 发送 restart-from-retry 给设备 B设备 B 收到 restart-from-retry 后,清除 input error stop 状态并开始接收报文设备 A 清除 output retry stop 状态,继续发送上次未成功报文或者发送优先级更高的报文需要指出的是,这个寄存器是 SRIO 错误状态判断的最基本的寄存器,还有更高级的东东,可惜我也是一知半解,下次学习了再分享吧!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。