Hardware 設(shè)計(jì)
對(duì)于 Intel 平臺(tái),自 ICL Lake 開(kāi)始,就不再支持 LPC,僅支持 eSPI。
以 TGL 平臺(tái)為例,硬件設(shè)計(jì)上需要注意如下兩點(diǎn)。
一,Hardware Strap Pin
GPP_C5、GPP_H0、GPP_H1、GPP_H2,四個(gè) pin 按順序組成 4-Bit Boot Strap Pin。配置規(guī)則如下表格:
0000 = Master Attached Flash Configuration (BIOS / CSME onSPI). eSPI is enabled |
---|
0010 = Master Attached Flash Configuration (BIOS / CSME onSPI). eSPI is disabled |
0100 = BIOS on eSPI Peripheral Channel; CSME on masterattached SPI |
1000 = Slave Attached Flash Configuration (BIOS / CSME oneSPI attached device). |
1100 = BIOS on eSPI peripheral Channel; CSME on slaveattached SPI. |
常規(guī)設(shè)計(jì)都是 MAF,eSPI Enable。正常的配置需要 0000,四個(gè) pin 內(nèi)部都有 20K 的下拉,因此 Strap Pin 保持 Floating 即可。
注意:不同 CPU 平臺(tái),Strap Pin 有差異,以對(duì)應(yīng)平臺(tái) EDS 文檔描述為準(zhǔn)。
二,F(xiàn)lash Access
為了降低硬件設(shè)計(jì) BOM 成本,CPU 設(shè)計(jì)上提出 MAF 和 SAF 兩種 Flash 共享方式,以節(jié)省 EC Flash。
Master Attached Flash Sharing,如下圖。EC 通過(guò) eSPI 訪(fǎng)問(wèn) PCH 下 SPI 總線(xiàn)上的 Flash,以獲取 EC Firmware。
Slave Attached Flash Sharing,如下圖。PCH 通過(guò) eSPI 透過(guò) EC 訪(fǎng)問(wèn)
BIOS、CSME Firmware。
對(duì)于 MAF 設(shè)計(jì),需要保持 CPU 部分電打開(kāi),確保 PCH 內(nèi) eSPI 和 SPI 可以工作。EC 才有了透過(guò) PCH eSPI Master 訪(fǎng)問(wèn) Flash 的基礎(chǔ)。
對(duì)于 SAF 設(shè)計(jì),BIOS、CSME Firmware 體量大,PCH 透過(guò) EC 訪(fǎng)問(wèn),對(duì) EC SPI Controller 要求比較高。
事實(shí)上,PCH 通過(guò) 自己的 SPI Controller 獲取 BIOS、CSME,就稱(chēng)之為 MAF。PCH 通過(guò) eSPI 獲取 BIOS、CSME,就稱(chēng)之為 SAF。
實(shí)際應(yīng)用中,MAF 和 SAF 這兩種 Flash Sharing 方式都沒(méi)有采用。而是選擇
G3 Flash Sharing 或者 No Flash Sharing。
G3 Flash Sharing,如下圖。PCH 的 SPI 和 EC 的 SPI 接在一起,PCH 上電前或者 RSMRST# 拉高前,EC 直接從 SPI 接口讀取 EC Firmware。
No Flash Sharing,如下圖。PCH 的 SPI 和 EC 的 SPI 分別掛一個(gè) Flash,互不干涉。
基于上述 G3 Flash Sharing 設(shè)計(jì),通常硬件設(shè)計(jì)如下。
三,eSPI Pin List
PCH 和 EC 端的 eSPI 直接連線(xiàn)即可,上下拉在 chip 內(nèi)部完成。
BIOS/ME 配置
使用 FIT 配置 ME 參數(shù),即設(shè)置 PCH 作為 eSPI Master 的工作參數(shù),也稱(chēng)之為 Soft-Strap。eSPI 通訊參數(shù)最終以和 EC 溝通結(jié)果為準(zhǔn)。
關(guān)于 FIT 更詳細(xì)的配置,需要根據(jù)項(xiàng)目實(shí)際情況設(shè)定。
Boot 流程
eSPI 的 Boot 流程包括 Channel Config、Flash Access、Virtual Wire Communication。MAFS 和 SAFS 啟動(dòng)過(guò)程略有差異,此處以 MAFS 啟動(dòng)為例。
eSPI 通道配置
第一步,EC 拉高 RSMRST#(之前的時(shí)序按要求操作,同時(shí) EC 端 的 eSPI Slave 需要復(fù)位完畢,準(zhǔn)備待命)。然后 PCH 拉高 eSPI_Reset#。
第二步,eSPI-Master 配置 Peripheral、Virtual Wire、OOB、Flash Access 四個(gè) Channel。eSPI Master 端對(duì) Channel 的配置,就是讀取 Slave Channel 配置寄存器。然后根據(jù) Soft-Strap(ME配置)改寫(xiě) Slave 端配置寄存器,以配置實(shí)際需求的通道通訊參數(shù)。如下圖,Ch-0/1/2/3 分別是 Peripheral、Virtual Wire、OOB、Flash Access Channel。
PCH 作為 eSPI Master 配置 Channel,基本邏輯就是 eSPI Master 讀取 eSPI Slave寄存器,改寫(xiě)寄存器,回讀確認(rèn)。寄存器操作最小單位是 4Byte。使用到的指令是 GET_CONFIGURATION 和 SET_CONFIGURATION。
eSPI Slave 端需要配置的寄存器只有如下 5個(gè),即 Offset 08、10、20、30、40,分別對(duì)應(yīng) 4 個(gè) Channel。
寄存器配置細(xì)節(jié)可以參考《Enhanced Serial PeripheralInterface (eSPI) V1.0》
每個(gè) Channel 的功能如下表
第三步,Slave Boot Done
配置完 Flash Access Channel,對(duì)于 MAFS 結(jié)構(gòu)來(lái)說(shuō),EC 就可以通過(guò) eSPI 訪(fǎng)問(wèn) PCH 下的 SPI Flash了。EC 應(yīng)當(dāng)根據(jù)實(shí)際需要通過(guò) eSPI 訪(fǎng)問(wèn) PCH SPI Controller 下連接的 Flash,讀取 EC Firmware。
實(shí)際上,目前通用的設(shè)計(jì)是 Flash Sharing 的接線(xiàn)方式,EC 雖然不通過(guò) eSPI 讀取 Firmware。但是依舊需要給 Host 發(fā)送一個(gè) Virtual Wire Signal,即 SLAVE_BOOT_LOAD_DONE。
Slave 端發(fā)送 SLAVE_BOOT_LOAD_DONE 信號(hào)給 Host。由于是 Slave 主動(dòng)給 Host 發(fā)送,因此在 CS# 高電平期間,Slave 拉低 I/O 1 產(chǎn)生一個(gè) ALERT# 直到 Host 端拉低 CS# 為止。下圖 ALERT# 拉低時(shí)間就為 360ns。
Host 緊接著發(fā)送 GET_STATUS 命令,查看 Slave 的 Event,Slave 置位 BIT-6,表明發(fā)生了 Virtual Wire 事件。
Host 發(fā)送 GET_VWIRE 獲取實(shí)際的 Virtual Wire 狀態(tài)。
Host 讀取 Virtual Wire 狀態(tài)。發(fā)現(xiàn) SLAVE_BOOT_LOAD_DONE 置位,Host 即可進(jìn)行下一步 Boot。
Virtual Wire 交互
eSPI 設(shè)計(jì)的一個(gè)優(yōu)勢(shì)就在于減少引腳資源,把 Sideband pin 轉(zhuǎn)換為 in-band Message。因此 PCH 輸入或者輸出的一些 pin 已經(jīng)轉(zhuǎn)為 in-band Message。
第四步,eSPI Master(PCH) 通過(guò) PUT_VWIRE 指令把所有 VW 信號(hào)設(shè)置為復(fù)位值。
第五步,eSPI Master(PCH)發(fā)送 SUS_WARN# = 1 到 eSPI Slave。EC 回復(fù) SUS_AC# =1 到 PCH
第六步,eSPI Master(PCH)挨個(gè)兒發(fā)送 SLP_S5 / 4 / 3,SLP_A / LAN / WLAN 高信號(hào)到 EC。下圖僅展示了 SLP_S4/5。
第七步,eSPI Master(PCH)發(fā)送 SUS_STAT# 和 RPLTRST# 信號(hào)到 EC。這將會(huì)使能 Peripheral Channel。
緊接著 eSPI Master 根據(jù) Soft-Strap(ME)配置 Peripheral Channel。
至此,eSPI 啟動(dòng)就已經(jīng)完成,接下來(lái)就是 Memory、IO、OOB 通訊。
以上流程為個(gè)人理解,僅供參考。
-
cpu
+關(guān)注
關(guān)注
68文章
10640瀏覽量
208640 -
intel
+關(guān)注
關(guān)注
19文章
3468瀏覽量
185250 -
SPI
+關(guān)注
關(guān)注
17文章
1645瀏覽量
90461 -
總線(xiàn)
+關(guān)注
關(guān)注
10文章
2794瀏覽量
87583 -
硬件設(shè)計(jì)
+關(guān)注
關(guān)注
18文章
356瀏覽量
44436
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論