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

Gupta, Nipun
2022-08-04T04:23:47Z

[AMD Official Use Only - General]

> -----Original Message-----
> From: Robin Murphy <robin.murphy@arm.com>
> Sent: Wednesday, August 3, 2022 7:46 PM
> To: Gupta, Nipun <Nipun.Gupta@amd.com>; linux-kernel@vger.kernel.org;
> linux-arm-kernel@lists.infradead.org; gregkh@linuxfoundation.org;
> rafael@kernel.org; maz@kernel.org; tglx@linutronix.de
> Cc: okaya@kernel.org; Anand, Harpreet <harpreet.anand@amd.com>;
> Simek, Michal <michal.simek@amd.com>; Agarwal, Nikhil
> <nikhil.agarwal@amd.com>
> 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
> >