How to use eSPI between Host and slave BMC in openbmc project

Jeremy Kerr jk at
Mon May 11 10:47:08 AEST 2020

Hi Felix,

> 1 Are there some solutions to use eSPI interface in openbmc project?

There are some platforms in development that use eSPI between the host
and BMC, yes.

> 2 Whether the Host side needs eSPI controler driver? I can't find any
> info about eSPI in linux kernel for host os. Is eSPI transparent to
> the Host side?

For the host hardware I've seen, the eSPI channel doesn't need a driver
- it's usually controlled entirely in hardware by the PCH.

> 3 Whether the slave side(Ex BMC/EC) needs slave eSPI driver? I know
> there are some registers descriptions of eSPIcontroller in the
> ast2500 data sheet. Unfortunately, I don't find slave eSPI driver
> either.

For the BMC, we need some support in the kernel to handle eSPI
behaviour. There is a prototype driver for the ast2500 eSPI slave
around, but it hasn't made it upstream:

> 4 which intel products include eSPI feature?

I'm aware of the C62x series of PCH chipsets, there may be others too.

> 5 eSPI interface can transmit io cycle and mem cycle, 
> but in which case or applications eSPI transfer mem cycle?

I haven't seen anything specific, I don't think it'd be too useful in
our architecture.



More information about the openbmc mailing list