討論區快速選單
知識庫快速選單
掌握Salesforce雲端管理秘訣 網路投保旅行平安險 程式設計俱樂部Facebook粉絲團
[ 回上頁 ] [ 討論區發言規則 ]
如何使用smi 方式打開usb 光碟機
更改我的閱讀文章字型大小
作者 : ghostj(GHOST-JACKY) 貼文超過200則人氣指數超過10000點
[ 貼文 236 | 人氣 25354 | 評價 330 | 評價/貼文 1.4 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/7/8 上午 10:21:54
我們有提供一個CDROM的eject hot-key 但是這就是我的惡夢了

該開始有說只提供 esata 介面的外接cdrom 很辛苦的寫了ahci 方式的eject

現在又說要支援usb介面的cdrom 哇勒有人有這方面的經驗嗎 我是使用p-bios
作者 : harrison(harrison) 貼文超過200則人氣指數超過30000點
[ 貼文 232 | 人氣 43332 | 評價 330 | 評價/貼文 1.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人ghostj註記此篇回應為很有道理 2008/7/8 上午 11:06:02
我那時候在POST過程中成功的透過INT13h所提供的Services去送USB 封包指令(BIOS自己的USB Driver),但是在SMM mode之中我那時候是失敗的,因為在進入OS之後會由OS的USB Driver接手,且Controller的Owner semaphore會是一個很大的問題,雖然已經進入到SMM模式...

而在OS端(我是指AP),你一樣可以呼叫INT 13h去Eject CDROM (因為OS自己會處理Legacy INT13h然後轉給OS的USB Driver做處理),但是在BIOS端你就算呼叫也沒用,因為BIOS端的USB driver在此時是不工作的,所以會當機......(我當初就是想重新讓他工作,不過我失敗了!)

而我的建議是你可以先查看BIOS程式碼中的那段INT13h code,他會去設定USB Controller並且得到控制權且建立相關的介面,之後你就可以送指令封包去控制USB設備,

而我當初作法是想在SMM模式中模擬那段程式碼的做法來重新得到Controller控制權,但是會跟OS發生搶資源的衝突而造成當機(我不知道如何避免),不過後來聽說 P BIOS日本公司的人有成功的這樣做! 你如果有認識P公司原廠的人或許可以問問看!

目前Intel USB EHCI Spec我沒還沒看完你可以參考看看會很有幫助,而目前對我來說這本Spec還是個天書...>.<
作者 : ghostj(GHOST-JACKY) 貼文超過200則人氣指數超過10000點
[ 貼文 236 | 人氣 25354 | 評價 330 | 評價/貼文 1.4 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/7/8 下午 02:21:13
感謝你的回應 目前應該會試試看是否可以運用smi的一些function
若有其他人也有相關資訊 希望大家一起討論
作者 : ghostj(GHOST-JACKY) 貼文超過200則人氣指數超過10000點
[ 貼文 236 | 人氣 25354 | 評價 330 | 評價/貼文 1.4 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/7/12 上午 10:22:08
目前聯BIOS VENDOR都說對於這一段CODE很困難 怕引響OS與USB DEVICE的聯繫

真是傷腦筋阿 不過想請問大家都沒有遇到吸入式光碟機的問題嗎

現在大家都把EJECT button拿掉了 說是為了美觀 但卻搞死了BIOS工程師

@@
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/7/13 下午 03:14:35
BIOS RD 拿我以前寫的 ACPI Driver 幫 HP 作相同功能.
實作起來非常簡單.

按下 Hot Key 產生 notify code, 去通知躲在 Application Layer 的
App. 然後 App 用 WinSDK 的 DVD/CD-ROM API 去做 eject 動作.

不管你是 USB/SATA/... 介面的 CD/DVD/BlueRay/HD-ROM/RAM 全部通吃.
因為只要想搭配 Window 的光碟機廠, 一定會乖乖支援 WinSDK,
去通過 Window WHQL, 拿 Win certification.

這就是從系統角度跟從 BIOS 角度來解問題的差異化.
BIOS 只能單打獨鬥, 但市面上那麼多的規格/介面, 很難一網打盡.
但用系統提供的 API/Library 來做, 卻是易如反掌.

解法很多種, 通常摸過越多亂七八糟技術的人,
會更容易想到簡單但很有效率的解法.
作者 : seanchang(H) Assembly卓越專家貼文超過1000則
[ 貼文 1200 | 人氣 773 | 評價 3240 | 評價/貼文 2.7 | 送出評價 43 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/7/14 上午 10:32:24
>這就是從系統角度跟從 BIOS 角度來解問題的差異化.
>BIOS 只能單打獨鬥, 但市面上那麼多的規格/介面, 很難一網打盡.
>但用系統提供的 API/Library 來做, 卻是易如反掌.
>解法很多種, 通常摸過越多亂七八糟技術的人,
>會更容易想到簡單但很有效率的解法.
完全同意你的看法. 不過像我們這種在代工廠混生活的, 很多時候無法選擇這種簡單有效率的方法.除非microsoft inbox已經提供或是大家都轉Linux. 軟體這東西畢竟有copyright的問題, 一旦代工廠寫了軟體, 我們的客戶就會有所顧忌. 我這裡之前有一些打算自己寫程式+driver做的功能就是這樣被客戶拒絕掉,最後只好設計了一堆硬體線路+BIOS完成. 畢竟其他代工廠沒有權利使用我們的程式(or driver). 雖然我們公司已經是世界第一. 客戶也不想被我們吃死.
BIOS是因為BIOS vandor的授權廠商可以任意修改, 又是授權跟著MB的. 等於是買板子送BIOS. 我相信你應該也了解到作板子根本沒啥了不起的.要找到會做的廠商實在事太容易了. eeepc是貴公司邁向真正系統廠的試金石.我也在拭目以待這個單位的發展. 也許會讓死水已久的PC業界重新再出現新的波濤.
作者 : ghostj(GHOST-JACKY) 貼文超過200則人氣指數超過10000點
[ 貼文 236 | 人氣 25354 | 評價 330 | 評價/貼文 1.4 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/7/14 下午 09:31:02

>BIOS RD 拿我以前寫的 ACPI Driver 幫 HP 作相同功能.
>實作起來非常簡單.
>
>按下 Hot Key 產生 notify code, 去通知躲在 Application Layer 的
>App. 然後 App 用 WinSDK 的 DVD/CD-ROM API 去做 eject 動作.
>
>不管你是 USB/SATA/... 介面的 CD/DVD/BlueRay/HD-ROM/RAM 全部通吃.
>因為只要想搭配 Window 的光碟機廠, 一定會乖乖支援 WinSDK,
>去通過 Window WHQL, 拿 Win certification.
>
>這就是從系統角度跟從 BIOS 角度來解問題的差異化.
>BIOS 只能單打獨鬥, 但市面上那麼多的規格/介面, 很難一網打盡.
>但用系統提供的 API/Library 來做, 卻是易如反掌.
>
>解法很多種, 通常摸過越多亂七八糟技術的人,
>會更容易想到簡單但很有效率的解法.

用AP也是有想過,不過會有一些問題就是沒裝AP HOT-KEY就無功能

另外我們的AP是用 scan code 來判斷有人按KEY 但是這種方式會有被攔走的危險

我有試過用WMI來通知AP 請問WMI會被攔走嗎?

作者 : cshihhsu(CS)
[ 貼文 1 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/9/16 下午 10:02:46
>我們有提供一個CDROM的eject hot-key 但是這就是我的惡夢了
>
>該開始有說只提供 esata 介面的外接cdrom 很辛苦的寫了ahci 方式的eject
>
>現在又說要支援usb介面的cdrom 哇勒有人有這方面的經驗嗎 我是使用p-bios

小弟目前也正在寫一段code,user按下hot key,BIOS會去做cd eject. 但因為我的案子的CD-ROM是接在SATA Port,且init成AHCI Mode,在此想請教前輩是如何去在AHCI Mode下ATAPI command的呢? Thanks.
我以前做過IDE Mode的CD eject,但AHCI Mode就真的不熟了.
作者 : ghostj(GHOST-JACKY) 貼文超過200則人氣指數超過10000點
[ 貼文 236 | 人氣 25354 | 評價 330 | 評價/貼文 1.4 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/9/18 上午 10:53:37
>小弟目前也正在寫一段code,user按下hot key,BIOS會去做cd eject. 但因為我的案子的CD-ROM是接在SATA Port,且init成AHCI Mode,在此想請教前輩是如何去在AHCI Mode下ATAPI command的呢? Thanks.
>我以前做過IDE Mode的CD eject,但AHCI Mode就真的不熟了.
>
I have the experience of IDE eject, it is easier than AHCI eject.
if you want to program the AHCI eject, you need to read AHCI Spec and build up AHCI command structure.
it isnt easy.
作者 : fartice(fartice)
[ 貼文 5 | 人氣 762 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/4/28 上午 03:39:14
小弟在DOS下用Watcom C兜了完整的AHCI架構(指標真好用^^)
實做指令完成後,又將基本架構節錄到BIOS code中去作AHCI eject(SMM環境)

發現最大的問題在於PxIS為唯讀
一旦在SMM中做完AHCI eject,幾乎所有的Reg都可以還原
唯獨PxIS無法修改

考慮到在特定環境下,AHCI controller會被嚇到(啥,PxIS你怎麼突然變這樣??)
甚至造成更多OS中的issue,計畫擱淺......

(後記:老闆說鳥牌BIOS已經達成AHCI eject,但就我的觀察,仍就卡關中)
作者 : ghostj(GHOST-JACKY) 貼文超過200則人氣指數超過10000點
[ 貼文 236 | 人氣 25354 | 評價 330 | 評價/貼文 1.4 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/5/4 上午 11:24:35
呵呵鳥牌 我們也是用鳥牌的

目前是可以做到SMI發出中斷去退片 不過這種方式也有SIDE-Effect.

1. SMI 方式退片 根本不考慮 OS的狀態 容易照成怪異現象
尤其當USER正在使用光碟機看DVD或其他運用時

2. 會引起播音有問題
因為SMI會強力中斷任何運用程式 導致若CODE執行時間太長會讓USER發現中斷現象

作者 : sew850i(Angel)
[ 貼文 10 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/5/8 下午 05:25:59
ghostj(GHOST-JACKY) 可以有你的MSN嬤?
我想請教這問題的相關問題,謝!
作者 : sew850i(Angel)
[ 貼文 10 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/6/3 下午 08:40:34
請問大大
如果我要知道光碟機的現在的狀態呢?
一樣是發SMI,我所知道的是去利用request sense,and then?
作者 : sew850i(Angel)
[ 貼文 10 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/6/3 下午 08:40:48
請問大大
如果我要知道光碟機的現在的狀態呢?
一樣是發SMI,我所知道的是去利用request sense,and then?
作者 : sew850i(Angel)
[ 貼文 10 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/6/3 下午 08:40:56
請問大大
如果我要知道光碟機的現在的狀態呢?
一樣是發SMI,我所知道的是去利用request sense,and then?
作者 : kunyi(Kun-Yi)
[ 貼文 1 | 人氣 1 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/3/4 下午 12:04:59
用 SMI 方式 下 Start/Stop (1Bh) command 後, OS 並不知道光碟已經退出,
要如何讓 CDROM 發出 event 讓 OS知道 medium change?
 板主 : 徵求中
 > 組合語言 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 組合語言 - 知識庫
  ■ 全站最新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.109375