Date: Mon, 25 Mar 2019 20:16:53 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 236513] AMD Jaguar: Only CPU core 0 detects C2 state Message-ID: <bug-236513-227-92EjZrZY95@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-236513-227@https.bugs.freebsd.org/bugzilla/> References: <bug-236513-227@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D236513 --- Comment #23 from stockhausen@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 cover= ed by BIOS ACPI tables starting at port 0x3e0 with a total of 2328 (0x918) por= ts. 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 =3D=3D SYS_RES_MEMORY || type =3D=3D SYS_RES_IOPORT) { if (ACPI_SUCCESS(AcpiGetObjectInfo(ad->ad_handle, &devinfo))) { if ((devinfo->Flags & ACPI_PCI_ROOT_BRIDGE) !=3D 0) { if (!(type =3D=3D SYS_RES_IOPORT && start =3D=3D 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. S= ee devinfo: cpu0 pnpinfo _HID=3Dnone _UID=3D0 at handle=3D\_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 t= he port below acpi0 just for safety. No idea how to do that... --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-236513-227-92EjZrZY95>