On 2022-08-30 08:06, Gupta, Nipun wrote:
[AMD Official Use Only - General]
-----Original Message-----
From: Jason Gunthorpe <jgg@xxxxxxxxxx>
Sent: Monday, August 29, 2022 9:02 PM
To: Gupta, Nipun <Nipun.Gupta@xxxxxxx>
Cc: Robin Murphy <robin.murphy@xxxxxxx>; Saravana Kannan
<saravanak@xxxxxxxxxx>; Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx>;
robh+dt@xxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx; rafael@xxxxxxxxxx;
eric.auger@xxxxxxxxxx; alex.williamson@xxxxxxxxxx; cohuck@xxxxxxxxxx;
Gupta, Puneet (DCG-ENG) <puneet.gupta@xxxxxxx>;
song.bao.hua@xxxxxxxxxxxxx; mchehab+huawei@xxxxxxxxxx;
maz@xxxxxxxxxx; f.fainelli@xxxxxxxxx; jeffrey.l.hugo@xxxxxxxxx;
Michael.Srba@xxxxxxxxx; mani@xxxxxxxxxx; yishaih@xxxxxxxxxx; linux-
kernel@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx;
okaya@xxxxxxxxxx; Anand, Harpreet <harpreet.anand@xxxxxxx>; Agarwal,
Nikhil <nikhil.agarwal@xxxxxxx>; Simek, Michal <michal.simek@xxxxxxx>;
git (AMD-Xilinx) <git@xxxxxxx>
Subject: Re: [RFC PATCH v2 2/6] bus/cdx: add the cdx bus driver
[CAUTION: External Email]
On Mon, Aug 29, 2022 at 04:49:02AM +0000, Gupta, Nipun wrote:
Devices are created in FPFGA with a CDX wrapper, and CDX
controller(firmware)
reads that CDX wrapper to find out new devices. Host driver then interacts
with
firmware to find newly discovered devices. This bus aligns with PCI
infrastructure.
It happens to be an embedded interface as opposed to off-chip
connection.
Why do you need an FW in all of this?
And why do you need DT at all?
We need DT to describe the CDX controller only, similar to
how PCI controller is described in DT. PCI devices are
never enumerated in DT. All children are to be dynamically
discovered.
Children devices do not require DT as they will be discovered
by the bus driver.
Like PCI controller talks to PCI device over PCI spec defined channel,
we need CDX controller to talk to CDX device over a custom
defined (FW managed) channel.
OK, thanks for clarifying - it actually sounds quite cool :)
I think it's clear now that this should be a a full-fledged bus
implementation. Note that if the CDX interface provides a way to query
arbitrary properties beyond standard resources then you may well also
want your own fwnode type to hook into the device_property APIs too.
Yes, it then means a bit more work adapting individual drivers too, but
that should be far cleaner in the long run, and there's already plenty
of precedent for IPs which exist with multiple standard interfaces for
PCI/USB/SDIO/platform MMIO/etc.
Plus it means that if CDX ever makes its way into PCIe-attached FPGA
cards which can be used on non-OF systems, you've not painted yourself
into a corner.
Thanks,
Robin.