All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: [PATCH 02/17] x86: pci: Allow binding of some devices before relocation
Date: Sat, 24 Apr 2021 16:56:15 +1200	[thread overview]
Message-ID: <CAPnjgZ1wah92cLkGQ6oFa2x+Oiu1WmM15voTLRLt10u6bCZabQ@mail.gmail.com> (raw)
In-Reply-To: <CAEUhbmXjS0B6tS-TKTVQs2etgumYE=XyJ1mwaz8QZ6_3P3CpkQ@mail.gmail.com>

Hi Bin,

On Thu, 8 Apr 2021 at 14:17, Bin Meng <bmeng.cn@gmail.com> wrote:
>
> Hi Simon,
>
> On Wed, Apr 7, 2021 at 12:32 PM Simon Glass <sjg@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 <sjg@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 at 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>;
>                                 };

Yes but only if we have the correct PCI BDF for it. But the goal of
the coreboot build is to be able to run on any hardware. So if we
require a devicetree (and coreboot doesn't supply it) then it cannot
work. We would need to have many devicetree files, one for each board.
Perhaps that will happen anyway, but for now I am trying to do things
automatically.

Of course this would be a lot easier if coreboot just used devicetree,
but that doesn't seem to be on the cards.

Regards,
Simon

  reply	other threads:[~2021-04-24  4:56 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-07  4:32 [PATCH 00/17] misc: Some more misc patches Simon Glass
2021-04-07  4:32 ` [PATCH 01/17] pci: Use const for pci_find_device_id() etc Simon Glass
2021-04-08  2:29   ` Bin Meng
2021-04-07  4:32 ` [PATCH 02/17] x86: pci: Allow binding of some devices before relocation Simon Glass
2021-04-08  2:16   ` Bin Meng
2021-04-24  4:56     ` Simon Glass [this message]
2021-04-07  4:32 ` [PATCH 03/17] x86: Allow coreboot serial driver to guess the UART Simon Glass
2021-04-08  2:22   ` Bin Meng
2021-04-24  4:56     ` Simon Glass
2021-04-25  1:49       ` Bin Meng
2021-04-25  2:09         ` Simon Glass
2021-04-26  1:21           ` Bin Meng
2021-04-29 16:10             ` Simon Glass
2021-04-29 23:01               ` Bin Meng
2021-04-30 18:13                 ` Simon Glass
2021-04-30 18:41                   ` Andy Shevchenko
2021-05-04 15:26                     ` Simon Glass
2021-05-04 16:48                       ` Andy Shevchenko
2021-05-08  1:42                       ` Simon Glass
2021-05-08  1:47                         ` Bin Meng
2021-05-08  2:12                           ` Simon Glass
2021-05-08  2:26                             ` Bin Meng
2021-04-07  4:32 ` [PATCH 04/17] spi: ich: Don't require the PCH Simon Glass
2021-04-08  2:28   ` Bin Meng
2021-04-24  4:56     ` Simon Glass
2021-04-07  4:32 ` [PATCH 05/17] tpm: cr50: Drop unnecessary coral headers Simon Glass
2021-04-08  2:29   ` Bin Meng
2021-04-07  4:32 ` [PATCH 06/17] x86: Don't set up MTRRs if previously done Simon Glass
2021-04-08  2:42   ` Bin Meng
2021-04-07  4:32 ` [PATCH 07/17] x86: Update the MP constants to avoid conflicts Simon Glass
2021-04-08  2:43   ` Bin Meng
2021-04-07  4:32 ` [PATCH 08/17] x86: Do cache set-up by default when booting from coreboot Simon Glass
2021-04-08  2:43   ` Bin Meng
2021-04-07  4:32 ` [PATCH 09/17] x86: coreboot: Show the BIOS date Simon Glass
2021-04-08  2:43   ` Bin Meng
2021-04-07  4:32 ` [PATCH 10/17] x86: coral: Allow booting from coreboot Simon Glass
2021-04-08  2:43   ` Bin Meng
2021-04-07  4:32 ` [PATCH 11/17] x86: Add function comments to cb_sysinfo.h Simon Glass
2021-04-08  2:59   ` Bin Meng
2021-04-07  4:32 ` [PATCH 12/17] x86: coreboot: Use vendor in the Kconfig Simon Glass
2021-04-08  2:59   ` Bin Meng
2021-04-24  4:56     ` Simon Glass
2021-04-07  4:32 ` [PATCH 13/17] x86: coreboot: Enable the cbsysinfo command Simon Glass
2021-04-08  2:59   ` Bin Meng
2021-04-07  4:32 ` [PATCH 14/17] x86: coreboot: Document the memory map Simon Glass
2021-04-08  2:59   ` Bin Meng
2021-04-07  4:32 ` [PATCH 15/17] x86: Check ROM exists before building vboot Simon Glass
2021-04-08  2:59   ` Bin Meng
2021-04-08 22:07   ` Jaehoon Chung
2021-04-07  4:32 ` [PATCH 16/17] dtoc: Check that a parent is not missing Simon Glass
2021-04-07  4:32 ` [PATCH 17/17] doc: Update documentation for cros-2021.04 release Simon Glass
2021-04-08  3:02   ` Bin Meng
2021-04-24  4:56     ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPnjgZ1wah92cLkGQ6oFa2x+Oiu1WmM15voTLRLt10u6bCZabQ@mail.gmail.com \
    --to=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.