Re: [請益] PCI讀不懂 要繼續撐下去嗎
※ 引述《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
05/10 09:53, 1F
推
05/10 10:24, , 2F
05/10 10:24, 2F
→
05/10 11:08, , 3F
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
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):