作者:AMD 工程師 Iris Yang & Deepesh Man Shakya
本篇文章提供了解決 ATS 失效請求報文問題的故障排除步驟,主要聚焦在 CQ 接口上未顯示主機發送的報文的情況。
ATS 失效使用
對于在支持地址轉換服務 (ATS) 的 PCIe 系統中保持地址轉換表的準確性而言,ATS 失效請求報文至關重要。
只要系統中包含執行地址轉換的器件(如使用 I/O 存儲器管理單元 (IOMMU) 的器件),那么這類系統就與 ATS 失效請求報文密不可分。AT 失效請求報文旨在通知 PCIe 器件,其地址轉換高速緩存(包含器件地址與系統地址之間的映射)中的特定條目已過時,應使其失效。如果您遇到主機發送 ATS 失效請求報文但 CQ 側未接收到該報文的情況,請按照以下步驟對問題進行調試。
確保 CQ 接口接收到 ATS 失效請求報文
檢查 CQ 接口,驗證是否存在 ATS 失效請求報文。
使用 CQ_tvalid 作為 ILA (Integrated Logic Analyzer) 捕獲的觸發器,在傳輸事務中僅有 ATS 失效報文或 TLP(傳輸事務層包)數量有限的情況下尤其如此。
ATS 報文格式如下:
以上截圖來自《Versal Adaptive SoC CPM Mode for PCI Express 產品指南》(PG346) 中的“完成器請求描述符格式”:
https://docs.amd.com/r/3.1-English/pg346-cpm-pcie/Completer-Request-Descriptor-Formats
驗證是否已從主機發送該報文
使用協議分析器檢查是否已從主機發射了含“ATS_Invalidation_request”代碼的報文。
協議分析器應明確顯示正在發送此報文。建議您在觀察到此報文缺失時對其進行驗證。
如果您沒有協議分析器,請跳過這一部分。以下截圖顯示的是出現 ATS 失效請求報文時,在協議分析器中應顯示的內容。
確保已啟用 ATS 功能
在 AMD Vivado Design Suite 中,導航至 IP 核配置 GUI。在“Advanced”選項下,驗證 ATS 功能是否已啟用。
確認 ATS 已啟用
確保在 lspci 中已經顯示 ATS 功能被啟用并且在控制寄存器中 Host 已經將 ATS 使能位置位。
您可使用 lspci 命令完成此項檢查,該命令會列出 PCI 器件及其配置。
驗證 CPM 中的 ATS 支持寄存器
驗證 ATS_cap_glbl_inv_ support_x 寄存器是否已啟用。您可在 .cdo 文件中或通過 XSDB 進行此項檢查,如下所示:
基于寄存器對 Versal Adaptive SoC CPM Mode for PCI Express 設計進行調試:
https://adaptivesupport.amd.com/s/article/1221922?language=zh_CN
在以下 CDO 截圖中,對地址 0xfce89bcc 寫入 1。此設置用于啟用 ATS 全局失效。
確保報文路由寄存器配置正確
確保已正確設置報文路由寄存器,以便路由 ATS 報文。
通過設置 AXISTEN_IF_ENABLE_MSG_ROUTE 寄存器來啟用 MSG_ROUTE。
為便于調試,請將 0xFFFFFFFF 寫入該寄存器。如需了解每個位的定義,請參閱相關寄存器文檔:
https://docs.amd.com/r/en-US/am012-versal-register-reference
在以下截圖中,對地址 0xfce88060 寫入 0x0020000,這樣僅啟用 MSG_ROUTE 寄存器的第 17 位(失效請求)。
總結
本文演示了驗證 ATS 報文是否正確傳播的調試步驟。以下是上述步驟的摘要。
確認 CQ 接口:使用 CQ_tvalid 確認正在接收 ATS 報文。
驗證主機發射:使用協議分析器確保主機已發送“ATS_Invalidation_request”報文。
啟用 ATS 功能:通過檢查 lspci 日志,確認 ATS 已啟用。
檢查 ATS 寄存器:確保已通過 .cdo 或 XSDB 激活 ATS_cap_glbl_inv 寄存器。
配置報文路由:為調試目的,將 AXISTEN_IF_ENABLE_MSG_ROUTE 寄存器設置為 0xFFFFFFFF。
-
amd
+關注
關注
25文章
5566瀏覽量
135916 -
存儲器
+關注
關注
38文章
7637瀏覽量
166453 -
接口
+關注
關注
33文章
8952瀏覽量
153222 -
soc
+關注
關注
38文章
4348瀏覽量
221757 -
ATS
+關注
關注
0文章
34瀏覽量
27144
原文標題:開發者分享|AMD Versal? 自適應 SoC 的 CPM PCIE 模式下,跟蹤 ATS 失效請求報文
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
評論