[U-Boot] [PATCH V3 2/2] pci: Update documentation to make 'compatible' string optional

Simon Glass sjg at chromium.org
Fri Sep 14 04:41:38 UTC 2018


Hi Marex,

On 11 September 2018 at 14:58, Marek Vasut <marek.vasut at gmail.com> wrote:
> Reword the documentation to make it clear the compatible string is now
> optional, yet still matching on it takes precedence over PCI IDs and
> PCI classes.
>
> Signed-off-by: Marek Vasut <marek.vasut+renesas at gmail.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Tom Rini <trini at konsulko.com>
> ---
> V3: No change
> V2: New patch
> ---
>  doc/driver-model/pci-info.txt | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/doc/driver-model/pci-info.txt b/doc/driver-model/pci-info.txt
> index e1701d1fbc..14364c5c75 100644
> --- a/doc/driver-model/pci-info.txt
> +++ b/doc/driver-model/pci-info.txt
> @@ -34,11 +34,15 @@ under that bus.
>  Note that this is all done on a lazy basis, as needed, so until something is
>  touched on PCI (eg: a call to pci_find_devices()) it will not be probed.
>
> -PCI devices can appear in the flattened device tree. If they do this serves to
> -specify the driver to use for the device. In this case they will be bound at
> -first. Each PCI device node must have a compatible string list as well as a
> -<reg> property, as defined by the IEEE Std 1275-1994 PCI bus binding document
> -v2.1. Note we must describe PCI devices with the same bus hierarchy as the
> +PCI devices can appear in the flattened device tree. If they do, their node
> +often contains extra information which cannot be derived from the PCI IDs or
> +PCI class of the device. Each PCI device node must have a <reg> property, as
> +defined by the IEEE Std 1275-1994 PCI bus binding document v2.1. Compatible
> +string list is optional and generally not needed, since PCI is discoverable

I really don't like 'generally not needed'. How about 'generally not
essential'? Or that you can usually avoid it if desired.

I'd like to say that it is optional since U_BOOT_PCI_DEVICE() can be
used to specific the driver based on conditions like the PCI vendor/,
PCI class, etc. If U-Boot does not find a compatible string then it
will search these U_BOOT_PCI_DEVICE() records to find a driver;
assuming it finds one it will then search for the device-tree node
whose reg property matches the bus/device/function of the device, and
attached that node to the device so that it is accessible to the
driver.

> +bus, albeit there are justified exceptions. If the compatible string is
> +present, matching on it takes precedence over PCI IDs and PCI classes.
> +
> +Note we must describe PCI devices with the same bus hierarchy as the
>  hardware, otherwise driver model cannot detect the correct parent/children
>  relationship during PCI bus enumeration thus PCI devices won't be bound to
>  their drivers accordingly. A working example like below:
> --
> 2.18.0
>

Regards,
Simon


More information about the U-Boot mailing list