On Tue, Aug 30, 2022 at 07:06:12AM +0000, 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. It would be alot clearer to see a rfc cdx driver that doesn't have all the dt,fwnode,of stuff in it and works like PCI does, with a custom matcher and custom properies instead of trying to co-opt the DT things: Eg stuff like this make it look like you are building DT nodes: + struct property_entry port_props[] = { + PROPERTY_ENTRY_STRING("compatible", + dev_types[dev_params->dev_type_idx].compat), + { } + ret = of_map_id(np, req_id, "iommu-map", "iommu-map-mask", + NULL, &dev_params.stream_id); I still don't understand why FW would be involved, we usually don't involve FW for PCI.. Jason