Author: ruik
Date: Wed Nov 17 12:02:05 2010
New Revision: 6082
URL: https://tracker.coreboot.org/trac/coreboot/changeset/6082

Log:
This problem was introduced with
http://tracker.coreboot.org/trac/coreboot/changeset/3953

Note that all corresponding DSDTs only ever check TOM2 against 0.

Signed-off-by: Tobias Diedrich <[email protected]>
Acked-by: Rudolf Marek <[email protected]>

Modified:
   trunk/src/mainboard/amd/dbm690t/dsdt.asl
   trunk/src/mainboard/amd/mahogany/dsdt.asl
   trunk/src/mainboard/amd/mahogany_fam10/dsdt.asl
   trunk/src/mainboard/amd/pistachio/dsdt.asl
   trunk/src/mainboard/amd/tilapia_fam10/dsdt.asl
   trunk/src/mainboard/asrock/939a785gmh/dsdt.asl
   trunk/src/mainboard/asus/m4a785-m/dsdt.asl
   trunk/src/mainboard/gigabyte/ma785gmt/dsdt.asl
   trunk/src/mainboard/gigabyte/ma78gm/dsdt.asl
   trunk/src/mainboard/iei/kino-780am2-fam10/dsdt.asl
   trunk/src/mainboard/jetway/pa78vm5/dsdt.asl
   trunk/src/mainboard/kontron/kt690/dsdt.asl
   trunk/src/mainboard/technexion/tim5690/dsdt.asl
   trunk/src/mainboard/technexion/tim8690/dsdt.asl
   trunk/src/northbridge/amd/amdk8/amdk8_acpi.c

Modified: trunk/src/mainboard/amd/dbm690t/dsdt.asl
==============================================================================
--- trunk/src/mainboard/amd/dbm690t/dsdt.asl    Wed Nov 17 11:58:13 2010        
(r6081)
+++ trunk/src/mainboard/amd/dbm690t/dsdt.asl    Wed Nov 17 12:02:05 2010        
(r6082)
@@ -1129,7 +1129,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1557,7 +1557,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/amd/mahogany/dsdt.asl
==============================================================================
--- trunk/src/mainboard/amd/mahogany/dsdt.asl   Wed Nov 17 11:58:13 2010        
(r6081)
+++ trunk/src/mainboard/amd/mahogany/dsdt.asl   Wed Nov 17 12:02:05 2010        
(r6082)
@@ -1126,7 +1126,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1572,7 +1572,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/amd/mahogany_fam10/dsdt.asl
==============================================================================
--- trunk/src/mainboard/amd/mahogany_fam10/dsdt.asl     Wed Nov 17 11:58:13 
2010        (r6081)
+++ trunk/src/mainboard/amd/mahogany_fam10/dsdt.asl     Wed Nov 17 12:02:05 
2010        (r6082)
@@ -1168,7 +1168,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1614,7 +1614,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/amd/pistachio/dsdt.asl
==============================================================================
--- trunk/src/mainboard/amd/pistachio/dsdt.asl  Wed Nov 17 11:58:13 2010        
(r6081)
+++ trunk/src/mainboard/amd/pistachio/dsdt.asl  Wed Nov 17 12:02:05 2010        
(r6082)
@@ -1128,7 +1128,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1480,7 +1480,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/amd/tilapia_fam10/dsdt.asl
==============================================================================
--- trunk/src/mainboard/amd/tilapia_fam10/dsdt.asl      Wed Nov 17 11:58:13 
2010        (r6081)
+++ trunk/src/mainboard/amd/tilapia_fam10/dsdt.asl      Wed Nov 17 12:02:05 
2010        (r6082)
@@ -1168,7 +1168,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1614,7 +1614,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/asrock/939a785gmh/dsdt.asl
==============================================================================
--- trunk/src/mainboard/asrock/939a785gmh/dsdt.asl      Wed Nov 17 11:58:13 
2010        (r6081)
+++ trunk/src/mainboard/asrock/939a785gmh/dsdt.asl      Wed Nov 17 12:02:05 
2010        (r6082)
@@ -1122,7 +1122,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1530,7 +1530,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/asus/m4a785-m/dsdt.asl
==============================================================================
--- trunk/src/mainboard/asus/m4a785-m/dsdt.asl  Wed Nov 17 11:58:13 2010        
(r6081)
+++ trunk/src/mainboard/asus/m4a785-m/dsdt.asl  Wed Nov 17 12:02:05 2010        
(r6082)
@@ -1168,7 +1168,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1614,7 +1614,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/gigabyte/ma785gmt/dsdt.asl
==============================================================================
--- trunk/src/mainboard/gigabyte/ma785gmt/dsdt.asl      Wed Nov 17 11:58:13 
2010        (r6081)
+++ trunk/src/mainboard/gigabyte/ma785gmt/dsdt.asl      Wed Nov 17 12:02:05 
2010        (r6082)
@@ -1168,7 +1168,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1614,7 +1614,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/gigabyte/ma78gm/dsdt.asl
==============================================================================
--- trunk/src/mainboard/gigabyte/ma78gm/dsdt.asl        Wed Nov 17 11:58:13 
2010        (r6081)
+++ trunk/src/mainboard/gigabyte/ma78gm/dsdt.asl        Wed Nov 17 12:02:05 
2010        (r6082)
@@ -1168,7 +1168,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1614,7 +1614,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/iei/kino-780am2-fam10/dsdt.asl
==============================================================================
--- trunk/src/mainboard/iei/kino-780am2-fam10/dsdt.asl  Wed Nov 17 11:58:13 
2010        (r6081)
+++ trunk/src/mainboard/iei/kino-780am2-fam10/dsdt.asl  Wed Nov 17 12:02:05 
2010        (r6082)
@@ -1168,7 +1168,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1614,7 +1614,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/jetway/pa78vm5/dsdt.asl
==============================================================================
--- trunk/src/mainboard/jetway/pa78vm5/dsdt.asl Wed Nov 17 11:58:13 2010        
(r6081)
+++ trunk/src/mainboard/jetway/pa78vm5/dsdt.asl Wed Nov 17 12:02:05 2010        
(r6082)
@@ -1168,7 +1168,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1614,7 +1614,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/kontron/kt690/dsdt.asl
==============================================================================
--- trunk/src/mainboard/kontron/kt690/dsdt.asl  Wed Nov 17 11:58:13 2010        
(r6081)
+++ trunk/src/mainboard/kontron/kt690/dsdt.asl  Wed Nov 17 12:02:05 2010        
(r6082)
@@ -1129,7 +1129,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1557,7 +1557,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/technexion/tim5690/dsdt.asl
==============================================================================
--- trunk/src/mainboard/technexion/tim5690/dsdt.asl     Wed Nov 17 11:58:13 
2010        (r6081)
+++ trunk/src/mainboard/technexion/tim5690/dsdt.asl     Wed Nov 17 12:02:05 
2010        (r6082)
@@ -1129,7 +1129,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1557,7 +1557,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/mainboard/technexion/tim8690/dsdt.asl
==============================================================================
--- trunk/src/mainboard/technexion/tim8690/dsdt.asl     Wed Nov 17 11:58:13 
2010        (r6081)
+++ trunk/src/mainboard/technexion/tim8690/dsdt.asl     Wed Nov 17 12:02:05 
2010        (r6082)
@@ -1129,7 +1129,7 @@
                /* Note: Only need HID on Primary Bus */
                Device(PCI0) {
                        External (TOM1)
-                       External (TOM2)
+                       External (TOM2) /* (<real tom2> >> 20) to make it fit 
into 32 bit for XP */
                        Name(_HID, EISAID("PNP0A03"))
                        Name(_ADR, 0x00180000)  /* Dev# = BSP Dev#, Func# = 0 */
                        Method(_BBN, 0) { /* Bus number = 0 */
@@ -1557,7 +1557,8 @@
                                /*
                                * If(LNotEqual(TOM2, 0x00000000)){
                                *       Store(0x100000000,DMHB)                 
DRAM from 4GB to TopMem2
-                               *       Subtract(TOM2, 0x100000000, DMHL)
+                               *       ShiftLeft(TOM2, 20, Local0)
+                               *       Subtract(Local0, 0x100000000, DMHL)
                                * }
                                */
 

Modified: trunk/src/northbridge/amd/amdk8/amdk8_acpi.c
==============================================================================
--- trunk/src/northbridge/amd/amdk8/amdk8_acpi.c        Wed Nov 17 11:58:13 
2010        (r6081)
+++ trunk/src/northbridge/amd/amdk8/amdk8_acpi.c        Wed Nov 17 12:02:05 
2010        (r6082)
@@ -270,7 +270,15 @@
        msr = rdmsr(TOP_MEM);
        lens += acpigen_write_name_dword("TOM1", msr.lo);
        msr = rdmsr(TOP_MEM2);
-       lens += acpigen_write_name_qword("TOM2", (((uint64_t) msr.hi) << 32) | 
msr.lo);
+       /*
+        * Since XP only implements parts of ACPI 2.0, we can't use a qword
+        * here.
+        * See http://www.acpi.info/presentations/S01USMOBS169_OS%2520new.ppt
+        * slide 22ff.
+        * Shift value right by 20 bit to make it fit into 32bit,
+        * giving us 1MB granularity and a limit of almost 4Exabyte of memory.
+        */
+       lens += acpigen_write_name_dword("TOM2", (msr.hi << 12) | msr.lo >> 20);
 
        lens += k8acpi_write_HT();
        //minus opcode

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to