Richard Spiegel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/33652 )
Change subject: arch/x86/acpi: Add os.asl ......................................................................
Patch Set 1:
(2 comments)
https://review.coreboot.org/#/c/33652/1/src/arch/x86/acpi/os.asl File src/arch/x86/acpi/os.asl:
https://review.coreboot.org/#/c/33652/1/src/arch/x86/acpi/os.asl@90 PS1, Line 90: If(SCPM(local0, "Microsoft WindowsME: Millennium Edition"))
I believe the "Windows NT" ACPI name is still in use. I'd be more worried about HP-UX and OpenVMS.
Ok, easy to remove, as coreboot will probably never be used with these OS.
https://review.coreboot.org/#/c/33652/1/src/arch/x86/acpi/os.asl@94 PS1, Line 94: If(SCPM(local0, "Linux"))
What I mean is that I would leave out all queries for "Linux". […]
So how do I identify Linux? From the documentation you provided, Linux answers ""Microsoft Windows NT" to _OS, and answers true to almost all _OSI"something". I understand that the true use should be what interface you support, which is specially important between ACPI 1.0 and 2.0, though WIN XP only partially supported ACPI 2.0. I once had a problem because I needed to support several windows version, including XP... and WIN XP interpreted one particular command (don't remember exactly which) the exact opposite way (ACPI 1.0) of all other windows versions after WIN XP.
Really the only reason for OSFL is to identify what is supported, though as document says, "tradition" has it identifying OS instead of ACPI capabilities, and the engineer had to know exactly what was supported for each OS version.
So "tradition" would make this code work with all Windows versions (Microsoft made sure of it once this tradition started.), but within Linux you would think you are running whatever OS you first asked (thus making sense to ask _OSI(Linux) as the very first query as only Linux would answer true to it... but you'd still not know what version of Linux and thus what is supported.