From: "Shulzhenko, Oleksandr" <oleksandr.shulzhenko@linux.intel.com>
To: YH Chung <yh_chung@aspeedtech.com>, Arnd Bergmann <arnd@arndb.de>,
Andrew Jeffery <andrew@codeconstruct.com.au>,
Conor Dooley <conor@kernel.org>
Cc: Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>, Joel Stanley <joel@jms.id.au>,
Ryan Chen <ryan_chen@aspeedtech.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-aspeed@lists.ozlabs.org" <linux-aspeed@lists.ozlabs.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"openbmc@lists.ozlabs.org" <openbmc@lists.ozlabs.org>,
"maciej.lawniczak@intel.com" <maciej.lawniczak@intel.com>,
Mark Brown <broonie@kernel.org>
Subject: Re: [PATCH 0/7] soc: aspeed: Add AST2600 eSPI controller support
Date: Tue, 12 May 2026 10:45:21 +0200 [thread overview]
Message-ID: <be4f662a-b986-4b4c-8263-2fd7b63c238a@linux.intel.com> (raw)
In-Reply-To: <KL1PR0601MB4276AB799EC03BB00C4C0E5490392@KL1PR0601MB4276.apcprd06.prod.outlook.com>
On 5/12/2026 9:08 AM, YH Chung wrote:
> Hi Shulzhenko,
>
> Thanks for the follow-up.
>
>> Integrating this driver into the SPI subsystem may allow reusing some existing
>> definitions, e.g.|spi_controller|,|spi_message|, and perhaps parts related to
>> single/dual/quad I/O handling. At the same time, parts such as the Flash channel
>> (included in the current series), and OOB / Virtual Wire support (I would expect
>> to come later), appear to be specific to the Intel eSPI protocol. Modeling all of
>> that as just another SPI IP driver may introduce some awkward layering and
>> overhead.
> Agreed. eSPI introduces two additional pins, RESET# and ALERT#, beyond the
> standard SPI signals. More importantly, eSPI functionality is described
> primarily in terms of four logical channels, rather than generic low-level
> bus signaling or pure data transfers.
>
>> Also, the current series already seems to separate common eSPI logic from
>> AST2600-specific pieces, assuming that 2700 driver is also coming at some point.
>>
>> This makes me wonder whether a dedicated eSPI layer/subsystem could be a
>> better fit — either under the SPI or as something separate (but not SoC driver).
>>
>> Given my limited experience with SPI/eSPI, could you help clarify a few points for
>> me (and probably others as well)?
>>
>> * How much of the SPI subsystem can be reused for this implementation,
>> both for the current patchset and for likely future extensions?
> I believe only a limited portion of the SPI subsystem can be reused. Some
> generic framework elements, such as controller registration and basic
> scaffolding, may be useful initially. But this reuse appears to be mostly
> mechanical rather than semantic. Once eSPI-specific features like Flash
> channels, OOB messaging, and Virtual Wire semantics are involved, the SPI
> transaction model does not seem to map very naturally.
>
>> * Are there any pitfalls or abstraction mismatches in trying to reuse
>> the SPI core here?
> Our main concern is an abstraction mismatch. SPI is designed as a generic
> peripheral bus, while eSPI is more of a system-management interface with
> explicit host-BMC-specific semantics. Reusing the SPI core would likely
> require treating eSPI packets as generic bus-level transfers in the kernel.
>
> However, some eSPI transactions and protocol handling, such as LPC bridge
> accesses, are performed autonomously by the hardware rather than being fully
> driven as low-level bus operations by the driver. This makes the eSPI driver
> somewhat different from a conventional serial bus controller driver
> maintained under the SPI core.
>
Hi YH,
My main concern is trying to understand whether it is completely
impossible (or introduces too much effort that we'd better not to take)
integrating this to SPI subsystem.
From your reply I understand there are two potential blockers:
a) Treating eSPI transfers as bus-level transfers (meaning that it will
be necessary probably making separate driver for OOB/VW/Flash channels
as they essentially use eSPI as a transport);
b) Some logic being done by the hardware (i.e. LPC bridge).
Please confirm my understanding:
(a) is feasible, but requires many effort to re-define architecture
(b) If something is done by the hardware - what is the driver impact? I
recall eDAF use case when the driver wasn't involved at all - and flash
access was fully done by the hardware (unless the controller is
configured to handle it in SW mode).
P.S. I guess we can talk about host-BMC communication only when talking
about hardware-dependent stuff (i.e. ast2600-espi files). eSPI core
should be (it seems to be already is) at least BMC agnostic and this is
the reason not having it under SOC/aspeed (ast2600-espi.* may stay here
though).
prev parent reply other threads:[~2026-05-12 8:45 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260313-upstream_espi-v1-0-9504428e1f43@aspeedtech.com>
[not found] ` <20260313-upstream_espi-v1-3-9504428e1f43@aspeedtech.com>
2026-05-07 14:03 ` [PATCH 3/7] soc: aspeed: Add AST2600 peripheral channel port I/O support Shulzhenko, Oleksandr
[not found] ` <20260313-energy-casket-ca8adc1f1fd1@spud>
[not found] ` <23909400-4e7f-49c9-a982-14036372af98@app.fastmail.com>
[not found] ` <c3b28ee92fa46700887d0c68b23045b2418358a7.camel@codeconstruct.com.au>
[not found] ` <KL1PR0601MB4276ED93723F0B1F42349AD89041A@KL1PR0601MB4276.apcprd06.prod.outlook.com>
[not found] ` <0f7f0f96-a918-47d5-a0bd-bbde494c8fed@app.fastmail.com>
[not found] ` <KL1PR0601MB4276B5BE3B96C18E3A66AD709049A@KL1PR0601MB4276.apcprd06.prod.outlook.com>
[not found] ` <14870d17-2471-4522-b8b5-03cb9002a4f7@app.fastmail.com>
[not found] ` <KL1PR0601MB42763DAD359305DEBA4B769D9057A@KL1PR0601MB4276.apcprd06.prod.outlook.com>
[not found] ` <KL1PR0601MB427603A6A5768D6A537CAFCB905AA@KL1PR0601MB4276.apcprd06.prod.outlook.com>
2026-05-07 16:00 ` [PATCH 0/7] soc: aspeed: Add AST2600 eSPI controller support Shulzhenko, Oleksandr
2026-05-12 7:08 ` YH Chung
2026-05-12 8:45 ` Shulzhenko, Oleksandr [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=be4f662a-b986-4b4c-8263-2fd7b63c238a@linux.intel.com \
--to=oleksandr.shulzhenko@linux.intel.com \
--cc=andrew@codeconstruct.com.au \
--cc=arnd@arndb.de \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=conor@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=joel@jms.id.au \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-aspeed@lists.ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maciej.lawniczak@intel.com \
--cc=openbmc@lists.ozlabs.org \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=ryan_chen@aspeedtech.com \
--cc=yh_chung@aspeedtech.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox