|
|
|
|
|
by contras1970
2786 days ago
|
|
that list reads like my typical woes with MS Windows... half the time or more they're caused by the hardware, not the software: ask anyone who does device driver programming. back in the day (Windows XP era) i bought components and built a gaming computer, nothing extravagant but Windows, because games. there was a very narrow window between the newly installed vanilla OS booting up and BSODing. the problem disappeared once i managed to install drivers from the CD that came with the motherboard (had to act quick before the BSOD would hit). hardware is crap. commit 277918494930ec3fb0c7fdbd4d35060a3bc6d181
Author: imp <imp@FreeBSD.org>
Date: Thu Oct 25 17:17:11 2018 +0000
Update comment for AMI00[12]0 override.
The AML is even stupider than always returning 0. It will only return
non-zero for an OS that reports itself as "Windows 2015", at least
on the Threadripper board's AML that I've examined.
Those AMLs also suggest we may need this quirk for AMI0030 as well.
There may be other cases where we need to override the _STA in a
generic way, so we should consider writing code to do that.
diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
index 515370d5584..bed7ecd411c 100644
--- a/sys/dev/acpica/acpi.c
+++ b/sys/dev/acpica/acpi.c
@@ -2222,10 +2222,10 @@ acpi_DeviceIsPresent(device_t dev)
status = acpi_GetInteger(h, "_STA", &s);
/*
- * Onboard serial ports on certain AMD motherboards have an invalid _STA
- * method that always returns 0. Force them to always be treated as present.
- *
- * This may solely be a quirk of a preproduction BIOS.
+ * Certain Treadripper boards always returns 0 for FreeBSD because it
+ * only returns non-zero for the OS string "Windows 2015". Otherwise it
+ * will return zero. Force them to always be treated as present.
+ * Beata versions were worse: they always returned 0.
*/
if (acpi_MatchHid(h, "AMDI0020") || acpi_MatchHid(h, "AMDI0010"))
return (TRUE);
|
|