Patrick Rudolph has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/44733 )
Change subject: Documentation: Add known bugs of x86_64 code on real hardware
......................................................................
Documentation: Add known bugs of x86_64 code on real hardware
The bugs happen on real hardware or in qemu with KVM enabled.
The very same code runs on some real devices and it runs in qemu
with KVM disabled.
The bugs are so strange that no root cause could be found yet.
Change-Id: I01050f2e38f92c6b96e3258a5b619aa9ee685acc
Signed-off-by: Patrick Rudolph <patrick.rudolph(a)9elements.com>
---
M Documentation/arch/x86/index.md
1 file changed, 15 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/33/44733/1
diff --git a/Documentation/arch/x86/index.md b/Documentation/arch/x86/index.md
index 11d8a4f..a5406c0 100644
--- a/Documentation/arch/x86/index.md
+++ b/Documentation/arch/x86/index.md
@@ -65,3 +65,18 @@
* Test how well CAR works with x86_64 and paging
* Improve mode switches
* Test libgfxinit / VGA Option ROMs / FSP
+
+## Known bugs on real hardware
+
+The `x86_64` reference code runs fine in qemu and on some real x86 platforms.
+However some issues have been observed and no workaround or explanation could
+be found. It either works fine or not at all. Here's a list of known issues:
+
+* After entering long mode the FPU doesn't work any more, including accessing
+ MMX register. It works fine before entering long mode.
+* Reading from virtual memory where the lower twelve address bits are zero
+ returns a fixed constant. Writing to that memory location has no effect.
+ Depeding on the variables stored in heap and stack and where the code
+ resides, undefined behaviour happens whenever the lower twelve bits are zero.
+* Disabling paging in compability mode crashes the CPU.
+* Returning from long mode to compability mode crashes the CPU.
--
To view, visit https://review.coreboot.org/c/coreboot/+/44733
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I01050f2e38f92c6b96e3258a5b619aa9ee685acc
Gerrit-Change-Number: 44733
Gerrit-PatchSet: 1
Gerrit-Owner: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-MessageType: newchange
Felix Singer has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/49205 )
Change subject: device/pci_device.c: Use same indents for switch/case
......................................................................
device/pci_device.c: Use same indents for switch/case
Change-Id: I5c6abf5b918bac3df8d7617824392f2ec932cb32
Signed-off-by: Felix Singer <felixsinger(a)posteo.net>
---
M src/device/pci_device.c
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/05/49205/1
diff --git a/src/device/pci_device.c b/src/device/pci_device.c
index a7eb91d..f41689e 100644
--- a/src/device/pci_device.c
+++ b/src/device/pci_device.c
@@ -967,7 +967,7 @@
dev->ops = &default_cardbus_ops_bus;
break;
#endif
-default:
+ default:
bad:
if (dev->enabled) {
printk(BIOS_ERR, "%s [%04x/%04x/%06x] has unknown "
--
To view, visit https://review.coreboot.org/c/coreboot/+/49205
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I5c6abf5b918bac3df8d7617824392f2ec932cb32
Gerrit-Change-Number: 49205
Gerrit-PatchSet: 1
Gerrit-Owner: Felix Singer <felixsinger(a)posteo.net>
Gerrit-MessageType: newchange
Attention is currently required from: Alexander Couzens, Patrick Rudolph.
Kyösti Mälkki has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/49350 )
Change subject: Use GOS() to detect HPET visibility
......................................................................
Use GOS() to detect HPET visibility
Update the detected _OSI strings from mb/ to sb/intel/common.
Change-Id: I50ba3c836f62cbeea97a1f73e5229f777a4ba296
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
M src/mainboard/lenovo/x201/acpi/platform.asl
M src/mainboard/packardbell/ms2290/acpi/platform.asl
M src/southbridge/intel/common/acpi/platform.asl
3 files changed, 26 insertions(+), 113 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/50/49350/1
diff --git a/src/mainboard/lenovo/x201/acpi/platform.asl b/src/mainboard/lenovo/x201/acpi/platform.asl
index b03f45f..1a3279d 100644
--- a/src/mainboard/lenovo/x201/acpi/platform.asl
+++ b/src/mainboard/lenovo/x201/acpi/platform.asl
@@ -42,62 +42,6 @@
/* 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)) {
- 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 2001.1")) {
- Store (2001, OSYS)
- }
-
- If (_OSI("Windows 2001.1 SP1")) {
- Store (2001, OSYS)
- }
-
- If (_OSI("Windows 2006")) {
- Store (2006, OSYS)
- }
-
- If (_OSI("Windows 2006.1")) {
- Store (2006, OSYS)
- }
-
- If (_OSI("Windows 2006 SP1")) {
- Store (2006, OSYS)
- }
-
- If (_OSI("Windows 2009")) {
- Store (2009, OSYS)
- }
-
- If (_OSI("Windows 2012")) {
- Store (2012, OSYS)
- }
- }
+ \GOS()
}
}
diff --git a/src/mainboard/packardbell/ms2290/acpi/platform.asl b/src/mainboard/packardbell/ms2290/acpi/platform.asl
index 297eeb4..7044e05 100644
--- a/src/mainboard/packardbell/ms2290/acpi/platform.asl
+++ b/src/mainboard/packardbell/ms2290/acpi/platform.asl
@@ -32,62 +32,7 @@
/* 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
- */
+ \GOS()
- /* Let's assume we're running at least Windows 2000 */
- Store (2000, OSYS)
-
- If (CondRefOf(_OSI)) {
- 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 2001.1")) {
- Store (2001, OSYS)
- }
-
- If (_OSI("Windows 2001.1 SP1")) {
- Store (2001, OSYS)
- }
-
- If (_OSI("Windows 2006")) {
- Store (2006, OSYS)
- }
-
- If (_OSI("Windows 2006.1")) {
- Store (2006, OSYS)
- }
-
- If (_OSI("Windows 2006 SP1")) {
- Store (2006, OSYS)
- }
-
- If (_OSI("Windows 2009")) {
- Store (2009, OSYS)
- }
-
- If (_OSI("Windows 2012")) {
- Store (2012, OSYS)
- }
- }
}
}
diff --git a/src/southbridge/intel/common/acpi/platform.asl b/src/southbridge/intel/common/acpi/platform.asl
index b1dda02..bef5273 100644
--- a/src/southbridge/intel/common/acpi/platform.asl
+++ b/src/southbridge/intel/common/acpi/platform.asl
@@ -69,8 +69,32 @@
OSYS = 2002
}
+ If (_OSI("Windows 2001.1")) {
+ OSYS = 2001
+ }
+
+ If (_OSI("Windows 2001.1 SP1")) {
+ OSYS = 2001
+ }
+
If (_OSI("Windows 2006")) {
OSYS = 2006
}
+
+ If (_OSI("Windows 2006.1")) {
+ OSYS = 2006
+ }
+
+ If (_OSI("Windows 2006 SP1")) {
+ OSYS = 2006
+ }
+
+ If (_OSI("Windows 2009")) {
+ OSYS = 2009
+ }
+
+ If (_OSI("Windows 2012")) {
+ OSYS = 2012
+ }
}
}
--
To view, visit https://review.coreboot.org/c/coreboot/+/49350
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I50ba3c836f62cbeea97a1f73e5229f777a4ba296
Gerrit-Change-Number: 49350
Gerrit-PatchSet: 1
Gerrit-Owner: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Gerrit-Reviewer: Alexander Couzens <lynxis(a)fe80.eu>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Attention: Alexander Couzens <lynxis(a)fe80.eu>
Gerrit-Attention: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-MessageType: newchange
Kyösti Mälkki has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/49349 )
Change subject: mb/apple,lenovo: Drop reference to OSYS
......................................................................
mb/apple,lenovo: Drop reference to OSYS
Change-Id: Ifa9ec5bcb8b25b6334b589e4bc7bcb915e85e349
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
M src/mainboard/apple/macbook21/acpi/platform.asl
M src/mainboard/lenovo/t400/acpi/platform.asl
M src/mainboard/lenovo/t60/acpi/platform.asl
M src/mainboard/lenovo/x200/acpi/platform.asl
M src/mainboard/lenovo/x60/acpi/platform.asl
5 files changed, 0 insertions(+), 40 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/49/49349/1
diff --git a/src/mainboard/apple/macbook21/acpi/platform.asl b/src/mainboard/apple/macbook21/acpi/platform.asl
index abba5abf..e1e33a2 100644
--- a/src/mainboard/apple/macbook21/acpi/platform.asl
+++ b/src/mainboard/apple/macbook21/acpi/platform.asl
@@ -42,14 +42,6 @@
\GOS()
- /* And the OS workarounds start right after we know what we're
- * running: Windows XP SP1 needs to have C-State coordination
- * enabled in SMM.
- */
- If ((OSYS == 2001) && MPEN) {
- // TRAP(61) // TODO
- }
-
/* SMM power state and C4-on-C3 settings need to be updated */
// TRAP(43) // TODO
}
diff --git a/src/mainboard/lenovo/t400/acpi/platform.asl b/src/mainboard/lenovo/t400/acpi/platform.asl
index 10cadf2..3d2805d 100644
--- a/src/mainboard/lenovo/t400/acpi/platform.asl
+++ b/src/mainboard/lenovo/t400/acpi/platform.asl
@@ -61,14 +61,6 @@
\GOS()
- /* And the OS workarounds start right after we know what we're
- * running: Windows XP SP1 needs to have C-State coordination
- * enabled in SMM.
- */
- If (LAnd(LEqual(OSYS, 2001), MPEN)) {
- // TRAP(61) // TODO
- }
-
/* SMM power state and C4-on-C3 settings need to be updated */
// TRAP(43) // TODO
}
diff --git a/src/mainboard/lenovo/t60/acpi/platform.asl b/src/mainboard/lenovo/t60/acpi/platform.asl
index c9551b5..2e3bfc0 100644
--- a/src/mainboard/lenovo/t60/acpi/platform.asl
+++ b/src/mainboard/lenovo/t60/acpi/platform.asl
@@ -56,14 +56,6 @@
\GOS()
- /* And the OS workarounds start right after we know what we're
- * running: Windows XP SP1 needs to have C-State coordination
- * enabled in SMM.
- */
- If (LAnd(LEqual(OSYS, 2001), MPEN)) {
- // TRAP(61) // TODO
- }
-
/* SMM power state and C4-on-C3 settings need to be updated */
// TRAP(43) // TODO
}
diff --git a/src/mainboard/lenovo/x200/acpi/platform.asl b/src/mainboard/lenovo/x200/acpi/platform.asl
index 10cadf2..3d2805d 100644
--- a/src/mainboard/lenovo/x200/acpi/platform.asl
+++ b/src/mainboard/lenovo/x200/acpi/platform.asl
@@ -61,14 +61,6 @@
\GOS()
- /* And the OS workarounds start right after we know what we're
- * running: Windows XP SP1 needs to have C-State coordination
- * enabled in SMM.
- */
- If (LAnd(LEqual(OSYS, 2001), MPEN)) {
- // TRAP(61) // TODO
- }
-
/* SMM power state and C4-on-C3 settings need to be updated */
// TRAP(43) // TODO
}
diff --git a/src/mainboard/lenovo/x60/acpi/platform.asl b/src/mainboard/lenovo/x60/acpi/platform.asl
index c9551b5..2e3bfc0 100644
--- a/src/mainboard/lenovo/x60/acpi/platform.asl
+++ b/src/mainboard/lenovo/x60/acpi/platform.asl
@@ -56,14 +56,6 @@
\GOS()
- /* And the OS workarounds start right after we know what we're
- * running: Windows XP SP1 needs to have C-State coordination
- * enabled in SMM.
- */
- If (LAnd(LEqual(OSYS, 2001), MPEN)) {
- // TRAP(61) // TODO
- }
-
/* SMM power state and C4-on-C3 settings need to be updated */
// TRAP(43) // TODO
}
--
To view, visit https://review.coreboot.org/c/coreboot/+/49349
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ifa9ec5bcb8b25b6334b589e4bc7bcb915e85e349
Gerrit-Change-Number: 49349
Gerrit-PatchSet: 1
Gerrit-Owner: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Gerrit-MessageType: newchange