Re: [PATCH v3 2/2] ACPI: SPCR: Support UART clock frequency field

From: Markus Probst

Date: Fri Jul 24 2026 - 11:43:45 EST


On Fri, 2026-07-10 at 14:34 +0200, Greg Kroah-Hartman wrote:

I just noticed, I never replied to this email.
My apologies for the late response.

> On Mon, Jun 15, 2026 at 12:40:22AM +0000, Markus Probst wrote:
> > The Microsoft Serial Port Console Redirection (SPCR) specification
> > revision 1.08 comprises additional field: UART Clock Frequency [1].
> >
> > It contains a non-zero value indicating the UART clock frequency in Hz.
>
> Ok, but then what are we going to do with this? Please make this a lot
> more descriptive, I have no idea what this is supposed to be doing at
> all.
The SPCR table provides information about a serial port. This can be
used, to make use of a serial port, before the necessary drivers are
loaded. Linux makes use of this in the earlycon console, if `earlycon`
is added to the kernel parameters.

Currently the "UART clock frequency" field in the SPCR table is
completely ignored. Thus if the uart clock frequency differs from the
kernel default of `BAUD*16`, it results in a misconfiguration of the
serial port.

>
> >
> > Link: https://learn.microsoft.com/en-us/windows-hardware/drivers/serports/serial-port-console-redirection-table [1]
> > Signed-off-by: Markus Probst <markus.probst@xxxxxxxxx>
> > ---
> > drivers/acpi/spcr.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/acpi/spcr.c b/drivers/acpi/spcr.c
> > index 73cb933fdc89..c79c809f49d4 100644
> > --- a/drivers/acpi/spcr.c
> > +++ b/drivers/acpi/spcr.c
> > @@ -228,7 +228,8 @@ int __init acpi_parse_spcr(bool enable_earlycon, bool enable_console)
> > pr_info("console: %s\n", opts);
> >
> > if (enable_earlycon)
> > - setup_earlycon(opts);
> > + setup_earlycon_with_uartclk(opts,
> > + table->header.revision >= 3 ? table->uart_clk_freq : 0);
>
> Why the magic number 3?
As seen on the Link in the commit message, the "UART Clock Frequency"
field was introduced in the SPCR table with revision 3. For lower
revisions, this value must be ignored (and should be 0 anyway).

Thanks
- Markus Probst

>
> thanks,
> greg k-h

Attachment: signature.asc
Description: This is a digitally signed message part