Skip to content

Commit 2f190ac

Browse files
superm1rafaeljw
authored andcommitted
ACPI: OSI: Update Documentation on custom _OSI strings
Originally, when there was some custom ASL needed for Linux, the guidance for Linux-friendly OEMs was to introduced a new string in the APCI tables and discuss it on the kernel mailing lists. This lead to 3 strings being introduced. Those strings now have the original problems fixed in the kernel and have since been removed. The kernel no longer advertises any custom Linux-* _OSI strings for OEM use. It was discovered that these removed strings were actually being abused to detect Linux for unrelated reasons, so drop the encouragement for new ones to be added. Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
1 parent e54049d commit 2f190ac

File tree

1 file changed

+11
-14
lines changed
  • Documentation/firmware-guide/acpi

1 file changed

+11
-14
lines changed

Documentation/firmware-guide/acpi/osi.rst

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,26 +41,23 @@ But it is likely that they will all eventually be added.
4141
What should an OEM do if they want to support Linux and Windows
4242
using the same BIOS image? Often they need to do something different
4343
for Linux to deal with how Linux is different from Windows.
44-
Here the BIOS should ask exactly what it wants to know:
4544

45+
In this case, the OEM should create custom ASL to be executed by the
46+
Linux kernel and changes to Linux kernel drivers to execute this custom
47+
ASL. The easiest way to accomplish this is to introduce a device specific
48+
method (_DSM) that is called from the Linux kernel.
49+
50+
In the past the kernel used to support something like:
4651
_OSI("Linux-OEM-my_interface_name")
4752
where 'OEM' is needed if this is an OEM-specific hook,
4853
and 'my_interface_name' describes the hook, which could be a
4954
quirk, a bug, or a bug-fix.
5055

51-
In addition, the OEM should send a patch to upstream Linux
52-
via the [email protected] mailing list. When that patch
53-
is checked into Linux, the OS will answer "YES" when the BIOS
54-
on the OEM's system uses _OSI to ask if the interface is supported
55-
by the OS. Linux distributors can back-port that patch for Linux
56-
pre-installs, and it will be included by all distributions that
57-
re-base to upstream. If the distribution can not update the kernel binary,
58-
they can also add an acpi_osi=Linux-OEM-my_interface_name
59-
cmdline parameter to the boot loader, as needed.
60-
61-
If the string refers to a feature where the upstream kernel
62-
eventually grows support, a patch should be sent to remove
63-
the string when that support is added to the kernel.
56+
However this was discovered to be abused by other BIOS vendors to change
57+
completely unrelated code on completely unrelated systems. This prompted
58+
an evaluation of all of it's uses. This uncovered that they aren't needed
59+
for any of the original reasons. As such, the kernel will not respond to
60+
any custom Linux-* strings by default.
6461

6562
That was easy. Read on, to find out how to do it wrong.
6663

0 commit comments

Comments
 (0)