主题中讨论的其他器件: DRA821、 TUSB8041、 SK-AM69
工具/软件:
Champ、
客户要求赞扬以启用以下测试项目。
我假设这是测试数据包和 USB 眼图。
我们有 u-boot 或 Linux 内核中的测试模式指令吗?
|
1.03. |
USB |
|
|
1.03.01. |
USB_USB-Speed Host_High |
|
|
1.03.02. |
USB_DROP |
|
|
1.03.03. |
USB3.2 Gen1 |
Br、Rich
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.
工具/软件:
Champ、
客户要求赞扬以启用以下测试项目。
我假设这是测试数据包和 USB 眼图。
我们有 u-boot 或 Linux 内核中的测试模式指令吗?
|
1.03. |
USB |
|
|
1.03.01. |
USB_USB-Speed Host_High |
|
|
1.03.02. |
USB_DROP |
|
|
1.03.03. |
USB3.2 Gen1 |
Br、Rich
Guojuan,
您是否能够使用提供的命令测试 USB2p0测试模式?
USB3p0在数据吞吐量以及控制器、子系统方面都不同于 USB2.0。 USB3.0使用 SERDES 引脚来实现超高速、并具有不同的合规要求。
其中一种方法是使用低速 LFPS 信号(低频周期信号)、然后是在5G 速度下采用 CP0、CP1测试模式。
当处于 PMA 隔离模式时、可以在寄存器 PHY_PMA_ISO_Xcvr_CTRL[29]中启用 LFPS。 CP0是一种启用了展频的5G 信号模式、CP1是不带 SSC 的5G 时钟信号(1/0)。
我们有示波器测试软件来验证 USB3.0信号(LFPS、CP0、CP1)的电气合规性。 我不确定是否有没有测试软件套件进行测试的方法。 在将器件投放市场之前、我们已在 PVT 中验证 USB3p0。
Guojuan,
请参阅 LeCroy QPHY USB 测试手册。
https://cdn.teledynelecroy.com/files/manuals/qualiphyusb3manual.pdf
您好 Rich、
1月3日、国娟的问题是关于软件包以及如何使用它、所以我粘贴了我们使用的 LeCroy 手册。
关于测试 USB3.0的软件说明,我在1月2日回复了说明。 我使用 CCS 进行 USB 3.0验证。 我尚未使用 Linux 来实现 USB 3.0、也不知道是否有一组将器件置于测试合规性模式的指令。
由于 USB 3.0使用 SERDES TX/RX 引脚、因此我们需要输出使用 SERDES 包装器生成的 LFPS、CP0和 CP1模式。
阅读 xHCI 文档时、
"仅当端口处于断开状态、然后写入 PORTSC 寄存器并将 PLS 字段设置为合规模式且 LWS 设置为‘1'时、才会在 LFPS ping 超时后进入合规模式。
从 AM67 TRM Excel 工作表中、
| 3100 0420h | 32 | 0h | USB2SS_PORT | USB2SS_PORT_XHCI_PORT_20_PORTSC_20 | 16 | LWS |
| 3100 0420h | 32 | 0h | USB2SS_PORT | USB2SS_PORT_XHCI_PORT_20_PORTSC_20 | 8:5 | 请 |
端口链路状态[PLS]、RWS。 默认值= RxDetect ['5']。 此字段用于对端口进行电源管理并反映其当前链路状态。 当端口处于 Enabled 状态时、系统软件可以通过写入该字段来设置链路 U 状态。 系统软件也可以写入该字段来强制端口从"禁用"状态转换为"断开连接"状态。
写入值:
0:链路应从任何 U 状态转换到 U0状态。
3:链路应从 U0状态转换到 U3状态。 此操作有选择地暂停连接到此端口的设备。 当端口链路状态为 U3时、集线器不会将下行方向的流量传播到此端口、但集线器应响应来自该端口的恢复信号。
5:如果端口处于禁用状态[PLS =禁用、PP ="1"]、则链路应转换到 RxDetect 状态、端口应转换到断开状态、否则忽略。
1-2,4,6-15:忽略。
状态编码:
0:链路处于 U0状态、
1:链路处于 U1状态、
2:链路处于 U2状态、
3:链路处于 U3状态[设备已暂停]、
4:链路处于禁用状态,
5:链路处于 RxDetect 状态、
6:链路处于非活动状态、
7:链路处于轮询状态,
8:链路处于恢复状态、
9:链路处于热复位状态、
10链路处于合规模式状态、
11:链路处于测试模式状态、
12-14:保留、
15:链接处于恢复状态。
注意:端口链路状态写入选通[LWS]也应设置为"1"才能写入此字段。 如果 PP ="0"、则此字段未定义。
注意:在转换完成之前、不会反映不同状态之间的转换。
有关 PLS 转换条件、请参阅 xHCI 规范的第4.19节。 有关使用此字段的更多信息、请参阅第4.15.2节和第4.23.5节。
请参阅 xHCI 规范:
Shreyas,
感谢您的反馈。
您提到"我使用 CCS 进行了 USB 3.0验证、 我还没有使用 Linux 进行 USB 3.0、也不知道是否有一组将设备置于测试合规性模式的说明。"
稍后、您指出了要为进入 合规模式而设置的寄存器。
"仅当端口处于断开状态、然后写入 PORTSC 寄存器并将 PLS 字段设置为合规模式且 LWS 设置为‘1'时、才会在 LFPS ping 超时后进入合规模式。
从 AM67 TRM Excel 工作表中、
| 3100 0420h | 32 | 0h | USB2SS_PORT | USB2SS_PORT_XHCI_PORT_20_PORTSC_20 | 16 | LWS |
| 3100 0420h | 32 | 0h | USB2SS_PORT | USB2SS_PORT_XHCI_PORT_20_PORTSC_20 | 8:5 | 请 |
您是否使用 CCS 为合规性测试执行所有寄存器设置? 如果客户保留了 JTAG、我们是否有说明指南供客户如何通过 CCS 执行此操作?
客户通常不会保留 JTAG、是否可以在 u-boot 或内核中称赞行指令来执行相同的操作?
Br、Rich
您好 Rich、
是的,我为我创造的混乱道歉。 我最初回复您、不知道是否有办法在使用 CCS 之外进入合规性模式。 后来我回来阅读了提到合规模式入口的 xHCI 文档、然后回到 TRM 以找出需要设置为合规模式入口的 PLS 和 LWS 寄存器。
我使用 CCS 进行 USB3.0合规性测试。 在 CCS 中、我们有 API 来设置 SERDES TX 以输出 LFPS 信号、将器件置于环回状态并通过 AWG 或 BERT 输出 CP0图形、还用于输出 CP1图形。
是否可以在 Linux 中尝试这些寄存器并查看器件是否可以进入合规性模式? 您是否还具有合规性测试所需的 USB SQUID 测试装置?
Shreyas,
"是否可以在 Linux 中尝试这些寄存器并查看器件是否可以进入合规性模式? 您是否还具有合规性测试所需的 USB SQUID 测试装置?"
客户尝试按照建议在 Linux 中设置寄存器、AM67x 会进入测试模式。 它们具有测试装置、但结果如报告所示。
"我们有 API、用于设置 SERDES TX 以输出 LFPS 信号、将器件置于环回模式并通过 AWG 或 BERT 输出 CP0图形、还用于输出 CP1图形。"
您提到了有关 API 的 信息、若要将寄存器0x31000420设置为0xA0010340、 这是否只是一个条件、不同的测试模式是否会有其他设置?
您是否可以尝试 为 Linux 设置测试并提供说明 作为指南?
Br、Rich
丰富、
请尝试使用 J722S TRM Excel 工作表中的此寄存器。
USB_VBP2AHB_WRAP_CONTROLLER_VBP_USB3_CORE_GBL_GPIPE_GUSB3PIPECTL.HstPrtCMPl[30]= 1b'1。
此功能无需在 USB 3.0电缆上使用测试装置即可测试 PIPE PHY 合规性模式。
该位启用 SS 端口链路的合规性状态。 默认情况下、该引脚必须设置为1'b0。
在合规性实验室测试中、SS 端口链路在上电后未通过第一个轮询序列后进入合规性状态。 运行合规性测试时、将该位设置为0。
使用此功能的顺序如下:
- 1. 断开所有插入的设备。
- 2. 执行 USBCMD.HCRST 或片上电复位。
- 3. 设置 PORTSC.PLS=0xA。
- 4. 设置 PORTSC.PP=0。
- 5. 设置 GUSB3PIPECTL。 HstPrtCMPl=1。 这会将链路置于合规性状态。
要推进合规性模式、请按照以下顺序操作[切换 SET GUSB3PIPECTL。 HstPrtCMPl]:
- 1. 设置 GUSB3PIPECTL.HstPrtCmpl=0。
- 2. 设置 GUSB3PIPECTL.HstPrtCmpl=1。 这会将链路推进到下一个合规性模式。
要退出合规性状态、请执行 USBCMD.HCRST 或片上电复位。
请告诉我。
我们是否需要在 TDA4上参考此 E2E?
您好 ShreyasRao:
当我们执行此类命令时:
//首先读取、它将为我们0x5。
根@ecu1270-f14ffe:~# devmem2 0x31000020
/dev/mem 已打开。
映射到地址0xffff80817000的存储器。
地址0x31000020 (0xff80817020)处的值:0x5
//使用值0x4写入、它将读回为0x5。
root@ecu1270-f14ffe:~# devmem2 0x31000020 w 0x4
/dev/mem 已打开。
映射到地址0xff9d69b000的存储器。
地址0x31000020 (0xffff9d69b020)处的值:0x5
写入0x4;读回0x4
根@ecu1270-f14ffe:~#
简而言之、写入寄存器不工作会导致 USB3.0失败测试。
是否有其他方法来解决此问题?
BR Rio
根据该 E2E:
-->只有 USB1和 serdes0可用于支持 USB3.0、USB0用于支持 USB2.0。
Shreyas,
我们尝试通过 devmem2在具有 Linux SDK 10.1 wic 映像的 EVM 上的 Linux 内核中设置寄存器、我们发现即使在具有 TI 预编译映像的 EVM 上也无法成功修改寄存器。
我想知道在修改之前是否需要解锁这些区域寄存器?
root@am67-sk:~# uname -A
Linux am67-SK 6.6.44-ti-01478-g541c20281af7-dirty #1 SMP 抢占周四11月14日19:20:24 UTC 2024 AArch64 GNU/Linux
root@am67-sk:~# devmem 0x31000420
-sh:devmem:未找到命令
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
映射到地址0xff85c7b000的存储器。
读取地址 0x31000420 (0xff85c7b420):0x00000280
root@am67-sk:~# devmem2 0x31000420、带0xFFFF
/dev/mem 已打开。
映射到地址0xffff8e09f000的存储器。
读取地址 0x31000420 (0xff8e09f420):0x00000280
在地址0x31000420 (0xff8e09f420)处写入:0x0000FFFF、回读0x0000FFFF
root@am67-sk:~# devmem2 0x31000420、具有0xFFFFFFFF
/dev/mem 已打开。
映射到地址0xff9cc4d000的存储器。
读取地址 0x31000420 (0xff9cc4d420):0x0000C290
在地址0x31000420 (0xffff9cc4d420)处写入:0xFFFFFFFF、回读0xFFFFFFFF
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
映射到地址0xffffb4ec7000的存储器。
读取地址 0x31000420 (0xffb4ec7420):0x0000C290
Root@am67-sk:~# devmem2 0x31000420、带0x5A5A5A5A5A
/dev/mem 已打开。
存储器映射到地址0xffffb8cd4000。
在地址 0x31000420 (0xffffb8cd4420)处读取:0x0000C290
在地址0x31000420 (0xffffb8cd4420)处写入:0x5A5A5A5A、回读0x5A5A5A5A5A
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
映射到地址0xff96e07000的存储器。
读取地址 0x31000420 (0xff96e07420):0x0000C290
root@am67-sk:~# devmem2 0x31000400
/dev/mem 已打开。
存储器映射到地址0xffff8104e000。
读取地址 0x31000400 (0xff8104e400):0x00000000
root@am67-sk:~# devmem2 0x31000400、带0x5A5A5A5A5A
/dev/mem 已打开。
存储器映射到地址0xff9cff6000。
读取地址 0x31000400 (0xff9cff6400):0x00000000
在地址0x31000400 (0xff9cff6400)处写入:0x5A5A5A5A、回读0x5A5A5A5A5A
root@am67-sk:~# devmem2 0x31000400
/dev/mem 已打开。
映射到地址0xffffad73d000的存储器。
读取地址 0x31000400 (0xffad73d400):0x00000000
Root@am67-sk:~# devmem2 0x31000020
/dev/mem 已打开。
存储器映射到地址0xff86ad5000。
读取地址 0x31000020 (0xff86ad5020):0x00000000
root@am67-sk:~# devmem2 0x31000020、带0xFFFF
/dev/mem 已打开。
映射到地址0xffffb1328000的存储器。
读取地址 0x31000020 (0xffb1328020):0x00000000
在地址0x31000020 (0xffffb1328020)处写入:0x0000FFFF、回读0x0000FFFF
Root@am67-sk:~# devmem2 0x31000020
/dev/mem 已打开。
地址0xffffa6fa2000映射的存储器。
读取地址 0x31000020 (0xffa6fa2020):0x00000000
root@am67-sk:~# sudo devmem2 0x31000020
/dev/mem 已打开。
存储器映射到地址0xffffa56c5000。
读取地址 0x31000020 (0xffa56c5020):0x00000000
root@am67-sk:~# sudo devmem2 0x31000020、带0xFFFFFFF
/dev/mem 已打开。
映射到地址0xffac4c4000的存储器。
读取地址 0x31000020 (0xffffac4c4020):0x00000000
在地址0x31000020 (0xffffac4c4020)处写入:0x0FFFFFFF、回读0x0FFFFFFF
root@am67-sk:~# sudo devmem2 0x31000020
/dev/mem 已打开。
映射到地址0xffffa3ff6000的存储器。
读取地址 0x31000020 (0xffffa3ff6020):0x00000000
root@am67-sk:~#
启动并尝试另一项测试
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
存储器映射到地址0xff89277000。
读取地址0x31000420 (0xff89277420):0x00000280
root@am67-sk:~# devmem2 0x31000420、w 0x0000FFFF
/dev/mem 已打开。
地址0xffffbbe16000映射的存储器。
读取地址0x31000420 (0xffbbe16420):0x00000280
在地址0x31000420 (0xffbbe16420)处写入:0x0000FFFF、回读0x0000FFFF
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
映射到地址0xff92d7a000的存储器。
读取地址0x31000420 (0xff92d7a420):0x0000C290
root@am67-sk:~# devmem2 0x31000420 w 0x00000000
/dev/mem 已打开。
地址0xffffb1fd2000映射的存储器。
读取地址0x31000420 (0xffb1fd2420):0x0000C290
在地址0x31000420 (0xffb1fd2420)处写入:0x00000000、回读0x00000000
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
映射到地址0xffff8edbc000的存储器。
读取地址0x31000420 (0xffff8edbc420):0x0000C290
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
映射到地址0xff80e59000的存储器。
读取地址0x31000420 (0xff80e59420):0x0000C290
root@am67-sk:~# devmem2 0x31000420、w 0x0000
/dev/mem 已打开。
映射到地址0xff8a61c000的存储器。
读取地址0x31000420 (0xff8a61c420):0x0000C290
在地址0x31000420 (0xff8a61c420)处写入:0x00000000、回读0x00000000
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
存储器映射到地址0xff9737d000。
读取地址0x31000420 (0xff9737d420):0x0000C290
root@am67-sk:~# devmem2 0x31000400
/dev/mem 已打开。
存储器映射到地址0xff86380000。
读取地址0x31000400 (0xff86380400):0x00000000
Br、Rich
Shreyas,
您现在是否回到办公室?
在这里,我想添加一个补充,因为拼写错误,我最初使用了错误的值,然后我纠正它,你在这篇文章. 我发现其他供应商也使用相同的建议和相同的设置值。
devmem2 0x31000420、w 0xA0010340 => devmem2 0x31000420、w 0x 0A010340
然而,它仍然不起作用。
那么我们看到 TDA4在 Rio 发布的帖子。
我们在实验室中测试寄存器设置、发现寄存器无法修改为设定值、因此我们在 AM67x SK EVM 上进行测试、并发现寄存器设置问题。
在修改0x31000420之前、我们是否需要执行解锁过程?
Shreyas,
此外、您可以引导我查看 Excel 工作表吗? 在哪里可以找到它?
我有一个 Excel 可能从你,但我找不到你在这里显示的注册表.
寄存器地址是什么? 哪个工作表编号?
请尝试使用 J722S TRM Excel 工作表中的此寄存器。
USB_VBP2AHB_WRAP_CONTROLLER_VBP_USB3_CORE_GBL_GPIPE_GUSB3PIPECTL.HstPrtCMPl[30]= 1b'1。
Br、Rich
丰富、
寄存器 xls 与 TRM 一同压缩:
Document-pdfAcrobat J722S TDA4VEN TDA4AEN AM67处理器器件版本1.0技术参考手册(修订版 A)
相关的寄存器位于选项卡139_USB0中、其名称为 USB2SS_GBL_GPIPE_GUSB3PIPECTL。
此致、
Kyle
Kyle、
谢谢、我找到了 USB2SS_GBL_GPIPE_GUSB3PIPECTL 的寄存器。 它是0x3100C2C0。
读出的值为0x010E0002。
我可以使用 devmem2 0x3100C2C0 (具有0x410E0002)将位30设置为1。
但是、设置 LWS 和 PLS 有问题。
我尝试使用"执行 USBCMD.HCRST 或片上电复位"。
运行 devmem2 0x31000020 (带0x2)以复位 USB、但发现 USB 中的寄存器值未更改回默认值。
设置 LWS 和 PLS 是否有任何限制或前提条件?
Br、Rich
| 3100 0420h | 32 | 0h | USB2SS_PORT | USB2SS_PORT_XHCI_PORT_20_PORTSC_20 | 16 | LWS |
| 3100 0420h | 32 | 0h | USB2SS_PORT | USB2SS_PORT_XHCI_PORT_20_PORTSC_20 | 8:5 | 请 |
root@am67-sk:~# root
-sh:root:未找到命令
root@am67-sk:~#
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
存储器映射到地址0xff8b279000。
读取地址0x31000420 (0xff8b279420):0x00000280
root@am67-sk:~# devmem2 0x3100C2C0
/dev/mem 已打开。
映射到地址0xffffb33dc000的内存。
读取地址0x3100C2C0 (0xffb33dc2c0):0x010E0002
root@am67-sk:~# devmem2 0x3100C2C0、w 0x410E0002
/dev/mem 已打开。
存储器映射到地址0xffffb5d89000。
读取地址0x3100C2C0 (0xffb5d892c0):0x010E0002
写入地址0x3100C2C0 (0xffb5d892c0):0x410E0002、回读地址0x410E0002
root@am67-sk:~# devmem2 0x3100C2C0
/dev/mem 已打开。
映射到地址0xffff9d2f5000的存储器。
读取地址0x3100C2C0 (0xff9d2f52c0):0x410E0002
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
映射到地址0xff89288000的存储器。
读取地址0x31000420 (0xff89288420):0x00000280
Root@am67-sk:~# devmem2 0x31000420、带0x00000340
/dev/mem 已打开。
映射到地址0xffffb544f000的存储器。
读取地址0x31000420 (0xffffb544f420):0x00000280
写入地址0x31000420 (0xffffb544f420):0x00000340、回读0x00000340
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
映射到地址0xffa79e4000的存储器。
读取地址0x31000420 (0xffa79e4420):0x00000280
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
存储器映射到地址0xffff97912000。
读取地址0x31000420 (0xffff97912420):0x00000280
Root@am67-sk:~# devmem2 0x31000020
/dev/mem 已打开。
映射到地址0xff98b82000的存储器。
读取地址0x31000020 (0xff98b82020):0x00000000
root@am67-sk:~# devmem2 0x3100C2C0
/dev/mem 已打开。
地址0xffffb2e6f000映射的存储器。
读取地址0x3100C2C0 (0xffb2e6f2c0):0x010E0002
root@am67-sk:~#
root@am67-sk:~# devmem2 0x31000020、带0x2
/dev/mem 已打开。
映射到地址0xffffbe170000的存储器。
读取地址0x31000020 (0xffbe170020):0x00000000
写入地址0x31000020 (0xffbe170020):0x00000002、回读0x00000002
Root@am67-sk:~# devmem2 0x31000020
/dev/mem 已打开。
存储器映射到地址0xff970a6000。
读取地址0x31000020 (0xff970a6020):0x00000000
root@am67-sk:~# devmem2 0x3100C2C0
/dev/mem 已打开。
映射到地址0xffffb1115000的存储器。
读取地址0x3100C2C0 (0xffb11152c0):0x010E0002
Root@am67-sk:~# devmem2 0x31000420
/dev/mem 已打开。
存储器映射到地址0xff965ee000。
读取地址0x31000420 (0xff965ee420):0x00000280
root@am67-sk:~#
Diwakar、
有一个旧的 e2e 主题指示测试建议
我查看 AM67x EVM 上的 Linux 内核、发现有两个端口、我想知道端口是映射到 USB0和 USB1还是 SERDES0还是 SERDES1?
哪个端口是 USB3.0?
root@am67-sk:~# echo compliance >/sys/kernel/debug/usb/xhci/xhci-hcd.7.auto/ports/port01/portsc
root@am67-sk:~# echo compliance >/sys/kernel/debug/usb/xhci/xhci-hcd.7.auto/ports/port02/portsc
次级时、我想知道 USB3测试是否使用 USB2信号? USB3可以在没有 USB2连接的情况下直接测试吗?
这是因为还有其他线程声明 USB3.0只能与 USB1配合使用、而不能与 USB0配合使用、客户电路板使用 USB0与 USB3.0 SS。
USB2.0信号对于 USB3.0合规性测试是否是必需的?
Br、Rich
Shreyas,
是的、这就是为什么我会问 USB3.0为什么只能与 USB2.0 (USB1)配合使用、而不能与 USB2.0 (USB0)配合使用。 这是 AM67x 的限制吗?
次级、在执行 USB3.0合规性测试时、是否只会测量 USB3.0单通道波形? USB3.0合规性测试是否需要 USB 2.0 DP/DM?
客户现在将 USB2.0 (USB0)与 USB 3.0信号组合到 USB3.0主机连接器、它可以在 Linux 中正常工作、以支持大容量存储器件、并且速度为5GHz。
Diwakar、
我会将原理图以邮件形式发送给您。
Br、Rich
丰富、
将仅测量 USB3.0单通道波形
我不知道您在这里说的是测量的单通道波形。
USB3.0不需要 USB2.0 DP/DM。 USB3.0使用 SERDES TX/RX 引脚进行数据。
USB0支持 USB2.0、并且 SERDES 引脚连接到 USB1实例。
Shreyas,
为了让建议进入合规性测试、为什么有两个端口?
端口01和端口02是否表示 USB0和 USB1?
对于 USB3测试、端口02是否是适合使用的端口?
root@am67-sk:~# echo compliance >/sys/kernel/debug/usb/xhci/xhci-hcd.7.auto/ports/port01/portsc
root@am67-sk:~# echo compliance >/sys/kernel/debug/usb/xhci/xhci-hcd.7.auto/ports/port02/portsc
由于 USB1连接到 USB3集线器、因此我们无法在 EVM 上直接获得 USB3输出、因此我们无法在 EVM 上验证此特性。
Br、Rich
Shreyas,
客户尝试在 USB0 + SERDES0和 USB1 (蓝线)+ SERSES0时都推荐。
不在 U3接口上获取 USB 测试图形。
root@am67-sk:~# echo compliance >/sys/kernel/debug/usb/xhci/xhci-hcd.7.auto/ports/port01/portsc
root@am67-sk:~# echo compliance >/sys/kernel/debug/usb/xhci/xhci-hcd.7.auto/ports/port02/portsc
团队能否审核建议并确认 AM67x 上如何启用 USB 3.0测试模式?
客户需要一种通过 UART 控制台进入测试模式的简单方法。
Br、Rich
丰富、
根据客户、无论 DUT 是否连接、都将观察到 LFPS。 [/报价]我没有遵循这一说法。 DUT 已(或未)连接到您所指的测试装置?
是的、连接后、测试设备(运行测试套件)不能有 AM67x USB 转至"U3 SS"引脚上的 CP0/CP1模式。我理解这一个。 无 CP0/CP1模式输出。
收到供应商的回复后、我会回复。
[/quote]
丰富、
下面是我收到的回复。
"对于 USB 控制器和 PHY 设备模式:默认情况下启用并支持合规性测试。
对于 USB 控制器和 PHY 主机模式:-在未连接设备/合规性工具(例如示波器/试验程序)的情况下打开 SoC 电源
-在主机控制器中启用合规性模式
-写入 USB3 PORTSC 寄存器设置以下位: - PP [9] - LWS [16] - PLS [8:5]= 0xA
-连接合规性工具 (例如范围)-从现在起,合规性工具(例如范围)应控制合规性模式的输入和切换合规性模式
-如果控制器已通过读取 USB3 PORTSC 寄存器进入合规模式、则可以进行检查。 如果 PLS 为0xA、则控制器处于合规模式。"
我相信您已经尝试过这种方法、只能看到 LFPS 信号、但看不到 CP0/CP1模式?
Shreyas,
写入 USB3 PORTSC 是原始方法、遇到的问题是无法相应地修改寄存器。
寄存器似乎不完全可修改。
因此 PORTSC 方法的语句只有正确的一半。 我们尝试修改寄存器、但可能无法成功修改寄存器设置、因此可能无法进入合规模式。
对于这种方法、请检查并验证您这边 TI EVM 上的建议、帮助确定限制是什么、还是寄存器映射存在问题。 我们一直在这里。
对于第二种方法、我们也无法使其正常工作。 我们需要其中一个才能发挥作用。
root@am67-sk:~# echo compliance >/sys/kernel/debug/usb/xhci/xhci-hcd.7.auto/ports/port01/portsc
root@am67-sk:~# echo compliance >/sys/kernel/debug/usb/xhci/xhci-hcd.7.auto/ports/port02/portsc
Br、Rich