e
eSPI就是SPI升级版?
根据这名字就感觉eSPI就是SPI的升级版,这样说没错。 但是如果你思想上认为只是提高了点速度之类,那你就小看了。
从双向通讯信号上讲,LPC/SPI/eSPI,大同小异、 参考书公开的Intel pdf文档Enhanced Serial Peripherial Interface Base Sepcification
当我们谈eSPI,其实主要是为了把LPC接口比下去的
eSPI vs. LPC side band信号数量减少
EC/Super I/O芯片和PCH的连接如果用LPC,那么side band信号会多不少,尤其是各种中断信号。因为引入了虚拟中断通讯。#SMI,#SCI,#RCIN这些以前是中断pin脚的,都可以省下来了
eSPI虚拟中断
既然是虚拟中断,就是没有多出来引脚的。无非就是用通讯协议+数据包串行通讯来模拟。yes你猜对了
ChomeBook也是笔记本,里面的EC代码是开源的
https://chromium.googlesource.com/chromiumos/platform/ec/+/refs/heads/main/common/espi.c
这里面你会明显看到虚拟中断的定义,VW(Virtual Wire)
eSPI用于连接EC
最直截了当的告诉你eSPI就是为了EC而设计的。
https://chromium.googlesource.com/chromiumos/platform/ec/+/refs/heads/main/chip/
host/
ish/
it83xx/
max32660/
mchp/
mec1322/
mt_scp/
npcx/
stm32/
这里列举了EC的芯片供应商。懂了吧,这就是读代码知硬件。
EC和MCU的不同就是ACPI
ACPI手册是给了EC一席之地的。也就是说当今PC不可缺少的一部分。 PCH给EC发ACPI命令的处理
https://chromium.googlesource.com/chromiumos/platform/ec/+/refs/heads/main/common/acpi.c
EC和PCH通讯
由于有串行通讯数据流,所以需要一个框架来管理eSPI数据流 https://chromium.googlesource.com/chromiumos/platform/ec/+/refs/heads/main/common/host_command.c
|