How to Perform Real-Time eSPI Analysis and Simulate an eSPI Master

Total Phase offers a breadth of protocol analysis and development tools for I2C, SPI, CAN, USB, and eSPI protocols. In particular, our eSPI analysis tool allows users to non-intrusively monitor the eSPI protocol, providing real-time insight into data packet errors and other crucial eSPI bus events. In addition to eSPI monitoring, users can also perform active eSPI simulation to send messages on the bus with the addition of our API.

In this article, we’ll provide insight into the capabilities of the eSPI analyzer and how to set up an eSPI master simulator.

The Promira Serial Platform with the eSPI Analysis Application

The eSPI Analysis Application on the Promira Serial Platform offers the ability to non-intrusively monitor eSPI traffic, up to 66 MHz in single, dual, quad I/O modes, between master and slave eSPI devices. This tool was built alongside Intel, the creators of the eSPI protocol, and is the first eSPI monitor in the industry. This tool offers cross-platform support for Windows, Linux, and Mac OS X.

eSPI Analysis Application for Promira Serial PlatformPromira Serial Platform front

The eSPI Analysis Application on the Promira Serial Platform can:

  • Monitor communication between a master and multiple slaves
  • Support single, dual and quad I/O (full eSPI spec capability)
  • Support clock speeds up to 66 MHz (full eSPI spec speed)
  • Monitor up to 5 channels (Peripheral, Virtual Wire, OOB, Flash, Independent)
  • Monitor up to 2 slave select lines
  • Monitor 2 alert lines
  • Monitor 2 reset lines
  • Support 11 digital IO signals
  • Match triggers, hardware filters and statistics

eSPI Functions in the Data Center Software

When used in conjunction with the Data Center Software, users can access various functions to help analyze and debug eSPI data. For instance, users can monitor various eSPI signals to gain insight into decoded commands, master or slave errors, and much more. The Data Center Software offers standard functions like LiveFilter and Bus Statistics features; plus, users can take advantage of eSPI specific functions like using the hardware filter to discard unwanted data, and using the Match/Action system to perform simple and advanced matching and triggering for more advanced debugging.

Monitoring eSPI Signals

The Promira Serial Platform eSPI Analyzer monitors the eSPI signals including: four IO signals, one SCK signal, two CS signals, two Alert signals, and two Reset signals. Using this tool, users can perform monitoring, decoding, and reporting capabilities including:

  • Monitor and decode packets at eSPI protocol level and distinguish between command phase and response phase while reporting the packet to the user.
  • Monitor SET_CONFIGURATION command to 'General Capabilities Register' and automatically remember the frequency of operation and IO mode configured by the master and reports it for every packet seen on the bus.
  • Monitor SET_CONFIGURATION command to 'General Capabilities Register' and automatically remember Alert mode setting and appropriately monitors IO1 signal or Alert-0/Alert-1 signals (which is applicable only in a single master - single slave setting).
  • Monitor SET_CONFIGURATION command to 'Channel Capabilities Registers' and automatically remember the master configurable fields (for example maximum payload request and maximum payload size for peripheral channel transactions).
  • Monitor the status field returned in every response and remember the queues' availability status for all channels.
  • Decode commands based on channels and reports the information to the user for every packet.
  • Report correct/incorrect command phase and response phase CRC errors for every packet to the user.
  • Report Master side errors and Slave side errors.
  • Reset the captured IO mode and frequency of operation on a reset toggle on the signal.
eSPI data capture in Data Center Software Example eSPI Data Capture in Transaction View

eSPI Hardware Statistics

The Data Center Software also includes hardware statistics which provides a count of packets and events for each slave. The following counters are available:

  • Packets with command CRC error.
  • Packets with response CRC error.
  • Peripheral/Virtual wire/OOB/Flash/Independent channel packets.
  • Get Configuration packets.
  • Set Configuration packets.
  • Get Status packets.
  • Platform Resets.
  • All packets that were filtered out
  • All packets that were filtered out based on command

eSPI Hardware Filters

The eSPI hardware filter feature allows users to filter out specific data packets to hide unwanted data and to reduce the amount of captured data that is sent back to the analysis computer. The settings can be configured independently for each slave. This feature can be accessed by clicking Analyzer in the top menu and clicking “Device Settings”.

eSPI Hardware Filter Settings in Data Center Software eSPI Hardware Filter Settings

Packet data that can be filtered include:

  • Packet with a command field that matches an 8-bit value set by the user.
  • Packet with a command field that does not match an 8-bit value set by the user.
  • Peripheral channel transaction.
  • Virtual wire channel transaction.
  • OOB channel transaction.
  • Flash channel transaction.
  • Independent channel transaction

eSPI Matching and Triggering

Users looking to perform certain actions upon specific data events can do so using the Data Center Software’s multi-tiered Match/Action system. There are both simple and advanced matching and triggering options. To access this, click on “Additional Settings” from the Device Settings dialog.

eSPI Simple Match

Simple matching can match the occurrence of packet types by channel, user selected command value and events, and trigger a capture and/or assert an external output pin in response.

  • Packet with a command field that matches an 8-bit value set by the user.
  • Packet with a command field that does not match an 8-bit value set by the user.
  • Peripheral channel transaction.
  • Virtual wire channel transaction.
  • OOB channel transaction.
  • Flash channel transaction.
  • Independent channel transaction
  • Alert event on the eSPI bus.
  • Reset event on the eSPI bus.
eSPI Simple Matching/Triggering Settings in Data Center Software eSPI Simple Matching/Triggering Settings

 

eSPI Advanced Match

The advanced match and trigger feature is a complex pattern/sequence match engine that provides triggering on specific condition/sequence of events on the eSPI bus with multiple options. With this feature, users can specify and configure the analyzer to match and trigger on three different types of conditions/sequences based on eSPI packets:

1. A sequence of up to four eSPI packets

2. A specific non-posted transaction and corresponding completion(s)

3. A packet that has an error code in its status

 

Digital IO

The Promira Serial Platform has 11 digital IO signals that can be configured as input or output signals. Digital input supports inserting events into the data stream while digital output supports matching certain events as well as sending output to other devices, such as oscilloscopes.

Digital input event can trigger a capture, and capture event can toggle digital output on the following scenarios:

  • Packet with a command field that matches an 8-bit value set by the user.
  • Packet with a command field that does not match an 8-bit value set by the user.
  • Peripheral channel transaction.
  • Virtual wire channel transaction.
  • OOB channel transaction.
  • Flash channel transaction.
  • Get Configuration command.
  • Set Configuration command.
  • Get Status command.
  • Platform Reset command.
  • Alert event on the eSPI bus.
  • Reset event on the eSPI bus.

Simulating an eSPI Master

For users looking to simulate an eSPI master to actively send messages on the bus, this can be accomplished by using the eSPI Active Example Files package and a Promira platform licensed with SPI Active Application - Level 1Level 2 or Level 3. Performance (I/O compatibility and clock speed supported) will be matched to your licensed SPI Active application level. We recommend using SPI Active – Level 3 Application for full eSPI performance at 66 MHz Quad I/O.

The eSPI Active Example Files package includes two files that can be used with the Promira SPI application.

  • Python 2.x API is used to simulate eSPI transactions.
  • espi_generator file is a Promira Software API I2C/SPI Active example that generates eSPI traffic and drives the eSPI_simulator.

With these example files you can simulate an eSPI transaction - both command phase and response phase are driven on the data lines depending on the I/O mode selected.

Please note that this simulation is not a complete eSPI master hardware engine and does not respond to a slave device in real time.

For complete instructions on how to set up the eSPI master simulation with one Promira platform and monitor the eSPI bus with another Promira platform and Data Center Software, please visit this knowledge base article: Monitoring eSPI Messages Using Promira Platform and Data Center.

Computer attached to two Promira Serial Platforms for eSPI testing Two Promira devices being used to simulate and monitor eSPI traffic

 

Conclusion

Total Phase’s eSPI analysis tool allows engineers to gain insight their eSPI systems, offering ways to easily monitor eSPI traffic in real time, as well as functions to perform more advanced debugging including hardware filters and simple and advanced matching and triggering capabilities. Users can also use our API to generate master eSPI commands to test slave responses if needed.

For more information on how the Promira eSPI Analyzer can benefit your eSPI projects, please email sales@totalphase.com.