第一種方式:遵循acpi規範完成通訊,通過lpc的62h、64h偏移/埠。
此種方式適合host對ec進行讀寫操作。
ec提供256位元組的可被系統讀寫的ram空間,ec的資源在該ram空間對映,通過訪問對應偏移(0x00~0xff),即可操作對應的資源。實際上就是外部ram的前256位元組。ec會將鍵盤、觸控板、電池、溫度感測器等一些裝置的狀態資訊儲存在此位址範圍空間的ram記憶體中,不同host的ec規範略有不同。
ec中有三個暫存器,分別為狀態暫存器ec_sc、命令暫存器ec_sc和資料暫存器ec_data。而狀態暫存器和命令暫存器同屬於乙個暫存器,這幾個暫存器遵循著acpi規範。host可以根據acpi協議規範來與ec進行通訊。
ec暫存器埠分配
暫存器偏移/埠
r/w說明
ec_sc
0x66
rec狀態暫存器
ec_sc
0x66
wec命令暫存器
ec_data
0x62
r/wec資料暫存器
以下是暫存器的詳細介紹。
ec狀態暫存器(ec_sc(r)),該暫存器是乙個唯讀暫存器,它反映了此時ec介面的狀態。下圖為該暫存器表。
ec狀態暫存器表中各位的具體含義:
obf(output buffer is full),該狀態位置1時,意味著ec已經將乙個位元組的資料寫入了命令/資料埠中,但是此時host還沒有讀出/取走該資料。當host讀取ec的狀態暫存器發現該位置1時,host將會從命令/資料埠中取走資料,取走資料後,硬體將自動為該位清零。此時表明資料已經被host取走,ec可以再次向host寫入更多的資料了。
ibf(input buffer is full),該狀態位置1時,意味著host已經將一位元組的資料寫入到了ec的命令/資料埠中,但此時ec並未將此位元組的資料/命令取走,當ec將測到該標誌位為1時,ec將取走主機寫入的命令/資料,讀取完成後,已經將自動為該位清零。此時host可以向ec寫入更多的資料了。
sci_evt(system command interrupt_event),當該位置1時,ec檢測到乙個需要host的控制程式注意的內部事件。
smi_evt(system control interrupt_event),當該位置1時,ec檢測到乙個需要host的管理中斷服務程式注意的內部事件。
burst位置1時,表實ec已經收到了來自host的burst enable命令,ec已經停止了正常的處理,等待從host發來的一系列命令。這允許host一次快速讀取/寫入幾個位元組的資料/命令而沒有命令間的scis開銷。
cmd標誌位置1時,表實資料暫存器中的資料為命令位元組,當該位為0時,表實資料暫存器中的資料為資料位元組。
ec命令暫存器(ec_sc (w)),這是乙個只寫暫存器,允許host向ec發出命令。當一位元組資料寫入後,ec狀態暫存器中的ibf和cmd位都為1,表明該資料位命令資料。
ec資料存器(ec_data (r/w)),這是乙個讀寫暫存器,該暫存器允許host與ec雙向通訊。
host是如何通過acpi規範來與ec通訊的呢,其實是通過0x62、0x66偏移/埠(lpc匯流排)來進行資料交換。資料交換的形式和步驟如下:
ec提供256位元組的可被系統讀寫的ram空間,ec的資源在該ram空間對映,通過訪問對應偏移(0x00~0xff),即可操作對應的資源。
例如主機要獲取電池的的電量情況,host可以通過ec命令集來獲取,ec命令集如下:
ec命令集
host可以先向ec傳送0x80讀取ec暫存器命令,緊接在0x80後面的是乙個ec的ram資源的位址偏移,host等待ec的狀態暫存器obf置位時,host可以取走ec_data資料暫存器中的內容,改內容即位host請求讀取的資料。
第二種方式:利用kbc完成通訊,通過lpc的60h、64h偏移/埠。
host與ec通過0x62/0x66偏移/埠來進行通訊,是需要遵循apci規範的;host也可以直接通過0x60/0x64偏移/埠與kbc來進行通訊,kbc收到資料後進一步將資料轉移給ec。
在此方式下,不僅host可以對ec進行讀寫操作,而且ec同樣可以對host進行讀寫操作
kbc暫存器埠分配
暫存器偏移/埠
r/w說明
kbc_sc
0x64
r鍵盤控制狀態暫存器
kbc_sc
0x64
w鍵盤控制命令暫存器
kbc_data
0x60
r/w鍵盤控制資料暫存器
host可以先向ec傳送0x80讀取ec暫存器命令,緊接在0x80後面的是乙個ec的ram資源的位址偏移,host等待ec的狀態暫存器obf置位時,host可以取走ec_data資料暫存器中的內容,改內容即位host請求讀取的資料。
讀操作:
1.往ec的command port寫入0x80命令
2.往ec的data port寫入需要讀取的資料的offset
3.讀取ec的data port,讀到的資料便是結果
寫操作:
1.往ec的command port寫入0x81命令
2.往ec的data port寫入所寫資料的offset
3.往ec的data port寫入所寫資料的值
host檔案位址 DNS與host到底是什麼呢?
什麼是dns?domain name system 網域名稱系統 全球資訊網上作為網域名稱和ip位址相互對映的乙個分布式資料庫,能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的ip數串。mmp,講人話!請記住一下標籤 本 雲 本 有很多 號碼的 本 雖然這是廢話。dns就是幫你把身...
Lan內部是如何完成通訊的
乙太網是資料鏈路層的一種通用協議,乙太網包的標頭里包含傳送方和接受方的mac位址。資料報裡存放ip 網路層 的東西。網路層的標頭里存放傳送方和接受方的ip位址,資料長度,資料報裡存放tcp udp 傳輸層 的東西 udp的表頭里存放傳送方和接受方的埠,tcp的話除此之外還會放置保證傳輸的各種屬性。傳...
apt的通訊通道是如何發現的?
1 流量監測 流量監測中使用最多的就是蜜罐系統和ids系統。蜜罐系統可以對攻擊者訪問的日誌資訊進行網路行為分析,從殭屍網路的流量中找到某一家族的行為特徵。例如通過什麼方式進入系統中,是郵件還是應用層漏洞或者是協議漏洞,對該家族的殭屍網路進行攻擊手法剖析,並持續進行監測分析,發現殭屍網路通過更新後特徵...