討論區快速選單
知識庫快速選單
政府補助!學嵌入式+物聯網 掌握Salesforce雲端管理秘訣
[ 回上頁 ] [ 討論區發言規則 ]
ACPI Driver問題
更改我的閱讀文章字型大小
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/8/30 上午 10:22:59
最近剛好看到一些有關VIsta 底下的ACPI Driver的Spec,裡面有提到可以在Driver 層去呼叫ACPI Method,所以我嘗試再撰寫一個WDM Driver,然後讓我的Application可以去呼叫ACPI 內的Method,但是這邊有幾個觀念搞不懂,所以想請問是否有前輩可以指點一下:

1. WDM Driver可以呼叫ACPI Method,但是是否只能針對某個Device Object內的Method而已?
     例如:
     Device(xxx) <--只能呼叫這個Object 下的Method ? 那超出這個Scope的呢?
     {
     ..
     }

2. 呼叫時必須透過IRP,所以要先取得PDO...這個PDO是指什麼 ?

3.當我產生IRP的時候,下層的驅動程式有分成"同步"與"非同步"的處理類型,我應該要用哪一種?
   IoAllocateIrp() or IoBuildDeviceIoControlRequest()

4. 我還需要注意哪些事項?
    因為DDK中對於IOCTL_ACPI_ASYNC_EVAL_METHOD 與IOCTL_ACPI_EVAL_METHOD說明不多.
  
因為我本身是做 System BIOS ,BIOS經驗也才剛滿一年,也沒有WDM開發經驗(只有剛接觸BIOS的時候花了兩個多星期寫過WDM 的IO Driver,類似WinIO那種),所以只能K Spec然後發問問題(也不知道K的Spec是對還是錯 @@),所以希望前輩對於我的發問能夠多多包涵...因為我不太知道該怎樣問 >.<
作者 : angola(安哥拉羊) 人氣指數超過10000點
[ 貼文 73 | 人氣 21509 | 評價 30 | 評價/貼文 0.41 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/8/30 上午 11:42:22

>2. 呼叫時必須透過IRP,所以要先取得PDO...這個PDO是指什麼 ?
>

physical device object??

FYI
http://www.oneedu.cn/xxyd/jzjs/database/200609/5159.html
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/4 下午 02:59:10
我最近看了一些WDM的文章發現ACPI.SYS 會插入FDO到某些Driver Stack上面,如果剛好我的Driver Stack中有這個ACPI Driver FDO那麼我就可以直接在WDM Driver上使用IRP去呼叫ACPI Method(Send to lower driver),但是我如何去確定我的Driver 上面有ACPI Driver的FDO ? 或稱PDO...因為這是WDM 傳進來的參數...???
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/4 下午 07:43:35
>1. WDM Driver可以呼叫ACPI Method,但是是否只能針對某個Device Object內的Method而已?
可以, 修改 BIOS ASL code, duplicate 該 method 到自訂的 device 中.

>2. 呼叫時必須透過IRP,所以要先取得PDO...這個PDO是指什麼 ?
如果 BIOS ASL code 中有自訂個 coustomized device, 就會在
系統裝置中, 冒出一個 "ACPI complied device". 若你有寫
ACPI driver, driver 的 PDO 就會指向這個 device,

>3.當我產生IRP的時候,下層的驅動程式有分成"同步"與"非同步"的處理類型,我應該要用哪一種?
> IoAllocateIrp() or IoBuildDeviceIoControlRequest()
ACPI driver 是屬 function driver, 要用 IoBuildDeviceIoControlRequest().

>4. 我還需要注意哪些事項?
> 因為DDK中對於IOCTL_ACPI_ASYNC_EVAL_METHOD 與IOCTL_ACPI_EVAL_METHOD說明不多.
>因為我本身是做 System BIOS ,BIOS經驗也才剛滿一年,也沒有WDM開發經驗
>(只有剛接觸BIOS的時候花了兩個多星期寫過WDM 的IO Driver,類似WinIO那種),
>所以只能K Spec然後發問問題(也不知道K的Spec是對還是錯 @@),
>所以希望前輩對於我的發問能夠多多包涵...因為我不太知道該怎樣問
你的 Device driver 基礎很薄弱, 會拿 DDK sample 來 complie.
但要自由運用 device driver, 尚須加強對 Windows Kernel 架構, 及相關知識.

ASUS NB 都有附一支 ATK ACPI Driver, 是我 8 年前寫的.
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/6 下午 01:32:37
>>可以, 修改 BIOS ASL code, duplicate 該 method 到自訂的 device 中.

1. 所以前輩你的意思是說還是只能呼叫Device Scope內的Method對吧? 超過這個Device Scope就不行了,你所說的作法是不是類似我在BIOS端是去模擬一個"軟體設備",然後我替這個"軟體設備"寫一個WDM Driver,接著我就可以利用這個WDM Driver去送IRP,然後執行這個ASL Code 中宣告的Device Scope 下面的Method...

Device(MyDevice) <--我自己的Device Scope內的Method我可以呼叫
{ 因為是透過我自己寫的WDM Driver去發送IRP...
  
}

Device(HDD) <--HDD下面的Method就不能呼叫,除非複製到我的Device Scope下
{ 或是透過HDD Driver發送IRP給ACPI.sys
  
}

2.除了這個方式外,我還看到WMI的方式好像也可以去呼叫ACPI Method,那這種方式跟上面的方式有何不同?

3. 微軟提供的ACPIView.exe 可以執行不帶參數(Parameter)的ASL Method,而且好像可以呼叫不同的Scope下的Method,像是_OSI...等,他也是利用WMI做的嗎?

4. DDK內的Sample code說的不多,而我也不是Asus員工,所以看不到前輩你寫的那隻ACPI Driver 的Source code,因此寫自己學著寫,前輩可以介紹幾本好書或是Spec讓我參考嗎? 謝謝!
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/6 下午 02:10:31
我剛剛查了一下資料,前輩說的方式是不是就是指 Virtual PnP Device Driver,意思是說我在ASL Code中給定一個PNP Number,然後OS就會要求我去為這個設備安裝一個Driver,也就是我現在要寫的WDM Driver? 如果是的話,我大概就知道要往哪個方向去查資料了!
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/11 下午 11:57:06
你的 1 -4 項問題, 其根源就是同一個問題.
搞懂 MS 如何處理 ACPI BIOS 的詳細步驟,
就了解這些不是問題的問題.

MS 用 2 個 in box driver 來處理 ACPI BIOS.
在 device manager 的 系統裝置下, 可看到

1. Microsoft 系統管理 BIOS 驅動程式 (MSSMBIOS.SYS)
   MS 用它來挖出 BIOS 中的 ASL/AML code. 並處理 SCI.

2. Microsoft ACPI-Compliant System (ACPI.SYS)
   ACPI.SYS 一大部分功能, 是 AML interpreter.
   實際的 AML execution 是由它發動, 非 BIOS.

   ACPI.SYS 會為 ACPI Spec 規定的 device scope 跟
   系統廠客制化的 device scope 產生 software Device.
   ACPI Spec:
     ACPI Fan, ACPI Fixed Feature Button, ACPI Lid,
     ACPI Thermal Zone.

   ASUS coumstomized:
     ATK0100.

MS 自動會裝上 ACPI Spec 的 device driver,
如果沒提供系統廠客制化 device driver, 就會冒出黃色驚嘆號.
接下來的 driver 處理法, 就跟 hardware device 一樣.


> 3. 微軟提供的ACPIView.exe 可以執行不帶參數(Parameter)的ASL Method,
> 而且好像可以呼叫不同的Scope下的Method,像是_OSI...等,他也是利用WMI做的嗎
WMI 只是將 ACPI Method Warp 起來, 我反而覺得它難用,
自己搞了一個介面, 能讓 User Mode App 直接啟動 AML code,
並寫一支工具程式讓 BIOS RD 能去驗證 Asus ACPI driver AML code 的正確性.
ACPIView 不一定是用 WMI 介面, 若要確定, 只能去反組譯它.

WMI 的重要價值不是在 ACPI driver 這端,
而是在上層能跟 WBEM, SNMP 等網管 PROTOCOL 連接.
只是我客制化 Intel LDCM 到 6.x 版後, 就沒再碰網管相關的軟體,
所以對 WMI 興趣缺缺.

WMI 也有預設跟客制化兩種, MS 早就在它的 default ACPI device
driver 中偷埋 WMI 介面, 只要 BIOS 有寫出對應的 WMI ASL code,
MS 的 WBEM 就能透過 default ACPI driver 去執行該 WMI ASL code.

當然, 系統廠的客制化 ACPI device 也可以開 WMI 介面, 讓 WBEM 去用.
而決不是沒機會去開出新的 WMI 介面.

ASUS NB software team 死腦筋, 用我的 ACPI Driver 那麼多年也不增加
新功能, 只停留在 7 年前的程度, 連我要主動要升級, 他們也不肯讓我插手.

不過還好, 我已經找到新舞台, 在 ASUS EeePC 上,
製作第 2 代 ASUS ACPI Driver.

>4. DDK內的Sample code說的不多,而我也不是Asus員工,
> 所以看不到前輩你寫的那隻ACPI Driver 的Source code,因此寫自己學著寫,
> 前輩可以介紹幾本好書或是Spec讓我參考嗎? 謝謝!
我自己是覺得 ACPI source code 沒什麼, 但 ASUS NB/MB 現在都靠這支 driver
架起一堆有別於 ACPI Spec default device 的特殊功能. 公開會很麻煩.
如果讓 Acer 抄去, 就不妙.

Windows ACPI Driver 的資料就是 MS 網站跟 DDK 那些而已.
你 google 一下 "Window ACPI Driver", 就知道少的可憐.
當初我是自己不信邪, 一直 try, 才 try 出來.
要有毅力跟耐力, 秉持不服輸的精神, 即使沒 Try 出來,
但在 Try 的過程中, 就比別人學到更多知識.

像 ASUS NB software team 沒認真好好去搞懂我的 source code.
7 年過去了, 只會用, 根本沒開發出新用途.

對 ACPI.SYS, MSSMBIOS.SYS, MS 也只是輕描淡寫一下, 也沒人專門討論它們.
我挖進去後, 才知道它們是一切的根源, 以及 MS 如何將它們銜接到現有的
WDM driver 架構上. Any Way, 凡走過必留下痕跡, 凡努力過必有收穫.
你如果要比別人更精通某項技能, 這樣的經歷是免不了的.
等你走過 2, 3 次後, 悟出解問題之道後, 就會有自信心去面對陌生的技術領域.

作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/12 上午 09:11:01
我有去挖 Linux 的ACPI Driver src來看,他的運作原理跟前輩說的很像,但是由於他不是用WDM 寫的,所以很多地方還是沒看懂。

而前輩說到的這部份知識我還是第一次看到,原來Windows 運作還有那一部分喔,之前看Windows 核心介紹的資料都沒看到說 >.< ,不過有了前輩提供的這一些方向後我大概知道我哪邊能力不足需要先去補強的地方了,等補強後我再繼續研究ACPI Driver這個領域的東西。

而最近新案子又開始run, 所以又要等到忙完才有時間繼續研究了,不過我會繼續努力下去的, 真是非常感謝前輩指導!
作者 : terenas(風) 貼文超過200則
[ 貼文 490 | 人氣 7440 | 評價 680 | 評價/貼文 1.39 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/12 下午 05:24:44
WEBER 兄有沒有興趣出本書來指導一下後背呢?
這種書全球都很少呢.
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/12 下午 07:27:39
寫 Device Driver 相關的書, 在台灣是效益非常低的事.
國外 Device Driver 書的作者, 最大的收入是來自
開 Device Driver 訓練課程, 而不是出書.

出書只是打知名度, 來吸引 programmer 付費參加訓練課程.
"Window Device Driver" 的作者 Walter Oney 曾在台灣開過課.
收費 NT 五萬元, 一次收 60 位就有 300 萬進帳.

以前侯俊傑也建議我出書, 也是這個原因, 來婉拒他.

若出本 "深入淺出 Windows ACPI Driver and BIOS" 書,
我保證出不到 500 本. 購買者會集中在 PC/NB 系統廠的 BIOS RD.

PC/NB 系統廠的 Window software programmer 沒幾個會寫 device
driver, 是不會買來看.

售價訂 800 元, 那一刷下來是 20 萬, 扣掉出版社抽成跟書的成本.
我真正拿到手的, 只有 4 萬 (20 萬 x 20 %). 你想我會出書嗎 ?
辛辛苦苦, 原汁原味寫出來的書, 竟抵不過翻譯一本 "快快樂樂學 ASP"
所賺的版稅.

若真的想賺錢, 那就辭職, 幫 Acer 開發另一套 ACPI Driver, 及其附加功能.
或者開間個人軟體工作室, 幫國內系統廠寫 Video Splendid, WinFlash,
Asus Probe, ACPI Driver, GameFace, SmartDoctor, Dynamic Power Saving
等程式, 然後來收版權費. 這樣起碼每年至少 5, 6 百萬跑不掉.

所以你的好意我心領了.
作者 : terenas(風) 貼文超過200則
[ 貼文 490 | 人氣 7440 | 評價 680 | 評價/貼文 1.39 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/12 下午 08:30:33

>寫 Device Driver 相關的書, 在台灣是效益非常低的事.
>國外 Device Driver 書的作者, 最大的收入是來自
>開 Device Driver 訓練課程, 而不是出書.
>
>出書只是打知名度, 來吸引 programmer 付費參加訓練課程.
>'Window Device Driver' 的作者 Walter Oney 曾在台灣開過課.
>收費 NT 五萬元, 一次收 60 位就有 300 萬進帳.
>
>以前侯俊傑也建議我出書, 也是這個原因, 來婉拒他.
>
>若出本 '深入淺出 Windows ACPI Driver and BIOS' 書,
>我保證出不到 500 本. 購買者會集中在 PC/NB 系統廠的 BIOS RD.
>
>PC/NB 系統廠的 Window software programmer 沒幾個會寫 device
>driver, 是不會買來看.
>
>售價訂 800 元, 那一刷下來是 20 萬, 扣掉出版社抽成跟書的成本.
>我真正拿到手的, 只有 4 萬 (20 萬 x 20 %). 你想我會出書嗎 ?
>辛辛苦苦, 原汁原味寫出來的書, 竟抵不過翻譯一本 '快快樂樂學 ASP'
>所賺的版稅.
>
>若真的想賺錢, 那就辭職, 幫 Acer 開發另一套 ACPI Driver, 及其附加功能.
>或者開間個人軟體工作室, 幫國內系統廠寫 Video Splendid, WinFlash,
>Asus Probe, ACPI Driver, GameFace, SmartDoctor, Dynamic Power Saving
>等程式, 然後來收版權費. 這樣起碼每年至少 5, 6 百萬跑不掉.
>
>所以你的好意我心領了.
看來還是銅臭味重了一點, 相信你本身也賺不少了, 還犯不著做你所講的吧.
我只是單純的認為指導後背而已, 賺不賺錢是另外的事了.
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/13 下午 02:05:20
若沒有高薪, 一些核心技術人員願不願意
1 天 12 -14 小時, 1 周 6 天, 這樣拼命為公司賺錢.
有機會去問一問聯發科, 宏達電的 "核心" 技術工程師.

懂 Acpi Driver 的技術後, 要做什麼 ?
維護世界和平 ? 救濟窮人 ?
還是要解決 "有薪水給付" 工作的問題 ?
如果是後者, 你根本沒立場來批評.

有認真態度在追問題的人, 如 harrison,
從他的問題中, 我可以知道他進展到什麼程度,
所以才 po 一點 google 找不到的資料,
讓他了解 ACPI Driver loading 的架構,
要從哪個方向下手.

如果是不想動手動腦, 只期望別人把 Document 寫的很詳細,
附 sample code, 不要浪費力氣, 馬上就可以用的人.
我才懶的理.

當初我從 ACPI Driver 要跳到 BIOS AML, MB BIOS RD 根本不鳥我.
還得自己拿 NB BIOS source code, 看 ACPI Spec, 自己寫 AML,
來驗證 ACPI DRIVER 呼叫 BIOS AML 功能是否正確.

harrison 肯自己主動學 Window Driver, 而且問的問題也有些深度.
在 BIOS RD 裡面算是難得的. 這種學習態度跟實作精神,
才值得在遇上瓶頸時, 幫他一下.
作者 : terenas(風) 貼文超過200則
[ 貼文 490 | 人氣 7440 | 評價 680 | 評價/貼文 1.39 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/13 下午 02:24:46

>若沒有高薪, 一些核心技術人員願不願意
>1 天 12 -14 小時, 1 周 6 天, 這樣拼命為公司賺錢.
>有機會去問一問聯發科, 宏達電的 '核心' 技術工程師.
>
>懂 Acpi Driver 的技術後, 要做什麼 ?
>維護世界和平 ? 救濟窮人 ?
>還是要解決 '有薪水給付' 工作的問題 ?
>如果是後者, 你根本沒立場來批評.
>
>有認真態度在追問題的人, 如 harrison,
>從他的問題中, 我可以知道他進展到什麼程度,
>所以才 po 一點 google 找不到的資料,
>讓他了解 ACPI Driver loading 的架構,
>要從哪個方向下手.
>
>如果是不想動手動腦, 只期望別人把 Document 寫的很詳細,
>附 sample code, 不要浪費力氣, 馬上就可以用的人.
>我才懶的理.
>
>當初我從 ACPI Driver 要跳到 BIOS AML, MB BIOS RD 根本不鳥我.
>還得自己拿 NB BIOS source code, 看 ACPI Spec, 自己寫 AML,
>來驗證 ACPI DRIVER 呼叫 BIOS AML 功能是否正確.
>
>harrison 肯自己主動學 Window Driver, 而且問的問題也有些深度.
>在 BIOS RD 裡面算是難得的. 這種學習態度跟實作精神,
>才值得在遇上瓶頸時, 幫他一下.
看來你是搞錯了一些東西了.
我不是寫底層東西的人, 我一直都是寫AP 的人. 也沒打算寫driver, 年紀大了, 沒力.
你出一本書, 一萬本書對我來說, 都沒影響.
純粹就是知識的留存分享而已. 別想太多.
要不要出書, 是你的權利, 我純粹就建議, 如果你有你的concern 就這樣吧. 話題就此打住.

作者 : yorda825(阿君)
[ 貼文 3 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/17 下午 04:56:34
前輩在WDM driver上果然功力高深!!! 最近在研讀WDM Driver也是邊看code邊trace
但是常常弄不懂許多kernal的想法, 所以一直搞的迷迷糊糊

看了一個月還是覺得很虛, 不踏實

我想請問前輩您說自己去try, 是怎樣去try才可以讓自己的功力更精進!!!

謝謝您~
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/17 下午 07:00:01
以下是我從微軟那邊找到的一些資料,自己做筆記紀錄一下:
Microsoft System Management BIOS Driver (MSSMBIOS.SYS)會做的事情

SMBIOS Support in Windows
• SMBIOS data
• ACPI information: The driver collects all ACPI table data except for the contents of the differentiated system description table (DSDT) and secondary system description table (SSDT), if they are present. The driver also collects the header data of the DSDT and SSDT and then stores this table data in memory until a system crash occurs.
• CPU information

ASL 程式碼永遠由 Acpi.sys 驅動程式執行
作者 : cello1980(cello)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/19 下午 03:24:57

這種DDK裡面的SAMPLE CODE 好像也不用講的那麼神奇吧
好像全世界只有WEBER會而已
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/19 下午 04:50:45
這不是DDK裡面的Sample code...而是DDK裡面的Sample code只講到皮毛,所以我才需要花更多心思去了解。

因為這部份牽扯到BIOS與OS之間的動作,所以沒在這個領域的人可能連聽都沒聽過

而在這個領域的人,有實做過且又願意指導的人更又難遇的到,所以想學就要多花點心思
畢竟學習是靠自己,有努力才有收穫,前輩能指點一、二就已經感謝萬分了!
作者 : cello1980(cello)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/19 下午 05:35:40

這個確定是DDK的 Sample Code.
你去查 2000DDK 就知道了
Vista 的 DDK 寫的很簡陋
可是 2000DDK 就寫的很清楚
去查看看就知道了

作者 : ghostj(GHOST-JACKY) 貼文超過200則人氣指數超過10000點
[ 貼文 236 | 人氣 25354 | 評價 330 | 評價/貼文 1.4 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/20 下午 08:06:14
其實我還蠻認同weber的想法的,當然我只是純抒發情緒沒有對錯

現在目前一堆BASIC,一堆網頁語法的書造就出一堆2W~3W月的程式寫作者

當然也不乏異數,月入數十萬的。但就總觀而言當市面上的書越多哪行就越難賺

這間接也樣想入這行的年輕才俊卻步,所以還不如指點一下有心向上的後進

這才真的是照顧後輩吧。
作者 : redhgg(大圈圈仔)
[ 貼文 7 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/24 上午 10:57:23
我想问下ACPI TABLE的获得为什么在2000下就有工具,但是在XP下就有没有工具呢?
有什么区别呢?如果想获得的话应该怎么去写呢???盼望WEBER达人帮忙啊,我顶你!!
作者 : redhgg(大圈圈仔)
[ 貼文 7 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/24 上午 11:55:49
如何读取ACPI TABLE呢??应该用什么方法 大概走什么路线呢
作者 : redhgg(大圈圈仔)
[ 貼文 7 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/24 下午 04:41:24
前面问题已经知道如何解决了。。。如何找RSDP地址呢?在Extended BIOS Data Area还有BIOS read-only memory space 中//各位宝岛达人多多帮忙拉
作者 : liaoo(liaoo) Assembly優秀好手貼文超過500則人氣指數超過10000點
[ 貼文 507 | 人氣 27127 | 評價 1140 | 評價/貼文 2.25 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/25 上午 11:03:38
RSDP的位址基本上會在 1M以下 ! 你可以參考ACPI spec中關於RSDP的敘述,裡面有提到要如何找尋 RSDP...除此之外,在XP下當然也有取得ACPI table的tool, Ex acpiview-xp.exe

要自己寫當然也可以,只要你可以在XP下可以 access memory即可 !
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/26 上午 08:51:17
看Acpi Table工具很多,其中我覺得比較好用的是ACPI Scope...,目前版本可以在Vista下使用;而ACPI View的好處則是可以直接執行某些ASL Method,但是目前沒有Vista版本,參考一下吧!
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/26 下午 04:33:29
> 這種DDK裡面的SAMPLE CODE 好像也不用講的那麼神奇吧
> 好像全世界只有WEBER會而已

我是在 Win98 ME DDK 上來開發 ACPI Driver.
98 ME/2000/XP/Vista DDK 的, 那些 battery, EC, Lid acpi sample code,
並沒有提供詳細的 function code, 來教人運用 ACPI.SYS 的 export functions.

現在 Linux 2.6.13 上的 ACPI extra driver code 中, 目前得知是有
IBM, Toshiba, SONY, ASUS 這些 NoteBook 有支援客製化的 ACPI BIOS.
所以起碼 IBM, Toshiba, SONY 的 SW RD 也會寫 Windows ACPI driver,
並非只有我會.
  


Hi harrison:

我現在負責 EeePC 的軟體開發工作(WinXP and Linux), 需要一些人手來幫忙.

系統階層的軟體開發 (device driver, EC/8051 firmware, BIOS) RD,
需要有韌性跟不服輸的性格, 才能作出一些奇奇怪怪的功能, 而不會被
WinTel 洗腦, 導致畫地自限.

我現在 ASUS ACPI Driver 上, 製做 NB/EeePC 動態省電功能,
要打破 WinTel 既有的電源管理規格, 導入 Smart Phone 的電源管理模式.
期望能省下更多的電池電力.

以後這個部門, 期望是以 "系統" 角度出發, 結合 application,
Device Driver, BIOS, EC 等工程師, 製作出一些奇奇怪怪的功能.
所以需要有企圖心的軟體工程師, 一起參與, 來築起系統功能的門檻.

一但 EeePC 熱賣, Dell/HP/Acer/廣達/鴻海 鐵定一窩瘋搶進這一塊 UMPC
市場. 我預估 EeePC 有 6 - 8 個月的領先期. 在這期間, 要趕快建立
獨特系統軟體門檻, 讓其餘競爭對手, 只能在硬體設計及 BIOS 上趕上 EeePC.
但無法提供 EeePC 特有系統軟體的功能.

我曾開發或主導一些軟體, 如 Asus ACPI, Asus Probe, WinFlash, LiveUpdate,
GameFace, smart doctor, Video Splendid, 皆導入到 Asus MB/VGA/NB 產品上.
可以在 Asus 網站上得知這些軟體的功能.

你若有心朝系統軟體發展, 而不是只侷限在 BIOS. 可以考慮上網投履歷到
"華碩組裝筆記型電腦軟體研發部".
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/26 下午 07:04:01
我剛碩士畢業的時候有去華碩的NB單位面試過,不過當初我想去寫Driver ,但是後來面試我的主管是找BIOS工程師,不過他說會把我的履歷給相關單位看有沒有需要,當然也就沒下文了 =.=!

後來機緣巧合跑來做OEM BIOS(就是前輩說的哪幾家其中之一啦),是因為後來我去面試的公司幾乎都是maintain driver不然就是寫Driver Applictions 學不到我想學的東西 ,所以我才一腳踩入我比較熟悉的x86 組合語言環境,然後實際的去了解整個Wintel系統設計概念。

而目前剛入行一年多,尚有許多架構還沒搞清楚,因為我去念書前是負責Macintosh 的測試程式(後來承蒙貴公司搶走單子我才離開這個領域去進修),所以稍微暸解Apple平台的系統架構,但是因為Macintosh跟Wintel一樣喜歡綁架所有的技術,因此核心技術都必須侷限在他們的框架中,所以我在負責Apple產品的同時,我也一段很長時間荒廢了學習Wintel技術。

不過還是要感謝前輩抬愛,因為我的能力尚且不足,而且目前工作環境比較多充分的時間讓我去學東學西,畢竟上戰場前還是要有所準備,不然容易被"打槍"(台語);因此現階段我還是先練好"基本功"後再去尋求一個可以打戰的戰場^^。

[後記]
記得華碩有位主管跟我說過,對自己沒信心的人華碩是不會用的! 由此可見華碩的戰場真的是需要更多實力才能生存下來。
作者 : redhgg(大圈圈仔)
[ 貼文 7 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/27 上午 10:42:36
呵呵。大家都来讨论啊。
小可最近在被命令写个功能和ACPI SCOPE一样的东东
RSDP现在我看SPEC应该是有2种读取方法,
我先是从MEMORY中读的。方法么 用PORTIO的DLL就可以了
在E0000到FFFFF中就可以读到 SIGNATURE。然后就可以根据指针找了


各位牛人。怎么从寄存器读呢?
应该是有2种方法都可以读的。

知道寄存器我怎么操作我就只剩下简单的APPLICATION编写了 。。。。。。。

感谢上面回答我的好心人
作者 : redhgg(大圈圈仔)
[ 貼文 7 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/27 上午 10:45:22

[後記]
記得華碩有位主管跟我說過,對自己沒信心的人華碩是不會用的! 由此可見華碩的戰場真的是需要更多實力才能生存下來。
========================
楼上怎么还有后记
难道是长篇武侠小说
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/27 上午 11:00:51
寄存器方式 ??? 這是要讀取什麼???

我只知道ACPI Spec上面說的方式,也就是從E000~F000去找到指標(你們稱指針),然後一層一層讀就可以讀到你要的資料,如果你手上有A公司的工具 SE.EXE,你可以直些去看記憶體內容,但是你看到的ASL Code會是AML code(像機器碼),如果要在Windows下寫程式讀取,可以用你說的工具或是自己寫一個Ring0 Driver/Application、Undocument API去存取實體記憶體內容(你們稱內存)。

至於ACPI Table內會放一些暫存器(你們稱寄存器)資訊,那也只是指向南橋內的ACPI Registers,詳細說明可參考ACPI Spec...
作者 : redhgg(大圈圈仔)
[ 貼文 7 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/27 上午 11:20:39
SPEC2.0中是提到
OSPM searches the following physical ranges on 16-byte boundaries for a RSDP structure. This structure is located by searching the areas listed below for a valid signature and checksum match:
· The first 1 KB of the Extended BIOS Data Area (EBDA). For EISA or MCA systems, the EBDA can
be found in the two-byte location 40:0Eh on the BIOS data area.
· In the BIOS read-only memory space between 0E0000h and 0FFFFFh

我所说的就是EBDA在哪儿读哦。。第2个所提到的between 0E0000h and 0FFFFFh
的MEMORY是好读的。因为MS提供了一个DLL。(还可以用来操作IO)

还有不一样的就用E文好拉 哈哈 POINTER REGISTER
繁体字确实看起来比较牛X
大陆这里搞核心的好少,,郁闷。还是这里高人多
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/27 下午 12:00:58
EBDA 也是指記憶體位址,他的意思是說BDA(Bios Data Area 40:0)的Offset 0Eh會放EBDA ptr ,一共是1K bytes,所以你可以搜尋這兩個地方去找到RSDP,例如下面範例:

rsdp_phys_addr = acpi_scan_rsdp (*(u16*) 0x40E << 4, 0x400);
if (!rsdp_phys_addr)
    rsdp_phys+addr = acpi_scan_rsdp (0xE0000, 0x20000);
 
1.先搜尋40:0E 所指向的記憶體位址,大小為1K範圍內搜尋
2.找不到的話就找E0000~FFFFFh

不過我沒用過第一種方式,所以參考參考就好!

另外EBDA不是"Register",他是一個1KBytes Structure放在DRAM...,而Address放在40:0E的地方一共是兩個Bytes。

※所以找Ptr的方式有兩種,但都是用"Search Memory"方式。而沒有所謂的讀Register方式。
作者 : redhgg(大圈圈仔)
[ 貼文 7 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/9/27 下午 12:08:13
EISA or MCA systems估计现在已经很少见了
原来EBDA也是在记忆体里面啊。。。。。。多谢大侠
作者 : maplev(Maple)
[ 貼文 2 | 人氣 2 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/10/30 上午 09:23:44
Hi webber,
     就EEEPC上市後,我玩了一下,發現你所謂的Linux 上ACPI driver似乎不全然是你們寫的,
是為了能攔住SCI Event,而把別人為了能使用asus的FN KEY而寫的asus_acpi.ko中加了
HOOK,把SCI Event傳到USER APP,"當然"也順便幫人家程式給改名字,改成eeepc-hotk
,這樣的改變應該三到十幾行就結束了,加上那隻asusosd,整個工作應該可以在一周內就完成
了吧。當然還有更快的解決方案,就是去COPY人家的程式,順便幫別人改些小地方,改個名字
,就可以大功告成啦。真是有企圖心的軟體工程師。
作者 : nickelshh(nickelshh)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/7 上午 08:25:18
我现在在写vista32/64和xp低下通用的类似acpiview的工具,有谁有兴趣帮忙测试一下
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/8 下午 05:20:39
nickelshh,
     可以留下msn嗎? 我想請教你一些問題,謝謝!
作者 : nickelshh(nickelshh)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/8 下午 07:43:57
nickel_shao@hotmail.com
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/17 上午 12:22:09
To maplev:
  在 Linux 上的 code, 如果用到 Open source 的話, 鐵定會被 Open.
我沒那個美國時間, 自己寫一套 Linux ACPI Kernel. 反正會被 open,
那就用最方便的方法來寫.

  知道 Tool 如何用後, 就要想如何用 Tool 來完成你想做的事.
不要捨本逐末, 一直斤斤計較程式的原創性, 而忽略想做到的系統功能.
我會學某種技術, 是因想做出某種功能, 而不是閒著沒事幹, 隨便抓來玩.

To redhgg:
  我對 ACPIView 這種 tool 沒興趣. 我已經試出用 WinDbg 就可以
source code level 去 trace 他家 NB 的 BIOS "ASL", not "AML" code.
所以 ACPIview 功能對我沒有用. 況且你懂 ASL method, 若不知道
input/output parameter 代表的涵義, 還是無法使用 ASL code.

To Harrision:
 別把 ASUS Software RD 想得太厲害, 也別被 BIOS manager 給呼巄了.
X86 BIOS 以後扮演的角色會越來越輕, MS 想把它壓成 Boot Loader
的角色.

EFI 是用 C 跟 module 化來拉低 programming 門檻. 反正現在
DRAM/EEPROM 容量超大, CPU 超快, 寫 BIOS 不必像 5,6 年前般的
斤斤計較 code size 跟 CPU performance, 反而是重視 maintain 容易程度.

現在就連 VGA BIOS, Inte/nVidia/AMD 都想把它廢掉, 不用 int 10,
而是用 ACPI ASL code. ACPI Spec 3.0B 的 VGA ASL 部分, 不是寫好玩的.
Intel 的 IEGD (Intel Embedded Graphic Driver) 就已經不用 int 10 了.

  Again, 看你甚麼時候有空, 可以來聊聊.
作者 : digiko(低級狗)
[ 貼文 10 | 人氣 3 | 評價 30 | 評價/貼文 3 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/20 上午 03:05:55
有點疑問....
如果VGA BIOS被取消, BIOS的POST畫面要由誰點亮?
這個時候可沒os的acpi driver啊,
難道要bios去implement acpi driver去call這些method?

而且還有一堆相容性的問題,
PC的架構背負著legacy的包袱太沉重啦....
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/21 上午 07:57:24
>>現在就連 VGA BIOS, Inte/nVidia/AMD 都想把它廢掉, 不用 int 10
廢掉它的其中之ㄧ的支援,可參考Vista & ACPI Spec 相關文件中"不使用Int10"的說明...
作者 : digiko(低級狗)
[ 貼文 10 | 人氣 3 | 評價 30 | 評價/貼文 3 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/21 下午 12:54:54
vista不使用int10好像和小弟的問題扯不上關係....
因為這世界上不是每台PC都裝vista
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/21 下午 09:50:27
>>廢掉它的其中之ㄧ的支援
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

開機過程中VBIOS是不可少的,但是System BIOS能幹麻? 就是幫忙dispatch 廠商寫好的bin file, System BIOS能去做VBIOS部分嗎? 可以! 但是人家不給你做,所以System BIOS扮演的角色有點尷尬...老是幫人家執行人家寫好的程式...>.<

話雖如此,但是這是分工合作下所以才這樣,並不代表System BIOS無用處,所以我想前輩想表達的意思就是System BIOS原本能負責的部分慢慢的會被吞食掉,類似原本INT10h功能,這部分原本需要System BIOS支援,但是目前在新版的os中已經被慢慢的被廢掉了...

因此我才會提示說可以參考那些文章的說明,裡面有提到有關INT10h被廢掉的一些資訊可以提供給你參考,並非要討論真的可以廢掉VBIOS嗎? 而是討論 "System BIOS原本可以支援的部分慢慢的被吞食掉",不知道你同不同意這種論點?
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/22 上午 12:29:54
廢 INT10 是趨勢,
Linux X.Org 的新版 display driver 架構, 也是準備要廢掉 INT10.
在 WinXP 裝上 Intel IEGD 後, 可以把 VBIOS 拔掉 (Intel 說的).

BIOS 中有許多功能, 可以被 OS 取代.
看看手機, Embedded System, 根本沒有 BIOS 這個東西.
如果我都知道每個內建 DEVICE 的資訊,
幹嘛還要 BIOS 每次開機 enumerate or init.

EeePC 之所以 BIOS 開機速度快, 就是拔掉一堆不需要的功能,
繼續拔下去, 就真的只需要 MBR BootUp 的功能, 接下來所有
HW 初始動作, 全由 OS(WinXP/WinCE/Linux/Android) 加 ACPI BIOS 作掉.

或許一堆 BIOS RD 會笑我是說大話, 但只要某家 UMPC/MID BIOS 真的惡搞出
來 BIOS Bootup 花 1 sec 的話. 馬上就有骨牌效應, 逼得你不作不行.
EeePC 開機 20 sec, 一定有對手會搞出低於 20 sec,
當然下一代 EeePC 也會更快開機. 比到最後, 就會有人朝這個方向去搞.

信也罷, 不信也罷, 等真的有人作出來的時候, 不要不接受這個事實.
破壞性創新就是這樣, 讓你 10 幾年賴以為生的技術, 一瞬間就貶值.
走上玩技術這條路, 就要認命, 沒一樣技術可以讓你吃一輩子.
也因為這樣, 我們才能享受科技進步, 而代代有小公司變成股王的機會
作者 : digiko(低級狗)
[ 貼文 10 | 人氣 3 | 評價 30 | 評價/貼文 3 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/22 上午 10:07:04
w兄所言甚是, 但是有幾點小弟不太認同

1. eeepc開機快固然是因為system bios砍掉許多不需要的功能, 但是這是因為eeepc是個半封閉式的系統, 所以當然可以把很多generic function寫死, 或是砍掉, 一般的pc根本不可能這樣作, 您舉封閉式系統和一般汎用系統相比似乎不太合理

2. 是的, os可以取代"許多"system bios的功能, 但是還是有很多功能是無法取代的, os所需要的一堆資訊也是bios所提供的, 像是memory的大小, 速度, 各個device佔用的資源(memory, I/O等等), 包括acpi的各種資訊, 還有一些骯髒的hardware workaround, 基本的說, system bios所提供的是一個能讓os穩定運作的環境

小弟的看法是, 傳統bios即將被消滅這是不爭的事實, 但是取而代之的將是EFI, 而這東西將會比傳統bios更加龐大, 功能更加齊全, 以您所說的int10將被取消一事來說吧, 我猜將來一定會有一個在efi環境下的標準圖形介面讓VGA廠, efi vendor遵循, 然後只要包裝一下, 就可以讓legacy os透過int10使用
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/22 下午 12:19:17
NB 的市佔率明年就超越 MB.
而 NB 留出來的擴充介面, 幾乎都是 Hot-Plug&Play.
(USB, PCI-E, 1394, SHDC).
去翻翻 PCI-E 2.0 的規格書, 根本就是 Driver + HW Spec
在主導, BIOS 插不上手.

沒有 INT10 又如何 ? 頂多無法進 BIOS Setup Menu.
看過手機有 BIOS Setup 選項嗎 ?
若一定要做 BIOS Setup, 還是有辦法寫程式在 OS 底下去改.
連 BIOS Flash 都做的出來, BIOS Setup 沒那麼困難的.

至於 VGA/Audio/WLAN 等都是內建, 都可知道事先的組態.
不用每次開機還要 BIOS 跑一堆 Enumerate & Init.
只要把 Hardware dependent info 放在 ACPI BIOS,
讓 OS 取到這些資料後去做 Init 就好了.

其實 ACPI BIOS Spec 就是擺明, 要把 BIOS 壓縮到成 Boot Loader
跟 HW info provider. 讓 OS 來完全掌控全局.

我如果還在 NB team, 這種想法鐵定被 BIOS 主管視為離經叛道.
但在 EeePC 草創階段, 因 Jonney 要求要快速開機,
所以 BIOS RD 乖乖照作, 而且他們是大陸 MB BIOS team,
沒有 NB BIOS 既成觀念的包袱, 反而才搞出快速開機的功能.

我就是待過許多部門: VGA/MB/PDA/NB/EeePC,
看過多種產品的設計架構,常常受到刺激,
所以才有這些離經叛道想法. 也在公司內部惹毛許多人.
但我相信, EeePC 的快速開機已經變成 UMPC/MID 對手的一項競爭項目.
過不久, User 一定會抱怨 NB 為何不能像 EeePC 一樣快速開機.

等到市場壓力一形成, 產生骨牌效應, 我就不相信那些 BIOS 主管
在現實壓力下, 還能固執己見, 繼續撐下去.

即使萬一趨勢被我說中, 那些 BIOS 主管也不會感激我這個烏鴉嘴,
反而會對我提高戒心, 怕哪一天我又冒出新想法,
來降低他們在公司的影響力.

AnyWay, 我只要照顧好 EeePC,
把類似手機的功能 implement 到 EeePC 上,
剩下來就是等待市場/User 的接受程度.
只要是想法正確, 實作出來, 並有明顯的功能提升.
市場/User遲早會還一個公道.
作者 : digiko(低級狗)
[ 貼文 10 | 人氣 3 | 評價 30 | 評價/貼文 3 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/22 下午 01:32:39
w兄言重了, 您在公司裡的地位或是升遷跟小弟沒什麼關聯, 小弟也不是貴公司的員工, 更是離開bios開發有一段時間了, 現在主要是寫driver和自己有興趣的東西 :), 參與這篇討論也只是剛好有點不同的看法, 純粹以技術的觀點, 對您的意見不太能茍同罷了

想想看, 一開始的問題是: int10一旦取消, 現存的pc將會面臨的情況有哪些?

1. bios post畫面消失, 沒有bios setup, 沒有vendor logo
2. 喪失對legacy os的支援, 即使是windows xp, 在進入os loader也會呼叫int10, 到os底下才完全由driver接手
3. ...可能還有的潛在問題

至於您所說的eeepc如何如何, 那真的不重要, 就像mac也從來沒有這些問題, 因為從hardware, 到firmware, 到os, 都是他們家的, 簡單的說, 就是球員兼裁判, 都是封閉系統, 但是市面上的pc, 不管是desktop或是nb, 依然要考量到客戶的各種使用需求, 因為這世界上不是只有windows和linux兩種os, 也不是所有的pc使用者都會乖乖的只用MB上附的audio/lan/wlan device

另外您一直說acpi spec要把bios壓成boot loader和HW Info Reporter, 我想, bios在某種意義上本來就是boot loader, 只是不是一開機就把ip指到硬碟上的某個sector這麼簡單, 而且acpi裡許多資訊都是要bios來report, 但bios如果沒有經過初始化mb上各種硬體的過程, 那要怎麼把這些資訊report給os呢? 就算是貴公司的eeepc, 也是要靠bios去初始化各種硬體不是嗎?

最後想建議您, 參與討論只要討論就好了, 實在不用把自家的鬥爭和糗事拿來說嘴, 知道內情的人可能覺得沒什麼, 但是不知道的人看了恐怕就會對貴公司的形象打折扣了, 因為真的蠻難看的 :P
作者 : seanchang(H) Assembly卓越專家貼文超過1000則
[ 貼文 1200 | 人氣 773 | 評價 3240 | 評價/貼文 2.7 | 送出評價 43 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/27 下午 11:09:29
To digiko大大
其實weber大大說的很多事是對的. 不只INT 10h. 其實廢所有的INT是大家期望和努力的目標. INT service是x86 16 bits的包袱. 這個包袱會限制PC的成長. 那384K是十分沉重的負擔.我們已經suffer很久了.

其實講自家鬥爭不是什麼嚴重的事情. 沒啥好避諱啦.

To Weber大大
在這個行業, 除了貴公司的BIOS team外, 我沒有聽過哪一家的BIOS部門不用當硬體部門的替死鬼的. 希望您的事業可以成功, 至少可以讓很多我覺得很爛的BIOS工程師消失.
要讓BIOS部門影響力消失, 我個人認為不容易. BIOS的影響力是硬體設計造成, 不是我們要這樣做的.1996年我從硬體設計轉BIOS部門的時候. BIOS主管就跟我說, Intel和M$越包越多東西, 你不怕哪天板子上不需要放BIOS, CPU 一開就直接進OS了. 其實你講的東西, 很多BIOS主管(其中也包括貴公司的)都有想到.也都認為BIOS工程師的價值就是debug. 至於寫code, 改code, 那只是手段之一而已.
軟體有個很重要的狀況是程式完成的同時copyright就自然形成了. BIOS的copyright是由board maker去買來的所以BIOS工程師可以合法的使用並去修改.反正BIOS是跟著主板, 不是一個generic software. 而AP, 或 driver. 只要不是借用open source的code. copyright形成的保護, 除了貴公司這種打算維持研發能力的品牌公司外. 其他像HP/DELL/ACER這些品牌公司是不會考慮這些被copyright保護住的方式的. 我們曾經打算用軟體的方式來完成一些功能, 以降低成本.就是被這些客戶直接拒絕, 原因很簡單, 怕被我們吃死死. 因為我們可以拒絕提供給其他代工廠.最後還是只能用HW來做.所以你的想法只能在貴公司, 或是獨立出來成為這些公司的third party, 才有實現的可能.

我在 2002年做過一個上電 POST只要4秒就開始boot OS的BIOS(VBIOS佔了快一秒). 因為我的客戶是作卡拉OK機的.可以不需要很多功能, 不過這個BIOS就只能給這個特殊機器用. 一般用途是不行的. 畢竟相容性還是多數客戶的考量.

OS減少對BIOS依賴, 是OS廠商必須要作的事情. 我們就是為了那萬分之一不到的使用, 要在那小小的128K(以前有時還要降到64K, 因為客戶要使用freeDOS, 還要使用EMM386這種東西, oh my god!)放入那麼多的service實在是非常的痛苦. 1998年出現ACPI OS到現在, 我們居然還沒辦法讓客戶同意把PnP & APM 從BIOS中永遠的消失...功能越加越多...真是無言!

在做快速開機BIOS時, 其實那時候打算利用SiS 550這顆配合msystem有個norflash+nandflash的產品,我們也有規劃 boot loader, 目標就是做一秒內boot OS. 可惜是隨著硬體IC的停止, 也只能暫時停掉了.

最後告訴你一個小秘密, 其實從386以後的時代, x86 PC只要boot 進OS後, BIOS ROM 是可以拔掉的. OS一樣可以執行. 可是沒有人說從DOS開始就已經不需要BIOS了. 所以Intel 告訴你VBIOS可以拔掉的故事, 我不知道能證明什麼, 我想你得跟那個Intel工程師再次確認確認了.
作者 : zarathustra(查拉圖斯特拉)
[ 貼文 4 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/28 下午 07:37:31
>
>最後告訴你一個小秘密, 其實從386以後的時代, x86 PC只要boot 進OS後, BIOS ROM 是可以拔掉的. OS一樣可以執行. 可是沒有人說從DOS開始就已經不需要BIOS了. 所以Intel 告訴你VBIOS可以拔掉的故事, 我不知道能證明什麼, 我想你得跟那個Intel工程師再次確認確認了.
>

依稀記得這是做了RAM的鏡像吧!
因為ROM實在是太慢了。
作者 : seanchang(H) Assembly卓越專家貼文超過1000則
[ 貼文 1200 | 人氣 773 | 評價 3240 | 評價/貼文 2.7 | 送出評價 43 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/29 上午 08:50:57

>>
>>最後告訴你一個小秘密, 其實從386以後的時代, x86 PC只要boot 進OS後, BIOS ROM 是可以拔掉的. OS一樣可以執行. 可是沒有人說從DOS開始就已經不需要BIOS了. 所以Intel 告訴你VBIOS可以拔掉的故事, 我不知道能證明什麼, 我想你得跟那個Intel工程師再次確認確認了.
>>
>
>依稀記得這是做了RAM的鏡像吧!
>因為ROM實在是太慢了。
叫做 Shadow(ed) RAM. 除了BIOS都放進shadow RAM, PCI spec有規定所有的oprom一定要放在shadow RAM裡面執行, 且執行時shadow RAM必須是可讀寫的.
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/31 上午 01:36:02
To Seachang 大大:

感謝你寫這麼多文字, 提供自己的經驗.
有時候一些事, 真的要有類似經驗的人, 才能得知重點.

EeePC BIOS 是因被華碩董事長下令一定要縮短 BOOTUP TIME,
所以 BIOS team 拼全力去做, 不敢有老大心態.
如果只是協理級去喬, 我看還有得等.

其實 WinCE 3.0 - 6.0 也有支援 X86 CPU.
它的架構就真的是把 BIOS 當 Boot Loader,
或者丟掉 BIOS, 直接用 C+ ASM 寫一個 Boot Loader
塞在 EEPROM 內, 用該 loader 去載入 WinCE kernel to memory.
不過我想還沒有人敢在 NB/EeePC 上玩到如此勁爆,
到時候 BIOS Team 會恨死這個人.

你說的那個秘密, 我做 WinFlash 時就知道了, 北橋晶片有 shadow ROM
的機制, 當 BIOS 自己 decompressed to memory 後, shadow ROM 就切到
這塊 memory 中, EEPROM 中的 BIOS 就毫無作用.

而 WinFlash 是用 driver 把 shadow ROM 切回 BIOS EEPROM,
打開 write-enable GPIO pin, 然後真正去 update BIOS.

Intel 正在為 UMPC/MID 鋪路, IEGD driver 是 Intel 主動提出的,
而且不是 open project, 不公開程式碼. 其用意就是:
1. 加快 bootup 時間
2. 只能用 driver 這條路去控制 VGA Chip, 不准有其他路徑.
3. 為了也能在根本沒有 BIOS 的 embedded system 上執行.

Intel 也是 ACPI BIOS Spec 的制訂廠商之一, ACPI BIOS Spec
不是訂好玩的, 其中的一些 spec 正慢慢落實中.

我做 RD 的一項樂趣就是, 先觀察 WinTel 的動作,
然後當別人都還搞不懂 WinTel 幹嘛做這些無聊事情時,
搶先一步把相關功能做出來.
作者 : liaoo(liaoo) Assembly優秀好手貼文超過500則人氣指數超過10000點
[ 貼文 507 | 人氣 27127 | 評價 1140 | 評價/貼文 2.25 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/1/31 上午 09:29:30
看了大家的討論後,小弟有一些想法:

1.BIOS的確有其包袱 ! 也的確沒有一個標準的 standard 來規範它 ; 只能說,它是所有 spec的集合 ! 當然,有新的 spec出現,一般的作法都是照 spec implement出來,然後包成 module,放進 code裡,verify ,然後 release...

慢慢堆積起來的結果,就是越來越龐大,支援的功能也越來越多...但是,會產生幾個問題:

a.誰知道新加的 code 對原有的 code 會不會有 "現在看不出的影響" ?
b.有必要需要現在這套code中的所有功能嗎 ?

其實,EFI的出現我覺得只是提供一個方式來 "規範" BIOS而已...當然,它所帶來的好處是很有助益的...

2. 我覺得 BIOS 要依使用場合來分 ! 約略分成開放系統的(ex DT),與封閉系統(ex mobile phone).

後者誠如大家所言,在很多東西都"已知"且"不會變動"的情況下,的確有很多都可以拿掉 ! 但後者,假如是必須要考慮到支援相容性的問題,則有些東西還是得存在...
兩種都有 !!! 端看線在是用在哪種平台...

3.至於VBIOS,我認為應該可以拿掉,因為:BIOS可以做到的,OS為何做不到 ?

* VGA BIOS 在 BIOS階段的執行 flow is: BIOS scan PCI/PCIe devices->BIOS locate VGA -> BIOS find VGA BIOS -> BIOS shadow VGA BIOS -> BIOS transfer control to VGA BIOS -> VGA BIOS works -> transfer back to BIOS -> VGA on !

只是把BIOS換成 OS,應該是沒問題的 !

4.或許,我們都已經對某些觀念根深蒂固很久了...因為,那樣的東西是我們熟悉的,會讓我們感到心安...但用另一種方式來 "質疑" 現有的觀念才是進步...

所以,也或許在未來,BIOS可以不必 shadow...int10可以不必呼叫....BIOS不一定要這樣寫...

最後, [ 這世界上的東西........有99%都是假設 ] <- 推一本書 ^o^...

作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/2/10 下午 07:38:27
LinuxBIOS 計劃,一個 Free Software 的計劃,企圖取代掉現今多數電腦上的 BIOS 已經改名稱為 coreboot 了。

舊的名稱在近幾年已經變成了一個誤解,LinuxBIOS 產生了只能在 Linux 上或是專為 Linux 使用的印象,其實不是這樣的。

coreboot 並不是一個 BIOS 用來提供過時的 BIOS callbacks 或是 interrupt routines 的功能,實際上 coreboot 只是一個小型驅動硬體的韌體,只提供基本的硬體初始化,然後就把控制權交給其它眾多的載體之一;這可能是一個 boot loader 像是 FILO 或是最終將取代 FILO 的 GRUB2,假如你想要從磁碟上啟動或是啟動 Plan 9、memtest86、Linux 核心、OpenBIOS、OpenFirmware、SmartFirmware 等。
coreboot 並不是專為 Linux 而製作的,雖然它可以使用 Linux 核心來當作載體,像是你把 Linux 核心放到你的 flash ROM 晶片上面跟 coreboot 放在一起,或是間接透過 FILO 或 GRUB2 來啟動 Linux 核心,不過透過適當的載體也可以用來啟動其它作業系統像是 Plan 9、Windows、FreeBSD 等。
LinuxBIOS/coreboot 這個計劃的發起作者與計劃領導人 Ron Minnich 在郵寄清單上面原本的公告解釋了為何要改名稱更多的細節部份。

消息來源:http://www.hermann-uwe.de/bog/linuxbios-is-now-called-coreboot

作者 : sany0(sany0)
[ 貼文 6 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/2/29 下午 10:07:04
hehe~,
说了你可能不信,最初版本EeePC的快速boot,是我搞出来的。

繁體感覺協調些這里的氛圍。

感覺這里很象BIOS的家。比較貼心。。。
作者 : sany0(sany0)
[ 貼文 6 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/2/29 下午 11:29:07
上面有人提到,自己寫acpiview,最難的就是突破windows的操作physical Memory的限制了吧。
我也曾經嘗試過,可惜我又不會寫driver,只好用那種現成的winio.sys.發現用winio讀IO,沒問題,不過讀DRAM可就不好用羅∼,不知哪位大俠,也有遇到?why? 如果不用winio lib,那用什么方法?
BTW1:
有try過用windows自供的zwXXX API去read physical Memory,其實很多DRAM 也是無法讀取的。比如ACPI Type 3/4部分的區域就不行。

BTW2:
acpiview的evaluate Method,最近發現一個bug,就是
如果你的dsdt里面在device scope下面直接使用了if(FLG1){}之類的clause(而不是像通常在Method里面使用),acpiview就會崩潰!
大家有沒有遇到? 不知acpiview有沒有在更新了∼。

To weber,
Hello. 之前在ASUS, 就聽說你是大牛。經人提點來到這里,發現果然很大牛。 :)
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/3/2 上午 12:03:52
To: sany0:
你是 Kino 的 member 嗎 ?
我訂出 Asus EeePC Software Power management spec
初期是交給 cherry 去寫 ASL code, 現在是 Yelt 在負責這一塊.

我沒空用 IDA Pro Ver.5 去反組繹ACPIView. 不過我猜可以用:
1. read phsyical memory 直接去讀 ACPI BIOS datat structure,
   然後看 ACPI BIOS Spec V.3.0b 來解 format, 取出 ASL code.

2. 利用 MSSMBIOS.SYS or ACPI.SYS 來取得相關的 information.

若我要做, 會用第 (2) 方法, 如此利用 MS 幫我 parsing, 避掉
日後 ACPI BIOS Spec 改版, format 不一致的問題.
MS 會用 MSSMBIOS.SYS/ACPI.SYS 去解決 Spec 相容性問題.
因 Vista/XP 有很多 kernel program 都是利用這兩個 SYS 去
啟動 AML Code or 接收 Event.

至於 zwXXX API 這類的 undocument API 有其限制,
可以去看一些 RootKit 相關的書跟文章.

一些防毒軟體會 block 掉這類 rootkit/undocument API.
防毒軟體公司有付錢給 MS, 做一些技術轉移/合作,
系統廠 SW RD 是無法知道他們會做何種保護.
亂用這些 API 有可能導致相容性問題, 例如在
PCCilline 上可以用, 但到 Kaspersky 就會被擋住.
我建議, 除非萬不得已, 還是盡量用 MS 正規 SDK/DDK API 來 coding.
作者 : sany0(sany0)
[ 貼文 6 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/3/3 上午 09:26:57
To Weber 前輩,
 是的,以前Kino是我的師兄。 當時我只負責EeePC 快速開機部分。

1. 感謝前輩的提點。 我去IDA了下ACPI.SYS,感覺很復雜,不過加了symbol后,還是可以實作查看一些基本函數實現,解疑了以前好奇的OS處理ACPI Table過程的一些部分。IDA 果然很強大很暴力!
2 。 我之前最好奇的是關鍵在如何讀到任意的physical DRAM/MMIO data.
以前我做ACPIVIEW的計劃比較偷懶,是實現DSDT的DUMP+呼叫 IASL.exe 來做AML=>ASL的轉換。
3. 前輩提到的“利用 MSSMBIOS.SYS or ACPI.SYS 來取得相關的 information”,方法非常獨特,很有長處。ACPIVIEW和ACPISCOPE看起來都不曾使用這種方法。
如果要使用,是不是得必須先IDA這兩只file,摸清可以使用的function(例如int __stdcall ACPIRegDumpAcpiTable(int,int,ULONG DataSize,int)等等),讓后強行找到 system下 function entry Address來call過去來為我所用?


作者 : davidju(juju)
[ 貼文 1 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/3/18 上午 10:27:18
实在找不到繁体的输入法。就用一下简体吧。
sany0 同学都出现了, 我也来冒个泡。
的确这个话题我觉得是这个比较经典的话题,是以一个系统的概念去考虑的。
的确作为一个bios 不能只知道去写asl,还应该知道OS 对于它的解析,以及怎么让Application 与 底层的ASL code 如何交互。
作者 : srjing2(大班)
[ 貼文 6 | 人氣 482 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/6/17 下午 06:17:20
weber 你好 :
我想請問你的ACPI Driver 是用什麼方式安裝?
我用Devcon.exe 安裝, 結果在 Device Manager 會出現2個Device , 你知道如何解決嗎?
 板主 : 徵求中
 > 組合語言 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 組合語言 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
組合語言
1 H 2220 
2 liaoo 990 
3 青衫 970 
4 牧童哥 940 
5 史努比 920 
6 qq 480 
7 GHOST-JACKY 330 
8 ]CALL-151 310 
9 harrison 300 
10 掌握文武半邊天 280 
組合語言
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.265625