Hi Simon,

On Wed, Apr 7, 2021 at 12:32 PM Simon Glass <s...@chromium.org> wrote:
>
> At present only bridge devices are bound before relocation, to save space
> in pre-relocation memory. In some cases we do actually want to bind a
> device, e.g. because it provides the console UART. Add a devicetree
> binding to support this.
>
> Use the PCI_VENDEV() macro to encode the cell value. This is present in
> U-Boot but not used, so move it to the binding header-file.
>
> Signed-off-by: Simon Glass <s...@chromium.org>
> ---
>
>  doc/device-tree-bindings/pci/x86-pci.txt |  7 ++++-
>  drivers/pci/pci-uclass.c                 | 33 +++++++++++++++++++++++-
>  include/dt-bindings/pci/pci.h            | 12 +++++++++
>  include/pci.h                            |  1 -
>  4 files changed, 50 insertions(+), 3 deletions(-)
>  create mode 100644 include/dt-bindings/pci/pci.h
>
> diff --git a/doc/device-tree-bindings/pci/x86-pci.txt 
> b/doc/device-tree-bindings/pci/x86-pci.txt
> index 95e370b3e72..cf4e5ed595a 100644
> --- a/doc/device-tree-bindings/pci/x86-pci.txt
> +++ b/doc/device-tree-bindings/pci/x86-pci.txt
> @@ -20,6 +20,10 @@ For PCI devices the following optional property is 
> available:
>         output to be lost. This should not generally be used in production 
> code,
>         although it is often harmless.
>
> +- u-boot,pci-pre-reloc : List of vendor/device IDs to bind before 
> relocation, even
> +       if they are not bridges. This is useful if the device is needed (e.g. 
> a
> +       UART). The format is 0xvvvvdddd where d is the device ID and v is the
> +       vendor ID.

Can we reuse "u-boot,dm-pre-reloc" to do such thing?

The following is an example from arch/x86/dts/crownbay.dts

                                pciuart0: uart@a,1 {
                                        compatible = "pci8086,8811.00",
                                                        "pci8086,8811",
                                                        "pciclass,070002",
                                                        "pciclass,0700",
                                                        "ns16550";
                                        u-boot,dm-pre-reloc;
                                        reg = <0x00025100 0x0 0x0 0x0 0x0
                                               0x01025110 0x0 0x0 0x0 0x0>;
                                        reg-shift = <0>;
                                        clock-frequency = <1843200>;
                                        current-speed = <115200>;
                                };

Regards,
Bin

Reply via email to