RE: [RFC PATCH 0/2] add support for CDX bus MSI domain

From: Gupta, Nipun
Date: Thu Aug 04 2022 - 00:23:47 EST


[AMD Official Use Only - General]



> -----Original Message-----
> From: Robin Murphy <robin.murphy@xxxxxxx>
> Sent: Wednesday, August 3, 2022 7:46 PM
> To: Gupta, Nipun <Nipun.Gupta@xxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx;
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx;
> rafael@xxxxxxxxxx; maz@xxxxxxxxxx; tglx@xxxxxxxxxxxxx
> Cc: okaya@xxxxxxxxxx; Anand, Harpreet <harpreet.anand@xxxxxxx>;
> Simek, Michal <michal.simek@xxxxxxx>; Agarwal, Nikhil
> <nikhil.agarwal@xxxxxxx>
> Subject: Re: [RFC PATCH 0/2] add support for CDX bus MSI domain
>
> [CAUTION: External Email]
>
> On 2022-08-03 13:26, Nipun Gupta wrote:
> > Devices in FPGA can be added/modified dynamically on run-time.
> > These devices are exposed on system bus to embedded CPUs.
> >
> > CDX is an upcoming bus, that caters to the requirement for
> > dynamically discovered FPGA devices. These devices are added
> > as platform devices where fwnode is created using 'software
> > nodes' in Linux framework.
> >
> > This RFC targets to solves 2 issues when adding devices
> > dynamically using platform_device_register API.
> >
> > 1. It creates a MSI domain for CDX bus devices, which can
> > discover device ID used by GIC ITS without depending
> > on of_node.
> > 2. Since these devices are not present in device tree, it
> > creates a sysfs entry to expose the compatible string.
>
> Isn't this pretty much what CONFIG_OF_DYNAMIC is for? From the look of
> these patches this thing is still completely tied to devicetree, so why
> reinvent that wheel?

According to our analysis, device tree modification via OF_DYNAMIC is
mostly designed as a boot time patching mechanism but it was never
designed to be runtime used as a "bus" mechanism.

Most firmware patches ACPI/DT during boot but we want to go beyond
boot time configuration and would like to be able to dynamically
remove/insert objects during FPGA servicing. As an example, a new FPGA
can be programmed to the system where either the attributes are
changed or new devices are introduced.

Another concern about OF_DYNAMIC is about security.
We'd like to keep device-tree contents intact at boot and never
touch again as a good security principle.

>
> Robin.
>
> > Nipun Gupta (2):
> > irqchip: cdx-bus: add cdx-MSI domain with gic-its domain as parent
> > driver core: add compatible string in sysfs for platform devices
> >
> > drivers/base/platform.c | 15 +++
> > drivers/irqchip/Makefile | 1 +
> > drivers/irqchip/irq-gic-v3-its-cdx-msi.c | 114 +++++++++++++++++++++++
> > include/linux/cdx/cdx.h | 15 +++
> > 4 files changed, 145 insertions(+)
> > create mode 100644 drivers/irqchip/irq-gic-v3-its-cdx-msi.c
> > create mode 100644 include/linux/cdx/cdx.h
> >