All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bin Meng <bmeng.cn@gmail.com>
To: u-boot@lists.denx.de
Subject: [PATCH 03/17] x86: Allow coreboot serial driver to guess the UART
Date: Mon, 26 Apr 2021 09:21:31 +0800	[thread overview]
Message-ID: <CAEUhbmWfGQG-iRQ64JMc9A8mAvNwee63=wcQpJMYBgfq7jcURw@mail.gmail.com> (raw)
In-Reply-To: <CAPnjgZ33knoAWozzdju475hC3NgEM4BXczeTCHRi0c5fpxepAg@mail.gmail.com>

Hi Simon,

On Sun, Apr 25, 2021 at 10:10 AM Simon Glass <sjg@chromium.org> wrote:
>
> Hi Bin,
>
> On Sun, 25 Apr 2021 at 13:49, Bin Meng <bmeng.cn@gmail.com> wrote:
> >
> > Hi Simon,
> >
> > On Sat, Apr 24, 2021 at 12:56 PM Simon Glass <sjg@chromium.org> wrote:
> > >
> > > Hi Bin,
> > >
> > > On Thu, 8 Apr 2021 at 14:23, 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 this driver relies on coreboot to provide information about
> > > > > the console UART. However if coreboot is not compiled with the UART
> > > > > enabled, the information is left out. This configuration is quite
> > > > > common, e.g. with shipping x86-based Chrome OS Chromebooks.
> > > > >
> > > > > Add a way to determine the UART settings in this case, using a
> > > > > hard-coded list of PCI IDs.
> > > > >
> > > > > Signed-off-by: Simon Glass <sjg@chromium.org>
> > > > > ---
> > > > >
> > > > >  drivers/serial/serial_coreboot.c | 68 ++++++++++++++++++++++++++++----
> > > > >  include/pci_ids.h                |  1 +
> > > > >  2 files changed, 61 insertions(+), 8 deletions(-)
> > > > >
> > > > > diff --git a/drivers/serial/serial_coreboot.c b/drivers/serial/serial_coreboot.c
> > > > > index de09c8681f5..4b4619432d8 100644
> > > > > --- a/drivers/serial/serial_coreboot.c
> > > > > +++ b/drivers/serial/serial_coreboot.c
> > > > > @@ -11,19 +11,71 @@
> > > > >  #include <serial.h>
> > > > >  #include <asm/cb_sysinfo.h>
> > > > >
> > > > > +static const struct pci_device_id ids[] = {
> > > > > +       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_APL_UART2) },
> > > > > +       {},
> > > > > +};
> > > > > +
> > > > > +/*
> > > > > + * Coreboot only sets up the UART if it uses it and doesn't bother to put the
> > > > > + * details in sysinfo if it doesn't. Try to guess in that case, using devices
> > > > > + * we know about
> > > > > + *
> > > > > + * @plat: Platform data to fill in
> > > > > + * @return 0 if found, -ve if no UART was found
> > > > > + */
> > > > > +static int guess_uart(struct ns16550_plat *plat)
> > > >
> > > > This is really not a guess, but use a pre-configured platform data.
> > > > Also this only work for Apollo Lake board, and will break other boards
> > > > if they don't have cbinfo available.
> > >
> > > Which bit of it breaks other boards?
> >
> > I see it does not return the error code to the caller, that's okay ...
> >
> > >
> > > >
> > > > Why not just simply put a serial node in the device tree and we are all done?
> > >
> > > See my other email...I am trying to make this boot on any board that
> > > coreboot supports.
> >
> > But this solution does not scale. One has to put all known UARTs into
> > serial_coreboot.c.
>
> Yes that's right...but this is only for when coreboot does not enable
> serial. Also the number of new platforms is not that great.
>
> >
> > Why not patch coreboot instead? Why coreboot does not provide a cbinfo
> > with serial?
>
> Because it does not even set up the serial device in that case, so
> doesn't know the details. The driver is completely missing.

Sigh. Is it possible to upstream a patch to coreboot to enable that?

I don't like the current approach because it ends up duplicating all
UART IDs/info in C.

Regards,
Bin

  reply	other threads:[~2021-04-26  1:21 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
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 [this message]
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='CAEUhbmWfGQG-iRQ64JMc9A8mAvNwee63=wcQpJMYBgfq7jcURw@mail.gmail.com' \
    --to=bmeng.cn@gmail.com \
    --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.