INF: Hardware Resource

在看Direct I/O Driver, 才發現Hardware Resource 資訊是寫在INF 里, 而不是Driver Code 裡, 其它 PCI/PCI Express Bus上的Driver 因為Bus本身會分配Hardware Resource 所以不須要透過 LogConfig

INF LogConfig Directive

A LogConfig directive references one or more INF-writer-defined sections, each of which specifies a logical configuration of hardware resources − the interrupt request lines, memory ranges, I/O ports, and DMA channels that can be used by the device. Each log-config-section specifies an alternative set of bus-relative hardware resources that can be used by the device.

[log-config-section]

ConfigPriority=Priority_Value[,Config_Type]
[DMAConfig=[DMAattrs:]DMANum[,DMANum]…]
[IOConfig=io-range[,io-range]…]
[MemConfig=mem-range[,mem-range]…]
[IRQConfig=[IRQattrs:]IRQNum[,IRQNum]…]
[PcCardConfig=ConfigIndex[:[MemoryCardBase1][:MemoryCardBase2]][(attrs)]]
[MfCardConfig=ConfigRegBase:ConfigOptions[:IoResourceIndex][(attrs)]…]

 

在 DDK中有一個 portio 範例, 有一個 genport.inf 檔案, 有下列內容, 代表 0x300 ~ 0x3ff 的IO space中的位置被配置, 這段空間是Classic PC的ISA Bus留給使用者的保留位置, 專科在學校,常見做8255 programmable I/O card 一般Address 解碼區塊也設定到這一塊來。

[PortIO_Inst.NT]
CopyFiles=PortIO.CopyFiles
LogConfig=PortIO.LC0, PortIO.LC1

[PortIO.LC0]
ConfigPriority=DESIRED
IOConfig=300-303(3ff::)  ; 10 bit decode ranging from 300 – 303

[PortIO.LC1]
ConfigPriority=NORMAL
IOConfig=4@300-3ff(3ff::) ; 4 ports starting anywhere between 300 and 3fc

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: