SPCR table parsing
Hi Folks,
We're implementing support for SPCR table parsing shortly[0], since it will allow to deprecate supplying a "console=" (and eventually, also "earlycon=") on 64-bit ARM servers, where it's not always the case that we can assume a 16550 at a specific address. SPCR has been provided on x86 systems since 2000 but is not (yet) supported by Linux.
If anyone knows of existing efforts on e.g. x86 or IA64, please get in touch. I expect the initial implementation to require revision 2+ modern server systems and possibly be limited to ARM initially.
Thanks,
Jon.
[0] This table is now published under a non-restrictive implementation license and is linked from the UEFI ACPI documents webpage.
Quoted 9 lines · Jon Masters
We're implementing support for SPCR table parsing shortly[0], since it will allow to deprecate supplying a "console=" (and eventually, also "earlycon=") on 64-bit ARM servers, where it's not always the case that we can assume a 16550 at a specific address. SPCR has been provided on x86 systems since 2000 but is not (yet) supported by Linux.
If anyone knows of existing efforts on e.g. x86 or IA64, please get in touch. I expect the initial implementation to require revision 2+ modern server systems and possibly be limited to ARM initially.
Side note: I preemptively had this added to the SBBR so it's already required on ARM servers, and have confirmed the reference systems out there have valid tables for us to use ahead of time.
Jon.
Quoted 7 lines · Jon Masters
Hi Folks,
We're implementing support for SPCR table parsing shortly[0], since it will allow to deprecate supplying a "console=" (and eventually, also "earlycon=") on 64-bit ARM servers, where it's not always the case that we can assume a 16550 at a specific address. SPCR has been provided on x86 systems since 2000 but is not (yet) supported by Linux.
For anyone using DT rather than ACPI, the same can be achieved in mainline with /chosen/stdout-path as of:
7914a7c5651a5161 "of: support passing console options with stdout-path"
Documented in:
2a9d832cc9aae21e "of: Add bindings for chosen node, stdout-path"
e.g.
uart: serial@f00 {
reg = <0xf00 0x200>;
compatible = "vendor,some-serial-device";
};chosen {
stdout-path = "/serial@f00:115200n8";
};This will be used for both the console and earlycon. Please make use of this where possible.
Thanks,
Mark.