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

電氣故障排除技巧?
使用萬用表進(jìn)行電路故障排除的步驟和方法
PLC如何快速排除故障
VLAN 故障排除方法
網(wǎng)絡(luò)故障排除基本指南

評(píng)論