工具与软件:
您好!
我们目前正在开发使用 AM6442并采用嵌入式 Linux 的电路板、该电路板在 AM6442上使用 PCIe 功能。 此板上的 PCIe 旨在使用外部参考时钟作为通用时钟。
然而、当我们实际将 Linux of ProcessorSDK 08.06.00.42移植到此板上并运行时、查看 lspci 的输出、发现没有启用通用时钟。
当我们检查驱动程序源代码时、如果 SlotClk 更改为 SlotClk+(存在 lspci 输出)、则看起来会启用公共时钟(CommClk)。
我们如何将 SlotClk 更 改为 SlotClk+?
另外、请告诉 我们如何准确检查外部参考时钟设置。
---
■ "lspci -vv"的输出(LnkCtl -> CommClk 和 LnkSta -> SlotClk 为"-")。
00:00.0 PCI bridge: Texas Instruments Device b010 (prog-if 00 [Normal decode])
...
Capabilities: [c0] Express (v2) Root Port (Slot+), MSI 00
...
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s (ok), Width x1 (ok)
TrErr- Train- SlotClk- DLActive- BWMgmt+ ABWMgmt-
---
我们使用以下 E2E 帖子作为参考来设置 PCIe 外部参考时钟。
我们还需要进行其他设置吗?
---
k3-am64-main.dtsi 的修改点#1
serdes_wiz0: wiz@f000000
serdes0: serdes@f000000 {
//assigned-clock-parents = <&k3_clks 162 1>, <&k3_clks 162 1>, <&k3_clks 162 1>; // comment out
assigned-clock-parents = <&serdes_refclk>, <&serdes_refclk>, <&serdes_refclk>; // add
}
}
k3-am64-main.dtsi 的修改点#2
serdes_refclk: serdes-refclk {
//clock-frequency = <0>; // comment out
clock-frequency = <100000000>; // add
};
---
此致、
Masanobu (Mark) Tsuchiya.