图片

  过年时间研究了一下eSPI接口(Enhanced Serial Peripheral Interface),把自学的情况用简单写下来,既给自己做个记录,也请大家指导一下。

  如上一篇文章中提到的BMC三类功能中,接口功能是top1。而eSPI/LPC接口是日常接触较少的,另外eSPI是代替LPC的,所以就考虑先学习学习eSPI接口。下一步再看看PECI接口,至于其他那些PCIe、USB等,大家比我熟悉,就先放后面研究吧。

  从功能上说,eSPI接口是带外管理用的,用来代替LPC接口。最早为了便于对主板上进行功能扩展,IBM推出了ISA总线。但是随着CPU频率和工艺的提高,ISA不行了,Intel就推出了LPC接口。后来LPC接口也开始显得力不从心了,Intel又推出了eSPI接口。

ISA

LPC

eSPI

时间

IBM,1981

Intel,2002,v1.1

Intel,2016,v1.0(2022,v1.5)

信号

8位62个

16位98个

7个必选,6个可选

可选,6或8个,同时减少OOB与GPIO所需引脚

电平

5V

3.3V

1.8V

速率

4~8M

33M

最高66M

    eSPI借鉴了SPI电气规范,但是在协议层使用了不同的定义,所以二者无论是从功能还是从应用上完全是两码事。除了全面兼容LPC总线的作用和功能外,eSPI总线还把OOB(out of band带外)的SMBus和SideBand的GPIO都转化给可以在eSPI 上传递的In Band Message。除此以外,还可以和主机端实时共享flash。因此在eSPI 总线上,根据数据类型划分了 4个 Data Channel,分别是Peripheral Channel、Virtual Wire Channel、OOB Channel、Flash Access Channel。当然这个channel是一个虚拟通道的概念,不是说实际硬件通路有四个。

图片

  这四个channel有不同的Command指令和数据Payload,来互相区分。每个channel也都定义有自己的寄存器。一上电,主从双方也要有个协商,确定出IO模式、速率等等。然后就是四个虚拟通道分别进行通信了。

1、外设通道(Peripheral Channel)

     这个channel就是代替原来的LPC接口,用于连接传统LPC接口兼容的外设设备(如Super I/O芯片、键盘控制器、PS/2接口等),实现与主系统外设的通信。跑些KCS、Vuart、Snoop等功能。懂LPC接口的,对此也熟悉。

2、虚拟线通道(Virtual Wire Channel)

    这个channel用来传输硬件事件信号(如中断请求、电源按钮信号、系统复位信号等),实现BMC与主机之间的实时事件通知。这样通过虚拟化逻辑信号(而非物理线路)传递事件,节省硬件资源。如新的intel平台没有PCH了,CPU可以通过eSPI实现对BMC的vGPIO功能。KB/MS/UART等设备有数据需要处理的时候,会往上发中断。在LPC中,往上发中断事务是通过LPC的Serial IRQ信号来完成的。在eSPI中,就可以通过此通道往上发中断。

3、带外消息通道(Out-of-Band Message Channel, OOB)

    这个channel用于带外管理通信,支持BMC与主机之间的异步消息传递(如IPMI命令、传感器数据、日志传输等),可以使主机处于关机或故障状态仍可工作。其本质就是把本来在SMBus上通信的数据,如MTCP Packet,从Out of Band Packet变成了In-Band Message,这样主机和BMC进行MTCP通信的时候就不需要占用SMBus的带宽和引脚。

4、Flash访问通道(Flash Access Channel)

    这个channel是互相控制Flash的。众所周知,Host端下有个Flash,BMC端也有个Flash。而eSPI 的这个Flash Channel为Host端和BMC提供了一条可以实时共享Flash部件的通路,这样就可以减少BOM器件了,而且也可以考虑安全方面的机制。根据被共享的Flash挂在主机端还是BMC端下,eSPI将Flash Channel的工作模式划分为Master Attached Flash Sharing和Slave Attached Flash Sharing,这里就不多介绍细节了。

   现在X86/C86都用eSPI代替了LPC,我看这是以后发展的方向。

   还是之前提到的:今年希望和大家讨论讨论BMC芯片以后发展的方向,在BMC上加一些什么功能更适应客户使用。欢迎留言讨论和转发,谢谢。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐