bios與EC 直接資料訪問

2021-10-18 19:56:21 字數 1749 閱讀 3588

簡單得說,就像人與人交流,需要語言,這個語言又可以分為很多種,比如普通話,方言,外語。所以根據實際場合去用正確得語言也是很重要得。那麼就像bios與ec間得通訊,是通過protocol去訪問。當然這裡得protocol就像剛才說得語言,但這個語言裡包含了許多種各個場合對應得交流方式

所以看下這塊protocol

typedef struct _efi_toshiba_ec_access efi_toshiba_ec_access_protocol;

extern efi_guid gefitoshibaecaccessprotocolguid;

當然這個protocol內容不止這麼點,樓主有刪掉許多

那麼塊protocol就是bios 與ec之間得訪問****

那麼舉個例子,bios 發個restart 得flag 給ec,當ec超時後也能開機

debug

((efi_d_info,

"checkandresetsystem. set reset into to ec, reset type = :0x%x\n"

, resettype));

if(resettype != efiresetplatformspecific)

}

那麼這裡 sp_cmd_set_restart_info ,n_restart_info是ec restart 變數,這些有關得資訊在eccommonaccess.h.根據各個場景選擇引數。

gbs->stall(1000 * 100) 這個做延後動作當ec timeout 後,這個flag會生效。

再簡單得如setup 下面獲取ec得資訊,或者pdc fw資訊

status = mecaccess->getecctrldata (mecaccess, r_ec_ctrl_pdc0_fw_ver_h,

&pdcverhigh)

;assert_efi_error

(status)

; status = mecaccess->getecctrldata (mecaccess, r_ec_ctrl_pdc0_fw_ver_l,

&pdcverlow)

;assert_efi_error

(status)

;debug

((efi_d_error,

"pdc fw ver is v%x.%x.%02x\n"

,(pdcverhigh >>4)

&0xf

, pdcverhigh &

0xf, pdcverlow));

initstring (hiihandle,

string_token

(str_pdc_version_value)

, l"%x.%x.%02x"

,(pdcverhigh >>4)

&0xf

, pdcverhigh &

0xf, pdcverlow)

;

pdc fw資訊在這裡插入**片包含倆個hign ,low,所以我們定義倆個pdcverhigh,pdcverhigh來接收資訊。r_ec_ctrl_pdc0_fw_ver_h 這個引數也是再eccommonaccess.h裡,那麼 呼叫initstring 函式來在setup下面去顯示 ,str_pdc_version_value為定義得變數,setupstrings.uni檔案裡定義,當然還需要定義個promot 得資訊 指這個資訊是pdc fw 資訊

DOS與BIOS中斷資料

dos與bios中斷資料 2007 09 05 21 33 dos設有int 00h處理程式,系統將顯示 divide overflo 結束當前程式的執行。04h 1h 1 單步除錯時處理器發出的中斷 08h 2h 2 非遮蔽中斷 0ch 3h 3 除錯程式設定斷點時處理器發出的中斷 10h 4h ...

EXE與SYS通訊 直接訪問模式

exe部分 head.h ifndef ctl code pragma message n n exe include winioctl.h include ctl code ntddk.h wdm.h else pragma message n n sys no include winioctl....

java直接訪問資料庫檔案

class.forname sun.jdbc.odbc.jdbcodbcdriver string url jdbc odbc printdata 這樣寫必須在系統odbc中建立乙個指向printdata.mdb資料庫的資料來源 以下方式就可以直接訪問printdata.mdb資料庫檔案了,這個檔案...