eSPI 接口是用于取代 LPC 接口的,因此它全面兼容 LPC 總線的功能。電氣規范上,eSPI 復用了 SPI ,因此通訊頻率最高提升到 66MHz。電壓降到 1.8V,進一步降低了通訊功耗。但是二者協議層完全不一樣,SPI 協議無法解碼 eSPI 通訊。
eSPI 總線除了兼容 LPC 總線功能,同時還把 OOB(out of band)的 Smbus 和 SideBand 的 GPIO全部轉換為 In Band Message,以減少 PCH 和 EC 連接的 pin。
eSPI 為了兼容 LPC 并且進一步囊括更多數據類型的通訊,以減少 PCH 和 EC 連接引腳。因此在eSPI 總線上,根據數據類型劃分了 4個 Data Channel。
即 Peripheral Channel、Virtual Wire Channel、OOB Channel、Flash Access Channel。eSPI 啟動過程需要配置這 4個 通訊 Channel,本文簡單介紹了這 4個 Channel 的功能。
下圖描述了 LPC_Master(PCH) 和 LPC_Slave(EC)的結構。
圖中可以看出除了 LPC 接口外,還有 Smbus、GPIO 接口。
下圖描述了 eSPI-Master(PCH) 和 eSPI_Slave(EC)的結構。
圖中可以看出,eSPI 總線兼容了 Smbus、GPIO。
所謂 Channel,是 eSPI 規范定義的一個虛擬的、邏輯上的數據通道,以便在 eSPI 總線上傳遞 4類數據流,同時保證這 4類數據流之間相互獨立互不干擾。
在協議層面,每個 Channel 有定義專用的 Command 和 Payload(即數據包格式)。
在硬件層面,每個 Channel 都有獨立的 data buffer,并且相應的 Tx/Rx Avail/Free 狀態都呈現在 Status Register中。
CPU 啟動過程中,eSPI Channel Config 其實就是 eSPI-Master 讀取并改寫 eSPI-Slave 端的一些寄存器,以便 eSPI-Master 和 eSPI-Slave 就 Channel 的通訊能力達成一致。
因此,EC 作為 eSPI Slave,需要按照 eSPI 規范針對每個 Channel 實現了一組寄存器,用以描述并且接收 eSPI-Master配置 Channel 的一些通訊特性。
General Capabilities and Configurations
eSPI 通用描述寄存器,Slave Register Start Address 是 0x08。
eSPI-Master 先通過 GET_CONFIGURATION 命令獲取 eSPI-Slave 端支持的通訊參數。
緊接著 eSPI-Master 通過 SET_CONFIGURATION 命令配置 eSPI-Slave 端的通訊參數。
主要涉及 eSPI 的 IO-Mode、Speed、CRC-Check、Alert-Mode。下圖可看出,配置了 66MHz、Quad-IO。
Peripheral Channel
外設通道,Slave Register Start Address 是 0x10,32bit 寄存器配置了外設通道通訊的參數。外設通過主要傳輸 Memory request packet,
I/O request packet,Message request packet。
相較于 LPC 而言,承接了 IO Cycle,Memory Cycle 的通信以兼容 Legacy SIO Device。
Platform Reset(PLTRST#) 信號拉低會復位 Peripheral Channel。
Virtual Wire Channel
虛擬線通道,Slave Register Start Address 是 0x20,32bit 寄存器配置了虛擬線通道通訊的參數。顧名思義,Virtual Wire Channel 就是把 PCH 的 Sideband pin 或者 GPIO 轉換為 eSPI 的 in-band Message 傳遞的通道。
Sidebang pin 主要有 IRQ#、PME#、SCI#、SMI#、RCIN# 以及一些無意義的通用 GPIO。
Virtual Wire 還會傳遞一些針對 eSPI 擴展的虛擬狀態信號,例如 SLAVE_BOOT_LOAD_DONE。
OOB Channel
Out-of-bund 通道,Slave Register Start Address 是 0x30,32bit 寄存器配置了 OOB 通道通訊的參數。
OOB 通道的數據比較簡單,就是負責傳輸 Out-of-bang Processor 和 EC/BMC 之間的 Smbus Message。
當然 eSPI 上傳輸的是把 Smbus Message 重新打包后的 OOB Message。
Run-time Flash Access Channel
Flash 訪問通道,Slave Register Start Address 是 0x40,32bit 寄存器配置了 Flash 通道通訊的參數。
Flash Channel 解決的是 eSPI-Master 和 eSPI-Slave 之間 SPI Flash 共享的問題,以減少設計 BOM。
第一種,Flash 接在 PCH 上,EC 透過 eSPI 訪問 Flash,稱之為 MAFS。
第二種,Flash 接在 EC 上,PCH 透過 eSPI 訪問 Flash,專用于 Server 平臺,稱之為 SAFS。
至此,eSPI 的四個數據通過就已簡介完畢,通訊數據格式以及不同通道通訊專用命令,可參考 eSPI Spec。
-
SPI
+關注
關注
17文章
1722瀏覽量
92130 -
通訊
+關注
關注
9文章
912瀏覽量
35084 -
總線
+關注
關注
10文章
2903瀏覽量
88399 -
光接口
+關注
關注
0文章
14瀏覽量
9521
發布評論請先 登錄
相關推薦
eSPI協議抓包分析
![<b class='flag-5'>eSPI</b>協議抓包分析](https://file1.elecfans.com/web2/M00/AF/11/wKgaomVYZuGACx6XAAMWzDqon_o743.jpg)
回收羅德施瓦茨ESPI3進口接收機ESPI3
STM32頭文件功能解析
按鍵部分功能解析備注
數控實習教學中比例縮放功能解析
HDMI音頻功能解析
數字調音臺功能解析
智能小車有那些功能智能小車的五個功能解析包含程序
![智能小車有那些<b class='flag-5'>功能</b>智能小車的五個<b class='flag-5'>功能解析</b>包含程序](https://file.elecfans.com/web1/M00/79/54/pIYBAFv89L6ATvGqAAD59Yus1q4834.png)
LabVIEW的GPIB的總線標準接口功能解析
tft_espi和nodemcu連接
![tft_<b class='flag-5'>espi</b>和nodemcu連接](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
淺談發展中的eSPI總線應用優勢
![淺談發展中的<b class='flag-5'>eSPI</b>總線應用優勢](https://file.elecfans.com/web2/M00/36/6B/pYYBAGIy9O2AcuPtAAAjwZfmzn8505.png)
評論