Re: PCI Endpoint - Missing inbound mapping ops ?

From: Kishon Vijay Abraham I
Date: Tue Aug 14 2018 - 09:28:40 EST


Hi,

On Tuesday 14 August 2018 06:25 PM, Ramon Fried wrote:
> On Tue, Aug 14, 2018 at 1:53 PM Kishon Vijay Abraham I <kishon@xxxxxx> wrote:
>>
>> Hi,
>>
>> On Tuesday 14 August 2018 06:19 PM, Ramon Fried wrote:
>>> Hi.
>>> I recently saw that the PCI endpoint API only supports outbound memory
>>> mapping: (AXI -> PCI) through the map_addr op.
>>> Why inbound mapping is missing (PCI->AXI) is missing ?
>>> In almost all of the PCI EP controllers I've worked with there was a
>>> need to map complete BARS or part of BARS to mmio/aperature regions on
>>> the device.
>>
>> pci_epc_set_bar() is used for mapping BAR.
> Thanks Kishon.
> what about address mapping ? Synopsys has this functionality if I
> recall correctly.

The addresses that the RC will put in BAR's is not known while we initialize
the endpoint. So we really can't map BAR's PCI address to an inbound address
while EP initialization.

I think some older version of Synopsys had this (and didn't have BAR mapping).
Actually TI's K2G had this IP. However the ATU registers here are mapped to
BAR0. So the host side PCI driver can program the PCI address (that the RC has
allocated for BARs) in ATU.

Thanks
Kishon