[Bug 236513] AMD Jaguar: Only CPU core 0 detects C2 state
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon Mar 25 20:16:55 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236513
--- Comment #23 from stockhausen at collogia.de ---
ok. ignore comment #22 i try to explain it once again. The problem seems to be
the other way round.
CPU wants to register port 0x414 for C state handling. This should be covered
by BIOS ACPI tables starting at port 0x3e0 with a total of 2328 (0x918) ports.
Due to misconfiguaration this port range is attached to the PCIe bridge.
acpi_set_resource() simply ignores this registration
/*
* Ignore most resources for PCI root bridges. Some BIOSes
* incorrectly enumerate the memory ranges they decode as plain
* memory resources instead of as ResourceProducer ranges. Other
* BIOSes incorrectly list system resource entries for I/O ranges
* under the PCI bridge. Do allow the one known-correct case on
* x86 of a PCI bridge claiming the I/O ports used for PCI config
* access.
*/
#if defined(__i386__) || defined(__amd64__)
if (type == SYS_RES_MEMORY || type == SYS_RES_IOPORT) {
if (ACPI_SUCCESS(AcpiGetObjectInfo(ad->ad_handle, &devinfo))) {
if ((devinfo->Flags & ACPI_PCI_ROOT_BRIDGE) != 0) {
if (!(type == SYS_RES_IOPORT && start == CONF1_ADDR_PORT)) {
printf("ADBG: acpi_set_resource(%lx,%lu) inside root
bridge\n", start,count);
AcpiOsFree(devinfo);
return (0);
}
}
AcpiOsFree(devinfo);
}
}
#endif
So we are left without port 0x414. This gets registered later under CPU0. See
devinfo:
cpu0 pnpinfo _HID=none _UID=0 at handle=\_PR_.P000
I/O ports:
0x414
If registragtion works fine this should read "ACPI I/o port" and port 0x414
should be visible below acpi0 node.
To fix that situation in a clean way acpi_cpu_cx_cst() should re-register the
port below acpi0 just for safety.
No idea how to do that...
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list