On 12/16/19 1:06 PM, Andrew Murray wrote: > On Fri, Oct 04, 2019 at 02:29:41PM +0100, Andrew Murray wrote: >> The outbound windows (PCIEPAUR(x), PCIEPALR(x)) describe a mapping between >> a CPU address (which is determined by the window number 'x') and a >> programmed PCI address - Thus allowing the controller to translate CPU >> accesses into PCI accesses. >> >> However the existing code incorrectly writes the CPU address - lets fix >> this by writing the PCI address instead. >> >> For memory transactions, existing DT users describe a 1:1 identity mapping >> and thus this change should have no effect. However the same isn't true for >> I/O. >> >> Fixes: c25da4778803 ("PCI: rcar: Add Renesas R-Car PCIe driver") >> Signed-off-by: Andrew Murray <andrew.murray@xxxxxxx> >> >> --- >> This hasn't been tested, so keen for someone to give it a try. >> >> Also keen for someone to confirm my understanding that the RCar windows >> expect PCI addresses and that res->start refers to CPU addresses. If this >> is correct then it's possible the I/O doesn't work correctly. > > Marek/Yoshihiro - any feedback on this? It does indeed look correct, Reviewed-by: Marek Vasut <marek.vasut+renesas@xxxxxxxxx> # On R8A77951 Salvator-XS with Intel 8086:f1a5 600P SSD # On R8A77965 Salvator-XS with Intel 8086:10d3 82574L NIC Tested-by: Marek Vasut <marek.vasut+renesas@xxxxxxxxx>