On Tue, Feb 04, 2025 at 08:35:00AM +0100, Herve Codina wrote: > PCI devices device-tree nodes can be already created. This was > introduced by commit 407d1a51921e ("PCI: Create device tree node for > bridge"). > > In order to have device-tree nodes related to PCI devices attached on > their PCI root bus (the PCI bus handled by the PCI host bridge), a PCI > root bus device-tree node is needed. This root bus node will be used as > the parent node of the first level devices scanned on the bus. On > device-tree based systems, this PCI root bus device tree node is set to > the node of the related PCI host bridge. The PCI host bridge node is > available in the device-tree used to describe the hardware passed at > boot. > > On non device-tree based system (such as ACPI), a device-tree node for > the PCI host bridge or for the root bus does not exist. Indeed, the PCI > host bridge is not described in a device-tree used at boot simply > because no device-tree are passed at boot. > > The device-tree PCI host bridge node creation needs to be done at > runtime. This is done in the same way as for the creation of the PCI > device nodes. I.e. node and properties are created based on computed > information done by the PCI core. Also, as is done on device-tree based > systems, this PCI host bridge node is used for the PCI root bus. This is a detailed low-level description of what this patch does. Can we include a high level outline of what the benefit is and why we want this patch? Based on 185686beb464 ("misc: Add support for LAN966x PCI device"), I assume the purpose is to deal with some kind of non-standard PCI topology, e.g., a single B/D/F function contains several different pieces of functionality to be driven by several different drivers, and we build a device tree description of those pieces and then bind those drivers to the functionality using platform_device interfaces? Bjorn