Forum Discussion
Hi,
The Intel eSPI Agent Core is receiving a PUT_MEMRD32_SHORT (1 byte) packet from the eSPI master. I am reading out the Non-posted RX FIFO('h10) via IP core's Avalon MM bus until RX queue is empty. I am getting the address and like to respond the associated data. So I am writing the following data in the NPTXFIFO (14h) :
- Byte 1: 0Fh (cycle type)
- Byte 2: 00h (length MSB)
- Byte 3: 00h (length LSB)
- Byte 4: 55h (Data)
After that I am writing 02h (NPTXFIFO_AVAIL) to the IP core's Control Register (4h).
But the Agent is only sending DEFER, it doesn't send the response with the data.
Is I am doing in correct way?
Regards
Theja
Hi Theja,
Yes, you've done it in the right way.
After the DEFER from the agent the master has to send a GET_PC. Then the agent is responding with ACCEPT and the desired data.
Unfortunaly, this procedure is unnecessaryly cumbersome. The agent could send the data immediately and not only after a GET_PC.
So the reading of one byte requires a total of 54 command bytes!!
- MEMRD32 Command: 8 Byte
- WAIT_STATE: 16 Byte (default value of the agent IP core)
- DEFER Reply: 4 Byte
- GET_PC Command: 2 Byte
- WAIT_STATE: 16 Byte
- ACCEPT Reply: 8 Byte