Re: [請益] PCI讀不懂 要繼續撐下去嗎

看板Soft_Job作者 (bcew)時間10年前 (2015/05/10 08:55), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串3/3 (看更多)
※ 引述《cc1plus (廢柴聯盟盟主)》之銘言: : ※ 引述《plasroom65 (J.J)》之銘言: : : 各位大大好 : : 小弟為工程類相關科系畢業 : : 因為工作(bios)上需要目前在讀PCI的規格書 : : 以前比較少接觸相關的內容 : : 但讀了一個多禮拜,真正讀懂又有理解到的東西少之又少 : : 不知道是不是應該要繼續撐下去,心裡很掙扎 : : 請大家能給我寶貴的意見,謝謝 : 久沒有看 PCI Spec , 用印像寫 : 問題是你是要做什麼 PCI : 從軟體來看印像 PCI 和 PCIe 沒有差很多 : 如果你是 BIOS 一般應該都寫好相關的程式了吧 : 那就是 x86 chipset 的 initial register : 如果你是做 ARM 的就是那個 ARM Chip 怎麼去 initial register : 那要讀的是什麼? 瞭解 PCI 的 register 卡是怎麼和 RC 溝通的? : 如果我要辨認出一張卡之後, memory IO 要給什麼值 (memory address) : 怎麼分配位置的給他 : 要不要配 PCI IO address (這個應該己經expire 了) : PCIe 還有 MSI (Message Signeated interrupt) : PCI 沒有很難啦 印像就是 description 看一看填一填就會動了 : 印像 RC 和 Device 都要填 : 這真的太久了 : 不過我驚訝的是 你是跑上 PTT 問 不是問公司同事 : 貴公司糟到沒有人可以問這種問題了嗎? BIOS team的話建議先看PCI就好,PCI-X和PCIe先不看,如前篇說的對軟體的使用差不多,但多餘的資訊會混淆你,而且spec常常省略一些前版有的東西,另外有人建議的mindshare出版的書可以看一下。 就軟體的使用而言,控制PCI就是要去讀寫config space、IO space、和memory space,以便控制外部裝置。早期程式控制外部裝置就是下IO指令讀寫裝置的register,程式運算用memory;後來為了效率和IO space不足而有個memory-mapping register的概念,用讀寫memory就能對應到裝置的register,怎麼對應是system bus hardware自動做掉,這時還沒PCI。 到討論PCI時希望能隨插即用所以多規範了ㄧ塊register叫config space,BIOS和OS可以偵測到有東西插著時去讀config register,讀的到正確值就代表裝置存在,但因為過去組語或C只有IO和memory read/write,程式寫不出config read/write,所以協會規範使用IO read/write,先0xCF8填位址,再看要做讀還是寫對0xCFC做讀寫,這樣就能對config register做讀寫控制。 最粗淺的概念是這樣,本來PCI space是給hardware designer看的所以你看不下去很合理,看過前面的總論就直接去看configuration space register吧,有人提的小木偶網站也很棒^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.173.109 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1431219311.A.864.html

05/10 09:53, , 1F
謝謝你,我會直接嘗試從config的部分去讀看看
05/10 09:53, 1F

05/10 10:24, , 2F
05/10 10:24, 2F

05/10 11:08, , 3F
補充一下,最後我說的是spec裡的總論,還有最好是有人
05/10 11:08, 3F

05/10 11:08, , 4F
幫你做個系統簡介才比較容易懂
05/10 11:08, 4F

05/10 11:37, , 5F
推熱心
05/10 11:37, 5F
文章代碼(AID): #1LJgnlXa (Soft_Job)
文章代碼(AID): #1LJgnlXa (Soft_Job)