CPX Packet ID
Hi,
we are interested in understanding the logic that generates the Packet ID that is returned to the SPARC Core through the CPX packet. At the beginning we supposed that the Packet ID in the CPX return packet was equal to the Packet ID of the corresponding PCX request packet, but this supposition was wrong.
Actually if we look at the first fetch operations performed by the SPARC Core when it wakes up we can see the following (obviously PA = Physical Address):
- fetch from I/O region, PA 0xFFF0000020, PacketID=3
- the return packet has PacketID=1
- fetch from I/O region, PA 0xFFF0000024, PacketID=1
- the return packet has PacketID=1
- fetch from I/O region, PA 0xFFF0000028, PacketID=1
- the return packet has PacketID=1
- fetch from I/O region, PA 0xFFF000002C, PacketID=2
- the return packet has PacketID=1
- fetch from I/O region, PA 0xFFF0000030, PacketID=2
- the return packet has PacketID=1
- fetch from I/O region, PA 0xFFF0000034, PacketID=1
- the return packet has PacketID=1
- fetch from I/O region, PA 0xFFF0000038, PacketID=3
- the return packet has PacketID=1
- fetch from I/O region, PA 0xFFF000003C, PacketID=0
- the return packet has PacketID=1
- fetch from RAM Bank 3, PA 0x00000400C0, PacketID=1
- the return packets have PacketID={0,0}
- fetch from RAM Bank 3, PA 0x00000400C0 (again), PacketID=2
- the return packets have PacketID={0,0}
- fetch from RAM Bank 3, PA 0x00000400C0 (once again), PacketID=0
- the return packets have PacketID={0,0}
- and so on
Could you please explain which CPX Packet ID the SPARC Core is expecting in the returning packet?
Many thanks,
Fabrizio

