Address in Write Packet

Comments and questions related to the "Down to the TLP" pages

Address in Write Packet

Postby Guest » Tue May 31, 2016 5:45 am


I am bit confused with the address given in all the transactions in pcie. For example in write transaction the 3rd DW is address it is address of what the enpoints DMA?


Re: Address in Write Packet

Postby support » Tue May 31, 2016 7:45 am


The address in a TLP packet is the physical address (as opposed to virtual address) to which the data is written to. For example, if a C program on the processor issues a command like

int *addr = 0x12345678;
*addr = 123;

This will cause a write request TLP to be sent from the processor to the PCIe endpoint with the address field being 0x12345678. This example assumes that no address translation takes place (the MMU is off or transparent on that region) and that the processor considers this address mapped to the PCIe bus.

Hope this clarified.

Posts: 760
Joined: Tue Apr 24, 2012 3:46 pm

Return to General PCIe