[coreboot] Patch set updated for coreboot: fe487f6 Persimmon DSDT: Add OSC method
Mike Loptien (mike.loptien@se-eng.com)
gerrit at coreboot.org
Wed Mar 13 18:06:00 CET 2013
Mike Loptien (mike.loptien at se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2684
-gerrit
commit fe487f638d781307de91c21178d96634407f669e
Author: Mike Loptien <mike.loptien at se-eng.com>
Date: Tue Mar 12 10:21:24 2013 -0600
Persimmon DSDT: Add OSC method
The _OSC method is used to tell the OS what capabilities
it can take control over from the firmware. This method
is described in chapter 6.2.9 of the ACPI spec v3.0.
The method takes 4 inputs (UUID, Rev ID, Input Count,
and Capabilities Buffer) and returns a Capabilites
Buffer the same size as the input Buffer. This Buffer
is generally 3 Dwords long consisting of an Errors
Dword, a Supported Capabilities Dword, and a Control
Dword. The OS will request control of certain
capabilities and the firmware must grant or deny control
of those features. We do not want to have control over
anything so let the OS control as much as it can.
The _OSC method is required for PCIe devices and dmesg
checks for its existence and issues an error if it is
not found. Before this change, dmesg gave this message:
pci0000:00: Requesting ACPI _OSC control (0x1d)
pci0000:00: ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x1d
ACPI _OSC control for PCIe not granted, disabling ASPM
After this change, dmesg looks like this:
pci0000:00: Requesting ACPI _OSC control (0x1d)
pci0000:00: ACPI _OSC control (0x1d) granted
Change-Id: I1494285def7440972f0549b7cb73eb94dafc72c2
Signed-off-by: Mike Loptien <mike.loptien at se-eng.com>
---
src/mainboard/amd/persimmon/dsdt.asl | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/mainboard/amd/persimmon/dsdt.asl b/src/mainboard/amd/persimmon/dsdt.asl
index 148d7b0..d29bbff 100644
--- a/src/mainboard/amd/persimmon/dsdt.asl
+++ b/src/mainboard/amd/persimmon/dsdt.asl
@@ -1157,8 +1157,20 @@ DefinitionBlock (
Device(PCI0) {
External (TOM1)
External (TOM2)
- Name(_HID, EISAID("PNP0A03"))
+ Name(_HID, EISAID("PNP0A08")) /* PCI Express Root Bridge */
+ Name(_CID, EISAID("PNP0A03")) /* PCI Root Bridge */
Name(_ADR, 0x00180000) /* Dev# = BSP Dev#, Func# = 0 */
+
+ /* Operating System Capabilities Method */
+ Method(_OSC, 4)
+ { /* Check for proper PCI/PCIe UUID */
+ If(LEqual(Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766")))
+ {
+ /* Let OS control everything */
+ Return (Arg3)
+ }
+ }
+
Method(_BBN, 0) { /* Bus number = 0 */
Return(0)
}
More information about the coreboot
mailing list