by support »
Hi,
A TLP is merely a representation of a plain bus operation. It's a result of the host writing to a physical address in its memory space that is mapped to a PCIe device. The command in the Linux kernel doing this is e.g. iowrite32() (with proper virtual memory mapping), which simply writes to the address. In theory, you could do a plain write to a pointer to generate a TLP, e.g. *addr = value (but this isn't necessarily portable).
At the endpoint it's your logic (on the FPGA). You receive the TLP through some streaming interface and need to analyze it. How to respond to it, if at all, is your call.
Eli
Hi,
A TLP is merely a representation of a plain bus operation. It's a result of the host writing to a physical address in its memory space that is mapped to a PCIe device. The command in the Linux kernel doing this is e.g. iowrite32() (with proper virtual memory mapping), which simply writes to the address. In theory, you could do a plain write to a pointer to generate a TLP, e.g. *addr = value (but this isn't necessarily portable).
At the endpoint it's your logic (on the FPGA). You receive the TLP through some streaming interface and need to analyze it. How to respond to it, if at all, is your call.
Eli