I see! ;-)On 2017-12-31 07:10, Arnd Bergmann wrote:I know what eSPI is meant for, and understand the basic idea of the
On Fri, Dec 29, 2017 at 2:53 AM, Haiyue WangIn simple word, the eSPI uses the SPI interface pin definition, but it
<haiyue.wang@xxxxxxxxxxxxxxx> wrote:
When PCH works under eSPI mode, the PMC (Power Management Controller) inI have not looked at the driver contents yet, but I'm adding the SPI
PCH is waiting for SUS_ACK from BMC after it alerts SUS_WARN. It is in
dead loop if no SUS_ACK assert. This is the basic requirement for the BMC
works as eSPI slave.
Also for the host power on / off actions, from BMC side, the following VW
(Virtual Wire) messages are done in firmware:
1. SLAVE_BOOT_LOAD_DONE / SLAVE_BOOT_LOAD_STATUS
2. SUS_ACK
3. OOB_RESET_ACK
4. HOST_RESET_ACK
maintainer and
mailing list to Cc here for further discussion. Can you clarify how
the eSPI slave
mode relates to SPI slaves that we already support? I was under the impression
that the difference between SPI and eSPI is mainly on the master side, but that
any SPI slave can also act as an eSPI slave. Would this driver fit into the SPI
slave framework, possibly with some extensions to the generic abstraction?
will replace Low Pin Count (LPC)
interface. From its name, sure, it will confuse you! ;-)
protocol, but I'm not familiar with the Apeed slave hardware
implementation.
Yes, you are right, Aspeed have implemented the virtual wires partially. Tthat's why I named itI don't see any requirement in the eSPI spec for the upper layers toIt also seems rather inflexible to have a single driver that is responsible bothYes, eSPI has the architecture such as transaction layer, link Layer;
for the transport (eSPI register level interface for ASPEED) and the high-level
protocol (talking to an Intel PCH), since either half of the work could be
done elsewhere, using either a different eSPI slave implementation, or
a different
host architecture)
all of it is about the **silicon**
design. That's why I put the driver under /misc directory, not /spi
directory.
be implemented in hardware. Obviously an x86 host such as Intel's
PCH would implement the host interface using PIO, and MMIO
accesses that are compatible with ISA and LPC, as this is the motivation
behind the specification, but an ARM server that wants to use eSPI
based peripherals could choose to implement it just as well using
a traditional SPI master hardware, some GPIOs (reset and alert)
and a (driver independent) software implementation of the transaction
and link layers.
On the slave side, it seems that aspeed have implemented the
virtual wires partially in hardware and require a driver like the one
you wrote to reply to some of the wires being accessed by the host,
but again it seems plausible that this could be implemented in another
BMC using a generic SPI slave and a transaction layer written
entirely in software.
Your driver does not handle the other channels (smbus, mmio, spinor)I can't send the AST2500 datasheet to you directly, but you can contact Aspeed firstly.
at the moment at all, can you provide some information how they
are implemented in the ast2500? Are those handled completely
in hardware (I assume this is the case for spinor at least), or do they
require help from a driver, either this one or a separate one?
Arnd---