• PCIE-Malformed tlp,UR,UC,CA


    Malformed TLP

    (1)收到的cplactual payload 等于length

    (2)到的cpl,违背了RCB准则;

    (3)Local tlp prefix不在end-end tlp prefix前;

    (4)不支持local tlp prefix的设备,同时extended fmt field1的设备收到了local tlp prefix(注意如果extended fmt field0,收到了tlp prefix的话,由设备决定这个tlp的处理方式);

    (5)到的end-end tlp prefix超过四个(协议最大允许4个)。对于RP来说,如果收到了大于Max End-End TLP Prefixes fieldprefix的话,对于请求来说,建议将其认为是UR,对于cpl来说建议是UC(对于请求和建议来说,如果不遵循的话那么必须认为是Malformed TLP );对于其他function来说也是类似;

    (6)收到了不支持的end-end tlp prefix类型;

    (7)tlp prefix但是没有tlp header

    (8)Extended fmt field1 但是 fmttype的组合是reserved的;fmt[2]0的情况下typereserved

    (9)收到的TLPlength超过Rx_MPS_Limit

    (10)收到的TLP所对应的TD域(表示是否有tlp digest)和实际的长度尺寸不符合;

    (11)收到的TLP违背byte enable准则;

    (12)对于原子操作来说,接收者收到的TLP长度和规定的长度不同;另外原子操作的请求必须以规定的方式字节对齐,如果没有按照规定的方式字节对齐,接收者将认为这个tlpMalformed

    (13)接收者接收到的TLP包的addresslengthe结合超过了4Kb边界;

    (14)对于IO操作,要求tcthattratlast be均为0length1,违背这个的IO操作被认为是Malformed

    (15)只有up port能够发送Assert_INTx/Deassert_INTx Messages,如果收到了down portAssert_INTx/Deassert_INTx Messages,那么认为是Malformedtlp包,另外中断msgpower management msgerror msg要求使用default Traffic Class,违背的话也是被认为Malformed

     

    置为1的情况下,malformed tlp报告fatal error。 

     

    UR(对应completionstatus域为ur

    1completion status域为reserved,那么认为completionur属性的;

    2)由于design或者配置setting而导致的设备不支持的request

    3msg中各个域的组合是undefied的,或者说这个msg是这个设备不支持的msg(除了vender definemsg);

    4msgdstid所对应的function没有实现;

    5ecrc检查失败,可以回cpl,也可以不回,但是如果回的回的status必须为ur

    6FLR开始和结束直接收到了request,可以回ur也可以不做处理;

    Unexpected Completion

     1larger-Tag的请求者发给了一个请求给缺少 larger-Tag功能的completer,那么回应的completiontag是无效的tag,这个completionUnexpected Completion(注意实际上对于请求者来说,由于回应的tag是无效的,所以大概率是针对这个请求的处理是把他作为timeout来处理);

    2)对于RP来说,如果收到了大于Max End-End TLP Prefixes fieldprefix的话,对于请求来说,建议将其认为是UR,对于cpl来说建议是UC(对于请求和建议来说,如果不遵循的话那么必须认为是Malformed TLP

    3)如果一共functionupstream portEnd-End TLP Prefix功能支持的话,如果收到了一个不支持的end-end tlp prefix typecompletion的话,所有和这个upstream port相关的function都要把这个completion认为是UC

    4)设备收到了一个和之前发的请求的Transaction ID都不一样的cpl,那么设备会把这个cpl认为是UC(如果这个cplTransaction ID能对应上,但是其他域对不上,也是把他认为是UC

    5)假如再FLR开启结束之间收到了cpl,这个cpl可以认为是UC,也可以不做任何处理,但是如果是FLR结束之后收到了FLR之前发起的请求对应的cpl,那么必须认为是UC

  • 相关阅读:
    上传文件a-upload
    Web基础 - JavaScript
    JDK配置
    前端表单滑块验证码开发
    Codeforces Round #835 (Div. 4) A~G
    【专项测试系列】- 缓存击穿、穿透、雪崩专项测试
    CMU - FarPlanning 代码速读
    个人开源项目如何上传maven中央仓库
    神经网络算法有哪些模型,神经网络预测模型实例
    广汽传祺E9上市,3DCAT实时云渲染助力线上3D高清看车体验
  • 原文地址:https://blog.csdn.net/juvenilexhq/article/details/134066914