編 者 按
在Linux操作系統(tǒng)中,看如何按下PCIe的復(fù)位鍵
操作系統(tǒng)中的PCIe
拿一張PCIe Spec中的拓?fù)鋱D:
每一張PCIe EP設(shè)備連接Switch也好,還是直接插到RC上也好,按照PCIe的協(xié)議規(guī)定,PCIe是一個(gè)點(diǎn)對(duì)點(diǎn)傳輸協(xié)議,對(duì)于每個(gè)EP設(shè)備,其作為dwon stream端口,而與其對(duì)應(yīng)的,則是其upstream 端口。像在Switch中的結(jié)構(gòu):
這里面對(duì)于Switch而言具有三個(gè)Downstream Port,而對(duì)于插在上面的三個(gè)EP設(shè)備而言,其是EP設(shè)備的Upstream Port。這三個(gè)Switch中的三個(gè)DownStream Port在Linux操作系統(tǒng)中也會(huì)創(chuàng)建三個(gè)PCI文件系統(tǒng)。
在PCIe體系結(jié)構(gòu)中,如果作為EP的設(shè)備出現(xiàn)了故障,那么往往其Upstream Port也是會(huì)受到影響。通過系統(tǒng)重啟可以解決,而在一些場(chǎng)景下,可能系統(tǒng)重啟不太能接受,那么能否有其他方式來對(duì)這條出現(xiàn)問題的點(diǎn)對(duì)點(diǎn)鏈路進(jìn)行下恢復(fù)呢?
按下Linux里面的PCIe復(fù)位鍵。
找到EP的Upstream Port
EP設(shè)備的Upstream Port在Linux操作系統(tǒng)中會(huì)當(dāng)作一個(gè)PCIe Bridge Port,通過lspci是能夠看到的。
對(duì)于如何找到對(duì)應(yīng)的EP設(shè)備的Upstream Port,如果你對(duì)lspci工具命令行熟悉的話,可以通過lspci -tv指令去獲取對(duì)應(yīng)的Upstream Port。如果不熟,也沒關(guān)系,提供一段python代碼,可以獲取到EP對(duì)應(yīng)的Upstream Port的BDF號(hào)。
importos deffind_upstreamport(ep_bdf): result_dirs = [] forroot, dirs, files inos.walk("/sys/devices"): fordir indirs: ifdir == ep_bdf: returnos.path.basename(root) print("{0} upstream port not found".format(ep_bdf))
參數(shù)ep_bdf為對(duì)應(yīng)的ep設(shè)備的bdf號(hào),需帶上domain域,形式為xxxxxx.x
Secondary Bus Reset
對(duì)于Port bridge,其配置空間定義中Bridge Control Register (Offset 3Eh)包含Secondary Bus Reset定義:
按照協(xié)議中Secondary Bus Reset的定義:
設(shè)置該位會(huì)觸發(fā)相應(yīng) PCI Express 端口上的熱復(fù)位。軟件必須確保最短復(fù)位持續(xù)時(shí)間 (Trst)。軟件和系統(tǒng)必須遵守第 6.6 節(jié)中定義的先訪問后復(fù)位時(shí)序要求,除非使用就緒通知機(jī)制(請(qǐng)參閱第 6.23 節(jié))或設(shè)置相關(guān)功能狀態(tài)寄存器中的立即就緒位。
端口配置寄存器不得更改,除非需要更新端口狀態(tài)。
該位的默認(rèn)值為 0b。
即我們可以通過對(duì)該位域先寫1,再寫0從而對(duì)Port Bridge下的設(shè)備進(jìn)行復(fù)位。
審核編輯:湯梓紅
-
Linux
+關(guān)注
關(guān)注
87文章
11207瀏覽量
208712 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6684瀏覽量
123140 -
端口
+關(guān)注
關(guān)注
4文章
948瀏覽量
31984
原文標(biāo)題:按下Linux里PCIe的復(fù)位鍵
文章出處:【微信號(hào):Spinal FPGA,微信公眾號(hào):Spinal FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論