Host是如何與EC通訊的

2021-10-12 05:07:05 字數 3049 閱讀 9124

第一種方式:遵循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系統。蜜罐系統可以對攻擊者訪問的日誌資訊進行網路行為分析,從殭屍網路的流量中找到某一家族的行為特徵。例如通過什麼方式進入系統中,是郵件還是應用層漏洞或者是協議漏洞,對該家族的殭屍網路進行攻擊手法剖析,並持續進行監測分析,發現殭屍網路通過更新後特徵...