[coreboot-gerrit] New patch to review for coreboot: 71a2cc6 i945: Consolidate OS detection

Vladimir Serbinenko (phcoder@gmail.com) gerrit at coreboot.org
Fri Oct 17 10:11:53 CEST 2014


Vladimir Serbinenko (phcoder at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7086

-gerrit

commit 71a2cc648377fad14ef73415ebb10fbbc899cde5
Author: Vladimir Serbinenko <phcoder at gmail.com>
Date:   Thu Oct 16 10:39:06 2014 +0200

    i945: Consolidate OS detection
    
    Change-Id: Iccb2dda8a427e483c04693e46b00e0bc2452a26b
    Signed-off-by: Vladimir Serbinenko <phcoder at gmail.com>
---
 src/mainboard/apple/macbook21/acpi/platform.asl   | 45 +---------------------
 src/mainboard/getac/p470/acpi/platform.asl        | 44 +--------------------
 src/mainboard/lenovo/t60/acpi/platform.asl        | 44 +--------------------
 src/mainboard/lenovo/x60/acpi/platform.asl        | 44 +--------------------
 src/mainboard/roda/rk886ex/acpi/platform.asl      | 44 +--------------------
 src/southbridge/intel/i82801gx/acpi/globalnvs.asl | 47 +++++++++++++++++++++++
 6 files changed, 52 insertions(+), 216 deletions(-)

diff --git a/src/mainboard/apple/macbook21/acpi/platform.asl b/src/mainboard/apple/macbook21/acpi/platform.asl
index 1c6ac6e..9abfbc4 100644
--- a/src/mainboard/apple/macbook21/acpi/platform.asl
+++ b/src/mainboard/apple/macbook21/acpi/platform.asl
@@ -133,49 +133,7 @@ Scope(\_SB)
 
 		// TRAP(71) // TODO
 
-		/* Determine the Operating System and save the value in OSYS.
-		 * We have to do this in order to be able to work around
-		 * certain windows bugs.
-		 *
-		 *    OSYS value | Operating System
-		 *    -----------+------------------
-		 *       2000    | Windows 2000
-		 *       2001    | Windows XP(+SP1)
-		 *       2002    | Windows XP SP2
-		 *       2006    | Windows Vista
-		 *       ????    | Windows 7
-		 */
-
-		/* Let's assume we're running at least Windows 2000 */
-		Store (2000, OSYS)
-
-		If (CondRefOf(_OSI, Local0)) {
-			/* Linux answers _OSI with "True" for a couple of
-			 * Windows version queries. But unlike Windows it
-			 * needs a Video repost, so let's determine whether
-			 * we're running Linux.
-			 */
-
-			If (_OSI("Linux")) {
-				Store (1, LINX)
-			}
-
-			If (_OSI("Windows 2001")) {
-				Store (2001, OSYS)
-			}
-
-			If (_OSI("Windows 2001 SP1")) {
-				Store (2001, OSYS)
-			}
-
-			If (_OSI("Windows 2001 SP2")) {
-				Store (2002, OSYS)
-			}
-
-			If (_OSI("Windows 2006")) {
-				Store (2006, OSYS)
-			}
-		}
+		\GOS()
 
 		/* And the OS workarounds start right after we know what we're
 		 * running: Windows XP SP1 needs to have C-State coordination
@@ -189,4 +147,3 @@ Scope(\_SB)
 		// TRAP(43) // TODO
 	}
 }
-
diff --git a/src/mainboard/getac/p470/acpi/platform.asl b/src/mainboard/getac/p470/acpi/platform.asl
index df9adc7..040ecc1 100644
--- a/src/mainboard/getac/p470/acpi/platform.asl
+++ b/src/mainboard/getac/p470/acpi/platform.asl
@@ -210,49 +210,7 @@ Scope(\_SB)
 			TRAP(0x47)
 		}
 
-		/* Determine the Operating System and save the value in OSYS.
-		 * We have to do this in order to be able to work around
-		 * certain windows bugs.
-		 *
-		 *    OSYS value | Operating System
-		 *    -----------+------------------
-		 *       2000    | Windows 2000
-		 *       2001    | Windows XP(+SP1)
-		 *       2002    | Windows XP SP2
-		 *       2006    | Windows Vista
-		 *       ????    | Windows 7
-		 */
-
-		/* Let's assume we're running at least Windows 2000 */
-		Store (2000, OSYS)
-
-		If (CondRefOf(_OSI, Local0)) {
-			/* Linux answers _OSI with "True" for a couple of
-			 * Windows version queries. But unlike Windows it
-			 * needs a Video repost, so let's determine whether
-			 * we're running Linux.
-			 */
-
-			If (_OSI("Linux")) {
-				Store (1, LINX)
-			}
-
-			If (_OSI("Windows 2001")) {
-				Store (2001, OSYS)
-			}
-
-			If (_OSI("Windows 2001 SP1")) {
-				Store (2001, OSYS)
-			}
-
-			If (_OSI("Windows 2001 SP2")) {
-				Store (2002, OSYS)
-			}
-
-			If (_OSI("Windows 2006")) {
-				Store (2006, OSYS)
-			}
-		}
+		\GOS()
 
 		/* And the OS workarounds start right after we know what we're
 		 * running: Windows XP SP1 needs to have C-State coordination
diff --git a/src/mainboard/lenovo/t60/acpi/platform.asl b/src/mainboard/lenovo/t60/acpi/platform.asl
index ddb8ff3..c02ab75 100644
--- a/src/mainboard/lenovo/t60/acpi/platform.asl
+++ b/src/mainboard/lenovo/t60/acpi/platform.asl
@@ -147,49 +147,7 @@ Scope(\_SB)
 
 		// TRAP(71) // TODO
 
-		/* Determine the Operating System and save the value in OSYS.
-		 * We have to do this in order to be able to work around
-		 * certain windows bugs.
-		 *
-		 *    OSYS value | Operating System
-		 *    -----------+------------------
-		 *       2000    | Windows 2000
-		 *       2001    | Windows XP(+SP1)
-		 *       2002    | Windows XP SP2
-		 *       2006    | Windows Vista
-		 *       ????    | Windows 7
-		 */
-
-		/* Let's assume we're running at least Windows 2000 */
-		Store (2000, OSYS)
-
-		If (CondRefOf(_OSI, Local0)) {
-			/* Linux answers _OSI with "True" for a couple of
-			 * Windows version queries. But unlike Windows it
-			 * needs a Video repost, so let's determine whether
-			 * we're running Linux.
-			 */
-
-			If (_OSI("Linux")) {
-				Store (1, LINX)
-			}
-
-			If (_OSI("Windows 2001")) {
-				Store (2001, OSYS)
-			}
-
-			If (_OSI("Windows 2001 SP1")) {
-				Store (2001, OSYS)
-			}
-
-			If (_OSI("Windows 2001 SP2")) {
-				Store (2002, OSYS)
-			}
-
-			If (_OSI("Windows 2006")) {
-				Store (2006, OSYS)
-			}
-		}
+		\GOS()
 
 		/* And the OS workarounds start right after we know what we're
 		 * running: Windows XP SP1 needs to have C-State coordination
diff --git a/src/mainboard/lenovo/x60/acpi/platform.asl b/src/mainboard/lenovo/x60/acpi/platform.asl
index ddb8ff3..c02ab75 100644
--- a/src/mainboard/lenovo/x60/acpi/platform.asl
+++ b/src/mainboard/lenovo/x60/acpi/platform.asl
@@ -147,49 +147,7 @@ Scope(\_SB)
 
 		// TRAP(71) // TODO
 
-		/* Determine the Operating System and save the value in OSYS.
-		 * We have to do this in order to be able to work around
-		 * certain windows bugs.
-		 *
-		 *    OSYS value | Operating System
-		 *    -----------+------------------
-		 *       2000    | Windows 2000
-		 *       2001    | Windows XP(+SP1)
-		 *       2002    | Windows XP SP2
-		 *       2006    | Windows Vista
-		 *       ????    | Windows 7
-		 */
-
-		/* Let's assume we're running at least Windows 2000 */
-		Store (2000, OSYS)
-
-		If (CondRefOf(_OSI, Local0)) {
-			/* Linux answers _OSI with "True" for a couple of
-			 * Windows version queries. But unlike Windows it
-			 * needs a Video repost, so let's determine whether
-			 * we're running Linux.
-			 */
-
-			If (_OSI("Linux")) {
-				Store (1, LINX)
-			}
-
-			If (_OSI("Windows 2001")) {
-				Store (2001, OSYS)
-			}
-
-			If (_OSI("Windows 2001 SP1")) {
-				Store (2001, OSYS)
-			}
-
-			If (_OSI("Windows 2001 SP2")) {
-				Store (2002, OSYS)
-			}
-
-			If (_OSI("Windows 2006")) {
-				Store (2006, OSYS)
-			}
-		}
+		\GOS()
 
 		/* And the OS workarounds start right after we know what we're
 		 * running: Windows XP SP1 needs to have C-State coordination
diff --git a/src/mainboard/roda/rk886ex/acpi/platform.asl b/src/mainboard/roda/rk886ex/acpi/platform.asl
index 0e30c4e..0dc988f 100644
--- a/src/mainboard/roda/rk886ex/acpi/platform.asl
+++ b/src/mainboard/roda/rk886ex/acpi/platform.asl
@@ -147,49 +147,7 @@ Scope(\_SB)
 
 		// TRAP(71) // TODO
 
-		/* Determine the Operating System and save the value in OSYS.
-		 * We have to do this in order to be able to work around
-		 * certain windows bugs.
-		 *
-		 *    OSYS value | Operating System
-		 *    -----------+------------------
-		 *       2000    | Windows 2000
-		 *       2001    | Windows XP(+SP1)
-		 *       2002    | Windows XP SP2
-		 *       2006    | Windows Vista
-		 *       ????    | Windows 7
-		 */
-
-		/* Let's assume we're running at least Windows 2000 */
-		Store (2000, OSYS)
-
-		If (CondRefOf(_OSI, Local0)) {
-			/* Linux answers _OSI with "True" for a couple of
-			 * Windows version queries. But unlike Windows it
-			 * needs a Video repost, so let's determine whether
-			 * we're running Linux.
-			 */
-
-			If (_OSI("Linux")) {
-				Store (1, LINX)
-			}
-
-			If (_OSI("Windows 2001")) {
-				Store (2001, OSYS)
-			}
-
-			If (_OSI("Windows 2001 SP1")) {
-				Store (2001, OSYS)
-			}
-
-			If (_OSI("Windows 2001 SP2")) {
-				Store (2002, OSYS)
-			}
-
-			If (_OSI("Windows 2006")) {
-				Store (2006, OSYS)
-			}
-		}
+		\GOS()
 
 		/* And the OS workarounds start right after we know what we're
 		 * running: Windows XP SP1 needs to have C-State coordination
diff --git a/src/southbridge/intel/i82801gx/acpi/globalnvs.asl b/src/southbridge/intel/i82801gx/acpi/globalnvs.asl
index 027391c..0063590 100644
--- a/src/southbridge/intel/i82801gx/acpi/globalnvs.asl
+++ b/src/southbridge/intel/i82801gx/acpi/globalnvs.asl
@@ -169,3 +169,50 @@ Field (GNVS, ByteAcc, NoLock, Preserve)
 	DOCK,	 8,	// 0xf0 - Docking Status
 	BTEN,	 8,	// 0xf1 - Bluetooth Enable
 }
+
+Method(GOS, 0)
+{
+		/* Determine the Operating System and save the value in OSYS.
+		 * We have to do this in order to be able to work around
+		 * certain windows bugs.
+		 *
+		 *    OSYS value | Operating System
+		 *    -----------+------------------
+		 *       2000    | Windows 2000
+		 *       2001    | Windows XP(+SP1)
+		 *       2002    | Windows XP SP2
+		 *       2006    | Windows Vista
+		 *       ????    | Windows 7
+		 */
+
+		/* Let's assume we're running at least Windows 2000 */
+		Store (2000, OSYS)
+
+		If (CondRefOf(_OSI, Local0)) {
+			/* Linux answers _OSI with "True" for a couple of
+			 * Windows version queries. But unlike Windows it
+			 * needs a Video repost, so let's determine whether
+			 * we're running Linux.
+			 */
+
+			If (_OSI("Linux")) {
+				Store (1, LINX)
+			}
+
+			If (_OSI("Windows 2001")) {
+				Store (2001, OSYS)
+			}
+
+			If (_OSI("Windows 2001 SP1")) {
+				Store (2001, OSYS)
+			}
+
+			If (_OSI("Windows 2001 SP2")) {
+				Store (2002, OSYS)
+			}
+
+			If (_OSI("Windows 2006")) {
+				Store (2006, OSYS)
+			}
+		}
+}
\ No newline at end of file



More information about the coreboot-gerrit mailing list