0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux操作系統(tǒng)中如何按下PCIe的復(fù)位鍵

Spinal FPGA ? 來源:Spinal FPGA ? 2024-01-20 09:31 ? 次閱讀

編 者 按

Linux操作系統(tǒng)中,看如何按下PCIe的復(fù)位鍵

操作系統(tǒng)中的PCIe

拿一張PCIe Spec中的拓?fù)鋱D:

a103e3fe-b6c2-11ee-8b88-92fbcf53809c.jpg

每一張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):

a122eba0-b6c2-11ee-8b88-92fbcf53809c.jpg

這里面對(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定義:

a14a113a-b6c2-11ee-8b88-92fbcf53809c.jpg

按照協(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ù)位。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux操作系統(tǒng)常見文件類型分析

    Linux操作系統(tǒng)常見文件類型分析,壓縮和打包文件,普通文件格式,系統(tǒng)文件
    發(fā)表于 01-06 17:00 ?979次閱讀

    labview在window操作系統(tǒng)中生成的exe能否移植到linux操作系統(tǒng)

    沒有找到破解的labview for linux。于是想能不能在window操作系統(tǒng)寫好程序,打包成exe。之后能否移植到用linux操作系統(tǒng)
    發(fā)表于 03-11 17:49

    LINUX操作系統(tǒng)

    Linux操作系統(tǒng),分為好幾種,它們有什么區(qū)別嗎?今天安裝了個(gè)烏班圖操作系統(tǒng),這個(gè)LINUX操作系統(tǒng)如何?本人不太清楚,還請(qǐng)前輩指點(diǎn)一
    發(fā)表于 12-16 18:34

    STM32移植FreeRTOS復(fù)位會(huì)殺死操作系統(tǒng)的原因?

    根據(jù)網(wǎng)上資料移植FreeRTOS到STM32上面成功做了幾個(gè)任務(wù),結(jié)果出現(xiàn)一個(gè)奇怪的現(xiàn)象就是復(fù)位會(huì)殺死操作系統(tǒng)即任何任務(wù)全部死掉。但是
    發(fā)表于 08-03 08:00

    Linux操作系統(tǒng)

    linux的教學(xué)內(nèi)容1 、Linux概述 2 、Linux操作系統(tǒng)安裝3、 Linux的內(nèi)核 4 、Li
    發(fā)表于 04-10 16:54 ?0次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>

    Linux操作系統(tǒng)原理及應(yīng)用

    Linux操作系統(tǒng)原理及應(yīng)用 1.1  操作系統(tǒng)的地位 1.2  操作系統(tǒng)的功能 1.3  操作系統(tǒng)的發(fā)
    發(fā)表于 04-28 14:53 ?0次下載

    Linux與其他操作系統(tǒng)的區(qū)別

    Linux與其他操作系統(tǒng)的區(qū)別 Linux與其他操作系統(tǒng)的區(qū)別  Linux可以與MS-DOS、OS/2、Windows等其他
    發(fā)表于 01-18 12:42 ?1650次閱讀

    什么是Linux操作系統(tǒng)

    什么是Linux操作系統(tǒng)  簡(jiǎn)單地說,Linux是一套
    發(fā)表于 12-26 12:04 ?1403次閱讀

    手機(jī)支持的Linux操作系統(tǒng)

    手機(jī)支持的Linux操作系統(tǒng)   Linux系統(tǒng)Linux系統(tǒng)是一個(gè)源代
    發(fā)表于 01-28 17:07 ?1815次閱讀

    Linux快速入門之安裝Linux操作系統(tǒng)及小結(jié)

    .4 實(shí)驗(yàn)內(nèi)容安裝Linux操作系統(tǒng) 1.實(shí)驗(yàn)?zāi)康?讀者通過親自動(dòng)手安裝Linux操作系統(tǒng),對(duì)Linux有個(gè)初步的認(rèn)識(shí),并且加深對(duì)
    發(fā)表于 10-18 14:16 ?0次下載

    基于Linux操作系統(tǒng)C語言編程入門

    基于Linux操作系統(tǒng)C語言編程入門
    發(fā)表于 10-27 15:36 ?11次下載
    基于<b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>下</b>C語言編程入門

    Linux操作系統(tǒng)的PCI驅(qū)動(dòng)開發(fā)

    、安全的優(yōu)點(diǎn),尤其是Linux加入GNU并遵循公共版權(quán)許可證(GPL)之后,幾乎所有的GNU軟件都可以移植到Linux,從而完善和提高了Linux系統(tǒng)的使用性,并逐步成為通信、工業(yè)控制
    發(fā)表于 12-03 01:22 ?1242次閱讀
     <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>下</b>的PCI驅(qū)動(dòng)開發(fā)

    Linux操作系統(tǒng)C語言編程入門.pdf

    Linux操作系統(tǒng)C語言編程入門
    發(fā)表于 05-17 10:08 ?96次下載

    趣談Linux操作系統(tǒng)

    趣談Linux操作系統(tǒng)
    的頭像 發(fā)表于 01-13 16:00 ?6424次閱讀

    Linux終端命令操作常用的快捷

    作為一名 Linux 的開發(fā)人員,和 Linux 系統(tǒng)打交道是每天必做的事情,通過 Linux 終端下命令行與
    的頭像 發(fā)表于 05-12 10:54 ?2224次閱讀