eSPI 接口是用于取代 LPC 接口的,因此它全面兼容 LPC 總線(xiàn)的功能。電氣規(guī)范上,eSPI 復(fù)用了 SPI ,因此通訊頻率最高提升到 66MHz。電壓降到 1.8V,進(jìn)一步降低了通訊功耗。但是二者協(xié)議層完全不一樣,SPI 協(xié)議無(wú)法解碼 eSPI 通訊。
eSPI 總線(xiàn)除了兼容 LPC 總線(xiàn)功能,同時(shí)還把 OOB(out of band)的 Smbus 和 SideBand 的 GPIO全部轉(zhuǎn)換為 In Band Message,以減少 PCH 和 EC 連接的 pin。
eSPI 為了兼容 LPC 并且進(jìn)一步囊括更多數(shù)據(jù)類(lèi)型的通訊,以減少 PCH 和 EC 連接引腳。因此在eSPI 總線(xiàn)上,根據(jù)數(shù)據(jù)類(lèi)型劃分了 4個(gè) Data Channel。
即 Peripheral Channel、Virtual Wire Channel、OOB Channel、Flash Access Channel。eSPI 啟動(dòng)過(guò)程需要配置這 4個(gè) 通訊 Channel,本文簡(jiǎn)單介紹了這 4個(gè) Channel 的功能。
下圖描述了 LPC_Master(PCH) 和 LPC_Slave(EC)的結(jié)構(gòu)。
圖中可以看出除了 LPC 接口外,還有 Smbus、GPIO 接口。

下圖描述了 eSPI-Master(PCH) 和 eSPI_Slave(EC)的結(jié)構(gòu)。
圖中可以看出,eSPI 總線(xiàn)兼容了 Smbus、GPIO。

所謂 Channel,是 eSPI 規(guī)范定義的一個(gè)虛擬的、邏輯上的數(shù)據(jù)通道,以便在 eSPI 總線(xiàn)上傳遞 4類(lèi)數(shù)據(jù)流,同時(shí)保證這 4類(lèi)數(shù)據(jù)流之間相互獨(dú)立互不干擾。
在協(xié)議層面,每個(gè) Channel 有定義專(zhuān)用的 Command 和 Payload(即數(shù)據(jù)包格式)。
在硬件層面,每個(gè) Channel 都有獨(dú)立的 data buffer,并且相應(yīng)的 Tx/Rx Avail/Free 狀態(tài)都呈現(xiàn)在 Status Register中。

CPU 啟動(dòng)過(guò)程中,eSPI Channel Config 其實(shí)就是 eSPI-Master 讀取并改寫(xiě) eSPI-Slave 端的一些寄存器,以便 eSPI-Master 和 eSPI-Slave 就 Channel 的通訊能力達(dá)成一致。
因此,EC 作為 eSPI Slave,需要按照 eSPI 規(guī)范針對(duì)每個(gè) Channel 實(shí)現(xiàn)了一組寄存器,用以描述并且接收 eSPI-Master配置 Channel 的一些通訊特性。

General Capabilities and Configurations
eSPI 通用描述寄存器,Slave Register Start Address 是 0x08。
eSPI-Master 先通過(guò) GET_CONFIGURATION 命令獲取 eSPI-Slave 端支持的通訊參數(shù)。

緊接著 eSPI-Master 通過(guò) SET_CONFIGURATION 命令配置 eSPI-Slave 端的通訊參數(shù)。
主要涉及 eSPI 的 IO-Mode、Speed、CRC-Check、Alert-Mode。下圖可看出,配置了 66MHz、Quad-IO。

Peripheral Channel
外設(shè)通道,Slave Register Start Address 是 0x10,32bit 寄存器配置了外設(shè)通道通訊的參數(shù)。外設(shè)通過(guò)主要傳輸 Memory request packet,
I/O request packet,Message request packet。
相較于 LPC 而言,承接了 IO Cycle,Memory Cycle 的通信以兼容 Legacy SIO Device。
Platform Reset(PLTRST#) 信號(hào)拉低會(huì)復(fù)位 Peripheral Channel。
Virtual Wire Channel
虛擬線(xiàn)通道,Slave Register Start Address 是 0x20,32bit 寄存器配置了虛擬線(xiàn)通道通訊的參數(shù)。顧名思義,Virtual Wire Channel 就是把 PCH 的 Sideband pin 或者 GPIO 轉(zhuǎn)換為 eSPI 的 in-band Message 傳遞的通道。
Sidebang pin 主要有 IRQ#、PME#、SCI#、SMI#、RCIN# 以及一些無(wú)意義的通用 GPIO。
Virtual Wire 還會(huì)傳遞一些針對(duì) eSPI 擴(kuò)展的虛擬狀態(tài)信號(hào),例如 SLAVE_BOOT_LOAD_DONE。

OOB Channel
Out-of-bund 通道,Slave Register Start Address 是 0x30,32bit 寄存器配置了 OOB 通道通訊的參數(shù)。
OOB 通道的數(shù)據(jù)比較簡(jiǎn)單,就是負(fù)責(zé)傳輸 Out-of-bang Processor 和 EC/BMC 之間的 Smbus Message。
當(dāng)然 eSPI 上傳輸?shù)氖前?Smbus Message 重新打包后的 OOB Message。

Run-time Flash Access Channel
Flash 訪(fǎng)問(wèn)通道,Slave Register Start Address 是 0x40,32bit 寄存器配置了 Flash 通道通訊的參數(shù)。
Flash Channel 解決的是 eSPI-Master 和 eSPI-Slave 之間 SPI Flash 共享的問(wèn)題,以減少設(shè)計(jì) BOM。

第一種,F(xiàn)lash 接在 PCH 上,EC 透過(guò) eSPI 訪(fǎng)問(wèn) Flash,稱(chēng)之為 MAFS。

第二種,F(xiàn)lash 接在 EC 上,PCH 透過(guò) eSPI 訪(fǎng)問(wèn) Flash,專(zhuān)用于 Server 平臺(tái),稱(chēng)之為 SAFS。

至此,eSPI 的四個(gè)數(shù)據(jù)通過(guò)就已簡(jiǎn)介完畢,通訊數(shù)據(jù)格式以及不同通道通訊專(zhuān)用命令,可參考 eSPI Spec。
-
SPI
+關(guān)注
關(guān)注
17文章
1885瀏覽量
101300 -
通訊
+關(guān)注
關(guān)注
9文章
949瀏覽量
36545 -
總線(xiàn)
+關(guān)注
關(guān)注
10文章
3040瀏覽量
91681 -
光接口
+關(guān)注
關(guān)注
0文章
16瀏覽量
9711
發(fā)布評(píng)論請(qǐng)先 登錄
eSPI協(xié)議抓包分析
常見(jiàn)eSPI通訊數(shù)據(jù)包的分析
LabVIEW運(yùn)行性能解析視頻教程
回收羅德施瓦茨ESPI3進(jìn)口接收機(jī)ESPI3
STM32頭文件功能解析
按鍵部分功能解析備注
數(shù)控實(shí)習(xí)教學(xué)中比例縮放功能解析
HDMI音頻功能解析
數(shù)字調(diào)音臺(tái)功能解析
LabVIEW的GPIB的總線(xiàn)標(biāo)準(zhǔn)接口功能解析
tft_espi和nodemcu連接
淺談發(fā)展中的eSPI總線(xiàn)應(yīng)用優(yōu)勢(shì)
eSPI接口通道功能解析
評(píng)論