0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

eSPI啟動流程詳解

CHANBAEK ? 來源:吃面小哥 ? 作者:吃面小哥 ? 2023-11-18 15:31 ? 次閱讀

Hardware 設(shè)計

對于 Intel 平臺,自 ICL Lake 開始,就不再支持 LPC,僅支持 eSPI。

以 TGL 平臺為例,硬件設(shè)計上需要注意如下兩點。

一,Hardware Strap Pin

GPP_C5、GPP_H0、GPP_H1、GPP_H2,四個 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è)計都是 MAF,eSPI Enable。正常的配置需要 0000,四個 pin 內(nèi)部都有 20K 的下拉,因此 Strap Pin 保持 Floating 即可。

注意:不同 CPU 平臺,Strap Pin 有差異,以對應(yīng)平臺 EDS 文檔描述為準。

二,F(xiàn)lash Access

為了降低硬件設(shè)計 BOM 成本,CPU 設(shè)計上提出 MAF 和 SAF 兩種 Flash 共享方式,以節(jié)省 EC Flash。

Master Attached Flash Sharing,如下圖。EC 通過 eSPI 訪問 PCH 下 SPI 總線上的 Flash,以獲取 EC Firmware。

圖片

Slave Attached Flash Sharing,如下圖。PCH 通過 eSPI 透過 EC 訪問

BIOS、CSME Firmware。

圖片

對于 MAF 設(shè)計,需要保持 CPU 部分電打開,確保 PCH 內(nèi) eSPI 和 SPI 可以工作。EC 才有了透過 PCH eSPI Master 訪問 Flash 的基礎(chǔ)。

對于 SAF 設(shè)計,BIOS、CSME Firmware 體量大,PCH 透過 EC 訪問,對 EC SPI Controller 要求比較高。

事實上,PCH 通過 自己的 SPI Controller 獲取 BIOS、CSME,就稱之為 MAF。PCH 通過 eSPI 獲取 BIOS、CSME,就稱之為 SAF。

實際應(yīng)用中,MAF 和 SAF 這兩種 Flash Sharing 方式都沒有采用。而是選擇

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 分別掛一個 Flash,互不干涉。

圖片

基于上述 G3 Flash Sharing 設(shè)計,通常硬件設(shè)計如下。

圖片

三,eSPI Pin List

PCH 和 EC 端的 eSPI 直接連線即可,上下拉在 chip 內(nèi)部完成。

圖片

圖片

BIOS/ME 配置

使用 FIT 配置 ME 參數(shù),即設(shè)置 PCH 作為 eSPI Master 的工作參數(shù),也稱之為 Soft-Strap。eSPI 通訊參數(shù)最終以和 EC 溝通結(jié)果為準。

圖片

圖片

關(guān)于 FIT 更詳細的配置,需要根據(jù)項目實際情況設(shè)定。

Boot 流程

eSPI 的 Boot 流程包括 Channel Config、Flash Access、Virtual Wire Communication。MAFS 和 SAFS 啟動過程略有差異,此處以 MAFS 啟動為例。

eSPI 通道配置

圖片

第一步,EC 拉高 RSMRST#(之前的時序按要求操作,同時 EC 端 的 eSPI Slave 需要復(fù)位完畢,準備待命)。然后 PCH 拉高 eSPI_Reset#。

圖片

第二步,eSPI-Master 配置 Peripheral、Virtual Wire、OOB、Flash Access 四個 Channel。eSPI Master 端對 Channel 的配置,就是讀取 Slave Channel 配置寄存器。然后根據(jù) Soft-Strap(ME配置)改寫 Slave 端配置寄存器,以配置實際需求的通道通訊參數(shù)。如下圖,Ch-0/1/2/3 分別是 Peripheral、Virtual Wire、OOB、Flash Access Channel。

圖片

PCH 作為 eSPI Master 配置 Channel,基本邏輯就是 eSPI Master 讀取 eSPI Slave寄存器,改寫寄存器,回讀確認。寄存器操作最小單位是 4Byte。使用到的指令是 GET_CONFIGURATION 和 SET_CONFIGURATION。

eSPI Slave 端需要配置的寄存器只有如下 5個,即 Offset 08、10、20、30、40,分別對應(yīng) 4 個 Channel。

圖片

寄存器配置細節(jié)可以參考《Enhanced Serial PeripheralInterface (eSPI) V1.0》

每個 Channel 的功能如下表

圖片

第三步,Slave Boot Done

配置完 Flash Access Channel,對于 MAFS 結(jié)構(gòu)來說,EC 就可以通過 eSPI 訪問 PCH 下的 SPI Flash了。EC 應(yīng)當根據(jù)實際需要通過 eSPI 訪問 PCH SPI Controller 下連接的 Flash,讀取 EC Firmware。

實際上,目前通用的設(shè)計是 Flash Sharing 的接線方式,EC 雖然不通過 eSPI 讀取 Firmware。但是依舊需要給 Host 發(fā)送一個 Virtual Wire Signal,即 SLAVE_BOOT_LOAD_DONE。

Slave 端發(fā)送 SLAVE_BOOT_LOAD_DONE 信號給 Host。由于是 Slave 主動給 Host 發(fā)送,因此在 CS# 高電平期間,Slave 拉低 I/O 1 產(chǎn)生一個 ALERT# 直到 Host 端拉低 CS# 為止。下圖 ALERT# 拉低時間就為 360ns。

Host 緊接著發(fā)送 GET_STATUS 命令,查看 Slave 的 Event,Slave 置位 BIT-6,表明發(fā)生了 Virtual Wire 事件。

Host 發(fā)送 GET_VWIRE 獲取實際的 Virtual Wire 狀態(tài)。

Host 讀取 Virtual Wire 狀態(tài)。發(fā)現(xiàn) SLAVE_BOOT_LOAD_DONE 置位,Host 即可進行下一步 Boot。

圖片

Virtual Wire 交互

圖片

eSPI 設(shè)計的一個優(yōu)勢就在于減少引腳資源,把 Sideband pin 轉(zhuǎn)換為 in-band Message。因此 PCH 輸入或者輸出的一些 pin 已經(jīng)轉(zhuǎn)為 in-band Message。

第四步,eSPI Master(PCH) 通過 PUT_VWIRE 指令把所有 VW 信號設(shè)置為復(fù)位值。

圖片

第五步,eSPI Master(PCH)發(fā)送 SUS_WARN# = 1 到 eSPI Slave。EC 回復(fù) SUS_AC# =1 到 PCH

圖片

圖片

第六步,eSPI Master(PCH)挨個兒發(fā)送 SLP_S5 / 4 / 3,SLP_A / LAN / WLAN 高信號到 EC。下圖僅展示了 SLP_S4/5。

圖片

第七步,eSPI Master(PCH)發(fā)送 SUS_STAT# 和 RPLTRST# 信號到 EC。這將會使能 Peripheral Channel。

緊接著 eSPI Master 根據(jù) Soft-Strap(ME)配置 Peripheral Channel。

圖片

至此,eSPI 啟動就已經(jīng)完成,接下來就是 Memory、IO、OOB 通訊。

以上流程為個人理解,僅供參考。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10887

    瀏覽量

    212339
  • intel
    +關(guān)注

    關(guān)注

    19

    文章

    3483

    瀏覽量

    186189
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1715

    瀏覽量

    91830
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2892

    瀏覽量

    88210
  • 硬件設(shè)計
    +關(guān)注

    關(guān)注

    18

    文章

    398

    瀏覽量

    44607
收藏 人收藏

    評論

    相關(guān)推薦

    eSPI協(xié)議抓包分析

    eSPI 協(xié)議在物理層是遵循 SPI 通訊規(guī)范的,但是協(xié)議層有差異,因此不能使用 SPI 協(xié)議去解析(沒有 eSPI 協(xié)議分析儀的情況下,可以使用 SPI 協(xié)議分析儀去做單獨 Byte 的初步解析,接下來就人肉解析 eSPI)。
    的頭像 發(fā)表于 11-18 15:29 ?3436次閱讀
    <b class='flag-5'>eSPI</b>協(xié)議抓包分析

    常見eSPI通訊數(shù)據(jù)包的分析

    eSPI 通訊一般來說無需特別關(guān)注,因為通訊都是 PCH(eSPI_Master)和 EC(eSPI_Slave)硬件完成的,軟件不參與。
    的頭像 發(fā)表于 11-18 15:35 ?2682次閱讀
    常見<b class='flag-5'>eSPI</b>通訊數(shù)據(jù)包的分析

    PCB工藝流程詳解

    PCB工藝流程詳解PCB工藝流程詳解
    發(fā)表于 05-22 14:46

    ESPI3 回收ESPI3 EMI測試接收機

    高價收購ROHDE&SCHWARZ ESPI3 回收ESPI3 EMI測試接收機ROHDE&SCHWARZ ESPI3回收東莞市保發(fā)通用儀器有限公司聯(lián)系人:熊先生***(微信同號
    發(fā)表于 08-28 14:01

    SPI與eSPI分別是什么意思

    SPI是什么意思?SPI通信協(xié)議是由哪些部分組成的?eSPI是什么意思?eSPI BUS與Chipset是怎樣進行連接的?
    發(fā)表于 09-23 08:04

    SOC的多核啟動流程詳解

    的則是你的SOC啟動的時候,所有core都上電了。2、啟動流程我們就假定 reset地址是可編程的、SOC啟動的時候只啟動一個core,來講
    發(fā)表于 02-21 15:11

    PCB工藝流程詳解

    PCB工藝流程詳解
    發(fā)表于 01-28 21:32 ?0次下載

    PCB加工流程詳解大全

    PCB加工流程詳解大全
    發(fā)表于 02-14 16:07 ?0次下載

    tft_espi和nodemcu連接

    1、 下載tft_espi庫https://github.com/Bodmer/TFT_eSPI2、 解壓后導(dǎo)入arduino根目錄下的libraries中3、 打開User_Setup.h這個文件
    發(fā)表于 10-25 19:51 ?9次下載
    tft_<b class='flag-5'>espi</b>和nodemcu連接

    主流的通訊總線LPC 和 eSPI介紹

    EC 能夠作為一顆專用 MCU,應(yīng)用在筆記本電腦主板設(shè)計中。因為 它是一顆攜帶 eSPI/LPC 外設(shè)的專用 MCU。EC 主要的任務(wù)就是協(xié)助 CPU ,管理一些低速輸入設(shè)備,采集電池參數(shù)、控制主板溫度。EC采集到的低速外設(shè)信息,就會通過eSPI/LPC傳遞給CPU。
    發(fā)表于 12-20 10:59 ?1.7w次閱讀

    eSPI通訊總線的應(yīng)用優(yōu)勢

    eSPI總線是Intel在2016年推出的一種通訊總線,用于x86 CPU平臺和外設(shè)之間的通訊。
    的頭像 發(fā)表于 02-15 09:05 ?4533次閱讀

    AURIX? TC3xx啟動流程詳解

    本文首先介紹整個啟動流程的概況,接著分別介紹了firmware啟動流程,boot mode的配置,以及用戶程序啟動
    的頭像 發(fā)表于 06-06 10:31 ?3738次閱讀
    AURIX? TC3xx<b class='flag-5'>啟動</b><b class='flag-5'>流程</b><b class='flag-5'>詳解</b>

    PCB工藝流程詳解.zip

    PCB工藝流程詳解
    發(fā)表于 12-30 09:20 ?11次下載

    PCB工藝流程詳解.zip

    PCB工藝流程詳解
    發(fā)表于 03-01 15:37 ?20次下載

    eSPI接口通道功能解析

    eSPI 接口是用于取代 LPC 接口的,因此它全面兼容 LPC 總線的功能。電氣規(guī)范上,eSPI 復(fù)用了 SPI ,因此通訊頻率最高提升到 66MHz。電壓降到 1.8V,進一步降低了通訊功耗。但是二者協(xié)議層完全不一樣,SPI 協(xié)議無法解碼
    的頭像 發(fā)表于 11-18 15:33 ?6213次閱讀
    <b class='flag-5'>eSPI</b>接口通道功能解析