[RFC] eSPI: Exploring support and possible options in Linux

From: M, Krishnamoorthi

Date: Mon Jun 22 2026 - 15:01:42 EST


Hi All,

I would like to start a discussion around the growing need for eSPI support in Linux, particularly on AMD platforms.

We are seeing increasing adoption of eSPI for multiple use cases beyond flash access, including channel-specific functionality such as Peripheral, Virtual Wire, and OOB communication. In some of our initial work, we explored extending the existing SPI subsystem to support parts of these requirements. While this works for certain cases, it also exposes some limitations as additional eSPI functionality and integrations are introduced.

Unlike traditional SPI transfers, eSPI provides a more structured protocol with multiple logical channels, negotiated capabilities, message-oriented communication, and asynchronous events. Because of this, some of the newer eSPI use cases do not appear to fit naturally into the SPI subsystem model.

As more channel-specific functionality is being adopted, I wanted to understand whether the current direction of extending SPI is the preferred long-term approach, or if there are alternative kernel abstractions/frameworks that may be better suited for handling eSPI semantics.

I would appreciate any feedback or pointers from the community, particularly around the following:

* Whether there has been any prior work, RFCs, discussions, or
attempts toward generic eSPI framework support in Linux.
* Would continuing to extend SPI be the recommended approach, or are
there other subsystem models that may fit better?
* Any historical context, architectural considerations, or lessons
learned from previous attempts in this area.

Any guidance or suggestions would be very helpful in understanding the right direction for supporting these evolving eSPI use cases.

Thanks in advance for your time and feedback.

Thanks,
Krishna