This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] XIO3130:端口不工作-调试

Guru**** 2582405 points
Other Parts Discussed in Thread: XIO3130, XIO3130EVM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1129040/xio3130-port-not-working---debug

器件型号:XIO3130

你(们)好。

客户遇到 XIO3130问题。

 

问题如下:

 

虽然器件看起来绑定正确、并且器件出现在下行端口1和2上、但客户只看到下行端口2上的活动。

如果他们扫描 PCI 总线、他们会看到器件本身、其所有下行端口以及下行端口2上的器件、但下行端口1上没有任何内容(不存在参考时钟–请参阅下面的内容)

即使下游端口3未启用、也存在参考时钟(100Mhz–见下文)

 

下面是一些更详细的信息:

 

DN1_DPSTRAP = 3.3V

GPIO[0]= 418mV (4.7K 电阻器)

GPIO[1]= 0V

GPIO[2]= 3.3V

DN1_REFCLKO:无活动

 

DN2_DPSTRAP = 3.3V

GPIO[4]= 426mV (4.7K 电阻)

GPIO[5]= 0V

GPIO[6]= 3.3V

DN2_REFCLKO:100MHz 时钟

 

DN3_DPSTRAP = 0V

GPIO[8]= 3.3V

DN3_REFCLKO:100MHz 时钟

 

 

您认为有人可以帮助解释这种行为吗? 数据表中遗漏了什么?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    那么、问题是、DN1_REFCLK0为什么不输出参考时钟?  是否可以交换端口1上的器件和端口2上的器件以查看这是否与器件相关?  其中一个器件可能处于低功耗状态、并且不请求基准时钟。

    谢谢、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    遗憾的是、这不是基于插槽的应用程序-我们无法切换设备所在的端口。

    EEPROM 内容最初未编程。 我们认为这可能会对这个问题产生影响。 随后、我们使用以下内容对 EEPROM 的内容进行了编程:

     

     0 1 2 3 4 5 6 7 8 9 A B C D E F

    0x00

    0x10

    0x20

    0x30

    0x40

    0x50

    4C 00 24 00 00 00 00 00 00 00 00 00 00 80 46 00 00

    00 00 00 00 00 00 00 00 00 00 14 32 02 00 00 00 00 00 00

    78 56 34 12 02 24 3F 04 01 00 01 00 00 00 14

    32 90 00 1A 08 00 02 00 01 00 00 00 14 32 90

    00 1A 10 00 02 00 01 00 00 00 14 32 90 00 1A

    18 00

    上电时、开关读取数据(使用逻辑分析仪进行验证)。 这不会改变行为-端口1上的器件在开关后面仍然不可见。

    我不确定我是否理解对下游器件的引用、这些器件不请求参考时钟-器件上没有此类接口信号。 每个端口具有 PCIe TX 通道、RX 通道以及 DNx_DPSTRP (使能)和 RST 引脚。 DNx_DPSTRP 引脚默认设置为启用端口1和2 (以及禁用端口3)、RST 引脚为输出、 对 问题无影响。

    奇怪的是、尽管端口3已禁用、但 DN3_REFCLKO 信号上仍有活动。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更多信息:

    转储3个下行端口的 PCI 配置空间可能会提供问题的线索:

    端口1寄存器0x9A 报告"检测到可纠正的错误"、但我没有错误源的详细信息。

    我可以提供寄存器转储的内容,如果它有用的话(我尝试不将信息过载到线程)...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Steven、

    抱歉、我需要 CLKREQ#、但 CLKREQ#可能未包含在 PCIe 第1代规范中。

     可纠正的错误根据定义可由 PCIe 硬件纠正、因此我不希望这会导致故障。  话虽如此、拥有 PCI 配置空间的寄存器转储、看看是否有任何有关正在发生的情况的提示、仍然会有所帮助。  我将查看提供的数据并尽快回复您。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nicholaus、

    非常感谢您能及时回复我。 这里是您非常亲切地要求的垃圾、还有一些注释。 我还希望您能对我在之前的回复中提供的 EEPROM 内容提供反馈-我注意到、与器件数据表中表3-3中包含的"TI 专有寄存器"内容至少存在一种差异。 不同之处在于、我们使用了评估板上提供的 EEPROM 的内容、所有3个下行端口均正常工作。

    总线#3器件(XIO3130下行端口)

    寄存器        器件0      器件1      器件2

             (端口1)    (端口2)    (端口3)

    ===========     ===========     ===========     ===========

    DevID          0x8233104C    0x8233104C    0x8233104C

    DEVCTRL        0x00100406    0x00100407    0x00100404

    类          0x06040002    0x06040002 0x06040002 0x06040002     

    标头         0x00010010    0x00010010    0x00010010

    TERMBASE1      0x00000000    0x00000000    0x00000000

    TERMBASE2      0x00000000    0x00000000    0x00000000

    BUS_DEF        0x00040403    0x00050503    0x00060603

    IO_BASE        0x000001F1    0x00001111    0x000001F1

    MEM_BASE       0x0000FFF0    0xD100D100    0x0000FFF0

    PRE_BASE       0x40114001    0x40314021    0x0001FFF1

    PREBASEUP      0x00000000    0x00000000    0x00000000

    PRELIMUP       0x00000000    0x00000000    0x00000000

    IOBASEUP       0x00000000    0x00000000    0x00000000

    CAP_PTR        0x00000050    0x00000050    0x00000050

    PCI_38h        0x00000000    0x00000000    0x00000000

    INTCTRL        0x0003010B    0x0003010C    0x0003010E

    PCI_40h        0x00000000    0x00000000    0x00000000

    PCI_44h        0x00000000    0x00000000    0x00000000

    PCI_48h        0x00000000    0x00000000    0x00000000

    PCI_4ch        0x00000000    0x00000000    0x00000000

    CAP_PPMI       0xFE437001    0xFE437001    0xFE437001

    PM_CSR         0x00000008    0x00000008    0x0000010B

    PCI_58h        0x00000000    0x00000000    0x00000000

    PCI_5ch        0x00000000    0x00000000    0x00000000

    PCI_60h        0x00000000    0x00000000    0x00000000

    PCI_64h        0x00000000    0x00000000    0x00000000

    PCI_68h        0x00000000    0x00000000    0x00000000

    PCI_6ch        0x00000000    0x00000000    0x00000000

    CAP_MSI        0x00818005    0x00818005    0x00818005 0x00818005

    MSI_ADDRL      0xFEE01004    0xFEE01004    0xFEE01004

    MSI_ADDRH      0x00000000    0x00000000    0x00000000

    MSI_DATA       0x00004029    0x0000402A    0x0000402B 0x7C

    CAP_SubSysID   0x0000900D    0x0000900D    0x0000900D 0x80

    CAP_SUBID      0x00000000    0x00000000    0x00000000

    PCI_88h        0x00000000    0x00000000    0x00000000 0x88

    PCI_8ch        0x00000000    0x00000000    0x00000000 0x8C

    Px_CAP         0x01610010    0x01610010    0x00610010 0x90 端口1和2为"实现"

    Px_DEVCAP      0x00008001    0x00008001    0x00008001 0x00008001 0x94

    Px_DEVCTL_STS  0x00112000    0x00102000    0x00102000 0x98 端口1:"检测到可纠正的错误"

    Px_LINKCAP     0x011E4C11    0x021E4C11    0x031E4C11 0x9C 定义的端口号:1、2、3

    Px_LINKCTL_STS 0x10010140    0x30110140    0x10010140 0xA0 ???

    Px_SLOT_CAP    0x00000042    0x00000042    0x00000000 0xA4

    Px_SLOT_CTL    0x015803C0    0x015803C0    0x005803C0 0xA8

    PXRootCTL      0x00000000    0x00000000    0x00000000 0xAC

    PxRootStatus   0x00000000    0x00000000    0x00000000 0xB0

    PCI_B4h        0x00000000    0x00000000    0x00000000

    PCI_B8h        0x00000000    0x00000000    0x00000000

    PCI_Bch        0x00000000    0x00000000    0x00000000

    PCI_C0h        0x00000000    0x00000000    0x00000000

    PCI_C4h        0x00000000    0x00000000    0x00000000

    PCI_C8h        0x03000001    0x03080001    0x03100001 TI 专业

    PCI_CCH        0x00000000    0x00000000    0x00000000 TI 专业版

    PCI_D0h        0x32140000    0x32140000    0x32140000 TI 专业

    PCI_D4H        0x00004292    0x00004290    0x00000011常规控制

    PCI_D8h        0x00000000    0x00000000    0x00000000 TI RSVD

    PCI_DCH        0x00000000    0x00000000    0x00000000 TI RSVD

    PCI_E0h        0x00000000    0x00000000    0x00000000 TI RSVD

    PCI_E4h        0x00000000    0x00000000    0x00000000 TI RSVD

    PCI_E8h        0x00000000    0x00000000    0x00000000 TI RSVD

    PCI_Ech        0x0000001A    0x0000001A    0x0000001A 0xEC

    PCI_F0h        0x00000000    0x00000000    0x00000000 TI RSVD

    PCI_F4h        0x00000000    0x00000000    0x00000000 TI RSVD

    PCI_F8h        0x00000000    0x00000000    0x00000000 TI RSVD

    PCI_FCH        0x00000000    0x00000000    0x00000000 TI RSVD

    PXAdvErrReport 0x00010001    0x00010001    0x00010001

    UncorrErrStat  0x00000000    0x00000000    0x00000000

    UnErrMask      0x00000000    0x00000000    0x00000000

    UnErrSevere    0x00062030    0x00062030    0x00062030

    corrErrorStat  0x00000000    0x00000000    0x00000000

    corrErrorMask  0x00002000    0x00002000    0x00002000

    AdvErrorCap    0x000000A0    0x000000A0    0x000000A0 0x000000A0

    头端1      0x00000000    0x00000000    0x00000000

    Header2nd      0x00000000    0x00000000    0x00000000

    头端第3      个0x00000000    0x00000000    0x00000000

    Header40x00000000          0x00000000    0x00000000

    RootErrCmd     0x00000000    0x00000000    0x00000000

    RootErrStat    0x00000000    0x00000000    0x00000000

    ErrSrcId       0x00000000    0x00000000    0x00000000

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Steven、

    谢谢、我今天将回顾这些数据、并返回给您。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Steven、

    我还在找、但我确实找到了有关此问题的有用帖子。  也许您可以看看以下情况是否适用于您: (+) XIO3130:在下流端口-接口论坛-接口- TI E2E 支持论坛中未生成时钟

    您是否认为勘误表中提到的有关下行复位/的问题 是可能的?  此外、您是否碰巧有多个板来查看它们是否都以相同的方式工作?

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Steven、

    我已汇编了所提供的数据(见附件).e2e.ti.com/.../XIO3130_5F00_Debug.xlsx

    由于您已经说  过、无论 EEPROM 是否编程都会出现此问题、因此我不希望 EEPROM 成为问题。  此外、EEPROM 中端口1和端口2之间的配置是相同的、因此我希望它们的运行方式是相同的。   

    您能否提供电路板原理图?  我已向您发送朋友请求、以便您可以私下分享。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    如何私下分享?

    注意:在进行初始设计时、建议的实施方案已与 TI 共享、并且未提出任何具体意见。 但是、我可以为您准备信息-我只需要知道如何实际共享信息...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nicholaus、

    下面是我们的实现与 EVAL 板之间的更详细比较(原理图封面日期为2007年8月15日):

    XIO3130评估板和内部 PCB 之间的差异

    DN1_REFCLKOP/n、DN2_REFCLKOP/n
      -阻尼/下拉电阻器之后置于线路上的交流耦合电容器(在 EVAL 上不存在)
       注意:DN1_REFCLKOP/n 上短路作为测试=>无行为差异

    引脚 P01、C04
      -直接接地(EVAL 板使用4.7KOhm 下拉电阻)

    REFR0/REFR1
      -14.530KOhm (内部 PCB)与14.532KOhm (EVAL)

    GPIO 抽头
      - DN1_DPSTRP、DN2_DPSTRP 被拉高
      - DN3_DPSTRP 输入被拉至低电平
      - GPIO11-18未连接(可能是 PD)

    5.寄存器差异(不是详尽的列表):
      a. PCI 地址 D4H 处的 TI 专有寄存器
       -规格显示应为0000 0010h、我们读取的是0000 4290h
      b. PCI 地址 DCH 处的 TI 专有寄存器
       –规格显示应为0000 0002h,我们读取的是0000 0000h
      C.下行端口链路 PM 延迟寄存器(PCI 偏移 E8h)
       -规格显示默认值为3F24h,我们读取的是0000h
      D.全局开关控制寄存器(PCI 偏移 EAh)
       -规格显示默认值为0004h,我们读取的是0000h

    从硬件的角度来看、实现之间的差异非常小、但一些专有寄存器差异引起了我的一些关注。 我们是否有可能在这些寄存器中找到答案? 未使用的 GPIO 寄存器如何-其中一个寄存器是否会影响端口1的功能?

    谢谢、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    我仍在调查此问题。  到目前为止、我还没有找到有关保留寄存器的任何信息、我不希望 GPIO 寄存器对端口1产生影响、如实施指南的"GPIO 控制和数据寄存器(PCI 偏移 BCH、Beh、C0h、C2h 和 C4h)"部分所述。  这假设内部板和评估板之间的 DNx_DPSTRFP 相同、但您已将它们列为不同的。  是这样吗?

      - DN1_DPSTRP、DN2_DPSTRP 被拉高
      - DN3_DPSTRP 输入被拉至低电平

    随函附上问题摘要。  请告诉我以下任何问题是否属实:

    -端口1和端口2之间的寄存器设置完全相同
    -端口1和端口2之间的引脚设置完全相同
    -端口1和端口2的 GPIO 完全相同。  DNx_DPSTRAP 对于这两种器件是相同的、因此 GPIO 设置为热插拔功能
    -故障在多个电路板上是一致的
    - XIO3130评估板和终端设备评估板协同工作良好
    - XIO3130评估板 EEPROM 与内部板 EEPROM 相同
    -端口1生成看起来像合规性模式的内容,但不完成链路训练。  端口2工作正常。

    EEPROM 是否可能未加载?  我从您共享的数据中看到 EEPROM 将0xEA 设置为0x04。   上行 子系统访问 寄存器(0xE0)是否与 EEPROM 中设置的值匹配?

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nicholaus、

    我同意、根据表中的注释、我不希望 GPIO 编程产生效果、但我只是想确定。 我想澄清一下这个注释:您参考一个实施指南-这是器件数据表中的一个部分还是一个单独的文档? 我没有名为《实施指南》的文档、但我有一个"XIO3130"文档(SLLA295A)。 这是您所指的吗?

    我确认您的每一个要点如下:

    -根据寄存器设置、我假设您是配置空间、不是、它们在端口1和2之间是不同的。 下面列出了仅端口1和2之间的差异。 其他寄存器针对端口1和2进行了完全相同的编程(由于通过捆绑禁用、端口3还有一些不同的寄存器进行了不同的编程)。 我可以提供更全面的寄存器转储、但将此列表限制为仅适用于那些为简便易用而不同的寄存器...

    寄存器      上行  端口1   端口2    端口3
                   (DN1)    (DN2)     (DN3)
    =================== ===========  ===========  ===========  ===========
    DEVCTRL      0x00100407 0x00100404 0x00100407 0x00100404 0x00100404 **** MEM/IO 被禁用,MASTER_ENB =1 (?)
    BUS_DEF      0x00060302 0x00040403 0x00050503 0x00060603 ****次要/次要总线= 4、5、6
    IO_BASE      0x00001111 0x000001F1 0x00001111 0x000001F1 ****
    MEM_BASE     0xD100D100 0x0000FFF0 0xD100D100 0x0000FFF0****
    INTCTRL      0x000300FF 0x0003010B 0x0003010C 0x0003010E ****中断线路= B、C、E
    PM_CSR      0x00000008 0x0000010B 0x00000008 0x0000010B **** PME_EN = 1;PWR_STATE = D3 (HOT)

    CAP_SUBID    0x3130102B 0x3130102B 0x3130102B 0x3130102B
    Px_LINKCAP   0x00064411 0x011E4C11 0x021E4C11 0x031E4C11 ****端口#= 1、2、3
    Px_LINKCTL_STS 0x10110040 0x10010140 0x30110140 0x10010140 **** Neg Link = 0;DLL_ACTV = 0 (DLL_LARC=1)<-+
    Px_SLOT_CTL   0x00000000 0x005803C0 0x015803C0 0x005803C0 **** DLLSC = 1 <-+
    PCI_C8h      0x02000001 0x03000001 0x03080001 0x03100001 ****位19 = 0 (专有)

    -根据引脚设置、我指的是 DNx_DPSTRAP 和 GPIO[0:2]、GPIO[4:6]引脚上的外部抽头。 是的、它们是相同的。

    -故障在多个电路板上是一致的。

    - XIO3130评估板中的下游器件评估板工作正常。

    - EEPROM 内容与 EVAL 板 EEPROM 不同:某些值与规格要求不一致。 下表提供了数据表建议的值、EVAL 板上的值和内部板上的值的比较(差异以橙色突出显示):

    EEPROM 字节地址(十六进制)

    编程值(十六进制)

     

    配置寄存器地址(十六进制)

    寄存器描述

     

    建议

    评估 EEPROM

    内部

     

     

    0

    4C

    4C

    4C

    不适用

    全局开关/上行端口功能指示器(1)

    1

    0

    0

    0

    不适用

    TI 专有寄存器(1)

    2.

    24

    24

    24

    0B4.

    上行端口链路 PM 延迟寄存器

    3.

    0

    0

    0

    0B5

    上行端口链路 PM 延迟寄存器

    4.

    0

    0

    0

    0B8.

    全局芯片控制寄存器

    5.

    0

    0

    0

    0B9.

    全局芯片控制寄存器

    6.

    0

    0

    0

    0BA

    全局芯片控制寄存器

    7.

    0

    0

    0

    0BB

    全局芯片控制寄存器

    8.

    0

    0

    0

    0BC

    GPIOA 寄存器

    9.

    0

    0

    0

    0BD

    GPIOA 寄存器

    0a

    0

    0

    0

    0BE

    GPIOB 寄存器

    0b

    0

    0

    0

    0BF

    GPIOB 寄存器

    0°C

    0

    80

    0

    0c0

    GPIOC 寄存器

    0D

    0

    46.

    0

    0C1

    GPIOC 寄存器

    0E

    0

    0

    0

    0C2

    GPIOD 寄存器

    0f

    0

    0

    0

    0C3

    GPIOD 寄存器

    10.

    0

    0

    0

    0C4

    GPIO 数据寄存器

    11.

    0

    0

    0

    0C5

    GPIO 数据寄存器

    12.

    0

    0

    0

    0C6

    GPIO 数据寄存器

    13.

    0

    0

    0

    0C7

    GPIO 数据寄存器

    14.

    01

    01

    01

    0C8

    TI 专有寄存器(1)

    15.

    0

    0

    0

    0抄送

    TI 专有寄存器(1)

    16.

    0

    0

    0

    0CD

    TI 专有寄存器(1)

    17.

    0

    0

    0

    0D0

    TI 专有寄存器(1)

    18

    0

    0

    0

    0D1

    TI 专有寄存器(1)

    19.

    14.

    14.

    14.

    0D2

    TI 专有寄存器(1)

    1A

    32

    32

    32

    0D3

    TI 专有寄存器(1)

    1b

    2.

    2.

    2.

    0DC

    TI 专有寄存器(1)

    1c.

    0

    0

    0

    0DE

    TI 专有寄存器(1)

    一维

    0

    0

    0

    0DF

    TI 专有寄存器(1)

    1e.

    0

    0

    0

    不适用

    全局开关/上行端口0功能指示灯

    1f

    0

    0

    0

    不适用

    未使用

    20.

    二十

    78

    2b.

    0E0

    子系统访问供应商 ID 寄存器

    21.

    二十

    56.

    10.

    0E1

    子系统访问供应商 ID 寄存器

    22.

    二十

    34

    30

    0E2

    子系统访问子系统 ID 寄存器

    23

    二十

    12.

    31.

    0E3

    子系统访问子系统 ID 寄存器

    24

    0

    2.

    2.

    0E4.

    通用控制寄存器(2h 禁用 L1)

    25

    24

    24

    24

    0E8.

    下行端口链路 PM 延迟寄存器

    26

    0E9

    下行端口链路 PM 延迟寄存器

    27.

    4.

    4.

    4.

    0EA

    全局开关控制寄存器

    28.

    1

    1

    1

    不适用

    下行端口1功能指示器

    29.

    0

    0

    0

    不适用

    未使用

    2A

    01

    01

    01

    0C8

    TI 专有寄存器(1)

    2b.

    0

    0

    0

    0抄送

    TI 专有寄存器(1)

    2c.

    0

    0

    0

    0CD

    TI 专有寄存器(1)

    2D

    0

    0

    0

    0D0

    TI 专有寄存器(1)

    2e

    0

    0

    0

    0D1

    TI 专有寄存器(1)

    2F

    14.

    14.

    14.

    0D2

    TI 专有寄存器(1)

    30

    32

    32

    32

    0D3

    TI 专有寄存器(1)

    31.

    10.

    90

    10.

    0D4

    通用控制寄存器

    32

    60

    00

    60

    0D5.

    通用控制寄存器

    33.

    1A

    1A

    1A

    0EC

    L0超时寄存器

    34

    0

    08

    0

    0 EE

    通用时隙信息寄存器

    35.

    0

    0

    0

    0EF

    通用时隙信息寄存器

    36.

    2.

    2.

    2.

    不适用

    下行端口2功能指示器

    37.

    0

    0

    0

    不适用

    未使用

    38.

    01

    01

    01

    0C8

    TI 专有寄存器(1)

    39.

    0

    0

    0

    0抄送

    TI 专有寄存器(1)

    3A

    0

    0

    0

    0CD

    TI 专有寄存器(1)

    3b.

    0

    0

    0

    0D0

    TI 专有寄存器(1)

    3c

    0

    0

    0

    0D1

    TI 专有寄存器(1)

    3D

    14.

    14.

    14.

    0D2

    TI 专有寄存器(1)

    3e

    32

    32

    32

    0D3

    TI 专有寄存器(1)

    10.

    90

    10.

    0D4

    通用控制寄存器

    40

    60

    0

    60

    0D5.

    通用控制寄存器

    41.

    1A

    1A

    1A

    0EC

    L0超时寄存器

    42.

    0

    10.

    0

    0 EE

    通用时隙信息寄存器

    43.

    0

    0

    0

    0EF

    通用时隙信息寄存器

    44.

    2.

    2.

    2.

    不适用

    下行端口3功能指示灯

    45.

    0

    0

    0

    不适用

    未使用

    46.

    01

    01

    01

    0C8

    TI 专有寄存器(1)

    47.

    0

    0

    0

    0抄送

    TI 专有寄存器(1)

    48

    0

    0

    0

    0CD

    TI 专有寄存器(1)

    49

    0

    0

    0

    0D0

    TI 专有寄存器(1)

    4A

    0

    0

    0

    0D1

    TI 专有寄存器(1)

    4B

    14.

    14.

    14.

    0D2

    TI 专有寄存器(1)

    4C

    32

    32

    32

    0D3

    TI 专有寄存器(1)

    4d

    10.

    90

    10.

    0D4

    通用控制寄存器

    4e

    60

    0

    60

    0D5.

    通用控制寄存器

    4f

    1A

    1A

    1A

    0EC

    L0超时寄存器

    50

    0

    18

    0

    0 EE

    通用时隙信息寄存器

    51.

    0

    0

    0

    0EF

    通用时隙信息寄存器

    -端口1似乎在 PET 行上生成永久时钟流。 模式对应的内容很难说... 端口2正常工作-下游器件响应并可访问。

    -不可能未加载数据。 我之前已经获取了一条说明器件正在加载的逻辑分析仪跟踪、上面的寄存器转储包括 SubSysID 寄存器、该寄存器包含 EEPROM 中提供的数据。

    如果您还想确认任何其他信息、请告诉我。

    此致、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    我明白了。  感谢您的说明。   除了禁用 L1之外、所有设置看起来都是数据表建议的值、 EERPOM 可能不是问题、因为端口1和端口2具有相同的 EEPROM 设置。

    实现指南可从 XIO3130产品页面获取、我不确定标题为何不同、但它们是相同的文档(SLLA295A) XIO3130实现指南(修订版 A)。   

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    我有文档-文件名没有反映文档本身的实际标题... 没有发现任何特别有用的东西(对我的问题来说,就是这样)。。。  

    我有几个关于电压电平和引脚定义的问题要问:


    如果您一直返回到此线程上的第一个帖子、您将看到我提供了在用作下游端口热插拔引脚的多个引脚上测量的电压电平。 具体而言、端口1和端口2分别为 GPIO[0]和 GPIO[4]。 测得的电平大约为420mV (在每个引脚上)、考虑到 GPIO 引脚的 VIL、这并不是一个真正的问题、但我想知道这是否正常、因为引脚应该处于输入模式并且每个引脚上有一个合理的下拉电阻器(4.7KOhm)。  我本来希望电压比这低、我想知道这是否是器件发生其他事情的迹象。

    我要确认的另一点是、用作各自下行端口 PowerOn#引脚的 GPIO[1]和 GPIO[5]引脚实际上是输出引脚。 我目前在这些引脚上有下拉电阻、但我认为它们实际上并不必要、实际上可能掩盖了正在发生的情况...

    感谢您的反馈、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    我还认为该电压有点高。   我无法在 EVM 上测量此值、因为它未安装下拉电阻器。  但是、我同意您的意见、最好移除 PWRON#引脚上的下拉电阻器、以便在没有它的情况下检查其值。   

    GPIO[0]和 GPIO[4]是 PRSNT#引脚:当此信号为低电平时、PCI 热插拔卡或器件会连接到端口。  该信号在时隙状态寄存器的 PDC 位中报告。 当该信号处于取消置位高电平状态时、DNN_PERST 引脚将低电平置位、REFCLK 将禁用、PWRONn 将取消置位高电平。

    我们可以在寄存器0xAA 的 PCI 配置空间中确认 PRSNT#的值。   

    端口1 (Px_SLOT_CTL)
    插槽状态:  0xAA = 0x0058
    时隙控制: 0xA8 = 0x03C0

    端口2 (Px_SLOT_CTL)
    插槽状态:  0xAA = 0x0158、 0b0000000101011000 (DLLSC 仅在端口2上显示数据链路层状态更改、插槽状态寄存器的 PDC 位显示 PDS "更改"、PDS 位设置为1或检测到存在)
    时隙控制: 0xA8 = 0x03C0

    它表明该值从 PRSNT#引脚记录为低电平。  有一点奇怪的是、PDS 位已"更改"、因为由于下拉电阻、它应该始终存在。

    我想知道 PRSNT#是否有任何可能导致端口1问题的瞬变。  可以帮助规避此问题的一个方法 是通过 EEPROM 将通用控制寄存器中的 SLOT_PRSNT 设置为0、这样 PDS 位始终保持有效。  我记得您的设计中没有插槽、因此在任何情况下、这都是合适的值。   

    顺便说一下、在修改端口2器件上的晶体后、PCI 配置空间中的 PCI_D4H 通用控制寄存器是否与端口1和端口2匹配?   

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    我找到了保留寄存器文档、在您之前的数据中、0xC8h 寄存 器是唯一一个寄存器、我发现端口1和端口2之间存在差异、它包含捕获的总线/器件编号、遗憾的是没有告诉我们任何重要信息。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    我想知道您共享的端口2示波器屏幕截图是否看起来像时钟模式、实际上是 XIO3ID 的 Rx 检测脉冲、XiO 是否检测到终端设备的有效终止。  是否有任何方法来确认端口2上的终端器件 Rx 端接在50欧姆(100欧姆差分)?    

     在端口1 Tx 中、该模式消失;这可能 是因为检测到了50欧姆 Rx 并且它已进入轮询状态。

    我将了解我是否可以让 XIO3130在实验中生成 Rx 检测脉冲、以便与您的进行比较。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    我们可以清楚地看到:端口2是功能端口-它是不功能端口1。 根据器件数据表和评估板原理图、两个端口上的 REFCLKO 端接至50欧姆。

    端口1上的 TX 线路似乎永远不存在初始轮询状态。 请参见下图:功能端口=端口2;非功能端口=端口1

    此致、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    很抱歉混搭。 我想知道终端器件是否以50欧姆(100欧姆差分)端接 TX 线、而不是 REFCLK。   终端器件可能会使其引脚处于高阻态或处于边缘状态。

    PCIe 器件的初始状态为 Rx 检测。  它从 Tx 线路发送脉冲、以检测是否存在有效的50欧姆端接。  如果有、则表示连接了器件、它将继续进入轮询状态。  在轮询时、终端器  件应使用 TS1/TS2数据包进行响应、如果在一段特定的时间后没有检测到 TS1/TS2数据包、则它将进入合规性状态、并应传输除时钟模式之外的其他内容。   

    正如您所说、我们看到的似乎不是轮询或合规性。  因此、我认为 XIO3130端口1实际上卡在检测中、从未进行轮询、因为由于远端 Rx 缺少50欧姆端接、它无法"看到"终端器件。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    很抱歉耽误你的时间。  我测试过的几个 XIO3130 EVM 板不好、因此需要一段时间才能获取数据。  但是、似乎端口1上的 XIO3130的 PCIe Tx 通道上的端接阻抗存在问题;端口1上终端器件的 Rx 应提供50欧姆的端接值。 Tx 线路上的 RX 脉冲看起来像一个大约每14ms 重复一次的高占空比时钟信号。  下面是实验室中 XIO3130EVM 的一个示例。   

    下面是您发送给我的示波器屏幕截图。

    如果 Tx 线路的远端有一个50欧姆的端接电阻、则该信号不应可见。  PCIe 器件通常能够在高阻抗和50 Ω 之间切换。  您能否确认在端口1的终端器件的 Rx 上看到的阻抗接近50欧姆而不是高阻抗?

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    非常感谢您提供的这些信息-波形看起来非常相似。

    两个端口的 PCIe 布线具有相同的特性- 100 Ω 差分端接。 PCB 制造厂的报告表明布线阻抗非常高、因此如果您测量的结果为真、则下游器件未正确配置其输入。

    我将与英特尔密切关注这一点。 但是、我难以理解的是以下几点:

    1.第二个端口驱动另一个 Intel ePhy,没有问题(第二个设备自动调整其输入阻抗?)

    2.在其它主板上使用相同的英特尔 ePhy,没有任何问题。 在其他主板上、它们直接由英特尔 SoC 驱动。

    为什么/如何在每种情况下对器件进行不同的配置?

    你提出了一个非常有趣的问题、我将需要仔细研究这个问题。 我将在收到任何进一步信息后尽快回复您。

    此致、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    某些 PCIe 设备可以禁用/启用其 Rx 终端。  例如、如果 PCIe 重定时器在其 Tx 未检测到50欧姆、则相应通道的 Rx 将保持高阻态、直到它检测到一个。   由于某种原因、Intel ePhy 可能无法启用其终端。  最快的方法是尽可能测量或强制电路板上的阻抗。  如果 XIO3130 Tx 端接50欧姆、我们应该看到它 进入轮询、然后进入合规性(没有 PCIe 器件)或链路配置状态。  这就是我认为在端口2上发生的情况。  在功能端口2情况下、放大并确认信号部分是 XiO 的 Rx Detect 脉冲可能会有所帮助。  

    如果 Intel Rx 上的终止值微不足道、则检测将取决于特定器件的 Rx 检测设计。  这意味着一个 PCIe 设备可以成功工作、而 XIO3130无法成功工作。  虽然我看到这种情况发生的互操作问题并不常见。 此 E2E 博文展示了 Rx 检测工作原理的示例。   

    (2) DS80PCI402/关于自动 RX-Detect -接口论坛-接口- TI E2E 支持论坛

    不过、我认为这里不是这样的、因为您向我展示的示波器截图没有显示"小"脉冲、它显示的是大脉冲、表示高阻抗、而不是边缘阻抗。  如果该脉冲处于边缘状态、则脉冲几乎不可见。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    感谢有关自动 RX-Detect 机制的详细说明和参考:我将详细了解它们并同时增加我自己的知识!!! (有一个法语的表达式,基本上说“今晚我会睡得更不傻”——这很好地总结了我目前的想法……)

    我目前正在尝试确定英特尔是否提供任何方法来配置此端接值-我还将尝试将50欧姆端接电阻焊接到相关引脚(这不是很容易、但至少封装不是 BGA 器件)。 这将是一个粗略的测试、但如果确实是这个问题、我至少应该能够证明它。

    我将告诉您结果是什么。

    此致、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nicholaus、

    我能够将终端焊接到线路上、它们确实改变了信号的行为、但并未改变实际结果-器件仍然没有响应。

    以下是添加端接前后 TX 信号的图像:

                

    我对 XIO332的检测机制有疑问:您说器件检测到信号上的阻抗并确定器件是否存在。 该阻抗的容差是多少? 50欧姆+/-?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    PCIe 规范将该阻抗定义为最小40欧姆、最大60欧姆。

    下一个序列应该进行轮询、那么终端器件应该使用 TS1/TS2数据包对 XIO3130做出响应、然后它应该进入配置并建立一个链路。   

    如果终端器件不使用 TS1/TS2数据包进行响应、则 XIO3130应符合标准。   

    这是我使用50欧姆端接线路后实验室的屏幕截图。  现在、我只有低带宽示波器、因此我还看不到实际的模式、但这应该是一种合规模式。  一旦高速示波器可用、我将确认。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nicholaus、

    要清楚一点、您的示波器上的两个信号是否代表 XIO3130发出的+/-对 PET 信号、还是其中一个 PET 信号和一个 PER 信号?

    谢谢、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nicholaus、

    以下图像显示的内容与图像中的内容相同、但似乎没有相同的"同步"。

    (这些是交流耦合电容器之后的-/+ve PET 信号的三幅图像)

          

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    是的、如果您只终止两个 PET 对中的一个、那么 XIO3130将不会进入轮询。  Tx+和 Tx-都必须终止。

    如果有高速示波器、我认为我可能能够分辨合规性和轮询之间的差异、但很难说没有它会发生什么情况。   

    我认为最好回圈、因为终端器件未启用 XIO3130的终端。  使用外部50欧姆强制进行端接可能会使我们达到合规性、但这可能不会导致 PCIe 链路工作。  在英特尔 PHY 端、我们是否可以使用任何工具来调试此问题?  也许有一种方法可以强制内部端接电阻为50欧姆?

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nicholaus、

    感谢您的回答。 为了回答您的问题、我将尝试从英特尔获得有关其设备的答案。 已打开支持请求单、但未收到反馈。 我在任何文档中都没有看到任何涉及调整或调整以太网控制器输入阻抗的内容。 设计指南规定、对于第1代应用、可采用100欧姆差分路由、但对于第2/3代运行、需要85欧姆的电阻。

    我还想明确、我已经从 XIO3130终止了 PE-和 PE+、这两个端点都靠近它们的端点(英特尔以太网控制器)。 我想我的部分问题也是:"来自以太网控制器的 PET-/+信号是否也应该在关闭 XIO3130时终止? 我从我们的讨论中感到,这不是必要的,但我想听取你对此的意见。

    我可以查看我是否能够使用更高速度的示波器获得更好的跟踪(我们也遇到了可用性问题)。 您是否更喜欢真正的差分探头、或者单个+/-迹线是否可以接受...?

    谢谢、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    PCIe 器件的50 Ω 终端位于 PCIe 器件内部、因此无需外部终端。 英特尔 PHY 应该提供它们;我不知道为什么不提供它们。  可能有一些条件或引脚状态不符合预期。   如果尚未检查向另一个电路板发送信号、可能会有所帮助。  

    单独的+/-迹线是可以的。   

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    我将在下周外出、因此我已提醒我的同事注意此问题。  他们应在下周继续提供支持。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    我将通过以下电子邮件继续我们的讨论:

    问题:"是否可以禁用 XIO3130 RX 引脚上的内部终端(使输入为高阻抗)。 这样、我可能会尝试使用外部端接、看看这是否会起作用。"

    遗憾的是、无法强制使用终止值。  XIO3130 Rx 端接值由状态机控制。  我假设英特尔设备是类似的。  这就是为什么我希望这个外部端接实验可能会使我们通过 Rx 检测、因为退出 Rx 检测的要求只是检测50欧姆、但是、除非满足其他要求、否则它可能无法在之后建立链路。  例如、XIO3130 Rx 处于高阻态"...当没有电源或基本复位被置为有效时"。 数据表中的值。   然而、如果一个基本复位被置为有效或者没有电源、那么即使 端接被强制通过一个外部电阻器连接至50欧姆、链路训练也不应该开始。  英特尔设备可能会出现类似情况。

    您是否可以通过任何方式提供英特尔设备的 PCI 配置空间?  这可能包含一些有用的信息。

    另一个需要调查的问题是 Intel Tx 线路、并查看我们在那里看到的电气行为类型。   

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    只需办理入住手续。 此问题是否有任何更新?

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    我们认为我们刚刚找到了答案、但它提出了另一个问题、我希望您能够澄清。

    在引导过程中、REFCLK 禁用位似乎设置为"1"、但我们不确定谁。 我的低级软件人员 告诉我 coreboot 设置该位的可能性为"0%"、但是如果我在偏移量0xD4处读取通用控制寄存器、该位肯定会设置为"1"。 它也不是在 Windows 下运行的评估板上设置的、因此进一步加强了它是一个低级问题的想法。

    更奇怪的是、端口0上的相应位未设置(这说明了端口0工作正常的原因)。  

    扼要重述一下:我们已经看到了 EEPROM 是否初始化的问题。 在端口1上、位1设置为"1"、但在端口0上不设置。 EEPROM 的内容被定义、这样当 EEPROM 被使用时、该位应该被初始化为"0"。

    我已经要求低级软件人员确保在秘密设置此非标准寄存器的代码中没有"隐藏"访问、但在执行此操作时、我希望得到您对以下内容的反馈:

    1.任何想法(软件除外)为什么端口1的位设置为"1"、而端口0的位正确初始化为"0"? (同样、我们将查看此问题的软件原因)

    2.是否有任何可能影响加电时配置位负载的勘误表?

    3.该特定位的设置是否可能取决于多个字段?

    您的任何反馈 都很好-一旦我们确认是否有相关注册访问权限、我会尽快通知您...

    谢谢、此致、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    取得了很大进展。  关于此结果的一个问题。   在下游器件中更换晶体后、我们是否在您的示波器快照中看到正在生成 REFCLK 输出信号?  这意味着 XIO3130数字表示 REFCLK 被禁用、但它并未被电气禁用。

    1.  以下是一些想法:

    在 通用控制寄存 器(0xD4)中、REFCK_DIS (位1)位设置为"1"、这是问题的根源。  在 PERST#脉冲之后、应将其复位为0、EEPROM 加载也将其设置为0、因此在 PERST#之后的某个时间、它将变为"1"。  我再次查看了您的原理图、看起来下游 PERST#引脚被拉至接地、 但我在示波器 中看到了 PERST#信号、因此我不确定哪一个是正确的。  请告诉我。

    SLOT_PFIP (位6)字段可用于在 电源故障期间禁用 REFCLK。  此字段设置为"0"、因此不应应用。

     RC_PF_CTL (位15)域可用于在 电源故障期间禁用 REFCLK。  此字段设置为"0"、因此不应应用。

    在表5-2中、有一节介绍了可禁用 REFCLK 的 PCIe 热插拔边带信号、如 PRSNT#和 PWRGD#。  这又回到了您原来的问题、即端口设置为:

    DN1_DPSTRP  = 1 (启用 PCIe 热插拔)
    GPIO0/PRSNT#=0 (卡存在)
    GPIO1/PWERON#=0 (XIO3130输出)        
    GPIO2/PWRGD  = 1 (电源正常)
    DN1_REFCLKO:无活动

    DN2_DPSTRP  = 1
    GPIO4/PRSNT# = 0
    GPIO5/PWERON# = 0         
    GPIO6/PWRGD  = 1.
    DN2_REFCLKO:100MHz 时钟

    我唯一可以看到的是、如果 PRSNT#、PWRGD 或 PERST#上存在噪声或瞬态、导致 REFCLK 被禁用、但如果它们稳定、这应该是可以的。  我们可以在链路期间查看端口1的这些信号、以确保其与数据表第5.2节中列出的序列保持一致。  

    2. PCI Express 分组交换机芯片勘误表(修订版 A)中未列出勘误表(TI.com)

    看起来 特定的位可能会受到#1中列出的项目的影响、但没有直接依赖于另一个字段的指示。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    报告取得了一些成功、但我们仍然感到困惑:

    我们已经检查了代码、找不到偏移量0xD4处对寄存器的任何软件访问。 我们已尝试通过检查该位的状态来解决该问题、如果该位处于"1"状态、则将其设置回"0"。 我们认为这 是可行的解决方法(尽管此时仅在少数电路板上进行了测试)、但它并未解决根本问题: 为什么通用控制寄存器中的"Discable"位会首先设置为"1"?

    关于您的第一个问题:PERST#信号在上电后很快上升、并应保持静态。 这是一个3.3V 信号、阈值电平应防止任何"噪声"产生错误转换。 实际上有上游和下游 PERST#信号、对吧? 我们从未发现检测/配置 XIO3130时出现任何问题、因此不太可能会导致问题的"上行"复位。 如果是、为什么它只会影响端口0?

    我们似乎在 General_Control_Register[1]位("可中断")和无法检测下游器件之间建立了明确的链接。 该位将设置为"1"的条件是什么?

    EEPROM 内容将位设置为"1"(端口0的偏移量0x31)。

    2.您提到了诸如 PRSNT#和 PWRGD #之类的边带信号、但这些信号都被拉至静态值、因此不会造成问题。

    3.您还提到了一些字段,例如 SLOT_PFIP 和 RC_PF_CTL,这些字段似乎被设置为不会引起任何问题。

    4、必须有其他东西可以将位"可显示"设置为"1"... 我们需要知道这是什么...

    请注意:即使第三个下行端口已禁用、其自身的 REFCLK 位也会启用... 这与直觉不符、因为如果下游端口本身被禁用、我预计 REFCLK 将被禁用... 这可能提供线索吗?

    我想说、我们相信我们的解决方案可以100%解决问题、但我认为我们目前无法解决。 我真的需要了解将位"可显示"设置为"1"的机制。

    因此、总结一下、我要说的是、我的1个问题是:

    什么原因只能将端口0的通用控制寄存器的"可显示"位设置为"1"????

    感谢您的反馈。

    此致、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    这是一个好问题。  上一篇文章是我的想法、通过提供的信息可以实现这一点。  使用新的权变措施、您能否确定 REFCLK_DIS 位何时以及多少次从0变为1?  也许这可以提供线索。  更确切地说、 正如我们在示波器图像中看到的、尽管设置了时钟禁用位、输出 REFCLK 仍在端口0上输出、对吧?

    当我提到 PERST#信号时、我指的是下游 DNN_PERST#信号、该信号应传输到下游器件。  但是、除非组装了 R3782、否则原理图中显示为拉至接地。  我认为上游 PERST#就像您说的那样好。   

    由于 PWRGD#被拉高、这意味着链路训练序列应按照第5.2.3.1节"无 PWRGDn 反馈的 PCI 热插拔上电周期"中所述开始。  如果不遵循该序列、则可能会禁用 REFCLK。  为什么这只发生在端口0上是一个谜、因为与原理图没有明显的区别、所以我的想法是、这是端口0上器件的互操作问题。  我将在内部询问 是否有任何人具有此器件的数字设计、并告诉我哪些内部状态可能会影响此位。  我今天不在办公室、因此我将在下周初跟进。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    遗憾的是、算法的实现方式无法确定禁用位是否被多次激活。 本质上、该算法如下所示:

    If GeneralControlRegister[1] == '1' then

    {

       Set GeneralControlRegister[1] = '0'

       While (NegotiatedLinkWidth == 0h && nbRetries < 1,000,000); // 1E6 Maximum retries allowed.

    }

    Return control to Coreboot

    此时我唯一能说的是、所有已使用此算法进行编程的电路板(到目前为止)似乎都很好(已经进入 Linux O/S 加载阶段、并且所有器件(包括两个以太网端口)都正常工作)。 这表明、只有位的初始设置为"1"、我们需要对此进行关注。 我们将继续对电路板进行编程、并将执行更详细的测试来评估此解决方案的稳健性。 此外、似乎需要执行大约100K 的轮询操作、以便对 PCIe 链路进行培训并设置现场协商 LinkWidth。

    我担心的是、由于我们不明白为什么首先切换该位、它可能会在"正常"操作下再次发生并导致问题。

    关于您的问题:我无法确定时钟的确切时序与该位的设置-我目前没有办法将该位的设置与 REFCLK 振荡的实际停止相关联。  

    关于 R3782的问题:该电阻器允许我们使用 PCIe 开关下行端口的 PERST#信号来栅极以太网控制器的 RST#引脚。 从原理图中可以看出、默认情况下不包括下行端口的 PERST#信号、而是使用另一个以太网控制器的 RST#信号生成、其推导方式不同。 不过、此处的注意事项是、复位信号的时序不一定与 REFCLK 在预定义的时间内保持稳定一致:

    如上图所示、顶部信号是 i226以太网控制器的"默认"RST#生成。 中间信号是下行端口的 PERST#信号。 我们确实 能够将 DN1 PERST#信号路由到 i226控制器、但我们发现由于以下原因、这似乎不是必需的:

    1. 这样做对数据链路是否经过正确训练没有影响。
    2. 我们在上面显示的条件下实施了解决方案(默认机制生成的 i226 RST#)。

    注意:如前面所述、REFCLK 振荡中的停止似乎是由故障的 i226晶体振荡器引起的。 à 讨论的目的、凸极信息是生成 RST#信号 Vis -Δ- Vis REFCLK 的到达/稳定性。

    就禁用位而言、下面的波形表明振荡开始大约2.2秒后该位被置位:

    添加 RST#信号并运行修改后的 coreboot、我们会发现:

    从该图像中、我们看到 REFCLK 振荡在大约2.4秒(移除 RST#后)停止、但在大约1秒后恢复(假设是由于我们的变通)。

    我真的不知道所有这些信息是否有助于缩小位断言的原因、但这是我能为您提供的最好 的外部可见信息、有助于跟踪问题。 如果有任何其他测量可帮助您隔离问题、请告诉我。

    我将进一步研究第5.2节的提法,看看我是否能找到任何相关的东西。 我们下周可以再次与基地联系。

    此致、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    我担心 PERST#时序、因为这可能是正常情况下的一个问题、因为 PCIe 规范要求 信号在 REFCLK 稳定后失效、而 XIO3130勘误表指出时序也存在已知的错误; 但是、 如果它可以正常工作、并且您确信它不会导致任何问题、那么它是可以的。

    在任何情况下、PERST#时序都不会对 REFCLK 禁用位产生影响。  设计团队的回应是"硬件不会自动更新此位"。  EEPROM、软件和 XIO3130不会更新该位。  我不知道 这可能来自哪里。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    只需清除:上面的复位信号是  PERST#信号、而下行时钟与下行 PERST#信号相关(可选择由 XIO3130生成)。 两个选项(均已尝试)都未显示任何行为差异-在这两种情况下、DIable 位都在引导过程的早期时间设置为"1"(请参阅上面的示波器图像)


    我想确认您的断言:根据设计团队的说法,硬件不会自行更改此位(禁用)... 我是否正确地解释了该陈述? 这是否意味着它不能(没有物理电气连接),或者它不能(我想澄清一点小的差异...)

    根据数据表、硬件默认值(即没有 EEPROM 时)是该位默认为"0"。 我们已经测试了这种情况(EEPROM 内容编程为0xFF)、并且看到了有问题的行为(禁用位设置为"1"、需要重新编程)。

    在对外部 EEPROM 进行编程(通用控制寄存器[15:0]设置为0x6010、如各种示例所示)的情况下、我们再次看到相同的行为(禁用位设置为"1"、需要重新编程)。

    这并没有给我们带来太多的替代选择。 我们目前正在验证该位的状态、只要器件能够响应主机接口上的 PCIe 访问(编程后)。 我们读取的是"1"、这无法通过软件访问来解释、根据您的响应、我们不了解如何设置位...  

    我知道这些问题以前已经提出过、但是:

    1. "如何将该位设置为"1"??
    2. "为什么只有端口0?"

    我们需要一些选项-设计团队是否实际打开了代码并检查了哪些机制可以将违规位设置为"1"

    我们正在尝试检查主 PCIe 接口、以查看是否可以检测到可能将该位设置为"1"的访问、但由于没有飞跨探头而受到限制、因此我们无法分析协议...

    如果我们在这里发现任何其他可能有用的东西、我将会与您再次进行讨论。 请尝试查看您是否可以在您的一侧深入了解任何其他信息。

    感谢你的帮助。

    此致、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    我想我们可以排除 EEPROM、如果我记得两个端口都是以相同的方式正确编程的。  如果我们在端口0上看到它、我们应该在端口1上看到它。  此外、正如您指出的、您尝试了其他选项、它不会更改结果。   这很容易测试。

    因此、它可能是软件或器件本身。   根据我的理解、XIO3130的 PCIe 配置空间位于 XIO3130内、因此应该有电气连接;但是、数字状态机决定了是否可以设置该位。  我相信设计团队的回应、但我会跟进并确保他们是肯定的。

    请确保软件没有为 XIO3130设置0xD4中的位1、位6或位15。  

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    以下是我回答的设计团队提出的一些问题。  我只想再次检查这里并确保它们准确无误:

    它们是在时钟输出、但该位读取错误还是在其中一个端口上没有时钟输出。  
    它们将获得大约2秒的时钟输出、直到时钟停止、这可能是由于该位的变化。
    它们不能改变的故障
    否,他们当前的解决方法是在链接训练之前将该位改回“0”。
    他们是否在多个装置中看到这一点。  
    是的

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    后续问题是  、在软件中发布 PERST# 2秒后、还有哪些位(如果有)被设置?

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    前三个问题的答案是绝对正确的。

    至于您的后续问题:我不确定如何正确回答... 听起来、当我们检测到该位已设置为"1"时(就在我们实施重新编程算法之前)、您需要的是寄存器转储。 虽然我已经提供了寄存器的转储(在这个线程的前面部分)、但是一旦控制被传输到 O/S、它们就已经被低级内核重新编程了几个寄存器。

    请确认您是否正在寻找:这需要一些工作、但我相信我可以在一整天左右的时间内为您找到一些东西...

    感谢您再次与我联系...

    此致、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    我认为设计团队想要检查软件中哪些其他寄存器可能已被更改、这些寄存器可能会间接影响该位。  它们的立场是、XIO3130在没有软件或 EEPROM 的外部干扰的情况下无法更改该位。

    是否可以直接从代码中提供软件对 XIO3130配置空间所做的所有更改?  如果无法实现、则在 PERST#之前和之后不久的寄存器转储可能有助于识别软件正在执行的操作。   

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    我了解硬件设计团队正在取得的结果。 遗憾的是、可能无法让他们准确地找到他们想要的内容。

    首先、我认为我们可以同意、在(上行) PERST#取消置位之前、不可能转储 PCIe 配置空间。 下游 PERST#信号由硬件控制、在我们准备好释放下游端口之前、我们无法修改低级固件以保持下游端口复位(我甚至不确定 XIO3不再 使用此级别的寄存器是否可以实现此级别的控制)。

    关于提供由低级固件完成的访问、我们无法(通过分析源代码)确定软件可以写入或不写入哪些寄存器。 考虑到 Linux 相当通用的性质以及许多寄存器的特定于器件的性质、很难对特定于任何给定器件的一组寄存器进行低级深入探讨和初始化-尤其是在 PCI-Express 架构内非常明确地定义 PCIe 开关的情况下。

    (以上所述、我们正在尝试采用一种设置、使我们能够捕获对上行端口执行的所有访问。 然而,我们尚未成功地获得适当的信息,因此我目前无法向你提供任何具体信息。 一旦我们收到此信息、我会将其发送给您)

    我现在能给您的最好的是在引导周期中从3个单元进行以下转储。 我有上行端口以及2个实现的下行端口:器件03:00.0是不起作用的(REFCLK_Disable ='1')端口、器件03:01.0是起作用的端口(连接到第二个以太网控制器)。 我已突出显示了讨论中的寄存器、因此很容易看到...

    电路板1:

    PCI:02:00.0配置空间转储:
      0000:8232104C 00100000 06040002 000
      0010:00000000 00FF0302 000
      0020:00000000 00010001 00000000 000
      0030:00000000 00000050 00000000 000
      0040:00000000 00000000 00000000 000
      0050:FE037001 00000008 00000000 000
      0060:00000000 00000000 00000000 000
      0070:00808005 00000000 00000000 000
      0080:0000900D 3130102B 00000000 000
      0090:00510010 00008001 00192000 000
      00A0:10110140 00000000 00000000 000
      00B0:08A00000 00000024 00000001 000
      00C0:00000000 0007FBCC 02000001 000
      00D0:32140000 00000002 00000000 000
      00E0:3130102B 00000002 00043F24 000
      00F0:00000000 00000000 00000000

    PCI:03:00.0配置空间转储:
      0000:8233104C 00100000 06040002 000
      0010:00000000 00000000 00000006 000
      0020:00000000 00010001 00000000 000
      0030:00000000 00000050 00000000 000
      0040:00000000 00000000 00000000 000
      0050:FE437001 00000008 00000000 000
      0060:00000000 00000000 00000000 000
      0070:00808005 00000000 00000000 000
      0080:0000900D 3130102B 00000000 000
      0090:00610010 00008FC1 00112000 011
      00A0:10010140 00000060 015803C0 000
      00B0:00000000 00000000 00000000 000
      00C0:00000000 00000000 06000001 000
      00D0:32140000 00006012 00000000 000
      00E0:00000000 00000000 00000000 000
      00F0:00000000 00000000 00000000

    PCI:03:01.0配置空间转储:
      0000:8233104C 00100000 06040002 000
      0010:00000000 00000000 00000000 000
      0020:00000000 00010001 00000000 000
      0030:00000000 00000050 00000000 000
      0040:00000000 00000000 00000000 000
      0050:FE437001 00000008 00000000 000
      0060:00000000 00000000 00000000 000
      0070:00808005 00000000 00000000 000
      0080:0000900D 3130102B 00000000 000
      0090:00610010 00008FC1 00102000 021
      00A0:30110140 00000060 015803C0 000
      00B0:00000000 00000000 00000000 000
      00C0:00000000 00000000 00080001 000
      00D0:32140000 00006010 00000000 000
      00E0:00000000 00000000 00000000 000
      00F0:00000000 00000000 00000000

    电路板2:

    PCI:02:00.0配置空间转储:
      0000:8232104C 00100000 06040002 000
      0010:00000000 00FF0302 000
      0020:00000000 00010001 00000000 000
      0030:00000000 00000050 00000000 000
      0040:00000000 00000000 00000000 000
      0050:FE037001 00000008 00000000 000
      0060:00000000 00000000 00000000 000
      0070:00808005 00000000 00000000 000
      0080:0000900D 00000000 00000000 000
      0090:00510010 00008001 00192000 000
      00A0:10110140 00000000 00000000 000
      00B0:08A00000 00000024 00000001 000
      00C0:00000000 0007FBCC 02000001 000
      00D0:32140000 00000002 00000000 000
      00E0:00000000 00040024 000
      00F0:00000000 00000000 00000000

    PCI:03:00.0配置空间转储:
      0000:8233104C 00100000 06040002 000
      0010:00000000 00000000 00000006 000
      0020:00000000 00010001 00000000 000
      0030:00000000 00000050 00000000 000
      0040:00000000 00000000 00000000 000
      0050:FE437001 00000008 00000000 000
      0060:00000000 00000000 00000000 000
      0070:00808005 00000000 00000000 000
      0080:0000900D 00000000 00000000 000
      0090:01610010 00008001 00112000 011
      00A0:10010140 00000042 015803C0 000
      00B0:00000000 00000000 00000000 000
      00C0:00000000 00000000 06000001 000
      00D0:32140000 00004292 00000000 000
      00E0:00000000 00000000 00000000 000
      00F0:00000000 00000000 00000000

    PCI:03:01.0配置空间转储:
      0000:8233104C 00100000 06040002 000
      0010:00000000 00000000 00000000 000
      0020:00000000 00010001 00000000 000
      0030:00000000 00000050 00000000 000
      0040:00000000 00000000 00000000 000
      0050:FE437001 00000008 00000000 000
      0060:00000000 00000000 00000000 000
      0070:00808005 00000000 00000000 000
      0080:0000900D 00000000 00000000 000
      0090:01610010 00008001 00102000 021
      00A0:30110140 00000042 015803C0 000
      00B0:00000000 00000000 00000000 000
      00C0:00000000 00000000 00080001 000
      00D0:32140000 00004290 00000000 000
      00E0:00000000 00000000 00000000 000
      00F0:00000000 00000000 00000000

    电路板3:

    PCI:02:00.0配置空间转储:
      0000:8232104C 00100000 06040002 00010000
      0010:00000000 00FF0302 00000101
      0020:00000000 00010001 00000000 00000000
      0030:00000000 00000050 00000000 000000FF
      0040:00000000 00000000 00000000 00000000
      0050:FE037001 00000008 00000000 00000000
      0060:00000000 00000000 00000000 00000000
      0070:00808005 00000000 00000000 00000000
      0080:0000900D 3130102B 00000000 00000000
      0090:00510010 00008001 00192000 00064411
      00A0:10110140 00000000 00000000 00000000
      00B0:08A00000 00000024 00000001 00000000
      00C0:00000000 0007FBCC 02000001 00000000
      00D0:32140000 00000002 00000000 00000002
      00E0:3130102B 00000002 00043F24 00000000
      00F0:00000000 00000000 00000000 00000000

    PCI:03:00.0配置空间转储:
      0000:8233104C 00100000 06040002 00010000
      0010:00000000 00000000 00000006 00000101
      0020:00000000 00010001 00000000 00000000
      0030:00000000 00000050 00000000 000001FF
      0040:00000000 00000000 00000000 00000000
      0050:FE437001 00000008 00000000 00000000
      0060:00000000 00000000 00000000 00000000
      0070:00808005 00000000 00000000 00000000
      0080:0000900D 3130102B 00000000 00000000
      0090:00610010 00008FC1 00112000 011E4C11
      00A0:10010140 00000060 015803C0 00000000
      00B0:00000000 00000000 00000000 00000000
      00C0:00000000 00000000 06000001 00000000
      00D0:32140000 00006012 00000000 00000000
      00E0:00000000 00000000 000000000000 0000001A
      00F0:00000000 00000000 00000000 00000000

    PCI:03:01.0配置空间转储:
      0000:8233104C 00100000 06040002 00010000
      0010:00000000 00000000 00000000 00000101
      0020:00000000 00010001 00000000 00000000
      0030:00000000 00000050 00000000 000001FF
      0040:00000000 00000000 00000000 00000000
      0050:FE437001 00000008 00000000 00000000
      0060:00000000 00000000 00000000 00000000
      0070:00808005 00000000 00000000 00000000
      0080:0000900D 3130102B 00000000 00000000
      0090:00610010 00008FC1 00102000 021E4C11
      00A0:30110140 00000060 015803C0 00000000
      00B0:00000000 00000000 00000000 00000000
      00C0:00000000 00000000 00080001 00000000
      00D0:32140000 00006010 00000000 00000000
      00E0:00000000 00000000 000000000000 0000001A
      00F0:00000000 00000000 00000000 00000000

    如果您认为这可能有用、我可以在同一个点或在整个启动过程之后(在我们的解决方法应用完成并且我们已经启动到 Linux 之后)提供额外的转储。 说实话、我认为这些额外的转储不会特别有用、但如果您愿意、我可以为您提供这些转储。

    感谢您的反馈和建议。

    此致、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    我将审核这些数据、以便让您知道 我是否从其中看到任何有趣的信息、并尽快返回给您。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nicholaus、

    我只是检查一下您是否能够根据我提供的数据确定任何内容、还有一个问题...

    如果 PCIe 链路协商失败、是否可以设置 REFCLK_DISABLE 位?

    尽管 REFCLK 已停止振荡、但我们似乎观察到 TX+/-线路发送重复模式。

    感谢您的帮助、

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    REFCLK_DISABLE 位不能由 XIO3130置位、除非在电源故障触发器被禁用的情况下。  因此 、即使 PCIe 链路协商根据我的信息失败、XIO3130也无法设置此位。

    我确实在您共享的数据中看到了一些有趣的东西。 我之前的数据与电路板2相匹配、但在这两种情况 下、看起来像位7、13和14的有趣之处在于、它们都应反映 DNN_DPSTRP 引脚的值;不过、它们是不同的。  这是由于每个电路板上的 EEPROM 差异造成的吗?  应实施热插拔以避免勘误表中提到的 REFCLK 时序问题、因此如果这些位在引导期间发生变化、这可能与该问题相关。  请查看随附的图像。   

    下游 Tx 线路仍在传输、即使下游 REFCLK 不是如此?  我认为这不应该发生。  您能否在图形继续传输的同时发送 REFCLK 关闭的示波器快照?  我可以将其传递到设计中、可能会 提出一些想法。

    此致、

    Nicholaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    是否对差异或其他更新进行了任何解释?

    此致、

    Nicholaus