2008年9月22日 星期一

POST時,BIOS存DATA的方法

作者:常世勳

因為POST時,當BIOS被Shadow至F000後,BIOS會去設定Chipset將此段區間(F000,E000..如果BIOS COde也有被shadow至E000的話)設為Read only,以防止BIOS Code被破壞.
所以若想要在BIOS Post過程去儲存一些我們OEM會用到的資料或設定OEM的變數,有以下三種方法:
1.CMOS
2.BIOS Data Area (40 Data Area)
3.PM segment (A000,B000)...SM Ram...藉由發software SMI去執行一段我們自己的code去儲存資料於SM RAM .
PS: 需注意:我們加的這段CODE要在SMI init即VGA init之後(可由posttbl.asm去查詢),否則會有問題.
4.Flash part, 例如UEFI BIOS所使用的variable是存放在flash part內的,在UEFI的spec中,是已捨棄CMOS,而改為使用flash part來當做storage;當然這部份仍需視每家BIOS vednor的實作而定,例如Phoenix的Benton BIOS是CMOS及flash part都會使用到的.

沒有留言: