作者:AMD 工程師 Iris Yang & Deepesh Man Shakya
本篇文章提供了解決 ATS 失效請求報文問題的故障排除步驟,主要聚焦在 CQ 接口上未顯示主機發(fā)送的報文的情況。
ATS 失效使用
對于在支持地址轉(zhuǎn)換服務(wù) (ATS) 的 PCIe 系統(tǒng)中保持地址轉(zhuǎn)換表的準確性而言,ATS 失效請求報文至關(guān)重要。
只要系統(tǒng)中包含執(zhí)行地址轉(zhuǎn)換的器件(如使用 I/O 存儲器管理單元 (IOMMU) 的器件),那么這類系統(tǒng)就與 ATS 失效請求報文密不可分。AT 失效請求報文旨在通知 PCIe 器件,其地址轉(zhuǎn)換高速緩存(包含器件地址與系統(tǒng)地址之間的映射)中的特定條目已過時,應(yīng)使其失效。如果您遇到主機發(fā)送 ATS 失效請求報文但 CQ 側(cè)未接收到該報文的情況,請按照以下步驟對問題進行調(diào)試。
確保 CQ 接口接收到 ATS 失效請求報文
檢查 CQ 接口,驗證是否存在 ATS 失效請求報文。
使用 CQ_tvalid 作為 ILA (Integrated Logic Analyzer) 捕獲的觸發(fā)器,在傳輸事務(wù)中僅有 ATS 失效報文或 TLP(傳輸事務(wù)層包)數(shù)量有限的情況下尤其如此。

ATS 報文格式如下:

以上截圖來自《Versal Adaptive SoC CPM Mode for PCI Express 產(chǎn)品指南》(PG346) 中的“完成器請求描述符格式”:
https://docs.amd.com/r/3.1-English/pg346-cpm-pcie/Completer-Request-Descriptor-Formats
驗證是否已從主機發(fā)送該報文
使用協(xié)議分析器檢查是否已從主機發(fā)射了含“ATS_Invalidation_request”代碼的報文。
協(xié)議分析器應(yīng)明確顯示正在發(fā)送此報文。建議您在觀察到此報文缺失時對其進行驗證。
如果您沒有協(xié)議分析器,請?zhí)^這一部分。以下截圖顯示的是出現(xiàn) ATS 失效請求報文時,在協(xié)議分析器中應(yīng)顯示的內(nèi)容。

確保已啟用 ATS 功能
在 AMD Vivado Design Suite 中,導(dǎo)航至 IP 核配置 GUI。在“Advanced”選項下,驗證 ATS 功能是否已啟用。

確認 ATS 已啟用
確保在 lspci 中已經(jīng)顯示 ATS 功能被啟用并且在控制寄存器中 Host 已經(jīng)將 ATS 使能位置位。
您可使用 lspci 命令完成此項檢查,該命令會列出 PCI 器件及其配置。

驗證 CPM 中的 ATS 支持寄存器
驗證 ATS_cap_glbl_inv_ support_x 寄存器是否已啟用。您可在 .cdo 文件中或通過 XSDB 進行此項檢查,如下所示:
基于寄存器對 Versal Adaptive SoC CPM Mode for PCI Express 設(shè)計進行調(diào)試:
https://adaptivesupport.amd.com/s/article/1221922?language=zh_CN

在以下 CDO 截圖中,對地址 0xfce89bcc 寫入 1。此設(shè)置用于啟用 ATS 全局失效。

確保報文路由寄存器配置正確
確保已正確設(shè)置報文路由寄存器,以便路由 ATS 報文。
通過設(shè)置 AXISTEN_IF_ENABLE_MSG_ROUTE 寄存器來啟用 MSG_ROUTE。
為便于調(diào)試,請將 0xFFFFFFFF 寫入該寄存器。如需了解每個位的定義,請參閱相關(guān)寄存器文檔:
https://docs.amd.com/r/en-US/am012-versal-register-reference

在以下截圖中,對地址 0xfce88060 寫入 0x0020000,這樣僅啟用 MSG_ROUTE 寄存器的第 17 位(失效請求)。

總結(jié)
本文演示了驗證 ATS 報文是否正確傳播的調(diào)試步驟。以下是上述步驟的摘要。
確認 CQ 接口:使用 CQ_tvalid 確認正在接收 ATS 報文。
驗證主機發(fā)射:使用協(xié)議分析器確保主機已發(fā)送“ATS_Invalidation_request”報文。
啟用 ATS 功能:通過檢查 lspci 日志,確認 ATS 已啟用。
檢查 ATS 寄存器:確保已通過 .cdo 或 XSDB 激活 ATS_cap_glbl_inv 寄存器。
配置報文路由:為調(diào)試目的,將 AXISTEN_IF_ENABLE_MSG_ROUTE 寄存器設(shè)置為 0xFFFFFFFF。
-
amd
+關(guān)注
關(guān)注
25文章
5682瀏覽量
139933 -
存儲器
+關(guān)注
關(guān)注
39文章
7738瀏覽量
171650 -
接口
+關(guān)注
關(guān)注
33文章
9519瀏覽量
157015 -
soc
+關(guān)注
關(guān)注
40文章
4576瀏覽量
229103 -
ATS
+關(guān)注
關(guān)注
0文章
34瀏覽量
27898
原文標題:開發(fā)者分享|AMD Versal? 自適應(yīng) SoC 的 CPM PCIE 模式下,跟蹤 ATS 失效請求報文
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
排除電腦主板故障一般步驟
對變電運行故障及排除的幾點論述
電氣故障排除技巧?
PLC如何快速排除故障
VLAN 故障排除方法
網(wǎng)絡(luò)故障排除基本指南
ATS失效請求報文問題的故障排除步驟
評論