[PATCH 06/13] x86: Allow locating UARTs by device ID
Simon Glass
sjg at chromium.org
Thu Mar 23 19:28:22 CET 2023
Hi Bin,
On Mon, 20 Mar 2023 at 20:56, Bin Meng <bmeng.cn at gmail.com> wrote:
>
> +Andy
>
> Hi Simon,
>
> On Tue, Feb 21, 2023 at 3:49 AM Simon Glass <sjg at chromium.org> wrote:
> >
> > When coreboot does not pass a UART in its sysinfo struct, there is no
> > easy way to find it out. Add a way to specify known UARTs so we can
> > find them without needing help from coreboot.
> >
> > Since coreboot does not actually init the serial device when serial is
> > disabled, it is not possible to make it add this information to the
> > sysinfo table.
> >
> > Also, we cannot use the class information, since we don't know which
> > UART is being used. For example, with Alder Lake there are two:
> >
> > 00.16.00 0x8086 0x51e0 Simple comm. controller 0x80
> > 00.1e.00 0x8086 0x51a8 Simple comm. controller 0x80
> >
> > In our case the second one is the right one, but thre is no way to
> > distinguish it from the first one without using the device ID.
> >
> > If we have Adler Lake hardware which uses a different UART, we could
> > perhaps look at the ACPI tables, or the machine information passed in
> > the SMBIOS tables.
> >
> > This was discussed previously before: [1]
> >
> > [1] https://patchwork.ozlabs.org/project/uboot/patch/
> > 20210407163159.3.I967ea8c85e009f870c7aa944372d32c990f1b14a at changeid/
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
> > arch/x86/dts/coreboot.dts | 4 ++
> > drivers/serial/serial_coreboot.c | 69 ++++++++++++++++++++++++++++----
> > include/pci_ids.h | 3 ++
> > 3 files changed, 68 insertions(+), 8 deletions(-)
> >
>
> Last time we discussed this, both Andy and I thought this was a hack.
> I cited Andy's point below:
>
> "What coreboot should do is either provide serial information or SPCR
> ACPI table. Otherwise if it does not provide it, I think it's on
> purpose, and we have to respect this."
We cannot change what coreboot does. I have written up a design for it
but it seems unlikely that anything will happen there in the short
term, perhaps ever. I will keep pushing.
In the meantime U-Boot cannot be used as a coreboot payload in this
(common) situation. So we do need a solution.
>
> So maybe somehow we should parse the SPCR ACPI table instead?
I don't see that table present, but there is DBG2 so I will take a look.
Regards,
Simon
More information about the U-Boot
mailing list