aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/kernel-parameters.txt
diff options
context:
space:
mode:
authorLv Zheng <lv.zheng@intel.com>2013-07-22 04:08:25 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-07-22 22:06:56 -0400
commit5dc17986fdc3d2425838cb8d699152c3c30d1208 (patch)
tree7937dfdaacca0a6613daed8e50468d4fe2df697a /Documentation/kernel-parameters.txt
parent2cf9f5bcc8d8cb31d6ea7baebac5056f39fb4f40 (diff)
ACPI: Add facility to disable all _OSI OS vendor strings
This patch introduces "acpi_osi=!" command line to force Linux replying "UNSUPPORTED" to all of the _OSI strings. This patch is based on an ACPICA enhancement - the new API acpi_update_interfaces(). The _OSI object provides the platform with the ability to query OSPM to determine the set of ACPI related interfaces, behaviors, or features that the operating system supports. The argument passed to the _OSI is a string like the followings: 1. Feature Group String, examples include Module Device Processor Device 3.0 _SCP Extensions Processor Aggregator Device ... 2. OS Vendor String, examples include Linux FreeBSD Windows ... There are AML codes provided in the ACPI namespace written in the following style to determine OSPM interfaces / features: Method(OSCK) { if (CondRefOf(_OSI, Local0)) { if (\_OSI("Windows")) { Return (One) } if (\_OSI("Windows 2006")) { Return (Ones) } Return (Zero) } Return (Zero) } There is a debugging facility implemented in Linux. Users can pass "acpi_osi=" boot parameters to the kernel to tune the _OSI evaluation result so that certain AML codes can be executed. Current implementation includes: 1. 'acpi_osi=' - this makes CondRefOf(_OSI, Local0) TRUE 2. 'acpi_osi="Windows"' - this makes \_OSI("Windows") TRUE 3. 'acpi_osi="!Windows"' - this makes \_OSI("Windows") FALSE The function to implement this feature is also used as a quirk mechanism in the Linux ACPI subystem. When _OSI is evaluatated by the AML codes, ACPICA replies "SUPPORTED" to all Windows operating system vendor strings. This is because Windows operating systems return "SUPPORTED" if the argument to the _OSI method specifies an earlier version of Windows. Please refer to the following MSDN document: How to Identify the Windows Version in ACPI by Using _OSI http://msdn.microsoft.com/en-us/library/hardware/gg463275.aspx This adds difficulties when developers want to feed specific Windows operating system vendor string to the BIOS codes for debugging purpose, multiple acpi_osi="!xxx" have to be specified in the command line to force Linux replying "UNSUPPORTED" to the Windows OS vendor strings listed in the AML codes. Signed-off-by: Lv Zheng <lv.zheng@intel.com> Reviewed-by: Zhang Rui <rui.zhang@intel.com> Acked-by: Len Brown <len.brown@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'Documentation/kernel-parameters.txt')
-rw-r--r--Documentation/kernel-parameters.txt29
1 files changed, 27 insertions, 2 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 15356aca938c..d0d9cf278ae3 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -235,10 +235,35 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
235 Format: To spoof as Windows 98: ="Microsoft Windows" 235 Format: To spoof as Windows 98: ="Microsoft Windows"
236 236
237 acpi_osi= [HW,ACPI] Modify list of supported OS interface strings 237 acpi_osi= [HW,ACPI] Modify list of supported OS interface strings
238 acpi_osi="string1" # add string1 -- only one string 238 acpi_osi="string1" # add string1
239 acpi_osi="!string2" # remove built-in string2 239 acpi_osi="!string2" # remove string2
240 acpi_osi=! # disable all built-in OS vendor
241 strings
240 acpi_osi= # disable all strings 242 acpi_osi= # disable all strings
241 243
244 'acpi_osi=!' can be used in combination with single or
245 multiple 'acpi_osi="string1"' to support specific OS
246 vendor string(s). Note that such command can only
247 affect the default state of the OS vendor strings, thus
248 it cannot affect the default state of the feature group
249 strings and the current state of the OS vendor strings,
250 specifying it multiple times through kernel command line
251 is meaningless.
252 Examples:
253 1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalent
254 to 'acpi_osi="Windows 2000" acpi_osi=!', they all
255 can make '_OSI("Windows 2000")' TRUE.
256
257 'acpi_osi=' cannot be used in combination with other
258 'acpi_osi=' command lines, the _OSI method will not
259 exist in the ACPI namespace. NOTE that such command can
260 only affect the _OSI support state, thus specifying it
261 multiple times through kernel command line is also
262 meaningless.
263 Examples:
264 1. 'acpi_osi=' can make 'CondRefOf(_OSI, Local1)'
265 FALSE.
266
242 acpi_pm_good [X86] 267 acpi_pm_good [X86]
243 Override the pmtimer bug detection: force the kernel 268 Override the pmtimer bug detection: force the kernel
244 to assume that this machine's pmtimer latches its value 269 to assume that this machine's pmtimer latches its value