acpicpu(4) and ACPI0007

classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

acpicpu(4) and ACPI0007

Mark Kettenis
Recent ACPI versions have deprecated "Processor()" nodes in favout of
"Device()" nodes with a _HID() method that returns "ACPI0007".  This
diff tries to support machines with firmware that implements this.  If
you see something like:

  "ACPI0007" at acpi0 not configured

please try the following diff and report back with an updated dmesg.

Cheers,

Mark



Index: dev/acpi/acpi.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpi.c,v
retrieving revision 1.384
diff -u -p -r1.384 acpi.c
--- dev/acpi/acpi.c 11 May 2020 17:57:17 -0000 1.384
+++ dev/acpi/acpi.c 13 May 2020 18:44:32 -0000
@@ -72,6 +72,7 @@ int acpi_debug = 16;
 
 int acpi_poll_enabled;
 int acpi_hasprocfvs;
+int acpi_haspci;
 
 #define ACPIEN_RETRIES 15
 
Index: dev/acpi/acpivar.h
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpivar.h,v
retrieving revision 1.108
diff -u -p -r1.108 acpivar.h
--- dev/acpi/acpivar.h 8 May 2020 11:18:01 -0000 1.108
+++ dev/acpi/acpivar.h 13 May 2020 18:44:32 -0000
@@ -43,6 +43,7 @@ extern int acpi_debug;
 #endif
 
 extern int acpi_hasprocfvs;
+extern int acpi_haspci;
 
 struct klist;
 struct acpiec_softc;
Index: arch/amd64/amd64/mainbus.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/mainbus.c,v
retrieving revision 1.49
diff -u -p -r1.49 mainbus.c
--- arch/amd64/amd64/mainbus.c 7 Sep 2019 13:46:19 -0000 1.49
+++ arch/amd64/amd64/mainbus.c 13 May 2020 18:44:32 -0000
@@ -231,6 +231,13 @@ mainbus_attach(struct device *parent, st
 #endif
 
 #if NPCI > 0
+#if NACPI > 0
+ if (acpi_haspci) {
+ extern void acpipci_attach_busses(struct device *);
+
+ acpipci_attach_busses(self);
+ } else
+#endif
  {
  pci_init_extents();
 
@@ -245,9 +252,6 @@ mainbus_attach(struct device *parent, st
  mba.mba_pba.pba_domain = pci_ndomains++;
  mba.mba_pba.pba_bus = 0;
  config_found(self, &mba.mba_pba, mainbus_print);
-#if NACPI > 0
- acpi_pciroots_attach(self, &mba.mba_pba, mainbus_print);
-#endif
  }
 #endif
 
Index: arch/amd64/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/amd64/conf/RAMDISK,v
retrieving revision 1.77
diff -u -p -r1.77 RAMDISK
--- arch/amd64/conf/RAMDISK 5 Mar 2020 16:36:30 -0000 1.77
+++ arch/amd64/conf/RAMDISK 13 May 2020 18:44:32 -0000
@@ -30,6 +30,7 @@ acpi0 at bios?
 #acpicpu* at acpi?
 acpicmos* at acpi?
 acpiec* at acpi?
+acpipci* at acpi?
 acpiprt* at acpi?
 acpimadt0 at acpi?
 #acpitz* at acpi?
Index: arch/amd64/conf/RAMDISK_CD
===================================================================
RCS file: /cvs/src/sys/arch/amd64/conf/RAMDISK_CD,v
retrieving revision 1.188
diff -u -p -r1.188 RAMDISK_CD
--- arch/amd64/conf/RAMDISK_CD 15 Feb 2020 08:49:11 -0000 1.188
+++ arch/amd64/conf/RAMDISK_CD 13 May 2020 18:44:32 -0000
@@ -37,6 +37,7 @@ acpi0 at bios?
 #acpicpu* at acpi?
 acpicmos* at acpi?
 acpiec* at acpi?
+acpipci* at acpi?
 acpiprt* at acpi?
 acpimadt0 at acpi?
 #acpitz* at acpi?
Index: arch/amd64/pci/acpipci.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/pci/acpipci.c,v
retrieving revision 1.3
diff -u -p -r1.3 acpipci.c
--- arch/amd64/pci/acpipci.c 7 Sep 2019 13:46:19 -0000 1.3
+++ arch/amd64/pci/acpipci.c 13 May 2020 18:44:32 -0000
@@ -53,6 +53,19 @@ struct acpipci_softc {
  struct device sc_dev;
  struct acpi_softc *sc_acpi;
  struct aml_node *sc_node;
+
+ bus_space_tag_t sc_iot;
+ bus_space_tag_t sc_memt;
+ bus_dma_tag_t sc_dmat;
+
+ struct extent *sc_busex;
+ struct extent *sc_memex;
+ struct extent *sc_ioex;
+ char sc_busex_name[32];
+ char sc_ioex_name[32];
+ char sc_memex_name[32];
+ int sc_bus;
+ uint32_t sc_seg;
 };
 
 int acpipci_match(struct device *, void *, void *);
@@ -72,6 +85,11 @@ const char *acpipci_hids[] = {
  NULL
 };
 
+void acpipci_attach_deferred(struct device *);
+int acpipci_print(void *, const char *);
+int acpipci_parse_resources(int, union acpi_resource *, void *);
+void acpipci_osc(struct acpipci_softc *);
+
 int
 acpipci_match(struct device *parent, void *match, void *aux)
 {
@@ -86,15 +104,225 @@ acpipci_attach(struct device *parent, st
 {
  struct acpi_attach_args *aaa = aux;
  struct acpipci_softc *sc = (struct acpipci_softc *)self;
- struct aml_value args[4];
  struct aml_value res;
- static uint8_t uuid[16] = ACPI_PCI_UUID;
- uint32_t buf[3];
+ uint64_t bbn = 0;
+ uint64_t seg = 0;
+
+ acpi_haspci = 1;
+
+ sc->sc_iot = aaa->aaa_iot;
+ sc->sc_memt = aaa->aaa_memt;
+ sc->sc_dmat = aaa->aaa_dmat;
 
  sc->sc_acpi = (struct acpi_softc *)parent;
  sc->sc_node = aaa->aaa_node;
  printf(" %s", sc->sc_node->name);
 
+ acpipci_osc(sc);
+
+ aml_evalinteger(sc->sc_acpi, sc->sc_node, "_BBN", 0, NULL, &bbn);
+ sc->sc_bus = bbn;
+
+ aml_evalinteger(sc->sc_acpi, sc->sc_node, "_SEG", 0, NULL, &seg);
+ sc->sc_seg = seg;
+
+ if (aml_evalname(sc->sc_acpi, sc->sc_node, "_CRS", 0, NULL, &res)) {
+ printf(": can't find resources\n");
+
+ pci_init_extents();
+ sc->sc_busex = pcibus_ex;
+ sc->sc_ioex = pciio_ex;
+ sc->sc_memex = pcimem_ex;
+
+ return;
+ }
+
+ /* Create extents for our address spaces. */
+ snprintf(sc->sc_busex_name, sizeof(sc->sc_busex_name),
+    "%s pcibus", sc->sc_dev.dv_xname);
+ snprintf(sc->sc_ioex_name, sizeof(sc->sc_ioex_name),
+    "%s pciio", sc->sc_dev.dv_xname);
+ snprintf(sc->sc_memex_name, sizeof(sc->sc_memex_name),
+    "%s pcimem", sc->sc_dev.dv_xname);
+ sc->sc_busex = extent_create(sc->sc_busex_name, 0, 255,
+    M_DEVBUF, NULL, 0, EX_WAITOK | EX_FILLED);
+ sc->sc_ioex = extent_create(sc->sc_ioex_name, 0, 0xffffffff,
+    M_DEVBUF, NULL, 0, EX_WAITOK | EX_FILLED);
+ sc->sc_memex = extent_create(sc->sc_memex_name, 0, (u_long)-1,
+    M_DEVBUF, NULL, 0, EX_WAITOK | EX_FILLED);
+
+ aml_parse_resource(&res, acpipci_parse_resources, sc);
+
+ if (sc->sc_acpi->sc_major < 5) {
+ extent_destroy(sc->sc_ioex);
+ extent_destroy(sc->sc_memex);
+
+ pci_init_extents();
+ sc->sc_ioex =  pciio_ex;
+ sc->sc_memex = pcimem_ex;
+ }
+
+ printf("\n");
+
+#ifdef DIAGNOSTIC
+ extent_print(sc->sc_busex);
+ extent_print(sc->sc_ioex);
+ extent_print(sc->sc_memex);
+#endif
+}
+
+void
+acpipci_attach_bus(struct device *parent, struct acpipci_softc *sc)
+{
+ struct pcibus_attach_args pba;
+ pcitag_t tag;
+ pcireg_t id, class;
+
+ memset(&pba, 0, sizeof(pba));
+ pba.pba_busname = "pci";
+ pba.pba_iot = sc->sc_iot;
+ pba.pba_memt = sc->sc_memt;
+ pba.pba_dmat = sc->sc_dmat;
+ pba.pba_busex = sc->sc_busex;
+ pba.pba_ioex = sc->sc_ioex;
+ pba.pba_memex = sc->sc_memex;
+ pba.pba_pmemex = sc->sc_memex;
+ pba.pba_domain = pci_ndomains++;
+ pba.pba_bus = sc->sc_bus;
+
+ /* Enable MSI in ACPI 2.0 and above, unless we're told not to. */
+ if (sc->sc_acpi->sc_fadt->hdr.revision >= 2 &&
+    (sc->sc_acpi->sc_fadt->iapc_boot_arch & FADT_NO_MSI) == 0)
+ pba.pba_flags |= PCI_FLAGS_MSI_ENABLED;
+
+ /*
+ * Don't enable MSI on chipsets from low-end manifacturers
+ * like VIA and SiS.  We do this by looking at the host
+ * bridge, which should be device 0 function 0.
+ */
+ tag = pci_make_tag(pba.pba_pc, sc->sc_bus, 0, 0);
+ id = pci_conf_read(pba.pba_pc, tag, PCI_ID_REG);
+ class = pci_conf_read(pba.pba_pc, tag, PCI_CLASS_REG);
+ if (PCI_CLASS(class) == PCI_CLASS_BRIDGE &&
+    PCI_SUBCLASS(class) != PCI_SUBCLASS_BRIDGE_HOST &&
+    PCI_VENDOR(id) != PCI_VENDOR_AMD &&
+    PCI_VENDOR(id) != PCI_VENDOR_NVIDIA &&
+    PCI_VENDOR(id) != PCI_VENDOR_INTEL)
+ pba.pba_flags &= ~PCI_FLAGS_MSI_ENABLED;
+
+ /*
+ * Don't enable MSI on a HyperTransport bus.  In order to
+ * determine that a bus is a HyperTransport bus, we look at
+ * device 24 function 0, which is the HyperTransport
+ * host/primary interface integrated on most 64-bit AMD CPUs.
+ * If that device has a HyperTransport capability, this must
+ * be a HyperTransport bus and we disable MSI.
+ */
+ tag = pci_make_tag(pba.pba_pc, sc->sc_bus, 24, 0);
+ if (pci_get_capability(pba.pba_pc, tag, PCI_CAP_HT, NULL, NULL))
+ pba.pba_flags &= ~PCI_FLAGS_MSI_ENABLED;
+
+ config_found(parent, &pba, acpipci_print);
+}
+
+void
+acpipci_attach_busses(struct device *parent)
+{
+ int i;
+
+ for (i = 0; i < acpipci_cd.cd_ndevs; i++) {
+ if (acpipci_cd.cd_devs[i])
+ acpipci_attach_bus(parent, acpipci_cd.cd_devs[i]);
+ }
+}
+
+int
+acpipci_print(void *aux, const char *pnp)
+{
+ struct pcibus_attach_args *pba = aux;
+
+ if (pnp)
+ printf("%s at %s", pba->pba_busname, pnp);
+ printf(" bus %d", pba->pba_bus);
+ return (UNCONF);
+}
+
+int
+acpipci_parse_resources(int crsidx, union acpi_resource *crs, void *arg)
+{
+ struct acpipci_softc *sc = arg;
+ int type = AML_CRSTYPE(crs);
+ int restype, tflags = 0;
+ u_long min, len = 0, tra = 0;
+
+ switch (type) {
+ case LR_WORD:
+ restype = crs->lr_word.type;
+ tflags = crs->lr_word.tflags;
+ min = crs->lr_word._min;
+ len = crs->lr_word._len;
+ tra = crs->lr_word._tra;
+ break;
+ case LR_DWORD:
+ restype = crs->lr_dword.type;
+ tflags = crs->lr_dword.tflags;
+ min = crs->lr_dword._min;
+ len = crs->lr_dword._len;
+ tra = crs->lr_dword._tra;
+ break;
+ case LR_QWORD:
+ restype = crs->lr_qword.type;
+ tflags = crs->lr_qword.tflags;
+ min = crs->lr_qword._min;
+ len = crs->lr_qword._len;
+ tra = crs->lr_qword._tra;
+ break;
+ case LR_MEM32FIXED:
+ /*
+ * Coreboot on the PC Engines apu2 incorrectly uses a
+ * Memory32Fixed resource descriptor to describe mmio
+ * address space forwarded to the PCI bus.
+ */
+ restype = LR_TYPE_MEMORY;
+ min = crs->lr_m32fixed._bas;
+ len = crs->lr_m32fixed._len;
+ break;
+ }
+
+ if (len == 0)
+ return 0;
+
+ switch (restype) {
+ case LR_TYPE_MEMORY:
+ if (tflags & LR_MEMORY_TTP)
+ return 0;
+ extent_free(sc->sc_memex, min, len, EX_WAITOK | EX_CONFLICTOK);
+ break;
+ case LR_TYPE_IO:
+ if (tflags & LR_IO_TTP)
+ return 0;
+ extent_free(sc->sc_ioex, min, len, EX_WAITOK | EX_CONFLICTOK);
+ break;
+ case LR_TYPE_BUS:
+ extent_free(sc->sc_busex, min, len, EX_WAITOK);
+ /*
+ * Let _CRS minimum bus number override _BBN.
+ */
+ sc->sc_bus = min;
+ break;
+ }
+
+ return 0;
+}
+
+void
+acpipci_osc(struct acpipci_softc *sc)
+{
+ struct aml_value args[4];
+ struct aml_value res;
+ static uint8_t uuid[16] = ACPI_PCI_UUID;
+ uint32_t buf[3];
+
  memset(args, 0, sizeof(args));
  args[0].type = AML_OBJTYPE_BUFFER;
  args[0].v_buffer = uuid;
@@ -112,10 +340,8 @@ acpipci_attach(struct device *parent, st
  buf[1] = ACPI_PCI_PCIE_CONFIG | ACPI_PCI_MSI;
  buf[2] = ACPI_PCI_PCIE_HOTPLUG;
 
- if (aml_evalname(sc->sc_acpi, sc->sc_node, "_OSC", 4, args, &res)) {
- printf(": _OSC failed\n");
+ if (aml_evalname(sc->sc_acpi, sc->sc_node, "_OSC", 4, args, &res))
  return;
- }
 
  if (res.type == AML_OBJTYPE_BUFFER) {
  size_t len = res.length;
@@ -128,6 +354,4 @@ acpipci_attach(struct device *parent, st
  len -= 4;
  }
  }
-
- printf("\n");
 }
Index: arch/amd64/pci/pci_machdep.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/pci/pci_machdep.c,v
retrieving revision 1.73
diff -u -p -r1.73 pci_machdep.c
--- arch/amd64/pci/pci_machdep.c 7 Sep 2019 13:46:19 -0000 1.73
+++ arch/amd64/pci/pci_machdep.c 13 May 2020 18:44:32 -0000
@@ -163,64 +163,6 @@ void
 pci_attach_hook(struct device *parent, struct device *self,
     struct pcibus_attach_args *pba)
 {
- pci_chipset_tag_t pc = pba->pba_pc;
- pcitag_t tag;
- pcireg_t id, class;
-
- if (pba->pba_bus != 0)
- return;
-
- /*
- * In order to decide whether the system supports MSI we look
- * at the host bridge, which should be device 0 function 0 on
- * bus 0.  It is better to not enable MSI on systems that
- * support it than the other way around, so be conservative
- * here.  So we don't enable MSI if we don't find a host
- * bridge there.  We also deliberately don't enable MSI on
- * chipsets from low-end manifacturers like VIA and SiS.
- */
- tag = pci_make_tag(pc, 0, 0, 0);
- id = pci_conf_read(pc, tag, PCI_ID_REG);
- class = pci_conf_read(pc, tag, PCI_CLASS_REG);
-
- if (PCI_CLASS(class) != PCI_CLASS_BRIDGE ||
-    PCI_SUBCLASS(class) != PCI_SUBCLASS_BRIDGE_HOST)
- return;
-
- switch (PCI_VENDOR(id)) {
- case PCI_VENDOR_INTEL:
- /*
- * In the wonderful world of virtualization you can
- * have the latest 64-bit AMD multicore CPU behind a
- * prehistoric Intel host bridge.  Give them what they
- * deserve.
- */
- switch (PCI_PRODUCT(id)) {
- case PCI_PRODUCT_INTEL_82441FX: /* QEMU */
- case PCI_PRODUCT_INTEL_82443BX: /* VMWare */
- break;
- default:
- pba->pba_flags |= PCI_FLAGS_MSI_ENABLED;
- break;
- }
- break;
- case PCI_VENDOR_NVIDIA:
- case PCI_VENDOR_AMD:
- pba->pba_flags |= PCI_FLAGS_MSI_ENABLED;
- break;
- }
-
- /*
- * Don't enable MSI on a HyperTransport bus.  In order to
- * determine that bus 0 is a HyperTransport bus, we look at
- * device 24 function 0, which is the HyperTransport
- * host/primary interface integrated on most 64-bit AMD CPUs.
- * If that device has a HyperTransport capability, bus 0 must
- * be a HyperTransport bus and we disable MSI.
- */
- tag = pci_make_tag(pc, 0, 24, 0);
- if (pci_get_capability(pc, tag, PCI_CAP_HT, NULL, NULL))
- pba->pba_flags &= ~PCI_FLAGS_MSI_ENABLED;
 }
 
 int

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Bryan Steele-2
On Mon, Jul 27, 2020 at 05:02:41PM +0200, Mark Kettenis wrote:

> Recent ACPI versions have deprecated "Processor()" nodes in favout of
> "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> diff tries to support machines with firmware that implements this.  If
> you see something like:
>
>   "ACPI0007" at acpi0 not configured
>
> please try the following diff and report back with an updated dmesg.
>
> Cheers,
>
> Mark
>

Wrong diff?

>
> Index: dev/acpi/acpi.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/acpi/acpi.c,v
> retrieving revision 1.384
> diff -u -p -r1.384 acpi.c
> --- dev/acpi/acpi.c 11 May 2020 17:57:17 -0000 1.384
> +++ dev/acpi/acpi.c 13 May 2020 18:44:32 -0000
> @@ -72,6 +72,7 @@ int acpi_debug = 16;
>  
>  int acpi_poll_enabled;
>  int acpi_hasprocfvs;
> +int acpi_haspci;
>  
>  #define ACPIEN_RETRIES 15
>  
> Index: dev/acpi/acpivar.h
> ===================================================================
> RCS file: /cvs/src/sys/dev/acpi/acpivar.h,v
> retrieving revision 1.108
> diff -u -p -r1.108 acpivar.h
> --- dev/acpi/acpivar.h 8 May 2020 11:18:01 -0000 1.108
> +++ dev/acpi/acpivar.h 13 May 2020 18:44:32 -0000
> @@ -43,6 +43,7 @@ extern int acpi_debug;
>  #endif
>  
>  extern int acpi_hasprocfvs;
> +extern int acpi_haspci;
>  
>  struct klist;
>  struct acpiec_softc;
> Index: arch/amd64/amd64/mainbus.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/amd64/amd64/mainbus.c,v
> retrieving revision 1.49
> diff -u -p -r1.49 mainbus.c
> --- arch/amd64/amd64/mainbus.c 7 Sep 2019 13:46:19 -0000 1.49
> +++ arch/amd64/amd64/mainbus.c 13 May 2020 18:44:32 -0000
> @@ -231,6 +231,13 @@ mainbus_attach(struct device *parent, st
>  #endif
>  
>  #if NPCI > 0
> +#if NACPI > 0
> + if (acpi_haspci) {
> + extern void acpipci_attach_busses(struct device *);
> +
> + acpipci_attach_busses(self);
> + } else
> +#endif
>   {
>   pci_init_extents();
>  
> @@ -245,9 +252,6 @@ mainbus_attach(struct device *parent, st
>   mba.mba_pba.pba_domain = pci_ndomains++;
>   mba.mba_pba.pba_bus = 0;
>   config_found(self, &mba.mba_pba, mainbus_print);
> -#if NACPI > 0
> - acpi_pciroots_attach(self, &mba.mba_pba, mainbus_print);
> -#endif
>   }
>  #endif
>  
> Index: arch/amd64/conf/RAMDISK
> ===================================================================
> RCS file: /cvs/src/sys/arch/amd64/conf/RAMDISK,v
> retrieving revision 1.77
> diff -u -p -r1.77 RAMDISK
> --- arch/amd64/conf/RAMDISK 5 Mar 2020 16:36:30 -0000 1.77
> +++ arch/amd64/conf/RAMDISK 13 May 2020 18:44:32 -0000
> @@ -30,6 +30,7 @@ acpi0 at bios?
>  #acpicpu* at acpi?
>  acpicmos* at acpi?
>  acpiec* at acpi?
> +acpipci* at acpi?
>  acpiprt* at acpi?
>  acpimadt0 at acpi?
>  #acpitz* at acpi?
> Index: arch/amd64/conf/RAMDISK_CD
> ===================================================================
> RCS file: /cvs/src/sys/arch/amd64/conf/RAMDISK_CD,v
> retrieving revision 1.188
> diff -u -p -r1.188 RAMDISK_CD
> --- arch/amd64/conf/RAMDISK_CD 15 Feb 2020 08:49:11 -0000 1.188
> +++ arch/amd64/conf/RAMDISK_CD 13 May 2020 18:44:32 -0000
> @@ -37,6 +37,7 @@ acpi0 at bios?
>  #acpicpu* at acpi?
>  acpicmos* at acpi?
>  acpiec* at acpi?
> +acpipci* at acpi?
>  acpiprt* at acpi?
>  acpimadt0 at acpi?
>  #acpitz* at acpi?
> Index: arch/amd64/pci/acpipci.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/amd64/pci/acpipci.c,v
> retrieving revision 1.3
> diff -u -p -r1.3 acpipci.c
> --- arch/amd64/pci/acpipci.c 7 Sep 2019 13:46:19 -0000 1.3
> +++ arch/amd64/pci/acpipci.c 13 May 2020 18:44:32 -0000
> @@ -53,6 +53,19 @@ struct acpipci_softc {
>   struct device sc_dev;
>   struct acpi_softc *sc_acpi;
>   struct aml_node *sc_node;
> +
> + bus_space_tag_t sc_iot;
> + bus_space_tag_t sc_memt;
> + bus_dma_tag_t sc_dmat;
> +
> + struct extent *sc_busex;
> + struct extent *sc_memex;
> + struct extent *sc_ioex;
> + char sc_busex_name[32];
> + char sc_ioex_name[32];
> + char sc_memex_name[32];
> + int sc_bus;
> + uint32_t sc_seg;
>  };
>  
>  int acpipci_match(struct device *, void *, void *);
> @@ -72,6 +85,11 @@ const char *acpipci_hids[] = {
>   NULL
>  };
>  
> +void acpipci_attach_deferred(struct device *);
> +int acpipci_print(void *, const char *);
> +int acpipci_parse_resources(int, union acpi_resource *, void *);
> +void acpipci_osc(struct acpipci_softc *);
> +
>  int
>  acpipci_match(struct device *parent, void *match, void *aux)
>  {
> @@ -86,15 +104,225 @@ acpipci_attach(struct device *parent, st
>  {
>   struct acpi_attach_args *aaa = aux;
>   struct acpipci_softc *sc = (struct acpipci_softc *)self;
> - struct aml_value args[4];
>   struct aml_value res;
> - static uint8_t uuid[16] = ACPI_PCI_UUID;
> - uint32_t buf[3];
> + uint64_t bbn = 0;
> + uint64_t seg = 0;
> +
> + acpi_haspci = 1;
> +
> + sc->sc_iot = aaa->aaa_iot;
> + sc->sc_memt = aaa->aaa_memt;
> + sc->sc_dmat = aaa->aaa_dmat;
>  
>   sc->sc_acpi = (struct acpi_softc *)parent;
>   sc->sc_node = aaa->aaa_node;
>   printf(" %s", sc->sc_node->name);
>  
> + acpipci_osc(sc);
> +
> + aml_evalinteger(sc->sc_acpi, sc->sc_node, "_BBN", 0, NULL, &bbn);
> + sc->sc_bus = bbn;
> +
> + aml_evalinteger(sc->sc_acpi, sc->sc_node, "_SEG", 0, NULL, &seg);
> + sc->sc_seg = seg;
> +
> + if (aml_evalname(sc->sc_acpi, sc->sc_node, "_CRS", 0, NULL, &res)) {
> + printf(": can't find resources\n");
> +
> + pci_init_extents();
> + sc->sc_busex = pcibus_ex;
> + sc->sc_ioex = pciio_ex;
> + sc->sc_memex = pcimem_ex;
> +
> + return;
> + }
> +
> + /* Create extents for our address spaces. */
> + snprintf(sc->sc_busex_name, sizeof(sc->sc_busex_name),
> +    "%s pcibus", sc->sc_dev.dv_xname);
> + snprintf(sc->sc_ioex_name, sizeof(sc->sc_ioex_name),
> +    "%s pciio", sc->sc_dev.dv_xname);
> + snprintf(sc->sc_memex_name, sizeof(sc->sc_memex_name),
> +    "%s pcimem", sc->sc_dev.dv_xname);
> + sc->sc_busex = extent_create(sc->sc_busex_name, 0, 255,
> +    M_DEVBUF, NULL, 0, EX_WAITOK | EX_FILLED);
> + sc->sc_ioex = extent_create(sc->sc_ioex_name, 0, 0xffffffff,
> +    M_DEVBUF, NULL, 0, EX_WAITOK | EX_FILLED);
> + sc->sc_memex = extent_create(sc->sc_memex_name, 0, (u_long)-1,
> +    M_DEVBUF, NULL, 0, EX_WAITOK | EX_FILLED);
> +
> + aml_parse_resource(&res, acpipci_parse_resources, sc);
> +
> + if (sc->sc_acpi->sc_major < 5) {
> + extent_destroy(sc->sc_ioex);
> + extent_destroy(sc->sc_memex);
> +
> + pci_init_extents();
> + sc->sc_ioex =  pciio_ex;
> + sc->sc_memex = pcimem_ex;
> + }
> +
> + printf("\n");
> +
> +#ifdef DIAGNOSTIC
> + extent_print(sc->sc_busex);
> + extent_print(sc->sc_ioex);
> + extent_print(sc->sc_memex);
> +#endif
> +}
> +
> +void
> +acpipci_attach_bus(struct device *parent, struct acpipci_softc *sc)
> +{
> + struct pcibus_attach_args pba;
> + pcitag_t tag;
> + pcireg_t id, class;
> +
> + memset(&pba, 0, sizeof(pba));
> + pba.pba_busname = "pci";
> + pba.pba_iot = sc->sc_iot;
> + pba.pba_memt = sc->sc_memt;
> + pba.pba_dmat = sc->sc_dmat;
> + pba.pba_busex = sc->sc_busex;
> + pba.pba_ioex = sc->sc_ioex;
> + pba.pba_memex = sc->sc_memex;
> + pba.pba_pmemex = sc->sc_memex;
> + pba.pba_domain = pci_ndomains++;
> + pba.pba_bus = sc->sc_bus;
> +
> + /* Enable MSI in ACPI 2.0 and above, unless we're told not to. */
> + if (sc->sc_acpi->sc_fadt->hdr.revision >= 2 &&
> +    (sc->sc_acpi->sc_fadt->iapc_boot_arch & FADT_NO_MSI) == 0)
> + pba.pba_flags |= PCI_FLAGS_MSI_ENABLED;
> +
> + /*
> + * Don't enable MSI on chipsets from low-end manifacturers
> + * like VIA and SiS.  We do this by looking at the host
> + * bridge, which should be device 0 function 0.
> + */
> + tag = pci_make_tag(pba.pba_pc, sc->sc_bus, 0, 0);
> + id = pci_conf_read(pba.pba_pc, tag, PCI_ID_REG);
> + class = pci_conf_read(pba.pba_pc, tag, PCI_CLASS_REG);
> + if (PCI_CLASS(class) == PCI_CLASS_BRIDGE &&
> +    PCI_SUBCLASS(class) != PCI_SUBCLASS_BRIDGE_HOST &&
> +    PCI_VENDOR(id) != PCI_VENDOR_AMD &&
> +    PCI_VENDOR(id) != PCI_VENDOR_NVIDIA &&
> +    PCI_VENDOR(id) != PCI_VENDOR_INTEL)
> + pba.pba_flags &= ~PCI_FLAGS_MSI_ENABLED;
> +
> + /*
> + * Don't enable MSI on a HyperTransport bus.  In order to
> + * determine that a bus is a HyperTransport bus, we look at
> + * device 24 function 0, which is the HyperTransport
> + * host/primary interface integrated on most 64-bit AMD CPUs.
> + * If that device has a HyperTransport capability, this must
> + * be a HyperTransport bus and we disable MSI.
> + */
> + tag = pci_make_tag(pba.pba_pc, sc->sc_bus, 24, 0);
> + if (pci_get_capability(pba.pba_pc, tag, PCI_CAP_HT, NULL, NULL))
> + pba.pba_flags &= ~PCI_FLAGS_MSI_ENABLED;
> +
> + config_found(parent, &pba, acpipci_print);
> +}
> +
> +void
> +acpipci_attach_busses(struct device *parent)
> +{
> + int i;
> +
> + for (i = 0; i < acpipci_cd.cd_ndevs; i++) {
> + if (acpipci_cd.cd_devs[i])
> + acpipci_attach_bus(parent, acpipci_cd.cd_devs[i]);
> + }
> +}
> +
> +int
> +acpipci_print(void *aux, const char *pnp)
> +{
> + struct pcibus_attach_args *pba = aux;
> +
> + if (pnp)
> + printf("%s at %s", pba->pba_busname, pnp);
> + printf(" bus %d", pba->pba_bus);
> + return (UNCONF);
> +}
> +
> +int
> +acpipci_parse_resources(int crsidx, union acpi_resource *crs, void *arg)
> +{
> + struct acpipci_softc *sc = arg;
> + int type = AML_CRSTYPE(crs);
> + int restype, tflags = 0;
> + u_long min, len = 0, tra = 0;
> +
> + switch (type) {
> + case LR_WORD:
> + restype = crs->lr_word.type;
> + tflags = crs->lr_word.tflags;
> + min = crs->lr_word._min;
> + len = crs->lr_word._len;
> + tra = crs->lr_word._tra;
> + break;
> + case LR_DWORD:
> + restype = crs->lr_dword.type;
> + tflags = crs->lr_dword.tflags;
> + min = crs->lr_dword._min;
> + len = crs->lr_dword._len;
> + tra = crs->lr_dword._tra;
> + break;
> + case LR_QWORD:
> + restype = crs->lr_qword.type;
> + tflags = crs->lr_qword.tflags;
> + min = crs->lr_qword._min;
> + len = crs->lr_qword._len;
> + tra = crs->lr_qword._tra;
> + break;
> + case LR_MEM32FIXED:
> + /*
> + * Coreboot on the PC Engines apu2 incorrectly uses a
> + * Memory32Fixed resource descriptor to describe mmio
> + * address space forwarded to the PCI bus.
> + */
> + restype = LR_TYPE_MEMORY;
> + min = crs->lr_m32fixed._bas;
> + len = crs->lr_m32fixed._len;
> + break;
> + }
> +
> + if (len == 0)
> + return 0;
> +
> + switch (restype) {
> + case LR_TYPE_MEMORY:
> + if (tflags & LR_MEMORY_TTP)
> + return 0;
> + extent_free(sc->sc_memex, min, len, EX_WAITOK | EX_CONFLICTOK);
> + break;
> + case LR_TYPE_IO:
> + if (tflags & LR_IO_TTP)
> + return 0;
> + extent_free(sc->sc_ioex, min, len, EX_WAITOK | EX_CONFLICTOK);
> + break;
> + case LR_TYPE_BUS:
> + extent_free(sc->sc_busex, min, len, EX_WAITOK);
> + /*
> + * Let _CRS minimum bus number override _BBN.
> + */
> + sc->sc_bus = min;
> + break;
> + }
> +
> + return 0;
> +}
> +
> +void
> +acpipci_osc(struct acpipci_softc *sc)
> +{
> + struct aml_value args[4];
> + struct aml_value res;
> + static uint8_t uuid[16] = ACPI_PCI_UUID;
> + uint32_t buf[3];
> +
>   memset(args, 0, sizeof(args));
>   args[0].type = AML_OBJTYPE_BUFFER;
>   args[0].v_buffer = uuid;
> @@ -112,10 +340,8 @@ acpipci_attach(struct device *parent, st
>   buf[1] = ACPI_PCI_PCIE_CONFIG | ACPI_PCI_MSI;
>   buf[2] = ACPI_PCI_PCIE_HOTPLUG;
>  
> - if (aml_evalname(sc->sc_acpi, sc->sc_node, "_OSC", 4, args, &res)) {
> - printf(": _OSC failed\n");
> + if (aml_evalname(sc->sc_acpi, sc->sc_node, "_OSC", 4, args, &res))
>   return;
> - }
>  
>   if (res.type == AML_OBJTYPE_BUFFER) {
>   size_t len = res.length;
> @@ -128,6 +354,4 @@ acpipci_attach(struct device *parent, st
>   len -= 4;
>   }
>   }
> -
> - printf("\n");
>  }
> Index: arch/amd64/pci/pci_machdep.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/amd64/pci/pci_machdep.c,v
> retrieving revision 1.73
> diff -u -p -r1.73 pci_machdep.c
> --- arch/amd64/pci/pci_machdep.c 7 Sep 2019 13:46:19 -0000 1.73
> +++ arch/amd64/pci/pci_machdep.c 13 May 2020 18:44:32 -0000
> @@ -163,64 +163,6 @@ void
>  pci_attach_hook(struct device *parent, struct device *self,
>      struct pcibus_attach_args *pba)
>  {
> - pci_chipset_tag_t pc = pba->pba_pc;
> - pcitag_t tag;
> - pcireg_t id, class;
> -
> - if (pba->pba_bus != 0)
> - return;
> -
> - /*
> - * In order to decide whether the system supports MSI we look
> - * at the host bridge, which should be device 0 function 0 on
> - * bus 0.  It is better to not enable MSI on systems that
> - * support it than the other way around, so be conservative
> - * here.  So we don't enable MSI if we don't find a host
> - * bridge there.  We also deliberately don't enable MSI on
> - * chipsets from low-end manifacturers like VIA and SiS.
> - */
> - tag = pci_make_tag(pc, 0, 0, 0);
> - id = pci_conf_read(pc, tag, PCI_ID_REG);
> - class = pci_conf_read(pc, tag, PCI_CLASS_REG);
> -
> - if (PCI_CLASS(class) != PCI_CLASS_BRIDGE ||
> -    PCI_SUBCLASS(class) != PCI_SUBCLASS_BRIDGE_HOST)
> - return;
> -
> - switch (PCI_VENDOR(id)) {
> - case PCI_VENDOR_INTEL:
> - /*
> - * In the wonderful world of virtualization you can
> - * have the latest 64-bit AMD multicore CPU behind a
> - * prehistoric Intel host bridge.  Give them what they
> - * deserve.
> - */
> - switch (PCI_PRODUCT(id)) {
> - case PCI_PRODUCT_INTEL_82441FX: /* QEMU */
> - case PCI_PRODUCT_INTEL_82443BX: /* VMWare */
> - break;
> - default:
> - pba->pba_flags |= PCI_FLAGS_MSI_ENABLED;
> - break;
> - }
> - break;
> - case PCI_VENDOR_NVIDIA:
> - case PCI_VENDOR_AMD:
> - pba->pba_flags |= PCI_FLAGS_MSI_ENABLED;
> - break;
> - }
> -
> - /*
> - * Don't enable MSI on a HyperTransport bus.  In order to
> - * determine that bus 0 is a HyperTransport bus, we look at
> - * device 24 function 0, which is the HyperTransport
> - * host/primary interface integrated on most 64-bit AMD CPUs.
> - * If that device has a HyperTransport capability, bus 0 must
> - * be a HyperTransport bus and we disable MSI.
> - */
> - tag = pci_make_tag(pc, 0, 24, 0);
> - if (pci_get_capability(pc, tag, PCI_CAP_HT, NULL, NULL))
> - pba->pba_flags &= ~PCI_FLAGS_MSI_ENABLED;
>  }
>  
>  int
>
>

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Mark Kettenis
In reply to this post by Mark Kettenis
> Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> From: Mark Kettenis <[hidden email]>
>
> Recent ACPI versions have deprecated "Processor()" nodes in favout of
> "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> diff tries to support machines with firmware that implements this.  If
> you see something like:
>
>   "ACPI0007" at acpi0 not configured
>
> please try the following diff and report back with an updated dmesg.
>
> Cheers,
>
> Mark

And now with the right diff...


Index: dev/acpi/acpicpu.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpicpu.c,v
retrieving revision 1.85
diff -u -p -r1.85 acpicpu.c
--- dev/acpi/acpicpu.c 27 May 2020 05:02:21 -0000 1.85
+++ dev/acpi/acpicpu.c 27 Jul 2020 14:58:38 -0000
@@ -186,6 +186,11 @@ struct cfdriver acpicpu_cd = {
  NULL, "acpicpu", DV_DULL
 };
 
+const char *acpicpu_hids[] = {
+ "ACPI0007",
+ NULL
+};
+
 extern int setperf_prio;
 
 struct acpicpu_softc *acpicpu_sc[MAXCPUS];
@@ -650,6 +655,9 @@ acpicpu_match(struct device *parent, voi
  struct acpi_attach_args *aa = aux;
  struct cfdata *cf = match;
 
+ if (acpi_matchhids(aa, acpicpu_hids, cf->cf_driver->cd_name))
+ return (1);
+
  /* sanity */
  if (aa->aaa_name == NULL ||
     strcmp(aa->aaa_name, cf->cf_driver->cd_name) != 0 ||
@@ -665,6 +673,7 @@ acpicpu_attach(struct device *parent, st
  struct acpicpu_softc *sc = (struct acpicpu_softc *)self;
  struct acpi_attach_args *aa = aux;
  struct aml_value res;
+ int64_t uid;
  int i;
  uint32_t status = 0;
  CPU_INFO_ITERATOR cii;
@@ -675,6 +684,10 @@ acpicpu_attach(struct device *parent, st
  acpicpu_sc[sc->sc_dev.dv_unit] = sc;
 
  SLIST_INIT(&sc->sc_cstates);
+
+ if (aml_evalinteger(sc->sc_acpi, sc->sc_devnode,
+    "_UID", 0, NULL, &uid) == 0)
+ sc->sc_cpu = uid;
 
  if (aml_evalnode(sc->sc_acpi, sc->sc_devnode, 0, NULL, &res) == 0) {
  if (res.type == AML_OBJTYPE_PROCESSOR) {

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Mark Kettenis
In reply to this post by Bryan Steele-2
> Date: Mon, 27 Jul 2020 11:10:42 -0400
> From: Bryan Steele <[hidden email]>
>
> On Mon, Jul 27, 2020 at 05:02:41PM +0200, Mark Kettenis wrote:
> > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > diff tries to support machines with firmware that implements this.  If
> > you see something like:
> >
> >   "ACPI0007" at acpi0 not configured
> >
> > please try the following diff and report back with an updated dmesg.
> >
> > Cheers,
> >
> > Mark
> >
>
> Wrong diff?

Yes, too many diffs that start with acpi...

Thanks,

Mark

> > Index: dev/acpi/acpi.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/acpi/acpi.c,v
> > retrieving revision 1.384
> > diff -u -p -r1.384 acpi.c
> > --- dev/acpi/acpi.c 11 May 2020 17:57:17 -0000 1.384
> > +++ dev/acpi/acpi.c 13 May 2020 18:44:32 -0000
> > @@ -72,6 +72,7 @@ int acpi_debug = 16;
> >  
> >  int acpi_poll_enabled;
> >  int acpi_hasprocfvs;
> > +int acpi_haspci;
> >  
> >  #define ACPIEN_RETRIES 15
> >  
> > Index: dev/acpi/acpivar.h
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/acpi/acpivar.h,v
> > retrieving revision 1.108
> > diff -u -p -r1.108 acpivar.h
> > --- dev/acpi/acpivar.h 8 May 2020 11:18:01 -0000 1.108
> > +++ dev/acpi/acpivar.h 13 May 2020 18:44:32 -0000
> > @@ -43,6 +43,7 @@ extern int acpi_debug;
> >  #endif
> >  
> >  extern int acpi_hasprocfvs;
> > +extern int acpi_haspci;
> >  
> >  struct klist;
> >  struct acpiec_softc;
> > Index: arch/amd64/amd64/mainbus.c
> > ===================================================================
> > RCS file: /cvs/src/sys/arch/amd64/amd64/mainbus.c,v
> > retrieving revision 1.49
> > diff -u -p -r1.49 mainbus.c
> > --- arch/amd64/amd64/mainbus.c 7 Sep 2019 13:46:19 -0000 1.49
> > +++ arch/amd64/amd64/mainbus.c 13 May 2020 18:44:32 -0000
> > @@ -231,6 +231,13 @@ mainbus_attach(struct device *parent, st
> >  #endif
> >  
> >  #if NPCI > 0
> > +#if NACPI > 0
> > + if (acpi_haspci) {
> > + extern void acpipci_attach_busses(struct device *);
> > +
> > + acpipci_attach_busses(self);
> > + } else
> > +#endif
> >   {
> >   pci_init_extents();
> >  
> > @@ -245,9 +252,6 @@ mainbus_attach(struct device *parent, st
> >   mba.mba_pba.pba_domain = pci_ndomains++;
> >   mba.mba_pba.pba_bus = 0;
> >   config_found(self, &mba.mba_pba, mainbus_print);
> > -#if NACPI > 0
> > - acpi_pciroots_attach(self, &mba.mba_pba, mainbus_print);
> > -#endif
> >   }
> >  #endif
> >  
> > Index: arch/amd64/conf/RAMDISK
> > ===================================================================
> > RCS file: /cvs/src/sys/arch/amd64/conf/RAMDISK,v
> > retrieving revision 1.77
> > diff -u -p -r1.77 RAMDISK
> > --- arch/amd64/conf/RAMDISK 5 Mar 2020 16:36:30 -0000 1.77
> > +++ arch/amd64/conf/RAMDISK 13 May 2020 18:44:32 -0000
> > @@ -30,6 +30,7 @@ acpi0 at bios?
> >  #acpicpu* at acpi?
> >  acpicmos* at acpi?
> >  acpiec* at acpi?
> > +acpipci* at acpi?
> >  acpiprt* at acpi?
> >  acpimadt0 at acpi?
> >  #acpitz* at acpi?
> > Index: arch/amd64/conf/RAMDISK_CD
> > ===================================================================
> > RCS file: /cvs/src/sys/arch/amd64/conf/RAMDISK_CD,v
> > retrieving revision 1.188
> > diff -u -p -r1.188 RAMDISK_CD
> > --- arch/amd64/conf/RAMDISK_CD 15 Feb 2020 08:49:11 -0000 1.188
> > +++ arch/amd64/conf/RAMDISK_CD 13 May 2020 18:44:32 -0000
> > @@ -37,6 +37,7 @@ acpi0 at bios?
> >  #acpicpu* at acpi?
> >  acpicmos* at acpi?
> >  acpiec* at acpi?
> > +acpipci* at acpi?
> >  acpiprt* at acpi?
> >  acpimadt0 at acpi?
> >  #acpitz* at acpi?
> > Index: arch/amd64/pci/acpipci.c
> > ===================================================================
> > RCS file: /cvs/src/sys/arch/amd64/pci/acpipci.c,v
> > retrieving revision 1.3
> > diff -u -p -r1.3 acpipci.c
> > --- arch/amd64/pci/acpipci.c 7 Sep 2019 13:46:19 -0000 1.3
> > +++ arch/amd64/pci/acpipci.c 13 May 2020 18:44:32 -0000
> > @@ -53,6 +53,19 @@ struct acpipci_softc {
> >   struct device sc_dev;
> >   struct acpi_softc *sc_acpi;
> >   struct aml_node *sc_node;
> > +
> > + bus_space_tag_t sc_iot;
> > + bus_space_tag_t sc_memt;
> > + bus_dma_tag_t sc_dmat;
> > +
> > + struct extent *sc_busex;
> > + struct extent *sc_memex;
> > + struct extent *sc_ioex;
> > + char sc_busex_name[32];
> > + char sc_ioex_name[32];
> > + char sc_memex_name[32];
> > + int sc_bus;
> > + uint32_t sc_seg;
> >  };
> >  
> >  int acpipci_match(struct device *, void *, void *);
> > @@ -72,6 +85,11 @@ const char *acpipci_hids[] = {
> >   NULL
> >  };
> >  
> > +void acpipci_attach_deferred(struct device *);
> > +int acpipci_print(void *, const char *);
> > +int acpipci_parse_resources(int, union acpi_resource *, void *);
> > +void acpipci_osc(struct acpipci_softc *);
> > +
> >  int
> >  acpipci_match(struct device *parent, void *match, void *aux)
> >  {
> > @@ -86,15 +104,225 @@ acpipci_attach(struct device *parent, st
> >  {
> >   struct acpi_attach_args *aaa = aux;
> >   struct acpipci_softc *sc = (struct acpipci_softc *)self;
> > - struct aml_value args[4];
> >   struct aml_value res;
> > - static uint8_t uuid[16] = ACPI_PCI_UUID;
> > - uint32_t buf[3];
> > + uint64_t bbn = 0;
> > + uint64_t seg = 0;
> > +
> > + acpi_haspci = 1;
> > +
> > + sc->sc_iot = aaa->aaa_iot;
> > + sc->sc_memt = aaa->aaa_memt;
> > + sc->sc_dmat = aaa->aaa_dmat;
> >  
> >   sc->sc_acpi = (struct acpi_softc *)parent;
> >   sc->sc_node = aaa->aaa_node;
> >   printf(" %s", sc->sc_node->name);
> >  
> > + acpipci_osc(sc);
> > +
> > + aml_evalinteger(sc->sc_acpi, sc->sc_node, "_BBN", 0, NULL, &bbn);
> > + sc->sc_bus = bbn;
> > +
> > + aml_evalinteger(sc->sc_acpi, sc->sc_node, "_SEG", 0, NULL, &seg);
> > + sc->sc_seg = seg;
> > +
> > + if (aml_evalname(sc->sc_acpi, sc->sc_node, "_CRS", 0, NULL, &res)) {
> > + printf(": can't find resources\n");
> > +
> > + pci_init_extents();
> > + sc->sc_busex = pcibus_ex;
> > + sc->sc_ioex = pciio_ex;
> > + sc->sc_memex = pcimem_ex;
> > +
> > + return;
> > + }
> > +
> > + /* Create extents for our address spaces. */
> > + snprintf(sc->sc_busex_name, sizeof(sc->sc_busex_name),
> > +    "%s pcibus", sc->sc_dev.dv_xname);
> > + snprintf(sc->sc_ioex_name, sizeof(sc->sc_ioex_name),
> > +    "%s pciio", sc->sc_dev.dv_xname);
> > + snprintf(sc->sc_memex_name, sizeof(sc->sc_memex_name),
> > +    "%s pcimem", sc->sc_dev.dv_xname);
> > + sc->sc_busex = extent_create(sc->sc_busex_name, 0, 255,
> > +    M_DEVBUF, NULL, 0, EX_WAITOK | EX_FILLED);
> > + sc->sc_ioex = extent_create(sc->sc_ioex_name, 0, 0xffffffff,
> > +    M_DEVBUF, NULL, 0, EX_WAITOK | EX_FILLED);
> > + sc->sc_memex = extent_create(sc->sc_memex_name, 0, (u_long)-1,
> > +    M_DEVBUF, NULL, 0, EX_WAITOK | EX_FILLED);
> > +
> > + aml_parse_resource(&res, acpipci_parse_resources, sc);
> > +
> > + if (sc->sc_acpi->sc_major < 5) {
> > + extent_destroy(sc->sc_ioex);
> > + extent_destroy(sc->sc_memex);
> > +
> > + pci_init_extents();
> > + sc->sc_ioex =  pciio_ex;
> > + sc->sc_memex = pcimem_ex;
> > + }
> > +
> > + printf("\n");
> > +
> > +#ifdef DIAGNOSTIC
> > + extent_print(sc->sc_busex);
> > + extent_print(sc->sc_ioex);
> > + extent_print(sc->sc_memex);
> > +#endif
> > +}
> > +
> > +void
> > +acpipci_attach_bus(struct device *parent, struct acpipci_softc *sc)
> > +{
> > + struct pcibus_attach_args pba;
> > + pcitag_t tag;
> > + pcireg_t id, class;
> > +
> > + memset(&pba, 0, sizeof(pba));
> > + pba.pba_busname = "pci";
> > + pba.pba_iot = sc->sc_iot;
> > + pba.pba_memt = sc->sc_memt;
> > + pba.pba_dmat = sc->sc_dmat;
> > + pba.pba_busex = sc->sc_busex;
> > + pba.pba_ioex = sc->sc_ioex;
> > + pba.pba_memex = sc->sc_memex;
> > + pba.pba_pmemex = sc->sc_memex;
> > + pba.pba_domain = pci_ndomains++;
> > + pba.pba_bus = sc->sc_bus;
> > +
> > + /* Enable MSI in ACPI 2.0 and above, unless we're told not to. */
> > + if (sc->sc_acpi->sc_fadt->hdr.revision >= 2 &&
> > +    (sc->sc_acpi->sc_fadt->iapc_boot_arch & FADT_NO_MSI) == 0)
> > + pba.pba_flags |= PCI_FLAGS_MSI_ENABLED;
> > +
> > + /*
> > + * Don't enable MSI on chipsets from low-end manifacturers
> > + * like VIA and SiS.  We do this by looking at the host
> > + * bridge, which should be device 0 function 0.
> > + */
> > + tag = pci_make_tag(pba.pba_pc, sc->sc_bus, 0, 0);
> > + id = pci_conf_read(pba.pba_pc, tag, PCI_ID_REG);
> > + class = pci_conf_read(pba.pba_pc, tag, PCI_CLASS_REG);
> > + if (PCI_CLASS(class) == PCI_CLASS_BRIDGE &&
> > +    PCI_SUBCLASS(class) != PCI_SUBCLASS_BRIDGE_HOST &&
> > +    PCI_VENDOR(id) != PCI_VENDOR_AMD &&
> > +    PCI_VENDOR(id) != PCI_VENDOR_NVIDIA &&
> > +    PCI_VENDOR(id) != PCI_VENDOR_INTEL)
> > + pba.pba_flags &= ~PCI_FLAGS_MSI_ENABLED;
> > +
> > + /*
> > + * Don't enable MSI on a HyperTransport bus.  In order to
> > + * determine that a bus is a HyperTransport bus, we look at
> > + * device 24 function 0, which is the HyperTransport
> > + * host/primary interface integrated on most 64-bit AMD CPUs.
> > + * If that device has a HyperTransport capability, this must
> > + * be a HyperTransport bus and we disable MSI.
> > + */
> > + tag = pci_make_tag(pba.pba_pc, sc->sc_bus, 24, 0);
> > + if (pci_get_capability(pba.pba_pc, tag, PCI_CAP_HT, NULL, NULL))
> > + pba.pba_flags &= ~PCI_FLAGS_MSI_ENABLED;
> > +
> > + config_found(parent, &pba, acpipci_print);
> > +}
> > +
> > +void
> > +acpipci_attach_busses(struct device *parent)
> > +{
> > + int i;
> > +
> > + for (i = 0; i < acpipci_cd.cd_ndevs; i++) {
> > + if (acpipci_cd.cd_devs[i])
> > + acpipci_attach_bus(parent, acpipci_cd.cd_devs[i]);
> > + }
> > +}
> > +
> > +int
> > +acpipci_print(void *aux, const char *pnp)
> > +{
> > + struct pcibus_attach_args *pba = aux;
> > +
> > + if (pnp)
> > + printf("%s at %s", pba->pba_busname, pnp);
> > + printf(" bus %d", pba->pba_bus);
> > + return (UNCONF);
> > +}
> > +
> > +int
> > +acpipci_parse_resources(int crsidx, union acpi_resource *crs, void *arg)
> > +{
> > + struct acpipci_softc *sc = arg;
> > + int type = AML_CRSTYPE(crs);
> > + int restype, tflags = 0;
> > + u_long min, len = 0, tra = 0;
> > +
> > + switch (type) {
> > + case LR_WORD:
> > + restype = crs->lr_word.type;
> > + tflags = crs->lr_word.tflags;
> > + min = crs->lr_word._min;
> > + len = crs->lr_word._len;
> > + tra = crs->lr_word._tra;
> > + break;
> > + case LR_DWORD:
> > + restype = crs->lr_dword.type;
> > + tflags = crs->lr_dword.tflags;
> > + min = crs->lr_dword._min;
> > + len = crs->lr_dword._len;
> > + tra = crs->lr_dword._tra;
> > + break;
> > + case LR_QWORD:
> > + restype = crs->lr_qword.type;
> > + tflags = crs->lr_qword.tflags;
> > + min = crs->lr_qword._min;
> > + len = crs->lr_qword._len;
> > + tra = crs->lr_qword._tra;
> > + break;
> > + case LR_MEM32FIXED:
> > + /*
> > + * Coreboot on the PC Engines apu2 incorrectly uses a
> > + * Memory32Fixed resource descriptor to describe mmio
> > + * address space forwarded to the PCI bus.
> > + */
> > + restype = LR_TYPE_MEMORY;
> > + min = crs->lr_m32fixed._bas;
> > + len = crs->lr_m32fixed._len;
> > + break;
> > + }
> > +
> > + if (len == 0)
> > + return 0;
> > +
> > + switch (restype) {
> > + case LR_TYPE_MEMORY:
> > + if (tflags & LR_MEMORY_TTP)
> > + return 0;
> > + extent_free(sc->sc_memex, min, len, EX_WAITOK | EX_CONFLICTOK);
> > + break;
> > + case LR_TYPE_IO:
> > + if (tflags & LR_IO_TTP)
> > + return 0;
> > + extent_free(sc->sc_ioex, min, len, EX_WAITOK | EX_CONFLICTOK);
> > + break;
> > + case LR_TYPE_BUS:
> > + extent_free(sc->sc_busex, min, len, EX_WAITOK);
> > + /*
> > + * Let _CRS minimum bus number override _BBN.
> > + */
> > + sc->sc_bus = min;
> > + break;
> > + }
> > +
> > + return 0;
> > +}
> > +
> > +void
> > +acpipci_osc(struct acpipci_softc *sc)
> > +{
> > + struct aml_value args[4];
> > + struct aml_value res;
> > + static uint8_t uuid[16] = ACPI_PCI_UUID;
> > + uint32_t buf[3];
> > +
> >   memset(args, 0, sizeof(args));
> >   args[0].type = AML_OBJTYPE_BUFFER;
> >   args[0].v_buffer = uuid;
> > @@ -112,10 +340,8 @@ acpipci_attach(struct device *parent, st
> >   buf[1] = ACPI_PCI_PCIE_CONFIG | ACPI_PCI_MSI;
> >   buf[2] = ACPI_PCI_PCIE_HOTPLUG;
> >  
> > - if (aml_evalname(sc->sc_acpi, sc->sc_node, "_OSC", 4, args, &res)) {
> > - printf(": _OSC failed\n");
> > + if (aml_evalname(sc->sc_acpi, sc->sc_node, "_OSC", 4, args, &res))
> >   return;
> > - }
> >  
> >   if (res.type == AML_OBJTYPE_BUFFER) {
> >   size_t len = res.length;
> > @@ -128,6 +354,4 @@ acpipci_attach(struct device *parent, st
> >   len -= 4;
> >   }
> >   }
> > -
> > - printf("\n");
> >  }
> > Index: arch/amd64/pci/pci_machdep.c
> > ===================================================================
> > RCS file: /cvs/src/sys/arch/amd64/pci/pci_machdep.c,v
> > retrieving revision 1.73
> > diff -u -p -r1.73 pci_machdep.c
> > --- arch/amd64/pci/pci_machdep.c 7 Sep 2019 13:46:19 -0000 1.73
> > +++ arch/amd64/pci/pci_machdep.c 13 May 2020 18:44:32 -0000
> > @@ -163,64 +163,6 @@ void
> >  pci_attach_hook(struct device *parent, struct device *self,
> >      struct pcibus_attach_args *pba)
> >  {
> > - pci_chipset_tag_t pc = pba->pba_pc;
> > - pcitag_t tag;
> > - pcireg_t id, class;
> > -
> > - if (pba->pba_bus != 0)
> > - return;
> > -
> > - /*
> > - * In order to decide whether the system supports MSI we look
> > - * at the host bridge, which should be device 0 function 0 on
> > - * bus 0.  It is better to not enable MSI on systems that
> > - * support it than the other way around, so be conservative
> > - * here.  So we don't enable MSI if we don't find a host
> > - * bridge there.  We also deliberately don't enable MSI on
> > - * chipsets from low-end manifacturers like VIA and SiS.
> > - */
> > - tag = pci_make_tag(pc, 0, 0, 0);
> > - id = pci_conf_read(pc, tag, PCI_ID_REG);
> > - class = pci_conf_read(pc, tag, PCI_CLASS_REG);
> > -
> > - if (PCI_CLASS(class) != PCI_CLASS_BRIDGE ||
> > -    PCI_SUBCLASS(class) != PCI_SUBCLASS_BRIDGE_HOST)
> > - return;
> > -
> > - switch (PCI_VENDOR(id)) {
> > - case PCI_VENDOR_INTEL:
> > - /*
> > - * In the wonderful world of virtualization you can
> > - * have the latest 64-bit AMD multicore CPU behind a
> > - * prehistoric Intel host bridge.  Give them what they
> > - * deserve.
> > - */
> > - switch (PCI_PRODUCT(id)) {
> > - case PCI_PRODUCT_INTEL_82441FX: /* QEMU */
> > - case PCI_PRODUCT_INTEL_82443BX: /* VMWare */
> > - break;
> > - default:
> > - pba->pba_flags |= PCI_FLAGS_MSI_ENABLED;
> > - break;
> > - }
> > - break;
> > - case PCI_VENDOR_NVIDIA:
> > - case PCI_VENDOR_AMD:
> > - pba->pba_flags |= PCI_FLAGS_MSI_ENABLED;
> > - break;
> > - }
> > -
> > - /*
> > - * Don't enable MSI on a HyperTransport bus.  In order to
> > - * determine that bus 0 is a HyperTransport bus, we look at
> > - * device 24 function 0, which is the HyperTransport
> > - * host/primary interface integrated on most 64-bit AMD CPUs.
> > - * If that device has a HyperTransport capability, bus 0 must
> > - * be a HyperTransport bus and we disable MSI.
> > - */
> > - tag = pci_make_tag(pc, 0, 24, 0);
> > - if (pci_get_capability(pc, tag, PCI_CAP_HT, NULL, NULL))
> > - pba->pba_flags &= ~PCI_FLAGS_MSI_ENABLED;
> >  }
> >  
> >  int
> >
> >
>
>

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Jason McIntyre-2
In reply to this post by Mark Kettenis
On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:

> > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > From: Mark Kettenis <[hidden email]>
> >
> > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > diff tries to support machines with firmware that implements this.  If
> > you see something like:
> >
> >   "ACPI0007" at acpi0 not configured
> >
> > please try the following diff and report back with an updated dmesg.
> >
> > Cheers,
> >
> > Mark
>
> And now with the right diff...
>
>

hi. i'm not sure if the output is correct, but it does look like the cpu
is adjustable with this:

        cpu0: 1996 MHz: speeds: 2000 1700 1400 MHz

this part looks weird:

acpicpu0 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu1 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu2 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu3 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu4 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu5 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu6 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu7 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu8 at acpi0copyvalue: 6: no cpu matching ACPI ID 8
acpicpu9 at acpi0copyvalue: 6: no cpu matching ACPI ID 9
acpicpu10 at acpi0copyvalue: 6: no cpu matching ACPI ID 10
acpicpu11 at acpi0copyvalue: 6: no cpu matching ACPI ID 11
acpicpu12 at acpi0copyvalue: 6: no cpu matching ACPI ID 12
acpicpu13 at acpi0copyvalue: 6: no cpu matching ACPI ID 13
acpicpu14 at acpi0copyvalue: 6: no cpu matching ACPI ID 14
acpicpu15 at acpi0copyvalue: 6: no cpu matching ACPI ID 15

full dmesg below.
jmc

OpenBSD 6.7-current (GENERIC.MP) #2: Mon Jul 27 16:18:30 BST 2020
    jmc@kansas:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 7895654400 (7529MB)
avail mem = 7641284608 (7287MB)
random: good seed from bootblocks
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 3.2 @ 0xca707000 (77 entries)
bios0: vendor Dell Inc. version "1.1.0" date 05/27/2020
bios0: Dell Inc. Inspiron 5505
acpi0 at bios0: ACPI 5.0Undefined scope: \\_SB_.PCI0.LPC0.EC0_

acpi0: sleep states S0 S4 S5
acpi0: tables DSDT FACP UEFI SSDT IVRS SSDT TPM2 MSDM ASF! BOOT HPET APIC MCFG SLIC SSDT WSMT VFCT SSDT SSDT CRAT CDIT SSDT SSDT SSDT SSDT FPDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT BGRT
acpi0: wakeup devices GP17(S4)
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpihpet0 at acpi0: 14318180 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: AMD Ryzen 7 4700U with Radeon Graphics, 1996.53 MHz, 17-60-01
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu0: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu0: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu0: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu0: mwait min=64, max=64, C-substates=1.1, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu1: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu1: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu1: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu1: smt 0, core 1, package 0
cpu2 at mainbus0: apid 2 (application processor)
cpu2: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu2: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu2: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu2: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu2: smt 0, core 2, package 0
cpu3 at mainbus0: apid 3 (application processor)
cpu3: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu3: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu3: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu3: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu3: smt 0, core 3, package 0
cpu4 at mainbus0: apid 4 (application processor)
cpu4: AMD Ryzen 7 4700U with Radeon Graphics, 1996.26 MHz, 17-60-01
cpu4: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu4: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu4: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu4: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu4: smt 0, core 4, package 0
cpu5 at mainbus0: apid 5 (application processor)
cpu5: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu5: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu5: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu5: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu5: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu5: disabling user TSC (skew=150)
cpu5: smt 0, core 5, package 0
cpu6 at mainbus0: apid 6 (application processor)
cpu6: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu6: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu6: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu6: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu6: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu6: disabling user TSC (skew=150)
cpu6: smt 0, core 6, package 0
cpu7 at mainbus0: apid 7 (application processor)
cpu7: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu7: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu7: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu7: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu7: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu7: disabling user TSC (skew=150)
cpu7: smt 0, core 7, package 0
ioapic0 at mainbus0: apid 33 pa 0xfec00000, version 21, 24 pins, can't remap
ioapic1 at mainbus0: apid 34 pa 0xfec01000, version 21, 32 pins, can't remap
acpimcfg0 at acpi0
acpimcfg0: addr 0xf8000000, bus 0-63
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (GPP0)
acpiprt2 at acpi0: bus 1 (GPP1)
acpiprt3 at acpi0: bus -1 (GPP2)
acpiprt4 at acpi0: bus -1 (GPP3)
acpiprt5 at acpi0: bus 2 (GPP4)
acpiprt6 at acpi0: bus -1 (GPP5)
acpiprt7 at acpi0: bus -1 (GPP6)
acpiprt8 at acpi0: bus 3 (GP17)
acpiprt9 at acpi0: bus 4 (GP18)
acpiprt10 at acpi0: bus -1 (GP19)
acpiec0 at acpi0
acpiec0: Not running on HW-Reduced ACPI type 134
acpipwrres0 at acpi0: WRST
acpipwrres1 at acpi0: P0U0, resource for XHC0
acpipwrres2 at acpi0: P3U0, resource for XHC0
acpipwrres3 at acpi0: P0U1, resource for XHC1
acpipwrres4 at acpi0: P3U1, resource for XHC1
acpipwrres5 at acpi0: P0S0, resource for SATA
acpipwrres6 at acpi0: P3S0, resource for SATA
acpipwrres7 at acpi0: P0S1, resource for SAT1
acpipwrres8 at acpi0: P3S1, resource for SAT1
acpitz0 at acpi0: critical temperature is 115 degC
"ACPI0010" at acpi0 not configured
acpicpu0 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu1 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu2 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu3 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu4 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu5 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu6 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu7 at acpi0copyvalue: 6: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu8 at acpi0copyvalue: 6: no cpu matching ACPI ID 8
acpicpu9 at acpi0copyvalue: 6: no cpu matching ACPI ID 9
acpicpu10 at acpi0copyvalue: 6: no cpu matching ACPI ID 10
acpicpu11 at acpi0copyvalue: 6: no cpu matching ACPI ID 11
acpicpu12 at acpi0copyvalue: 6: no cpu matching ACPI ID 12
acpicpu13 at acpi0copyvalue: 6: no cpu matching ACPI ID 13
acpicpu14 at acpi0copyvalue: 6: no cpu matching ACPI ID 14
acpicpu15 at acpi0copyvalue: 6: no cpu matching ACPI ID 15
acpibtn0 at acpi0: PWRB
acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000
extent `acpipci0 pcibus' (0x0 - 0xff), flags=0
extent `acpipci0 pciio' (0x0 - 0xffffffff), flags=0
     0xcf8 - 0xcff
     0x10000 - 0xffffffff
extent `acpipci0 pcimem' (0x0 - 0xffffffffffffffff), flags=0
     0x0 - 0x9ffff
     0xf0000 - 0xcfffffff
     0xf8000000 - 0xfbffffff
     0xfed40000 - 0x2501fffff
     0xfd00000000 - 0xffffffffffffffff
acpicmos0 at acpi0
acpiac0 at acpi0: AC unit offline
acpibat0 at acpi0: BAT0 model "DELL 9077G06" serial   714 type LIP oem "SMP-ATL3.56"
acpibtn1 at acpi0: LID_
acpibtn2 at acpi0: SBTN
"PNP0C14" at acpi0 not configured
"DELLABCE" at acpi0 not configured
amdgpio0 at acpi0 GPIO uid 0 addr 0xfed81500/0x400 irq 7, 184 pins
dwiic0 at acpi0 I2CD addr 0xfedc5000/0x1000 irq 6
iic0 at dwiic0
ihidev0 at iic0 addr 0x2c gpio 9, vendor 0x4f3 product 0x3147, DELL0A1E
ihidev0: 14 report ids
imt0 at ihidev0: clickpad, 5 contacts
wsmouse0 at imt0 mux 0
ims0 at ihidev0 reportid 1: 2 buttons
wsmouse1 at ims0 mux 0
hid at ihidev0 reportid 5 not configured
hid at ihidev0 reportid 6 not configured
hid at ihidev0 reportid 7 not configured
hid at ihidev0 reportid 11 not configured
hid at ihidev0 reportid 12 not configured
hid at ihidev0 reportid 13 not configured
ims1 at ihidev0 reportid 14
ims1: mouse has no X report
"MSFT0101" at acpi0 not configured
"ACPI000E" at acpi0 not configured
"AMD0005" at acpi0 not configured
"USBC000" at acpi0 not configured
acpivideo0 at acpi0: VGA_
acpivout0 at acpivideo0: LCD_
cpu0: 1996 MHz: speeds: 2000 1700 1400 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "AMD 17h/6xh Root Complex" rev 0x00
"AMD 17h/6xh IOMMU" rev 0x00 at pci0 dev 0 function 2 not configured
pchb1 at pci0 dev 1 function 0 "AMD 17h/6xh Host" rev 0x00
ppb0 at pci0 dev 1 function 2 "AMD 17h/6xh PCIE" rev 0x00: msi
pci1 at ppb0 bus 1
nvme0 at pci1 dev 0 function 0 "SSSTC CL1" rev 0x03: msix, NVMe 1.3
nvme0: CL1-3D256-Q11 NVMe SSSTC 256GB, firmware 22301114, serial TW0TN2CC9DH0006409IV
scsibus1 at nvme0: 2 targets, initiator 0
sd0 at scsibus1 targ 1 lun 0: <NVMe, CL1-3D256-Q11 NV, 2230>
sd0: 244198MB, 512 bytes/sector, 500118192 sectors
pchb2 at pci0 dev 2 function 0 "AMD 17h/6xh Host" rev 0x00
ppb1 at pci0 dev 2 function 2 "AMD 17h/6xh PCIE" rev 0x00: msi
pci2 at ppb1 bus 2
iwx0 at pci2 dev 0 function 0 "Intel Wi-Fi 6 AX200" rev 0x1a, msix
pchb3 at pci0 dev 8 function 0 "AMD 17h/6xh Host" rev 0x00
ppb2 at pci0 dev 8 function 1 "AMD 17h/6xh PCIE" rev 0x00
pci3 at ppb2 bus 3
amdgpu0 at pci3 dev 0 function 0 "ATI Renoir" rev 0xc2
drm0 at amdgpu0
amdgpu0: msi
azalia0 at pci3 dev 0 function 1 "ATI Renoir HD Audio" rev 0x00: msi
azalia0: no supported codecs
ccp0 at pci3 dev 0 function 2 "AMD 17h/1xh Crypto" rev 0x00
xhci0 at pci3 dev 0 function 3 "AMD 17h/6xh xHCI" rev 0x00: msi, xHCI 1.10
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
xhci1 at pci3 dev 0 function 4 "AMD 17h/6xh xHCI" rev 0x00: msi, xHCI 1.10
usb1 at xhci1: USB revision 3.0
uhub1 at usb1 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
"AMD 17h/1xh I2S Audio" rev 0x01 at pci3 dev 0 function 5 not configured
azalia1 at pci3 dev 0 function 6 "AMD 17h/1xh HD Audio" rev 0x00: apic 34 int 12
azalia1: codecs: Realtek/0x0236
audio0 at azalia1
ppb3 at pci0 dev 8 function 2 "AMD 17h/6xh PCIE" rev 0x00
pci4 at ppb3 bus 4
ahci0 at pci4 dev 0 function 0 "AMD FCH AHCI" rev 0x81: msi, AHCI 1.3.1
scsibus2 at ahci0: 32 targets
ahci1 at pci4 dev 0 function 1 "AMD FCH AHCI" rev 0x81: msi, AHCI 1.3.1
scsibus3 at ahci1: 32 targets
piixpm0 at pci0 dev 20 function 0 "AMD FCH SMBus" rev 0x51: SMI
iic1 at piixpm0
spdmem0 at iic1 addr 0x50: 8GB DDR4 SDRAM PC4-25600 SO-DIMM
iic2 at piixpm0
pcib0 at pci0 dev 20 function 3 "AMD FCH LPC" rev 0x51
pchb4 at pci0 dev 24 function 0 "AMD 17h/6xh Data Fabric" rev 0x00
pchb5 at pci0 dev 24 function 1 "AMD 17h/6xh Data Fabric" rev 0x00
pchb6 at pci0 dev 24 function 2 "AMD 17h/6xh Data Fabric" rev 0x00
pchb7 at pci0 dev 24 function 3 "AMD 17h/6xh Data Fabric" rev 0x00
pchb8 at pci0 dev 24 function 4 "AMD 17h/6xh Data Fabric" rev 0x00
pchb9 at pci0 dev 24 function 5 "AMD 17h/6xh Data Fabric" rev 0x00
pchb10 at pci0 dev 24 function 6 "AMD 17h/6xh Data Fabric" rev 0x00
pchb11 at pci0 dev 24 function 7 "AMD 17h/6xh Data Fabric" rev 0x00
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard
pms0 at pckbc0 (aux slot)
wsmouse2 at pms0 mux 0
pms0: Elantech Clickpad, version 4, firmware 0x5f1001
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
vmm0 at mainbus0: SVM/RVI
efifb at mainbus0 not configured
uvideo0 at uhub1 port 2 configuration 1 interface 0 "CN0HK46K8LG00057HD89A02 Integrated_Webcam_HD" rev 2.01/81.76 addr 2
video0 at uvideo0
ugen0 at uhub1 port 3 "Intel Bluetooth" rev 2.01/0.01 addr 3
umass0 at uhub1 port 5 configuration 1 interface 0 "Kingston DataTraveler 3.0" rev 3.00/1.10 addr 4
umass0: using SCSI over Bulk-Only
scsibus4 at umass0: 2 targets, initiator 0
sd1 at scsibus4 targ 1 lun 0: <Kingston, DataTraveler 3.0, PMAP> removable serial.09511666BF9158174B91
sd1: 14784MB, 512 bytes/sector, 30277632 sectors
vscsi0 at root
scsibus5 at vscsi0: 256 targets
softraid0 at root
scsibus6 at softraid0: 256 targets
root on sd1a (6d9e38184cd52e60.a) swap on sd1b dump on sd1b
iwx0: hw rev 0x340, fw ver 48.1335886879.0, address 8c:c6:81:42:ff:4a
initializing kernel modesetting (RENOIR 0x1002:0x1636 0x1028:0x0A1E 0xC2).
sos fw version = 0x110049.
SMU driver if version not matched
amdgpu0: 1920x1080, 32bpp
wsdisplay0 at amdgpu0 mux 1: console (std, vt100 emulation), using wskbd0
wsdisplay0: screen 1-5 added (std, vt100 emulation)

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Jonathan Matthew-4
In reply to this post by Mark Kettenis
On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:

> > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > From: Mark Kettenis <[hidden email]>
> >
> > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > diff tries to support machines with firmware that implements this.  If
> > you see something like:
> >
> >   "ACPI0007" at acpi0 not configured
> >
> > please try the following diff and report back with an updated dmesg.
> >
> > Cheers,
> >
> > Mark
>
> And now with the right diff...

On a dell r6415, it looks like this:

acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
all the way up to
acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127

which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.

>
>
> Index: dev/acpi/acpicpu.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/acpi/acpicpu.c,v
> retrieving revision 1.85
> diff -u -p -r1.85 acpicpu.c
> --- dev/acpi/acpicpu.c 27 May 2020 05:02:21 -0000 1.85
> +++ dev/acpi/acpicpu.c 27 Jul 2020 14:58:38 -0000
> @@ -186,6 +186,11 @@ struct cfdriver acpicpu_cd = {
>   NULL, "acpicpu", DV_DULL
>  };
>  
> +const char *acpicpu_hids[] = {
> + "ACPI0007",
> + NULL
> +};
> +
>  extern int setperf_prio;
>  
>  struct acpicpu_softc *acpicpu_sc[MAXCPUS];
> @@ -650,6 +655,9 @@ acpicpu_match(struct device *parent, voi
>   struct acpi_attach_args *aa = aux;
>   struct cfdata *cf = match;
>  
> + if (acpi_matchhids(aa, acpicpu_hids, cf->cf_driver->cd_name))
> + return (1);
> +
>   /* sanity */
>   if (aa->aaa_name == NULL ||
>      strcmp(aa->aaa_name, cf->cf_driver->cd_name) != 0 ||
> @@ -665,6 +673,7 @@ acpicpu_attach(struct device *parent, st
>   struct acpicpu_softc *sc = (struct acpicpu_softc *)self;
>   struct acpi_attach_args *aa = aux;
>   struct aml_value res;
> + int64_t uid;
>   int i;
>   uint32_t status = 0;
>   CPU_INFO_ITERATOR cii;
> @@ -675,6 +684,10 @@ acpicpu_attach(struct device *parent, st
>   acpicpu_sc[sc->sc_dev.dv_unit] = sc;
>  
>   SLIST_INIT(&sc->sc_cstates);
> +
> + if (aml_evalinteger(sc->sc_acpi, sc->sc_devnode,
> +    "_UID", 0, NULL, &uid) == 0)
> + sc->sc_cpu = uid;
>  
>   if (aml_evalnode(sc->sc_acpi, sc->sc_devnode, 0, NULL, &res) == 0) {
>   if (res.type == AML_OBJTYPE_PROCESSOR) {
>

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Mark Kettenis
> Date: Tue, 28 Jul 2020 13:46:34 +1000
> From: Jonathan Matthew <[hidden email]>
>
> On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > From: Mark Kettenis <[hidden email]>
> > >
> > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > diff tries to support machines with firmware that implements this.  If
> > > you see something like:
> > >
> > >   "ACPI0007" at acpi0 not configured
> > >
> > > please try the following diff and report back with an updated dmesg.
> > >
> > > Cheers,
> > >
> > > Mark
> >
> > And now with the right diff...
>
> On a dell r6415, it looks like this:
>
> acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> all the way up to
> acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
>
> which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.

Yes.  It is not immediately obvious how this should work.  Do we need
to copy the aml_node pointer or not?  We don't do that for
AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
carry any additional information.  So we end up with just an empty
case to avoid the warning.

Does this work on the Dell machines?


Index: dev/acpi/dsdt.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
retrieving revision 1.252
diff -u -p -r1.252 dsdt.c
--- dev/acpi/dsdt.c 21 Jul 2020 03:48:06 -0000 1.252
+++ dev/acpi/dsdt.c 28 Jul 2020 09:04:15 -0000
@@ -996,6 +996,8 @@ aml_copyvalue(struct aml_value *lhs, str
  lhs->v_objref = rhs->v_objref;
  aml_addref(lhs->v_objref.ref, "");
  break;
+ case AML_OBJTYPE_DEVICE:
+ break;
  default:
  printf("copyvalue: %x", rhs->type);
  break;

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Jason McIntyre-2
On Tue, Jul 28, 2020 at 11:12:21AM +0200, Mark Kettenis wrote:

> > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > From: Jonathan Matthew <[hidden email]>
> >
> > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > From: Mark Kettenis <[hidden email]>
> > > >
> > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > diff tries to support machines with firmware that implements this.  If
> > > > you see something like:
> > > >
> > > >   "ACPI0007" at acpi0 not configured
> > > >
> > > > please try the following diff and report back with an updated dmesg.
> > > >
> > > > Cheers,
> > > >
> > > > Mark
> > >
> > > And now with the right diff...
> >
> > On a dell r6415, it looks like this:
> >
> > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > all the way up to
> > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> >
> > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
>
> Yes.  It is not immediately obvious how this should work.  Do we need
> to copy the aml_node pointer or not?  We don't do that for
> AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> carry any additional information.  So we end up with just an empty
> case to avoid the warning.
>
> Does this work on the Dell machines?
>
>
> Index: dev/acpi/dsdt.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
> retrieving revision 1.252
> diff -u -p -r1.252 dsdt.c
> --- dev/acpi/dsdt.c 21 Jul 2020 03:48:06 -0000 1.252
> +++ dev/acpi/dsdt.c 28 Jul 2020 09:04:15 -0000
> @@ -996,6 +996,8 @@ aml_copyvalue(struct aml_value *lhs, str
>   lhs->v_objref = rhs->v_objref;
>   aml_addref(lhs->v_objref.ref, "");
>   break;
> + case AML_OBJTYPE_DEVICE:
> + break;
>   default:
>   printf("copyvalue: %x", rhs->type);
>   break;
>

morning. it displays this here:

        acpicpu0 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
        acpicpu1 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
        acpicpu2 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
        acpicpu3 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
        acpicpu4 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
        acpicpu5 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
        acpicpu6 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
        acpicpu7 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
        acpicpu8 at acpi0: no cpu matching ACPI ID 8
        acpicpu9 at acpi0: no cpu matching ACPI ID 9
        acpicpu10 at acpi0: no cpu matching ACPI ID 10
        acpicpu11 at acpi0: no cpu matching ACPI ID 11
        acpicpu12 at acpi0: no cpu matching ACPI ID 12
        acpicpu13 at acpi0: no cpu matching ACPI ID 13
        acpicpu14 at acpi0: no cpu matching ACPI ID 14
        acpicpu15 at acpi0: no cpu matching ACPI ID 15

jmc

OpenBSD 6.7-current (GENERIC.MP) #3: Tue Jul 28 10:59:50 BST 2020
    jmc@kansas:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 7895654400 (7529MB)
avail mem = 7641284608 (7287MB)
random: good seed from bootblocks
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 3.2 @ 0xca707000 (77 entries)
bios0: vendor Dell Inc. version "1.1.0" date 05/27/2020
bios0: Dell Inc. Inspiron 5505
acpi0 at bios0: ACPI 5.0Undefined scope: \\_SB_.PCI0.LPC0.EC0_

acpi0: sleep states S0 S4 S5
acpi0: tables DSDT FACP UEFI SSDT IVRS SSDT TPM2 MSDM ASF! BOOT HPET APIC MCFG SLIC SSDT WSMT VFCT SSDT SSDT CRAT CDIT SSDT SSDT SSDT SSDT FPDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT BGRT
acpi0: wakeup devices GP17(S4)
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpihpet0 at acpi0: 14318180 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: AMD Ryzen 7 4700U with Radeon Graphics, 1996.48 MHz, 17-60-01
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu0: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu0: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu0: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu0: mwait min=64, max=64, C-substates=1.1, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu1: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu1: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu1: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu1: smt 0, core 1, package 0
cpu2 at mainbus0: apid 2 (application processor)
cpu2: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu2: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu2: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu2: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu2: smt 0, core 2, package 0
cpu3 at mainbus0: apid 3 (application processor)
cpu3: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu3: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu3: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu3: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu3: smt 0, core 3, package 0
cpu4 at mainbus0: apid 4 (application processor)
cpu4: AMD Ryzen 7 4700U with Radeon Graphics, 1996.26 MHz, 17-60-01
cpu4: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu4: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu4: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu4: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu4: disabling user TSC (skew=260)
cpu4: smt 0, core 4, package 0
cpu5 at mainbus0: apid 5 (application processor)
cpu5: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu5: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu5: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu5: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu5: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu5: disabling user TSC (skew=110)
cpu5: smt 0, core 5, package 0
cpu6 at mainbus0: apid 6 (application processor)
cpu6: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu6: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu6: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu6: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu6: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu6: smt 0, core 6, package 0
cpu7 at mainbus0: apid 7 (application processor)
cpu7: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
cpu7: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
cpu7: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
cpu7: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu7: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
cpu7: disabling user TSC (skew=-170)
cpu7: smt 0, core 7, package 0
ioapic0 at mainbus0: apid 33 pa 0xfec00000, version 21, 24 pins, can't remap
ioapic1 at mainbus0: apid 34 pa 0xfec01000, version 21, 32 pins, can't remap
acpimcfg0 at acpi0
acpimcfg0: addr 0xf8000000, bus 0-63
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (GPP0)
acpiprt2 at acpi0: bus 1 (GPP1)
acpiprt3 at acpi0: bus -1 (GPP2)
acpiprt4 at acpi0: bus -1 (GPP3)
acpiprt5 at acpi0: bus 2 (GPP4)
acpiprt6 at acpi0: bus -1 (GPP5)
acpiprt7 at acpi0: bus -1 (GPP6)
acpiprt8 at acpi0: bus 3 (GP17)
acpiprt9 at acpi0: bus 4 (GP18)
acpiprt10 at acpi0: bus -1 (GP19)
acpiec0 at acpi0
acpiec0: Not running on HW-Reduced ACPI type 134
acpipwrres0 at acpi0: WRST
acpipwrres1 at acpi0: P0U0, resource for XHC0
acpipwrres2 at acpi0: P3U0, resource for XHC0
acpipwrres3 at acpi0: P0U1, resource for XHC1
acpipwrres4 at acpi0: P3U1, resource for XHC1
acpipwrres5 at acpi0: P0S0, resource for SATA
acpipwrres6 at acpi0: P3S0, resource for SATA
acpipwrres7 at acpi0: P0S1, resource for SAT1
acpipwrres8 at acpi0: P3S1, resource for SAT1
acpitz0 at acpi0: critical temperature is 115 degC
"ACPI0010" at acpi0 not configured
acpicpu0 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu1 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu2 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu3 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu4 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu5 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu6 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu7 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
acpicpu8 at acpi0: no cpu matching ACPI ID 8
acpicpu9 at acpi0: no cpu matching ACPI ID 9
acpicpu10 at acpi0: no cpu matching ACPI ID 10
acpicpu11 at acpi0: no cpu matching ACPI ID 11
acpicpu12 at acpi0: no cpu matching ACPI ID 12
acpicpu13 at acpi0: no cpu matching ACPI ID 13
acpicpu14 at acpi0: no cpu matching ACPI ID 14
acpicpu15 at acpi0: no cpu matching ACPI ID 15
acpibtn0 at acpi0: PWRB
acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000
extent `acpipci0 pcibus' (0x0 - 0xff), flags=0
extent `acpipci0 pciio' (0x0 - 0xffffffff), flags=0
     0xcf8 - 0xcff
     0x10000 - 0xffffffff
extent `acpipci0 pcimem' (0x0 - 0xffffffffffffffff), flags=0
     0x0 - 0x9ffff
     0xf0000 - 0xcfffffff
     0xf8000000 - 0xfbffffff
     0xfed40000 - 0x2501fffff
     0xfd00000000 - 0xffffffffffffffff
acpicmos0 at acpi0
acpiac0 at acpi0: AC unit offline
acpibat0 at acpi0: BAT0 model "DELL 9077G06" serial   714 type LIP oem "SMP-ATL3.56"
acpibtn1 at acpi0: LID_
acpibtn2 at acpi0: SBTN
"PNP0C14" at acpi0 not configured
"DELLABCE" at acpi0 not configured
amdgpio0 at acpi0 GPIO uid 0 addr 0xfed81500/0x400 irq 7, 184 pins
dwiic0 at acpi0 I2CD addr 0xfedc5000/0x1000 irq 6
iic0 at dwiic0
ihidev0 at iic0 addr 0x2c gpio 9, vendor 0x4f3 product 0x3147, DELL0A1E
ihidev0: 14 report ids
imt0 at ihidev0: clickpad, 5 contacts
wsmouse0 at imt0 mux 0
ims0 at ihidev0 reportid 1: 2 buttons
wsmouse1 at ims0 mux 0
hid at ihidev0 reportid 5 not configured
hid at ihidev0 reportid 6 not configured
hid at ihidev0 reportid 7 not configured
hid at ihidev0 reportid 11 not configured
hid at ihidev0 reportid 12 not configured
hid at ihidev0 reportid 13 not configured
ims1 at ihidev0 reportid 14
ims1: mouse has no X report
"MSFT0101" at acpi0 not configured
"ACPI000E" at acpi0 not configured
"AMD0005" at acpi0 not configured
"USBC000" at acpi0 not configured
acpivideo0 at acpi0: VGA_
acpivout0 at acpivideo0: LCD_
cpu0: 1996 MHz: speeds: 2000 1700 1400 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "AMD 17h/6xh Root Complex" rev 0x00
"AMD 17h/6xh IOMMU" rev 0x00 at pci0 dev 0 function 2 not configured
pchb1 at pci0 dev 1 function 0 "AMD 17h/6xh Host" rev 0x00
ppb0 at pci0 dev 1 function 2 "AMD 17h/6xh PCIE" rev 0x00: msi
pci1 at ppb0 bus 1
nvme0 at pci1 dev 0 function 0 "SSSTC CL1" rev 0x03: msix, NVMe 1.3
nvme0: CL1-3D256-Q11 NVMe SSSTC 256GB, firmware 22301114, serial TW0TN2CC9DH0006409IV
scsibus1 at nvme0: 2 targets, initiator 0
sd0 at scsibus1 targ 1 lun 0: <NVMe, CL1-3D256-Q11 NV, 2230>
sd0: 244198MB, 512 bytes/sector, 500118192 sectors
pchb2 at pci0 dev 2 function 0 "AMD 17h/6xh Host" rev 0x00
ppb1 at pci0 dev 2 function 2 "AMD 17h/6xh PCIE" rev 0x00: msi
pci2 at ppb1 bus 2
iwx0 at pci2 dev 0 function 0 "Intel Wi-Fi 6 AX200" rev 0x1a, msix
pchb3 at pci0 dev 8 function 0 "AMD 17h/6xh Host" rev 0x00
ppb2 at pci0 dev 8 function 1 "AMD 17h/6xh PCIE" rev 0x00
pci3 at ppb2 bus 3
amdgpu0 at pci3 dev 0 function 0 "ATI Renoir" rev 0xc2
drm0 at amdgpu0
amdgpu0: msi
azalia0 at pci3 dev 0 function 1 "ATI Renoir HD Audio" rev 0x00: msi
azalia0: no supported codecs
ccp0 at pci3 dev 0 function 2 "AMD 17h/1xh Crypto" rev 0x00
xhci0 at pci3 dev 0 function 3 "AMD 17h/6xh xHCI" rev 0x00: msi, xHCI 1.10
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
xhci1 at pci3 dev 0 function 4 "AMD 17h/6xh xHCI" rev 0x00: msi, xHCI 1.10
usb1 at xhci1: USB revision 3.0
uhub1 at usb1 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
"AMD 17h/1xh I2S Audio" rev 0x01 at pci3 dev 0 function 5 not configured
azalia1 at pci3 dev 0 function 6 "AMD 17h/1xh HD Audio" rev 0x00: apic 34 int 12
azalia1: codecs: Realtek/0x0236
audio0 at azalia1
ppb3 at pci0 dev 8 function 2 "AMD 17h/6xh PCIE" rev 0x00
pci4 at ppb3 bus 4
ahci0 at pci4 dev 0 function 0 "AMD FCH AHCI" rev 0x81: msi, AHCI 1.3.1
scsibus2 at ahci0: 32 targets
ahci1 at pci4 dev 0 function 1 "AMD FCH AHCI" rev 0x81: msi, AHCI 1.3.1
scsibus3 at ahci1: 32 targets
piixpm0 at pci0 dev 20 function 0 "AMD FCH SMBus" rev 0x51: SMI
iic1 at piixpm0
spdmem0 at iic1 addr 0x50: 8GB DDR4 SDRAM PC4-25600 SO-DIMM
iic2 at piixpm0
pcib0 at pci0 dev 20 function 3 "AMD FCH LPC" rev 0x51
pchb4 at pci0 dev 24 function 0 "AMD 17h/6xh Data Fabric" rev 0x00
pchb5 at pci0 dev 24 function 1 "AMD 17h/6xh Data Fabric" rev 0x00
pchb6 at pci0 dev 24 function 2 "AMD 17h/6xh Data Fabric" rev 0x00
pchb7 at pci0 dev 24 function 3 "AMD 17h/6xh Data Fabric" rev 0x00
pchb8 at pci0 dev 24 function 4 "AMD 17h/6xh Data Fabric" rev 0x00
pchb9 at pci0 dev 24 function 5 "AMD 17h/6xh Data Fabric" rev 0x00
pchb10 at pci0 dev 24 function 6 "AMD 17h/6xh Data Fabric" rev 0x00
pchb11 at pci0 dev 24 function 7 "AMD 17h/6xh Data Fabric" rev 0x00
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard
pms0 at pckbc0 (aux slot)
wsmouse2 at pms0 mux 0
pms0: Elantech Clickpad, version 4, firmware 0x5f1001
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
vmm0 at mainbus0: SVM/RVI
efifb at mainbus0 not configured
uvideo0 at uhub1 port 2 configuration 1 interface 0 "CN0HK46K8LG00057HD89A02 Integrated_Webcam_HD" rev 2.01/81.76 addr 2
video0 at uvideo0
ugen0 at uhub1 port 3 "Intel Bluetooth" rev 2.01/0.01 addr 3
umass0 at uhub1 port 5 configuration 1 interface 0 "Kingston DataTraveler 3.0" rev 3.00/1.10 addr 4
umass0: using SCSI over Bulk-Only
scsibus4 at umass0: 2 targets, initiator 0
sd1 at scsibus4 targ 1 lun 0: <Kingston, DataTraveler 3.0, PMAP> removable serial.09511666BF9158174B91
sd1: 14784MB, 512 bytes/sector, 30277632 sectors
vscsi0 at root
scsibus5 at vscsi0: 256 targets
softraid0 at root
scsibus6 at softraid0: 256 targets
root on sd1a (6d9e38184cd52e60.a) swap on sd1b dump on sd1b
iwx0: hw rev 0x340, fw ver 48.1335886879.0, address 8c:c6:81:42:ff:4a
initializing kernel modesetting (RENOIR 0x1002:0x1636 0x1028:0x0A1E 0xC2).
sos fw version = 0x110049.
SMU driver if version not matched
amdgpu0: 1920x1080, 32bpp
wsdisplay0 at amdgpu0 mux 1: console (std, vt100 emulation), using wskbd0
wsdisplay0: screen 1-5 added (std, vt100 emulation)

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Mark Kettenis
> Date: Tue, 28 Jul 2020 11:16:56 +0100
> From: Jason McIntyre <[hidden email]>
>
> On Tue, Jul 28, 2020 at 11:12:21AM +0200, Mark Kettenis wrote:
> > > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > > From: Jonathan Matthew <[hidden email]>
> > >
> > > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > > From: Mark Kettenis <[hidden email]>
> > > > >
> > > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > > diff tries to support machines with firmware that implements this.  If
> > > > > you see something like:
> > > > >
> > > > >   "ACPI0007" at acpi0 not configured
> > > > >
> > > > > please try the following diff and report back with an updated dmesg.
> > > > >
> > > > > Cheers,
> > > > >
> > > > > Mark
> > > >
> > > > And now with the right diff...
> > >
> > > On a dell r6415, it looks like this:
> > >
> > > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > > all the way up to
> > > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> > >
> > > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
> >
> > Yes.  It is not immediately obvious how this should work.  Do we need
> > to copy the aml_node pointer or not?  We don't do that for
> > AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> > similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> > carry any additional information.  So we end up with just an empty
> > case to avoid the warning.
> >
> > Does this work on the Dell machines?
> >
> >
> > Index: dev/acpi/dsdt.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
> > retrieving revision 1.252
> > diff -u -p -r1.252 dsdt.c
> > --- dev/acpi/dsdt.c 21 Jul 2020 03:48:06 -0000 1.252
> > +++ dev/acpi/dsdt.c 28 Jul 2020 09:04:15 -0000
> > @@ -996,6 +996,8 @@ aml_copyvalue(struct aml_value *lhs, str
> >   lhs->v_objref = rhs->v_objref;
> >   aml_addref(lhs->v_objref.ref, "");
> >   break;
> > + case AML_OBJTYPE_DEVICE:
> > + break;
> >   default:
> >   printf("copyvalue: %x", rhs->type);
> >   break;
> >
>
> morning. it displays this here:
>
> acpicpu0 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu1 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu2 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu3 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu4 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu5 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu6 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu7 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu8 at acpi0: no cpu matching ACPI ID 8
> acpicpu9 at acpi0: no cpu matching ACPI ID 9
> acpicpu10 at acpi0: no cpu matching ACPI ID 10
> acpicpu11 at acpi0: no cpu matching ACPI ID 11
> acpicpu12 at acpi0: no cpu matching ACPI ID 12
> acpicpu13 at acpi0: no cpu matching ACPI ID 13
> acpicpu14 at acpi0: no cpu matching ACPI ID 14
> acpicpu15 at acpi0: no cpu matching ACPI ID 15

Excellent!

We may want to do something about those "no cpu matching ACPU ID XX"
messages at some point.  But that's a diff for another day.

So ok's for both diffs are welcome.

Cheers,

Mark

P.S. I've also established that that the EC-related messages are
indeed harmless and a result of sloppy BIOS writers.

> OpenBSD 6.7-current (GENERIC.MP) #3: Tue Jul 28 10:59:50 BST 2020
>     jmc@kansas:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 7895654400 (7529MB)
> avail mem = 7641284608 (7287MB)
> random: good seed from bootblocks
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 3.2 @ 0xca707000 (77 entries)
> bios0: vendor Dell Inc. version "1.1.0" date 05/27/2020
> bios0: Dell Inc. Inspiron 5505
> acpi0 at bios0: ACPI 5.0Undefined scope: \\_SB_.PCI0.LPC0.EC0_
>
> acpi0: sleep states S0 S4 S5
> acpi0: tables DSDT FACP UEFI SSDT IVRS SSDT TPM2 MSDM ASF! BOOT HPET APIC MCFG SLIC SSDT WSMT VFCT SSDT SSDT CRAT CDIT SSDT SSDT SSDT SSDT FPDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT BGRT
> acpi0: wakeup devices GP17(S4)
> acpitimer0 at acpi0: 3579545 Hz, 32 bits
> acpihpet0 at acpi0: 14318180 Hz
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: AMD Ryzen 7 4700U with Radeon Graphics, 1996.48 MHz, 17-60-01
> cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> cpu0: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> cpu0: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu0: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu0: smt 0, core 0, package 0
> mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
> cpu0: apic clock running at 99MHz
> cpu0: mwait min=64, max=64, C-substates=1.1, IBE
> cpu1 at mainbus0: apid 1 (application processor)
> cpu1: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> cpu1: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> cpu1: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu1: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu1: smt 0, core 1, package 0
> cpu2 at mainbus0: apid 2 (application processor)
> cpu2: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> cpu2: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> cpu2: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu2: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu2: smt 0, core 2, package 0
> cpu3 at mainbus0: apid 3 (application processor)
> cpu3: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> cpu3: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> cpu3: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu3: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu3: smt 0, core 3, package 0
> cpu4 at mainbus0: apid 4 (application processor)
> cpu4: AMD Ryzen 7 4700U with Radeon Graphics, 1996.26 MHz, 17-60-01
> cpu4: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> cpu4: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> cpu4: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu4: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu4: disabling user TSC (skew=260)
> cpu4: smt 0, core 4, package 0
> cpu5 at mainbus0: apid 5 (application processor)
> cpu5: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> cpu5: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> cpu5: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> cpu5: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu5: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu5: disabling user TSC (skew=110)
> cpu5: smt 0, core 5, package 0
> cpu6 at mainbus0: apid 6 (application processor)
> cpu6: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> cpu6: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> cpu6: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> cpu6: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu6: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu6: smt 0, core 6, package 0
> cpu7 at mainbus0: apid 7 (application processor)
> cpu7: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> cpu7: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> cpu7: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> cpu7: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu7: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> cpu7: disabling user TSC (skew=-170)
> cpu7: smt 0, core 7, package 0
> ioapic0 at mainbus0: apid 33 pa 0xfec00000, version 21, 24 pins, can't remap
> ioapic1 at mainbus0: apid 34 pa 0xfec01000, version 21, 32 pins, can't remap
> acpimcfg0 at acpi0
> acpimcfg0: addr 0xf8000000, bus 0-63
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus -1 (GPP0)
> acpiprt2 at acpi0: bus 1 (GPP1)
> acpiprt3 at acpi0: bus -1 (GPP2)
> acpiprt4 at acpi0: bus -1 (GPP3)
> acpiprt5 at acpi0: bus 2 (GPP4)
> acpiprt6 at acpi0: bus -1 (GPP5)
> acpiprt7 at acpi0: bus -1 (GPP6)
> acpiprt8 at acpi0: bus 3 (GP17)
> acpiprt9 at acpi0: bus 4 (GP18)
> acpiprt10 at acpi0: bus -1 (GP19)
> acpiec0 at acpi0
> acpiec0: Not running on HW-Reduced ACPI type 134
> acpipwrres0 at acpi0: WRST
> acpipwrres1 at acpi0: P0U0, resource for XHC0
> acpipwrres2 at acpi0: P3U0, resource for XHC0
> acpipwrres3 at acpi0: P0U1, resource for XHC1
> acpipwrres4 at acpi0: P3U1, resource for XHC1
> acpipwrres5 at acpi0: P0S0, resource for SATA
> acpipwrres6 at acpi0: P3S0, resource for SATA
> acpipwrres7 at acpi0: P0S1, resource for SAT1
> acpipwrres8 at acpi0: P3S1, resource for SAT1
> acpitz0 at acpi0: critical temperature is 115 degC
> "ACPI0010" at acpi0 not configured
> acpicpu0 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu1 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu2 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu3 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu4 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu5 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu6 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu7 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> acpicpu8 at acpi0: no cpu matching ACPI ID 8
> acpicpu9 at acpi0: no cpu matching ACPI ID 9
> acpicpu10 at acpi0: no cpu matching ACPI ID 10
> acpicpu11 at acpi0: no cpu matching ACPI ID 11
> acpicpu12 at acpi0: no cpu matching ACPI ID 12
> acpicpu13 at acpi0: no cpu matching ACPI ID 13
> acpicpu14 at acpi0: no cpu matching ACPI ID 14
> acpicpu15 at acpi0: no cpu matching ACPI ID 15
> acpibtn0 at acpi0: PWRB
> acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000
> extent `acpipci0 pcibus' (0x0 - 0xff), flags=0
> extent `acpipci0 pciio' (0x0 - 0xffffffff), flags=0
>      0xcf8 - 0xcff
>      0x10000 - 0xffffffff
> extent `acpipci0 pcimem' (0x0 - 0xffffffffffffffff), flags=0
>      0x0 - 0x9ffff
>      0xf0000 - 0xcfffffff
>      0xf8000000 - 0xfbffffff
>      0xfed40000 - 0x2501fffff
>      0xfd00000000 - 0xffffffffffffffff
> acpicmos0 at acpi0
> acpiac0 at acpi0: AC unit offline
> acpibat0 at acpi0: BAT0 model "DELL 9077G06" serial   714 type LIP oem "SMP-ATL3.56"
> acpibtn1 at acpi0: LID_
> acpibtn2 at acpi0: SBTN
> "PNP0C14" at acpi0 not configured
> "DELLABCE" at acpi0 not configured
> amdgpio0 at acpi0 GPIO uid 0 addr 0xfed81500/0x400 irq 7, 184 pins
> dwiic0 at acpi0 I2CD addr 0xfedc5000/0x1000 irq 6
> iic0 at dwiic0
> ihidev0 at iic0 addr 0x2c gpio 9, vendor 0x4f3 product 0x3147, DELL0A1E
> ihidev0: 14 report ids
> imt0 at ihidev0: clickpad, 5 contacts
> wsmouse0 at imt0 mux 0
> ims0 at ihidev0 reportid 1: 2 buttons
> wsmouse1 at ims0 mux 0
> hid at ihidev0 reportid 5 not configured
> hid at ihidev0 reportid 6 not configured
> hid at ihidev0 reportid 7 not configured
> hid at ihidev0 reportid 11 not configured
> hid at ihidev0 reportid 12 not configured
> hid at ihidev0 reportid 13 not configured
> ims1 at ihidev0 reportid 14
> ims1: mouse has no X report
> "MSFT0101" at acpi0 not configured
> "ACPI000E" at acpi0 not configured
> "AMD0005" at acpi0 not configured
> "USBC000" at acpi0 not configured
> acpivideo0 at acpi0: VGA_
> acpivout0 at acpivideo0: LCD_
> cpu0: 1996 MHz: speeds: 2000 1700 1400 MHz
> pci0 at mainbus0 bus 0
> pchb0 at pci0 dev 0 function 0 "AMD 17h/6xh Root Complex" rev 0x00
> "AMD 17h/6xh IOMMU" rev 0x00 at pci0 dev 0 function 2 not configured
> pchb1 at pci0 dev 1 function 0 "AMD 17h/6xh Host" rev 0x00
> ppb0 at pci0 dev 1 function 2 "AMD 17h/6xh PCIE" rev 0x00: msi
> pci1 at ppb0 bus 1
> nvme0 at pci1 dev 0 function 0 "SSSTC CL1" rev 0x03: msix, NVMe 1.3
> nvme0: CL1-3D256-Q11 NVMe SSSTC 256GB, firmware 22301114, serial TW0TN2CC9DH0006409IV
> scsibus1 at nvme0: 2 targets, initiator 0
> sd0 at scsibus1 targ 1 lun 0: <NVMe, CL1-3D256-Q11 NV, 2230>
> sd0: 244198MB, 512 bytes/sector, 500118192 sectors
> pchb2 at pci0 dev 2 function 0 "AMD 17h/6xh Host" rev 0x00
> ppb1 at pci0 dev 2 function 2 "AMD 17h/6xh PCIE" rev 0x00: msi
> pci2 at ppb1 bus 2
> iwx0 at pci2 dev 0 function 0 "Intel Wi-Fi 6 AX200" rev 0x1a, msix
> pchb3 at pci0 dev 8 function 0 "AMD 17h/6xh Host" rev 0x00
> ppb2 at pci0 dev 8 function 1 "AMD 17h/6xh PCIE" rev 0x00
> pci3 at ppb2 bus 3
> amdgpu0 at pci3 dev 0 function 0 "ATI Renoir" rev 0xc2
> drm0 at amdgpu0
> amdgpu0: msi
> azalia0 at pci3 dev 0 function 1 "ATI Renoir HD Audio" rev 0x00: msi
> azalia0: no supported codecs
> ccp0 at pci3 dev 0 function 2 "AMD 17h/1xh Crypto" rev 0x00
> xhci0 at pci3 dev 0 function 3 "AMD 17h/6xh xHCI" rev 0x00: msi, xHCI 1.10
> usb0 at xhci0: USB revision 3.0
> uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
> xhci1 at pci3 dev 0 function 4 "AMD 17h/6xh xHCI" rev 0x00: msi, xHCI 1.10
> usb1 at xhci1: USB revision 3.0
> uhub1 at usb1 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
> "AMD 17h/1xh I2S Audio" rev 0x01 at pci3 dev 0 function 5 not configured
> azalia1 at pci3 dev 0 function 6 "AMD 17h/1xh HD Audio" rev 0x00: apic 34 int 12
> azalia1: codecs: Realtek/0x0236
> audio0 at azalia1
> ppb3 at pci0 dev 8 function 2 "AMD 17h/6xh PCIE" rev 0x00
> pci4 at ppb3 bus 4
> ahci0 at pci4 dev 0 function 0 "AMD FCH AHCI" rev 0x81: msi, AHCI 1.3.1
> scsibus2 at ahci0: 32 targets
> ahci1 at pci4 dev 0 function 1 "AMD FCH AHCI" rev 0x81: msi, AHCI 1.3.1
> scsibus3 at ahci1: 32 targets
> piixpm0 at pci0 dev 20 function 0 "AMD FCH SMBus" rev 0x51: SMI
> iic1 at piixpm0
> spdmem0 at iic1 addr 0x50: 8GB DDR4 SDRAM PC4-25600 SO-DIMM
> iic2 at piixpm0
> pcib0 at pci0 dev 20 function 3 "AMD FCH LPC" rev 0x51
> pchb4 at pci0 dev 24 function 0 "AMD 17h/6xh Data Fabric" rev 0x00
> pchb5 at pci0 dev 24 function 1 "AMD 17h/6xh Data Fabric" rev 0x00
> pchb6 at pci0 dev 24 function 2 "AMD 17h/6xh Data Fabric" rev 0x00
> pchb7 at pci0 dev 24 function 3 "AMD 17h/6xh Data Fabric" rev 0x00
> pchb8 at pci0 dev 24 function 4 "AMD 17h/6xh Data Fabric" rev 0x00
> pchb9 at pci0 dev 24 function 5 "AMD 17h/6xh Data Fabric" rev 0x00
> pchb10 at pci0 dev 24 function 6 "AMD 17h/6xh Data Fabric" rev 0x00
> pchb11 at pci0 dev 24 function 7 "AMD 17h/6xh Data Fabric" rev 0x00
> isa0 at pcib0
> isadma0 at isa0
> pckbc0 at isa0 port 0x60/5 irq 1 irq 12
> pckbd0 at pckbc0 (kbd slot)
> wskbd0 at pckbd0: console keyboard
> pms0 at pckbc0 (aux slot)
> wsmouse2 at pms0 mux 0
> pms0: Elantech Clickpad, version 4, firmware 0x5f1001
> pcppi0 at isa0 port 0x61
> spkr0 at pcppi0
> vmm0 at mainbus0: SVM/RVI
> efifb at mainbus0 not configured
> uvideo0 at uhub1 port 2 configuration 1 interface 0 "CN0HK46K8LG00057HD89A02 Integrated_Webcam_HD" rev 2.01/81.76 addr 2
> video0 at uvideo0
> ugen0 at uhub1 port 3 "Intel Bluetooth" rev 2.01/0.01 addr 3
> umass0 at uhub1 port 5 configuration 1 interface 0 "Kingston DataTraveler 3.0" rev 3.00/1.10 addr 4
> umass0: using SCSI over Bulk-Only
> scsibus4 at umass0: 2 targets, initiator 0
> sd1 at scsibus4 targ 1 lun 0: <Kingston, DataTraveler 3.0, PMAP> removable serial.09511666BF9158174B91
> sd1: 14784MB, 512 bytes/sector, 30277632 sectors
> vscsi0 at root
> scsibus5 at vscsi0: 256 targets
> softraid0 at root
> scsibus6 at softraid0: 256 targets
> root on sd1a (6d9e38184cd52e60.a) swap on sd1b dump on sd1b
> iwx0: hw rev 0x340, fw ver 48.1335886879.0, address 8c:c6:81:42:ff:4a
> initializing kernel modesetting (RENOIR 0x1002:0x1636 0x1028:0x0A1E 0xC2).
> sos fw version = 0x110049.
> SMU driver if version not matched
> amdgpu0: 1920x1080, 32bpp
> wsdisplay0 at amdgpu0 mux 1: console (std, vt100 emulation), using wskbd0
> wsdisplay0: screen 1-5 added (std, vt100 emulation)
>

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Jonathan Matthew-4
In reply to this post by Mark Kettenis
On Tue, Jul 28, 2020 at 11:12:21AM +0200, Mark Kettenis wrote:

> > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > From: Jonathan Matthew <[hidden email]>
> >
> > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > From: Mark Kettenis <[hidden email]>
> > > >
> > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > diff tries to support machines with firmware that implements this.  If
> > > > you see something like:
> > > >
> > > >   "ACPI0007" at acpi0 not configured
> > > >
> > > > please try the following diff and report back with an updated dmesg.
> > > >
> > > > Cheers,
> > > >
> > > > Mark
> > >
> > > And now with the right diff...
> >
> > On a dell r6415, it looks like this:
> >
> > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > all the way up to
> > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> >
> > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
>
> Yes.  It is not immediately obvious how this should work.  Do we need
> to copy the aml_node pointer or not?  We don't do that for
> AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> carry any additional information.  So we end up with just an empty
> case to avoid the warning.
>
> Does this work on the Dell machines?

We've seen crashes in pool_cache_get() in various places after all the acpicpus
attach, which we haven't seen before on these machines, so I think it's
corrupting memory somehow.

With this addition, we get this for each cpu:
acpicpu0 at acpi0: C1(@1 halt!)

>
>
> Index: dev/acpi/dsdt.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
> retrieving revision 1.252
> diff -u -p -r1.252 dsdt.c
> --- dev/acpi/dsdt.c 21 Jul 2020 03:48:06 -0000 1.252
> +++ dev/acpi/dsdt.c 28 Jul 2020 09:04:15 -0000
> @@ -996,6 +996,8 @@ aml_copyvalue(struct aml_value *lhs, str
>   lhs->v_objref = rhs->v_objref;
>   aml_addref(lhs->v_objref.ref, "");
>   break;
> + case AML_OBJTYPE_DEVICE:
> + break;
>   default:
>   printf("copyvalue: %x", rhs->type);
>   break;

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Bryan Steele-2
In reply to this post by Mark Kettenis
On Tue, Jul 28, 2020 at 01:09:51PM +0200, Mark Kettenis wrote:

> > Date: Tue, 28 Jul 2020 11:16:56 +0100
> > From: Jason McIntyre <[hidden email]>
> >
> > On Tue, Jul 28, 2020 at 11:12:21AM +0200, Mark Kettenis wrote:
> > > > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > > > From: Jonathan Matthew <[hidden email]>
> > > >
> > > > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > > > From: Mark Kettenis <[hidden email]>
> > > > > >
> > > > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > > > diff tries to support machines with firmware that implements this.  If
> > > > > > you see something like:
> > > > > >
> > > > > >   "ACPI0007" at acpi0 not configured
> > > > > >
> > > > > > please try the following diff and report back with an updated dmesg.
> > > > > >
> > > > > > Cheers,
> > > > > >
> > > > > > Mark
> > > > >
> > > > > And now with the right diff...
> > > >
> > > > On a dell r6415, it looks like this:
> > > >
> > > > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > > > all the way up to
> > > > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> > > >
> > > > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
> > >
> > > Yes.  It is not immediately obvious how this should work.  Do we need
> > > to copy the aml_node pointer or not?  We don't do that for
> > > AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> > > similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> > > carry any additional information.  So we end up with just an empty
> > > case to avoid the warning.
> > >
> > > Does this work on the Dell machines?
> > >
> > >
> > > Index: dev/acpi/dsdt.c
> > > ===================================================================
> > > RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
> > > retrieving revision 1.252
> > > diff -u -p -r1.252 dsdt.c
> > > --- dev/acpi/dsdt.c 21 Jul 2020 03:48:06 -0000 1.252
> > > +++ dev/acpi/dsdt.c 28 Jul 2020 09:04:15 -0000
> > > @@ -996,6 +996,8 @@ aml_copyvalue(struct aml_value *lhs, str
> > >   lhs->v_objref = rhs->v_objref;
> > >   aml_addref(lhs->v_objref.ref, "");
> > >   break;
> > > + case AML_OBJTYPE_DEVICE:
> > > + break;
> > >   default:
> > >   printf("copyvalue: %x", rhs->type);
> > >   break;
> > >
> >
> > morning. it displays this here:
> >
> > acpicpu0 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu1 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu2 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu3 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu4 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu5 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu6 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu7 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu8 at acpi0: no cpu matching ACPI ID 8
> > acpicpu9 at acpi0: no cpu matching ACPI ID 9
> > acpicpu10 at acpi0: no cpu matching ACPI ID 10
> > acpicpu11 at acpi0: no cpu matching ACPI ID 11
> > acpicpu12 at acpi0: no cpu matching ACPI ID 12
> > acpicpu13 at acpi0: no cpu matching ACPI ID 13
> > acpicpu14 at acpi0: no cpu matching ACPI ID 14
> > acpicpu15 at acpi0: no cpu matching ACPI ID 15
>
> Excellent!
>
> We may want to do something about those "no cpu matching ACPU ID XX"
> messages at some point.  But that's a diff for another day.
>
> So ok's for both diffs are welcome.

reads fine and clearly improves things for limited function ACPI
systems.

ok brynet@

> Cheers,
>
> Mark
>
> P.S. I've also established that that the EC-related messages are
> indeed harmless and a result of sloppy BIOS writers.
>
> > OpenBSD 6.7-current (GENERIC.MP) #3: Tue Jul 28 10:59:50 BST 2020
> >     jmc@kansas:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> > real mem = 7895654400 (7529MB)
> > avail mem = 7641284608 (7287MB)
> > random: good seed from bootblocks
> > mpath0 at root
> > scsibus0 at mpath0: 256 targets
> > mainbus0 at root
> > bios0 at mainbus0: SMBIOS rev. 3.2 @ 0xca707000 (77 entries)
> > bios0: vendor Dell Inc. version "1.1.0" date 05/27/2020
> > bios0: Dell Inc. Inspiron 5505
> > acpi0 at bios0: ACPI 5.0Undefined scope: \\_SB_.PCI0.LPC0.EC0_
> >
> > acpi0: sleep states S0 S4 S5
> > acpi0: tables DSDT FACP UEFI SSDT IVRS SSDT TPM2 MSDM ASF! BOOT HPET APIC MCFG SLIC SSDT WSMT VFCT SSDT SSDT CRAT CDIT SSDT SSDT SSDT SSDT FPDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT BGRT
> > acpi0: wakeup devices GP17(S4)
> > acpitimer0 at acpi0: 3579545 Hz, 32 bits
> > acpihpet0 at acpi0: 14318180 Hz
> > acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> > cpu0 at mainbus0: apid 0 (boot processor)
> > cpu0: AMD Ryzen 7 4700U with Radeon Graphics, 1996.48 MHz, 17-60-01
> > cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> > cpu0: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> > cpu0: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu0: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu0: smt 0, core 0, package 0
> > mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
> > cpu0: apic clock running at 99MHz
> > cpu0: mwait min=64, max=64, C-substates=1.1, IBE
> > cpu1 at mainbus0: apid 1 (application processor)
> > cpu1: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> > cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> > cpu1: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> > cpu1: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu1: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu1: smt 0, core 1, package 0
> > cpu2 at mainbus0: apid 2 (application processor)
> > cpu2: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> > cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> > cpu2: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> > cpu2: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu2: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu2: smt 0, core 2, package 0
> > cpu3 at mainbus0: apid 3 (application processor)
> > cpu3: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> > cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> > cpu3: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> > cpu3: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu3: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu3: smt 0, core 3, package 0
> > cpu4 at mainbus0: apid 4 (application processor)
> > cpu4: AMD Ryzen 7 4700U with Radeon Graphics, 1996.26 MHz, 17-60-01
> > cpu4: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> > cpu4: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> > cpu4: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu4: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu4: disabling user TSC (skew=260)
> > cpu4: smt 0, core 4, package 0
> > cpu5 at mainbus0: apid 5 (application processor)
> > cpu5: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> > cpu5: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> > cpu5: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> > cpu5: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu5: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu5: disabling user TSC (skew=110)
> > cpu5: smt 0, core 5, package 0
> > cpu6 at mainbus0: apid 6 (application processor)
> > cpu6: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> > cpu6: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> > cpu6: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> > cpu6: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu6: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu6: smt 0, core 6, package 0
> > cpu7 at mainbus0: apid 7 (application processor)
> > cpu7: AMD Ryzen 7 4700U with Radeon Graphics, 1996.25 MHz, 17-60-01
> > cpu7: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> > cpu7: 32KB 64b/line 8-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line disabled L3 cache
> > cpu7: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu7: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative
> > cpu7: disabling user TSC (skew=-170)
> > cpu7: smt 0, core 7, package 0
> > ioapic0 at mainbus0: apid 33 pa 0xfec00000, version 21, 24 pins, can't remap
> > ioapic1 at mainbus0: apid 34 pa 0xfec01000, version 21, 32 pins, can't remap
> > acpimcfg0 at acpi0
> > acpimcfg0: addr 0xf8000000, bus 0-63
> > acpiprt0 at acpi0: bus 0 (PCI0)
> > acpiprt1 at acpi0: bus -1 (GPP0)
> > acpiprt2 at acpi0: bus 1 (GPP1)
> > acpiprt3 at acpi0: bus -1 (GPP2)
> > acpiprt4 at acpi0: bus -1 (GPP3)
> > acpiprt5 at acpi0: bus 2 (GPP4)
> > acpiprt6 at acpi0: bus -1 (GPP5)
> > acpiprt7 at acpi0: bus -1 (GPP6)
> > acpiprt8 at acpi0: bus 3 (GP17)
> > acpiprt9 at acpi0: bus 4 (GP18)
> > acpiprt10 at acpi0: bus -1 (GP19)
> > acpiec0 at acpi0
> > acpiec0: Not running on HW-Reduced ACPI type 134
> > acpipwrres0 at acpi0: WRST
> > acpipwrres1 at acpi0: P0U0, resource for XHC0
> > acpipwrres2 at acpi0: P3U0, resource for XHC0
> > acpipwrres3 at acpi0: P0U1, resource for XHC1
> > acpipwrres4 at acpi0: P3U1, resource for XHC1
> > acpipwrres5 at acpi0: P0S0, resource for SATA
> > acpipwrres6 at acpi0: P3S0, resource for SATA
> > acpipwrres7 at acpi0: P0S1, resource for SAT1
> > acpipwrres8 at acpi0: P3S1, resource for SAT1
> > acpitz0 at acpi0: critical temperature is 115 degC
> > "ACPI0010" at acpi0 not configured
> > acpicpu0 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu1 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu2 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu3 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu4 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu5 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu6 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu7 at acpi0: C3(0@350 io@0x415), C2(0@400 io@0x414), C1(0@1 mwait), PSS
> > acpicpu8 at acpi0: no cpu matching ACPI ID 8
> > acpicpu9 at acpi0: no cpu matching ACPI ID 9
> > acpicpu10 at acpi0: no cpu matching ACPI ID 10
> > acpicpu11 at acpi0: no cpu matching ACPI ID 11
> > acpicpu12 at acpi0: no cpu matching ACPI ID 12
> > acpicpu13 at acpi0: no cpu matching ACPI ID 13
> > acpicpu14 at acpi0: no cpu matching ACPI ID 14
> > acpicpu15 at acpi0: no cpu matching ACPI ID 15
> > acpibtn0 at acpi0: PWRB
> > acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000
> > extent `acpipci0 pcibus' (0x0 - 0xff), flags=0
> > extent `acpipci0 pciio' (0x0 - 0xffffffff), flags=0
> >      0xcf8 - 0xcff
> >      0x10000 - 0xffffffff
> > extent `acpipci0 pcimem' (0x0 - 0xffffffffffffffff), flags=0
> >      0x0 - 0x9ffff
> >      0xf0000 - 0xcfffffff
> >      0xf8000000 - 0xfbffffff
> >      0xfed40000 - 0x2501fffff
> >      0xfd00000000 - 0xffffffffffffffff
> > acpicmos0 at acpi0
> > acpiac0 at acpi0: AC unit offline
> > acpibat0 at acpi0: BAT0 model "DELL 9077G06" serial   714 type LIP oem "SMP-ATL3.56"
> > acpibtn1 at acpi0: LID_
> > acpibtn2 at acpi0: SBTN
> > "PNP0C14" at acpi0 not configured
> > "DELLABCE" at acpi0 not configured
> > amdgpio0 at acpi0 GPIO uid 0 addr 0xfed81500/0x400 irq 7, 184 pins
> > dwiic0 at acpi0 I2CD addr 0xfedc5000/0x1000 irq 6
> > iic0 at dwiic0
> > ihidev0 at iic0 addr 0x2c gpio 9, vendor 0x4f3 product 0x3147, DELL0A1E
> > ihidev0: 14 report ids
> > imt0 at ihidev0: clickpad, 5 contacts
> > wsmouse0 at imt0 mux 0
> > ims0 at ihidev0 reportid 1: 2 buttons
> > wsmouse1 at ims0 mux 0
> > hid at ihidev0 reportid 5 not configured
> > hid at ihidev0 reportid 6 not configured
> > hid at ihidev0 reportid 7 not configured
> > hid at ihidev0 reportid 11 not configured
> > hid at ihidev0 reportid 12 not configured
> > hid at ihidev0 reportid 13 not configured
> > ims1 at ihidev0 reportid 14
> > ims1: mouse has no X report
> > "MSFT0101" at acpi0 not configured
> > "ACPI000E" at acpi0 not configured
> > "AMD0005" at acpi0 not configured
> > "USBC000" at acpi0 not configured
> > acpivideo0 at acpi0: VGA_
> > acpivout0 at acpivideo0: LCD_
> > cpu0: 1996 MHz: speeds: 2000 1700 1400 MHz
> > pci0 at mainbus0 bus 0
> > pchb0 at pci0 dev 0 function 0 "AMD 17h/6xh Root Complex" rev 0x00
> > "AMD 17h/6xh IOMMU" rev 0x00 at pci0 dev 0 function 2 not configured
> > pchb1 at pci0 dev 1 function 0 "AMD 17h/6xh Host" rev 0x00
> > ppb0 at pci0 dev 1 function 2 "AMD 17h/6xh PCIE" rev 0x00: msi
> > pci1 at ppb0 bus 1
> > nvme0 at pci1 dev 0 function 0 "SSSTC CL1" rev 0x03: msix, NVMe 1.3
> > nvme0: CL1-3D256-Q11 NVMe SSSTC 256GB, firmware 22301114, serial TW0TN2CC9DH0006409IV
> > scsibus1 at nvme0: 2 targets, initiator 0
> > sd0 at scsibus1 targ 1 lun 0: <NVMe, CL1-3D256-Q11 NV, 2230>
> > sd0: 244198MB, 512 bytes/sector, 500118192 sectors
> > pchb2 at pci0 dev 2 function 0 "AMD 17h/6xh Host" rev 0x00
> > ppb1 at pci0 dev 2 function 2 "AMD 17h/6xh PCIE" rev 0x00: msi
> > pci2 at ppb1 bus 2
> > iwx0 at pci2 dev 0 function 0 "Intel Wi-Fi 6 AX200" rev 0x1a, msix
> > pchb3 at pci0 dev 8 function 0 "AMD 17h/6xh Host" rev 0x00
> > ppb2 at pci0 dev 8 function 1 "AMD 17h/6xh PCIE" rev 0x00
> > pci3 at ppb2 bus 3
> > amdgpu0 at pci3 dev 0 function 0 "ATI Renoir" rev 0xc2
> > drm0 at amdgpu0
> > amdgpu0: msi
> > azalia0 at pci3 dev 0 function 1 "ATI Renoir HD Audio" rev 0x00: msi
> > azalia0: no supported codecs
> > ccp0 at pci3 dev 0 function 2 "AMD 17h/1xh Crypto" rev 0x00
> > xhci0 at pci3 dev 0 function 3 "AMD 17h/6xh xHCI" rev 0x00: msi, xHCI 1.10
> > usb0 at xhci0: USB revision 3.0
> > uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
> > xhci1 at pci3 dev 0 function 4 "AMD 17h/6xh xHCI" rev 0x00: msi, xHCI 1.10
> > usb1 at xhci1: USB revision 3.0
> > uhub1 at usb1 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
> > "AMD 17h/1xh I2S Audio" rev 0x01 at pci3 dev 0 function 5 not configured
> > azalia1 at pci3 dev 0 function 6 "AMD 17h/1xh HD Audio" rev 0x00: apic 34 int 12
> > azalia1: codecs: Realtek/0x0236
> > audio0 at azalia1
> > ppb3 at pci0 dev 8 function 2 "AMD 17h/6xh PCIE" rev 0x00
> > pci4 at ppb3 bus 4
> > ahci0 at pci4 dev 0 function 0 "AMD FCH AHCI" rev 0x81: msi, AHCI 1.3.1
> > scsibus2 at ahci0: 32 targets
> > ahci1 at pci4 dev 0 function 1 "AMD FCH AHCI" rev 0x81: msi, AHCI 1.3.1
> > scsibus3 at ahci1: 32 targets
> > piixpm0 at pci0 dev 20 function 0 "AMD FCH SMBus" rev 0x51: SMI
> > iic1 at piixpm0
> > spdmem0 at iic1 addr 0x50: 8GB DDR4 SDRAM PC4-25600 SO-DIMM
> > iic2 at piixpm0
> > pcib0 at pci0 dev 20 function 3 "AMD FCH LPC" rev 0x51
> > pchb4 at pci0 dev 24 function 0 "AMD 17h/6xh Data Fabric" rev 0x00
> > pchb5 at pci0 dev 24 function 1 "AMD 17h/6xh Data Fabric" rev 0x00
> > pchb6 at pci0 dev 24 function 2 "AMD 17h/6xh Data Fabric" rev 0x00
> > pchb7 at pci0 dev 24 function 3 "AMD 17h/6xh Data Fabric" rev 0x00
> > pchb8 at pci0 dev 24 function 4 "AMD 17h/6xh Data Fabric" rev 0x00
> > pchb9 at pci0 dev 24 function 5 "AMD 17h/6xh Data Fabric" rev 0x00
> > pchb10 at pci0 dev 24 function 6 "AMD 17h/6xh Data Fabric" rev 0x00
> > pchb11 at pci0 dev 24 function 7 "AMD 17h/6xh Data Fabric" rev 0x00
> > isa0 at pcib0
> > isadma0 at isa0
> > pckbc0 at isa0 port 0x60/5 irq 1 irq 12
> > pckbd0 at pckbc0 (kbd slot)
> > wskbd0 at pckbd0: console keyboard
> > pms0 at pckbc0 (aux slot)
> > wsmouse2 at pms0 mux 0
> > pms0: Elantech Clickpad, version 4, firmware 0x5f1001
> > pcppi0 at isa0 port 0x61
> > spkr0 at pcppi0
> > vmm0 at mainbus0: SVM/RVI
> > efifb at mainbus0 not configured
> > uvideo0 at uhub1 port 2 configuration 1 interface 0 "CN0HK46K8LG00057HD89A02 Integrated_Webcam_HD" rev 2.01/81.76 addr 2
> > video0 at uvideo0
> > ugen0 at uhub1 port 3 "Intel Bluetooth" rev 2.01/0.01 addr 3
> > umass0 at uhub1 port 5 configuration 1 interface 0 "Kingston DataTraveler 3.0" rev 3.00/1.10 addr 4
> > umass0: using SCSI over Bulk-Only
> > scsibus4 at umass0: 2 targets, initiator 0
> > sd1 at scsibus4 targ 1 lun 0: <Kingston, DataTraveler 3.0, PMAP> removable serial.09511666BF9158174B91
> > sd1: 14784MB, 512 bytes/sector, 30277632 sectors
> > vscsi0 at root
> > scsibus5 at vscsi0: 256 targets
> > softraid0 at root
> > scsibus6 at softraid0: 256 targets
> > root on sd1a (6d9e38184cd52e60.a) swap on sd1b dump on sd1b
> > iwx0: hw rev 0x340, fw ver 48.1335886879.0, address 8c:c6:81:42:ff:4a
> > initializing kernel modesetting (RENOIR 0x1002:0x1636 0x1028:0x0A1E 0xC2).
> > sos fw version = 0x110049.
> > SMU driver if version not matched
> > amdgpu0: 1920x1080, 32bpp
> > wsdisplay0 at amdgpu0 mux 1: console (std, vt100 emulation), using wskbd0
> > wsdisplay0: screen 1-5 added (std, vt100 emulation)
> >
>
>

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Mark Kettenis
In reply to this post by Jonathan Matthew-4
> Date: Tue, 28 Jul 2020 21:42:46 +1000
> From: Jonathan Matthew <[hidden email]>
>
> On Tue, Jul 28, 2020 at 11:12:21AM +0200, Mark Kettenis wrote:
> > > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > > From: Jonathan Matthew <[hidden email]>
> > >
> > > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > > From: Mark Kettenis <[hidden email]>
> > > > >
> > > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > > diff tries to support machines with firmware that implements this.  If
> > > > > you see something like:
> > > > >
> > > > >   "ACPI0007" at acpi0 not configured
> > > > >
> > > > > please try the following diff and report back with an updated dmesg.
> > > > >
> > > > > Cheers,
> > > > >
> > > > > Mark
> > > >
> > > > And now with the right diff...
> > >
> > > On a dell r6415, it looks like this:
> > >
> > > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > > all the way up to
> > > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> > >
> > > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
> >
> > Yes.  It is not immediately obvious how this should work.  Do we need
> > to copy the aml_node pointer or not?  We don't do that for
> > AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> > similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> > carry any additional information.  So we end up with just an empty
> > case to avoid the warning.
> >
> > Does this work on the Dell machines?
>
> We've seen crashes in pool_cache_get() in various places after all the acpicpus
> attach, which we haven't seen before on these machines, so I think it's
> corrupting memory somehow.

Does that happen with only the acpicpu(4) diff?

> With this addition, we get this for each cpu:
> acpicpu0 at acpi0: C1(@1 halt!)

The exclamation mark indicates that this is the "fallback" C-state.
Is there a _CST method at all?

Anyway, given that this is a server system, it isn't really surprising
that there isn't any fancy power saving stuff.

> > Index: dev/acpi/dsdt.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
> > retrieving revision 1.252
> > diff -u -p -r1.252 dsdt.c
> > --- dev/acpi/dsdt.c 21 Jul 2020 03:48:06 -0000 1.252
> > +++ dev/acpi/dsdt.c 28 Jul 2020 09:04:15 -0000
> > @@ -996,6 +996,8 @@ aml_copyvalue(struct aml_value *lhs, str
> >   lhs->v_objref = rhs->v_objref;
> >   aml_addref(lhs->v_objref.ref, "");
> >   break;
> > + case AML_OBJTYPE_DEVICE:
> > + break;
> >   default:
> >   printf("copyvalue: %x", rhs->type);
> >   break;
>
>

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Johan Huldtgren-2
In reply to this post by Mark Kettenis
hello,

On 2020-07-28 11:12, Mark Kettenis wrote:

> > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > From: Jonathan Matthew <[hidden email]>
> >
> > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > From: Mark Kettenis <[hidden email]>
> > > >
> > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > diff tries to support machines with firmware that implements this.  If
> > > > you see something like:
> > > >
> > > >   "ACPI0007" at acpi0 not configured
> > > >
> > > > please try the following diff and report back with an updated dmesg.
> > > >
> > > > Cheers,
> > > >
> > > > Mark
> > >
> > > And now with the right diff...
> >
> > On a dell r6415, it looks like this:
> >
> > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > all the way up to
> > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> >
> > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
>
> Yes.  It is not immediately obvious how this should work.  Do we need
> to copy the aml_node pointer or not?  We don't do that for
> AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> carry any additional information.  So we end up with just an empty
> case to avoid the warning.
>
> Does this work on the Dell machines?
>
>
> Index: dev/acpi/dsdt.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
> retrieving revision 1.252
> diff -u -p -r1.252 dsdt.c
> --- dev/acpi/dsdt.c 21 Jul 2020 03:48:06 -0000 1.252
> +++ dev/acpi/dsdt.c 28 Jul 2020 09:04:15 -0000
> @@ -996,6 +996,8 @@ aml_copyvalue(struct aml_value *lhs, str
>   lhs->v_objref = rhs->v_objref;
>   aml_addref(lhs->v_objref.ref, "");
>   break;
> + case AML_OBJTYPE_DEVICE:
> + break;
>   default:
>   printf("copyvalue: %x", rhs->type);
>   break;
>
before diffs I see:

"ACPI0004" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0004" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured

after applying both diffs I see that as

"ACPI0004" at acpi0 not configured
acpicpu24 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu25 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu26 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu27 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu28 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu29 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu30 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu31 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu32 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu33 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu34 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu35 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
"ACPI0004" at acpi0 not configured
acpicpu36 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu37 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu38 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu39 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu40 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu41 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu42 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu43 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu44 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu45 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu46 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
acpicpu47 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS

Full dmesg attached.

thanks,

.jh

dmesg.out (36K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Bryan Steele-2
On Tue, Jul 28, 2020 at 01:44:33PM -0400, Johan Huldtgren wrote:

> hello,
>
> On 2020-07-28 11:12, Mark Kettenis wrote:
> > > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > > From: Jonathan Matthew <[hidden email]>
> > >
> > > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > > From: Mark Kettenis <[hidden email]>
> > > > >
> > > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > > diff tries to support machines with firmware that implements this.  If
> > > > > you see something like:
> > > > >
> > > > >   "ACPI0007" at acpi0 not configured
> > > > >
> > > > > please try the following diff and report back with an updated dmesg.
> > > > >
> > > > > Cheers,
> > > > >
> > > > > Mark
> > > >
> > > > And now with the right diff...
> > >
> > > On a dell r6415, it looks like this:
> > >
> > > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > > all the way up to
> > > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> > >
> > > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
> >
> > Yes.  It is not immediately obvious how this should work.  Do we need
> > to copy the aml_node pointer or not?  We don't do that for
> > AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> > similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> > carry any additional information.  So we end up with just an empty
> > case to avoid the warning.
> >
> > Does this work on the Dell machines?
> >
> >
> > Index: dev/acpi/dsdt.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
> > retrieving revision 1.252
> > diff -u -p -r1.252 dsdt.c
> > --- dev/acpi/dsdt.c 21 Jul 2020 03:48:06 -0000 1.252
> > +++ dev/acpi/dsdt.c 28 Jul 2020 09:04:15 -0000
> > @@ -996,6 +996,8 @@ aml_copyvalue(struct aml_value *lhs, str
> >   lhs->v_objref = rhs->v_objref;
> >   aml_addref(lhs->v_objref.ref, "");
> >   break;
> > + case AML_OBJTYPE_DEVICE:
> > + break;
> >   default:
> >   printf("copyvalue: %x", rhs->type);
> >   break;
> >


Mark, This one below looks like it's attaching on both Processor() nodes
and "ACPI0007", I'm assuming we don't want to do that?

> before diffs I see:
>
> "ACPI0004" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0004" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
> "ACPI0007" at acpi0 not configured
>
> after applying both diffs I see that as
>
> "ACPI0004" at acpi0 not configured
> acpicpu24 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu25 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu26 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu27 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu28 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu29 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu30 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu31 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu32 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu33 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu34 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu35 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> "ACPI0004" at acpi0 not configured
> acpicpu36 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu37 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu38 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu39 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu40 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu41 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu42 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu43 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu44 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu45 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu46 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu47 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
>
> Full dmesg attached.
>
> thanks,
>
> .jh

> OpenBSD 6.7-current (GENERIC.MP) #1: Tue Jul 28 11:35:11 EDT 2020
>     [hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 137318658048 (130957MB)
> avail mem = 133141893120 (126974MB)
> random: good seed from bootblocks
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 2.8 @ 0x7db4c000 (134 entries)
> bios0: vendor American Megatrends Inc. version "3703" date 04/24/2018
> bios0: ASUSTeK COMPUTER INC. Z10PE-D16 Series
> acpi0 at bios0: ACPI 5.0
> acpi0: sleep states S0 S4 S5
> acpi0: tables DSDT FACP APIC FPDT FIDT MCFG EINJ UEFI HPET MSCT SLIT SRAT WDDT SSDT SPMI SSDT SSDT PRAD DMAR HEST BERT ERST
> acpi0: wakeup devices IP2P(S3) EHC1(S4) BR1A(S4) BR1B(S4) BR2A(S4) BR2B(S4) BR2C(S4) BR2D(S4) BR3A(S4) BR3B(S4) BR3C(S4) BR3D(S4) RP01(S4) RP02(S4) RP03(S4) RP04(S4) [...]
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.81 MHz, 06-3f-02
> cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu0: 256KB 64b/line 8-way L2 cache
> cpu0: smt 0, core 0, package 0
> mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
> cpu0: apic clock running at 99MHz
> cpu0: mwait min=64, max=64, C-substates=0.2.1.2, IBE
> cpu1 at mainbus0: apid 2 (application processor)
> cpu1: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.48 MHz, 06-3f-02
> cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu1: 256KB 64b/line 8-way L2 cache
> cpu1: smt 0, core 1, package 0
> cpu2 at mainbus0: apid 4 (application processor)
> cpu2: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.48 MHz, 06-3f-02
> cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu2: 256KB 64b/line 8-way L2 cache
> cpu2: smt 0, core 2, package 0
> cpu3 at mainbus0: apid 6 (application processor)
> cpu3: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.48 MHz, 06-3f-02
> cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu3: 256KB 64b/line 8-way L2 cache
> cpu3: smt 0, core 3, package 0
> cpu4 at mainbus0: apid 8 (application processor)
> cpu4: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.48 MHz, 06-3f-02
> cpu4: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu4: 256KB 64b/line 8-way L2 cache
> cpu4: smt 0, core 4, package 0
> cpu5 at mainbus0: apid 10 (application processor)
> cpu5: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.48 MHz, 06-3f-02
> cpu5: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu5: 256KB 64b/line 8-way L2 cache
> cpu5: smt 0, core 5, package 0
> cpu6 at mainbus0: apid 16 (application processor)
> cpu6: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.15 MHz, 06-3f-02
> cpu6: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu6: 256KB 64b/line 8-way L2 cache
> cpu6: smt 0, core 0, package 1
> cpu7 at mainbus0: apid 18 (application processor)
> cpu7: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu7: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu7: 256KB 64b/line 8-way L2 cache
> cpu7: smt 0, core 1, package 1
> cpu8 at mainbus0: apid 20 (application processor)
> cpu8: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu8: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu8: 256KB 64b/line 8-way L2 cache
> cpu8: smt 0, core 2, package 1
> cpu9 at mainbus0: apid 22 (application processor)
> cpu9: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu9: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu9: 256KB 64b/line 8-way L2 cache
> cpu9: smt 0, core 3, package 1
> cpu10 at mainbus0: apid 24 (application processor)
> cpu10: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu10: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu10: 256KB 64b/line 8-way L2 cache
> cpu10: smt 0, core 4, package 1
> cpu11 at mainbus0: apid 26 (application processor)
> cpu11: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu11: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu11: 256KB 64b/line 8-way L2 cache
> cpu11: smt 0, core 5, package 1
> cpu12 at mainbus0: apid 1 (application processor)
> cpu12: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu12: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu12: 256KB 64b/line 8-way L2 cache
> cpu12: smt 1, core 0, package 0
> cpu13 at mainbus0: apid 3 (application processor)
> cpu13: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu13: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu13: 256KB 64b/line 8-way L2 cache
> cpu13: smt 1, core 1, package 0
> cpu14 at mainbus0: apid 5 (application processor)
> cpu14: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu14: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu14: 256KB 64b/line 8-way L2 cache
> cpu14: smt 1, core 2, package 0
> cpu15 at mainbus0: apid 7 (application processor)
> cpu15: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu15: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu15: 256KB 64b/line 8-way L2 cache
> cpu15: smt 1, core 3, package 0
> cpu16 at mainbus0: apid 9 (application processor)
> cpu16: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu16: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu16: 256KB 64b/line 8-way L2 cache
> cpu16: smt 1, core 4, package 0
> cpu17 at mainbus0: apid 11 (application processor)
> cpu17: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu17: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu17: 256KB 64b/line 8-way L2 cache
> cpu17: smt 1, core 5, package 0
> cpu18 at mainbus0: apid 17 (application processor)
> cpu18: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu18: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu18: 256KB 64b/line 8-way L2 cache
> cpu18: smt 1, core 0, package 1
> cpu19 at mainbus0: apid 19 (application processor)
> cpu19: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu19: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu19: 256KB 64b/line 8-way L2 cache
> cpu19: smt 1, core 1, package 1
> cpu20 at mainbus0: apid 21 (application processor)
> cpu20: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu20: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu20: 256KB 64b/line 8-way L2 cache
> cpu20: smt 1, core 2, package 1
> cpu21 at mainbus0: apid 23 (application processor)
> cpu21: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu21: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu21: 256KB 64b/line 8-way L2 cache
> cpu21: smt 1, core 3, package 1
> cpu22 at mainbus0: apid 25 (application processor)
> cpu22: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu22: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu22: 256KB 64b/line 8-way L2 cache
> cpu22: smt 1, core 4, package 1
> cpu23 at mainbus0: apid 27 (application processor)
> cpu23: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2394.47 MHz, 06-3f-02
> cpu23: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN
> cpu23: 256KB 64b/line 8-way L2 cache
> cpu23: smt 1, core 5, package 1
> ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins
> ioapic1 at mainbus0: apid 2 pa 0xfec01000, version 20, 24 pins
> ioapic2 at mainbus0: apid 3 pa 0xfec40000, version 20, 24 pins
> acpimcfg0 at acpi0
> acpimcfg0: addr 0x80000000, bus 0-255
> acpihpet0 at acpi0: 14318179 Hz
> acpiprt0 at acpi0: bus 255 (UNC1)
> acpiprt1 at acpi0: bus 127 (UNC0)
> acpiprt2 at acpi0: bus 0 (PCI0)
> acpiprt3 at acpi0: bus 1 (BR1A)
> acpiprt4 at acpi0: bus -1 (BR2A)
> acpiprt5 at acpi0: bus 2 (BR3A)
> acpiprt6 at acpi0: bus 3 (BR3C)
> acpiprt7 at acpi0: bus 4 (BR3D)
> acpiprt8 at acpi0: bus 6 (RP08)
> acpiprt9 at acpi0: bus 7 (BR78)
> acpiprt10 at acpi0: bus 128 (PCI1)
> acpiprt11 at acpi0: bus -1 (QR2A)
> acpiprt12 at acpi0: bus -1 (QR3A)
> acpicpu0 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu1 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu2 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu3 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu4 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu5 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu6 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu7 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu8 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu9 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu10 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu11 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu12 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu13 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu14 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu15 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu16 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu17 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu18 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu19 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu20 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu21 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu22 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu23 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpipci0 at acpi0 UNC1: 0x00000010 0x00000011 0x00000000
> extent `acpipci0 pcibus' (0x0 - 0xff), flags=0
>      0x0 - 0xfe
> extent `acpipci0 pciio' (0x0 - 0xffffffff), flags=0
>      0x0 - 0xffffffff
> extent `acpipci0 pcimem' (0x0 - 0xffffffffffffffff), flags=0
>      0x0 - 0xffffffffffffffff
> acpipci1 at acpi0 UNC0: 0x00000010 0x00000011 0x00000000
> extent `acpipci1 pcibus' (0x0 - 0xff), flags=0
>      0x0 - 0x7e
>      0x80 - 0xff
> extent `acpipci1 pciio' (0x0 - 0xffffffff), flags=0
>      0x0 - 0xffffffff
> extent `acpipci1 pcimem' (0x0 - 0xffffffffffffffff), flags=0
>      0x0 - 0xffffffffffffffff
> "ACPI0004" at acpi0 not configured
> acpicpu24 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu25 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu26 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu27 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu28 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu29 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu30 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu31 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu32 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu33 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu34 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu35 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> "ACPI0004" at acpi0 not configured
> acpicpu36 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu37 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu38 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu39 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu40 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu41 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu42 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu43 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu44 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu45 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu46 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpicpu47 at acpi0: C2(350@41 mwait.3@0x20), C1(1016@1 mwait.1), PSS
> acpipci2 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000
> extent `acpipci2 pcibus' (0x0 - 0xff), flags=0
>      0x7f - 0xff
> extent `acpipci2 pciio' (0x0 - 0xffffffff), flags=0
>      0xcf8 - 0xfff
>      0x8000 - 0xffffffff
> extent `acpipci2 pcimem' (0x0 - 0xffffffffffffffff), flags=0
>      0x0 - 0x9ffff
>      0xc0000 - 0x8fffffff
>      0xc7ffc000 - 0xffffffffffffffff
> "PNP0003" at acpi0 not configured
> acpicmos0 at acpi0
> "IPI0001" at acpi0 not configured
> "PNP0A05" at acpi0 not configured
> acpipci3 at acpi0 PCI1: 0x00000010 0x00000011 0x00000000
> extent `acpipci3 pcibus' (0x0 - 0xff), flags=0
>      0x0 - 0x7f
>      0xff - 0xff
> extent `acpipci3 pciio' (0x0 - 0xffffffff), flags=0
>      0x0 - 0x7fff
>      0x10000 - 0xffffffff
> extent `acpipci3 pcimem' (0x0 - 0xffffffffffffffff), flags=0
>      0x0 - 0xc7ffffff
>      0xfbffc000 - 0xffffffffffffffff
> acpibtn0 at acpi0: PWRB
> "PNP0C33" at acpi0 not configured
> "PNP0C14" at acpi0 not configured
> "ACPI000D" at acpi0 not configured
> ipmi at mainbus0 not configured
> cpu0: using VERW MDS workaround (except on vmm entry)
> cpu0: Enhanced SpeedStep 2394 MHz: speeds: 2401, 2400, 2300, 2200, 2100, 2000, 1900, 1800, 1700, 1600, 1500, 1400, 1300, 1200 MHz
> pci0 at mainbus0 bus 255
> 255:30:3: mem address conflict 0x10/0x10
> "Intel E5 v3 QPI" rev 0x02 at pci0 dev 8 function 0 not configured
> "Intel E5 v3 QPI" rev 0x02 at pci0 dev 8 function 2 not configured
> "Intel E5 v3 QPI" rev 0x02 at pci0 dev 8 function 3 not configured
> "Intel E5 v3 QPI" rev 0x02 at pci0 dev 9 function 0 not configured
> "Intel E5 v3 QPI" rev 0x02 at pci0 dev 9 function 2 not configured
> "Intel E5 v3 QPI" rev 0x02 at pci0 dev 9 function 3 not configured
> "Intel E5 v3 QPI Monitor" rev 0x02 at pci0 dev 11 function 0 not configured
> "Intel E5 v3 QPI Monitor" rev 0x02 at pci0 dev 11 function 1 not configured
> "Intel E5 v3 QPI Monitor" rev 0x02 at pci0 dev 11 function 2 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci0 dev 12 function 0 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci0 dev 12 function 1 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci0 dev 12 function 2 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci0 dev 12 function 3 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci0 dev 12 function 4 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci0 dev 12 function 5 not configured
> "Intel E5 v3 Ring Agent" rev 0x02 at pci0 dev 15 function 0 not configured
> "Intel E5 v3 Ring Agent" rev 0x02 at pci0 dev 15 function 1 not configured
> "Intel E5 v3 SAD" rev 0x02 at pci0 dev 15 function 4 not configured
> "Intel E5 v3 SAD" rev 0x02 at pci0 dev 15 function 5 not configured
> "Intel E5 v3 SAD" rev 0x02 at pci0 dev 15 function 6 not configured
> "Intel E5 v3 PCIE Ring" rev 0x02 at pci0 dev 16 function 0 not configured
> "Intel E5 v3 PCIE Monitor" rev 0x02 at pci0 dev 16 function 1 not configured
> "Intel E5 v3 Scratch" rev 0x02 at pci0 dev 16 function 5 not configured
> "Intel E5 v3 Scratch" rev 0x02 at pci0 dev 16 function 6 not configured
> "Intel E5 v3 Scratch" rev 0x02 at pci0 dev 16 function 7 not configured
> "Intel E5 v3 Home Agent" rev 0x02 at pci0 dev 18 function 0 not configured
> "Intel E5 v3 Home Agent" rev 0x02 at pci0 dev 18 function 1 not configured
> "Intel E5 v3 Memory" rev 0x02 at pci0 dev 19 function 0 not configured
> "Intel E5 v3 RAS" rev 0x02 at pci0 dev 19 function 1 not configured
> "Intel E5 v3 TAD" rev 0x02 at pci0 dev 19 function 2 not configured
> "Intel E5 v3 TAD" rev 0x02 at pci0 dev 19 function 3 not configured
> "Intel E5 v3 TAD" rev 0x02 at pci0 dev 19 function 4 not configured
> "Intel E5 v3 TAD" rev 0x02 at pci0 dev 19 function 5 not configured
> "Intel E5 v3 DDR Broadcast" rev 0x02 at pci0 dev 19 function 6 not configured
> "Intel E5 v3 DDR Broadcast" rev 0x02 at pci0 dev 19 function 7 not configured
> "Intel E5 v3 Thermal" rev 0x02 at pci0 dev 20 function 0 not configured
> "Intel E5 v3 Thermal" rev 0x02 at pci0 dev 20 function 1 not configured
> "Intel E5 v3 Error" rev 0x02 at pci0 dev 20 function 2 not configured
> "Intel E5 v3 Error" rev 0x02 at pci0 dev 20 function 3 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci0 dev 20 function 4 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci0 dev 20 function 5 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci0 dev 20 function 6 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci0 dev 20 function 7 not configured
> "Intel E5 v3 Thermal" rev 0x02 at pci0 dev 21 function 0 not configured
> "Intel E5 v3 Thermal" rev 0x02 at pci0 dev 21 function 1 not configured
> "Intel E5 v3 Error" rev 0x02 at pci0 dev 21 function 2 not configured
> "Intel E5 v3 Error" rev 0x02 at pci0 dev 21 function 3 not configured
> "Intel E5 v3 TA" rev 0x02 at pci0 dev 22 function 0 not configured
> "Intel E5 v3 DDR Broadcast" rev 0x02 at pci0 dev 22 function 6 not configured
> "Intel E5 v3 DDR Broadcast" rev 0x02 at pci0 dev 22 function 7 not configured
> "Intel E5 v3 Thermal" rev 0x02 at pci0 dev 23 function 0 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci0 dev 23 function 4 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci0 dev 23 function 5 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci0 dev 23 function 6 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci0 dev 23 function 7 not configured
> "Intel E5 v3 PCU" rev 0x02 at pci0 dev 30 function 0 not configured
> "Intel E5 v3 PCU" rev 0x02 at pci0 dev 30 function 1 not configured
> "Intel E5 v3 PCU" rev 0x02 at pci0 dev 30 function 2 not configured
> "Intel E5 v3 PCU" rev 0x02 at pci0 dev 30 function 3 not configured
> "Intel E5 v3 PCU" rev 0x02 at pci0 dev 30 function 4 not configured
> "Intel E5 v3 VCU" rev 0x02 at pci0 dev 31 function 0 not configured
> "Intel E5 v3 VCU" rev 0x02 at pci0 dev 31 function 2 not configured
> pci1 at mainbus0 bus 127
> 127:30:3: mem address conflict 0x10/0x10
> "Intel E5 v3 QPI" rev 0x02 at pci1 dev 8 function 0 not configured
> "Intel E5 v3 QPI" rev 0x02 at pci1 dev 8 function 2 not configured
> "Intel E5 v3 QPI" rev 0x02 at pci1 dev 8 function 3 not configured
> "Intel E5 v3 QPI" rev 0x02 at pci1 dev 9 function 0 not configured
> "Intel E5 v3 QPI" rev 0x02 at pci1 dev 9 function 2 not configured
> "Intel E5 v3 QPI" rev 0x02 at pci1 dev 9 function 3 not configured
> "Intel E5 v3 QPI Monitor" rev 0x02 at pci1 dev 11 function 0 not configured
> "Intel E5 v3 QPI Monitor" rev 0x02 at pci1 dev 11 function 1 not configured
> "Intel E5 v3 QPI Monitor" rev 0x02 at pci1 dev 11 function 2 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci1 dev 12 function 0 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci1 dev 12 function 1 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci1 dev 12 function 2 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci1 dev 12 function 3 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci1 dev 12 function 4 not configured
> "Intel E5 v3 Unicast" rev 0x02 at pci1 dev 12 function 5 not configured
> "Intel E5 v3 Ring Agent" rev 0x02 at pci1 dev 15 function 0 not configured
> "Intel E5 v3 Ring Agent" rev 0x02 at pci1 dev 15 function 1 not configured
> "Intel E5 v3 SAD" rev 0x02 at pci1 dev 15 function 4 not configured
> "Intel E5 v3 SAD" rev 0x02 at pci1 dev 15 function 5 not configured
> "Intel E5 v3 SAD" rev 0x02 at pci1 dev 15 function 6 not configured
> "Intel E5 v3 PCIE Ring" rev 0x02 at pci1 dev 16 function 0 not configured
> "Intel E5 v3 PCIE Monitor" rev 0x02 at pci1 dev 16 function 1 not configured
> "Intel E5 v3 Scratch" rev 0x02 at pci1 dev 16 function 5 not configured
> "Intel E5 v3 Scratch" rev 0x02 at pci1 dev 16 function 6 not configured
> "Intel E5 v3 Scratch" rev 0x02 at pci1 dev 16 function 7 not configured
> "Intel E5 v3 Home Agent" rev 0x02 at pci1 dev 18 function 0 not configured
> "Intel E5 v3 Home Agent" rev 0x02 at pci1 dev 18 function 1 not configured
> "Intel E5 v3 Memory" rev 0x02 at pci1 dev 19 function 0 not configured
> "Intel E5 v3 RAS" rev 0x02 at pci1 dev 19 function 1 not configured
> "Intel E5 v3 TAD" rev 0x02 at pci1 dev 19 function 2 not configured
> "Intel E5 v3 TAD" rev 0x02 at pci1 dev 19 function 3 not configured
> "Intel E5 v3 TAD" rev 0x02 at pci1 dev 19 function 4 not configured
> "Intel E5 v3 TAD" rev 0x02 at pci1 dev 19 function 5 not configured
> "Intel E5 v3 DDR Broadcast" rev 0x02 at pci1 dev 19 function 6 not configured
> "Intel E5 v3 DDR Broadcast" rev 0x02 at pci1 dev 19 function 7 not configured
> "Intel E5 v3 Thermal" rev 0x02 at pci1 dev 20 function 0 not configured
> "Intel E5 v3 Thermal" rev 0x02 at pci1 dev 20 function 1 not configured
> "Intel E5 v3 Error" rev 0x02 at pci1 dev 20 function 2 not configured
> "Intel E5 v3 Error" rev 0x02 at pci1 dev 20 function 3 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci1 dev 20 function 4 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci1 dev 20 function 5 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci1 dev 20 function 6 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci1 dev 20 function 7 not configured
> "Intel E5 v3 Thermal" rev 0x02 at pci1 dev 21 function 0 not configured
> "Intel E5 v3 Thermal" rev 0x02 at pci1 dev 21 function 1 not configured
> "Intel E5 v3 Error" rev 0x02 at pci1 dev 21 function 2 not configured
> "Intel E5 v3 Error" rev 0x02 at pci1 dev 21 function 3 not configured
> "Intel E5 v3 TA" rev 0x02 at pci1 dev 22 function 0 not configured
> "Intel E5 v3 DDR Broadcast" rev 0x02 at pci1 dev 22 function 6 not configured
> "Intel E5 v3 DDR Broadcast" rev 0x02 at pci1 dev 22 function 7 not configured
> "Intel E5 v3 Thermal" rev 0x02 at pci1 dev 23 function 0 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci1 dev 23 function 4 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci1 dev 23 function 5 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci1 dev 23 function 6 not configured
> "Intel E5 v3 DDRIO" rev 0x02 at pci1 dev 23 function 7 not configured
> "Intel E5 v3 PCU" rev 0x02 at pci1 dev 30 function 0 not configured
> "Intel E5 v3 PCU" rev 0x02 at pci1 dev 30 function 1 not configured
> "Intel E5 v3 PCU" rev 0x02 at pci1 dev 30 function 2 not configured
> "Intel E5 v3 PCU" rev 0x02 at pci1 dev 30 function 3 not configured
> "Intel E5 v3 PCU" rev 0x02 at pci1 dev 30 function 4 not configured
> "Intel E5 v3 VCU" rev 0x02 at pci1 dev 31 function 0 not configured
> "Intel E5 v3 VCU" rev 0x02 at pci1 dev 31 function 2 not configured
> pci2 at mainbus0 bus 0
> pchb0 at pci2 dev 0 function 0 "Intel E5 v3 Host" rev 0x02
> ppb0 at pci2 dev 1 function 0 "Intel E5 v3 PCIE" rev 0x02: msi
> pci3 at ppb0 bus 1
> mfi0 at pci3 dev 0 function 0 "Symbios Logic MegaRAID SAS2108 GEN2" rev 0x05: apic 2 int 2
> mfi0: "LSI MegaRAID SAS 9260-8i", firmware 12.15.0-0239, 512MB cache
> scsibus1 at mfi0: 64 targets
> sd0 at scsibus1 targ 0 lun 0: <LSI, MR9260-8i, 2.13> naa.600605b003be9f002507413928b832d3
> sd0: 53405696MB, 512 bytes/sector, 109374865408 sectors
> ppb1 at pci2 dev 3 function 0 "Intel E5 v3 PCIE" rev 0x02
> pci4 at ppb1 bus 2
> em0 at pci4 dev 0 function 0 "Intel I350" rev 0x01: msi, address 38:2c:4a:c7:8d:6d
> em1 at pci4 dev 0 function 1 "Intel I350" rev 0x01: msi, address 38:2c:4a:c7:8d:6e
> ppb2 at pci2 dev 3 function 2 "Intel E5 v3 PCIE" rev 0x02
> pci5 at ppb2 bus 3
> em2 at pci5 dev 0 function 0 "Intel I350" rev 0x01: msi, address 38:2c:4a:c7:8d:6b
> em3 at pci5 dev 0 function 1 "Intel I350" rev 0x01: msi, address 38:2c:4a:c7:8d:6c
> ppb3 at pci2 dev 3 function 3 "Intel E5 v3 PCIE" rev 0x02: msi
> pci6 at ppb3 bus 4
> "Intel E5 v3 Address Map" rev 0x02 at pci2 dev 5 function 0 not configured
> "Intel E5 v3 Hot Plug" rev 0x02 at pci2 dev 5 function 1 not configured
> "Intel E5 v3 Error Reporting" rev 0x02 at pci2 dev 5 function 2 not configured
> "Intel E5 v3 I/O APIC" rev 0x02 at pci2 dev 5 function 4 not configured
> "Intel C610 MS SPSR" rev 0x05 at pci2 dev 17 function 0 not configured
> ahci0 at pci2 dev 17 function 4 "Intel C610 AHCI" rev 0x05: msi, AHCI 1.3
> scsibus2 at ahci0: 32 targets
> xhci0 at pci2 dev 20 function 0 "Intel C610 xHCI" rev 0x05: apic 1 int 19, xHCI 1.0
> usb0 at xhci0: USB revision 3.0
> uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 addr 1
> "Intel C610 MEI" rev 0x05 at pci2 dev 22 function 0 not configured
> "Intel C610 MEI" rev 0x05 at pci2 dev 22 function 1 not configured
> ehci0 at pci2 dev 26 function 0 "Intel C610 USB" rev 0x05: apic 1 int 19
> usb1 at ehci0: USB revision 2.0
> uhub1 at usb1 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
> ppb4 at pci2 dev 28 function 0 "Intel C610 PCIE" rev 0xd5: msi
> pci7 at ppb4 bus 5
> ppb5 at pci2 dev 28 function 7 "Intel C610 PCIE" rev 0xd5: msi
> pci8 at ppb5 bus 6
> ppb6 at pci8 dev 0 function 0 "ASPEED Technology AST1150 PCI" rev 0x03
> pci9 at ppb6 bus 7
> vga1 at pci9 dev 0 function 0 "ASPEED Technology AST2000" rev 0x30
> wsdisplay at vga1 not configured
> ehci1 at pci2 dev 29 function 0 "Intel C610 USB" rev 0x05: apic 1 int 18
> usb2 at ehci1: USB revision 2.0
> uhub2 at usb2 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
> pcib0 at pci2 dev 31 function 0 "Intel C610 LPC" rev 0x05
> ahci1 at pci2 dev 31 function 2 "Intel C610 AHCI" rev 0x05: msi, AHCI 1.3
> ahci1: port 0: 1.5Gb/s
> ahci1: port 1: 6.0Gb/s
> scsibus3 at ahci1: 32 targets
> cd0 at scsibus3 targ 0 lun 0: <HL-DT-ST, DVDRAM GH24NSC0, LK00> removable
> sd1 at scsibus3 targ 1 lun 0: <ATA, Samsung SSD 850, EMT0> naa.5002538d7000d47c
> sd1: 114473MB, 512 bytes/sector, 234441648 sectors, thin
> ichiic0 at pci2 dev 31 function 3 "Intel C610 SMBus" rev 0x05: apic 1 int 18
> iic0 at ichiic0
> isa0 at pcib0
> isadma0 at isa0
> com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
> com0: console
> com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
> pckbc0 at isa0 port 0x60/5 irq 1 irq 12
> pckbd0 at pckbc0 (kbd slot)
> wskbd0 at pckbd0 mux 1
> pcppi0 at isa0 port 0x61
> spkr0 at pcppi0
> wbsio0 at isa0 port 0x2e/2: NCT6779D rev 0x62
> lm1 at wbsio0 port 0x290/8: NCT6779D
> pci10 at mainbus0 bus 128
> "Intel E5 v3 Address Map" rev 0x02 at pci10 dev 5 function 0 not configured
> "Intel E5 v3 Hot Plug" rev 0x02 at pci10 dev 5 function 1 not configured
> "Intel E5 v3 Error Reporting" rev 0x02 at pci10 dev 5 function 2 not configured
> "Intel E5 v3 I/O APIC" rev 0x02 at pci10 dev 5 function 4 not configured
> vmm0 at mainbus0: VMX/EPT
> uhub3 at uhub0 port 7 configuration 1 interface 0 "American Megatrends Inc. Virtual Hub" rev 2.00/1.00 addr 2
> umass0 at uhub3 port 1 configuration 1 interface 0 "American Megatrends Inc. Virtual Cdrom Device" rev 2.00/1.00 addr 3
> umass0: using SCSI over Bulk-Only
> scsibus4 at umass0: 2 targets, initiator 0
> cd1 at scsibus4 targ 1 lun 0: <AMI, Virtual CDROM0, 1.00> removable
> cd2 at scsibus4 targ 1 lun 1: <AMI, Virtual CDROM1, 1.00> removable
> umass1 at uhub3 port 2 configuration 1 interface 0 "American Megatrends Inc. Virtual Floppy Device" rev 2.00/1.00 addr 4
> umass1: using SCSI over Bulk-Only
> scsibus5 at umass1: 2 targets, initiator 0
> sd2 at scsibus5 targ 1 lun 0: <AMI, Virtual Floppy0, 1.00> removable
> sd3 at scsibus5 targ 1 lun 1: <AMI, Virtual Floppy1, 1.00> removable
> umass2 at uhub3 port 3 configuration 1 interface 0 "American Megatrends Inc. Virtual HardDisk Device" rev 2.00/1.00 addr 5
> umass2: using SCSI over Bulk-Only
> scsibus6 at umass2: 2 targets, initiator 0
> sd4 at scsibus6 targ 1 lun 0: <AMI, Virtual HDisk0, 1.00> removable
> sd5 at scsibus6 targ 1 lun 1: <AMI, Virtual HDisk1, 1.00> removable
> sd6 at scsibus6 targ 1 lun 2: <AMI, Virtual HDisk2, 1.00> removable
> uhidev0 at uhub3 port 4 configuration 1 interface 0 "American Megatrends Inc. Virtual Keyboard and Mouse" rev 1.10/1.00 addr 6
> uhidev0: iclass 3/1
> ukbd0 at uhidev0: 8 variable keys, 6 key codes
> wskbd1 at ukbd0 mux 1
> uhidev1 at uhub3 port 4 configuration 1 interface 1 "American Megatrends Inc. Virtual Keyboard and Mouse" rev 1.10/1.00 addr 6
> uhidev1: iclass 3/1
> ums0 at uhidev1: 3 buttons, Z dir
> wsmouse0 at ums0 mux 0
> uhub4 at uhub1 port 1 configuration 1 interface 0 "Intel Rate Matching Hub" rev 2.00/0.05 addr 2
> uhub5 at uhub2 port 1 configuration 1 interface 0 "Intel Rate Matching Hub" rev 2.00/0.05 addr 2
> vscsi0 at root
> scsibus7 at vscsi0: 256 targets
> softraid0 at root
> scsibus8 at softraid0: 256 targets
> root on sd1a (7336a1556dde6f59.a) swap on sd1b dump on sd1b

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Jonathan Matthew-4
In reply to this post by Mark Kettenis
On Tue, Jul 28, 2020 at 07:30:36PM +0200, Mark Kettenis wrote:

> > Date: Tue, 28 Jul 2020 21:42:46 +1000
> > From: Jonathan Matthew <[hidden email]>
> >
> > On Tue, Jul 28, 2020 at 11:12:21AM +0200, Mark Kettenis wrote:
> > > > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > > > From: Jonathan Matthew <[hidden email]>
> > > >
> > > > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > > > From: Mark Kettenis <[hidden email]>
> > > > > >
> > > > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > > > diff tries to support machines with firmware that implements this.  If
> > > > > > you see something like:
> > > > > >
> > > > > >   "ACPI0007" at acpi0 not configured
> > > > > >
> > > > > > please try the following diff and report back with an updated dmesg.
> > > > > >
> > > > > > Cheers,
> > > > > >
> > > > > > Mark
> > > > >
> > > > > And now with the right diff...
> > > >
> > > > On a dell r6415, it looks like this:
> > > >
> > > > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > > > all the way up to
> > > > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> > > >
> > > > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
> > >
> > > Yes.  It is not immediately obvious how this should work.  Do we need
> > > to copy the aml_node pointer or not?  We don't do that for
> > > AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> > > similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> > > carry any additional information.  So we end up with just an empty
> > > case to avoid the warning.
> > >
> > > Does this work on the Dell machines?
> >
> > We've seen crashes in pool_cache_get() in various places after all the acpicpus
> > attach, which we haven't seen before on these machines, so I think it's
> > corrupting memory somehow.
>
> Does that happen with only the acpicpu(4) diff?

Yes.  Looking at this a bit more, in the case where aml_evalnode() can't
copy the result value, it leaves it uninitialised, which means we'll call
aml_freevalue(&res) where res is stack junk.  memset(&res, 0, sizeof(res))
seems to fix it.

>
> > With this addition, we get this for each cpu:
> > acpicpu0 at acpi0: C1(@1 halt!)
>
> The exclamation mark indicates that this is the "fallback" C-state.
> Is there a _CST method at all?
>
> Anyway, given that this is a server system, it isn't really surprising
> that there isn't any fancy power saving stuff.

Right, there doesn't seem to be any.  The processor devices look like this
in the aml:

    Scope (_SB)
    {
        Device (C000)
        {
            Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
            Name (_UID, 0x00)  // _UID: Unique ID
        }

        Device (C001)
        {
            Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
            Name (_UID, 0x01)  // _UID: Unique ID
        }

 .. and so on.

>
> > > Index: dev/acpi/dsdt.c
> > > ===================================================================
> > > RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
> > > retrieving revision 1.252
> > > diff -u -p -r1.252 dsdt.c
> > > --- dev/acpi/dsdt.c 21 Jul 2020 03:48:06 -0000 1.252
> > > +++ dev/acpi/dsdt.c 28 Jul 2020 09:04:15 -0000
> > > @@ -996,6 +996,8 @@ aml_copyvalue(struct aml_value *lhs, str
> > >   lhs->v_objref = rhs->v_objref;
> > >   aml_addref(lhs->v_objref.ref, "");
> > >   break;
> > > + case AML_OBJTYPE_DEVICE:
> > > + break;
> > >   default:
> > >   printf("copyvalue: %x", rhs->type);
> > >   break;
> >
> >

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Mark Kettenis
> Date: Wed, 29 Jul 2020 10:38:55 +1000
> From: Jonathan Matthew <[hidden email]>
>
> On Tue, Jul 28, 2020 at 07:30:36PM +0200, Mark Kettenis wrote:
> > > Date: Tue, 28 Jul 2020 21:42:46 +1000
> > > From: Jonathan Matthew <[hidden email]>
> > >
> > > On Tue, Jul 28, 2020 at 11:12:21AM +0200, Mark Kettenis wrote:
> > > > > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > > > > From: Jonathan Matthew <[hidden email]>
> > > > >
> > > > > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > > > > From: Mark Kettenis <[hidden email]>
> > > > > > >
> > > > > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > > > > diff tries to support machines with firmware that implements this.  If
> > > > > > > you see something like:
> > > > > > >
> > > > > > >   "ACPI0007" at acpi0 not configured
> > > > > > >
> > > > > > > please try the following diff and report back with an updated dmesg.
> > > > > > >
> > > > > > > Cheers,
> > > > > > >
> > > > > > > Mark
> > > > > >
> > > > > > And now with the right diff...
> > > > >
> > > > > On a dell r6415, it looks like this:
> > > > >
> > > > > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > > > > all the way up to
> > > > > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> > > > >
> > > > > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
> > > >
> > > > Yes.  It is not immediately obvious how this should work.  Do we need
> > > > to copy the aml_node pointer or not?  We don't do that for
> > > > AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> > > > similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> > > > carry any additional information.  So we end up with just an empty
> > > > case to avoid the warning.
> > > >
> > > > Does this work on the Dell machines?
> > >
> > > We've seen crashes in pool_cache_get() in various places after all the acpicpus
> > > attach, which we haven't seen before on these machines, so I think it's
> > > corrupting memory somehow.
> >
> > Does that happen with only the acpicpu(4) diff?
>
> Yes.  Looking at this a bit more, in the case where aml_evalnode() can't
> copy the result value, it leaves it uninitialised, which means we'll call
> aml_freevalue(&res) where res is stack junk.  memset(&res, 0, sizeof(res))
> seems to fix it.

Eh, where exactly?

> > > With this addition, we get this for each cpu:
> > > acpicpu0 at acpi0: C1(@1 halt!)
> >
> > The exclamation mark indicates that this is the "fallback" C-state.
> > Is there a _CST method at all?
> >
> > Anyway, given that this is a server system, it isn't really surprising
> > that there isn't any fancy power saving stuff.
>
> Right, there doesn't seem to be any.  The processor devices look like this
> in the aml:
>
>     Scope (_SB)
>     {
>         Device (C000)
>         {
>             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
>             Name (_UID, 0x00)  // _UID: Unique ID
>         }
>
>         Device (C001)
>         {
>             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
>             Name (_UID, 0x01)  // _UID: Unique ID
>         }
>
>  .. and so on.

Usually there is an SSDT that fills in the details.  The acpidump
output I have for the r6415 does have one. but it doesn't add
anything.

> > > > Index: dev/acpi/dsdt.c
> > > > ===================================================================
> > > > RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
> > > > retrieving revision 1.252
> > > > diff -u -p -r1.252 dsdt.c
> > > > --- dev/acpi/dsdt.c 21 Jul 2020 03:48:06 -0000 1.252
> > > > +++ dev/acpi/dsdt.c 28 Jul 2020 09:04:15 -0000
> > > > @@ -996,6 +996,8 @@ aml_copyvalue(struct aml_value *lhs, str
> > > >   lhs->v_objref = rhs->v_objref;
> > > >   aml_addref(lhs->v_objref.ref, "");
> > > >   break;
> > > > + case AML_OBJTYPE_DEVICE:
> > > > + break;
> > > >   default:
> > > >   printf("copyvalue: %x", rhs->type);
> > > >   break;
> > >
> > >
>

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Jonathan Matthew-4
On Wed, Jul 29, 2020 at 10:06:14AM +0200, Mark Kettenis wrote:

> > Date: Wed, 29 Jul 2020 10:38:55 +1000
> > From: Jonathan Matthew <[hidden email]>
> >
> > On Tue, Jul 28, 2020 at 07:30:36PM +0200, Mark Kettenis wrote:
> > > > Date: Tue, 28 Jul 2020 21:42:46 +1000
> > > > From: Jonathan Matthew <[hidden email]>
> > > >
> > > > On Tue, Jul 28, 2020 at 11:12:21AM +0200, Mark Kettenis wrote:
> > > > > > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > > > > > From: Jonathan Matthew <[hidden email]>
> > > > > >
> > > > > > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > > > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > > > > > From: Mark Kettenis <[hidden email]>
> > > > > > > >
> > > > > > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > > > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > > > > > diff tries to support machines with firmware that implements this.  If
> > > > > > > > you see something like:
> > > > > > > >
> > > > > > > >   "ACPI0007" at acpi0 not configured
> > > > > > > >
> > > > > > > > please try the following diff and report back with an updated dmesg.
> > > > > > > >
> > > > > > > > Cheers,
> > > > > > > >
> > > > > > > > Mark
> > > > > > >
> > > > > > > And now with the right diff...
> > > > > >
> > > > > > On a dell r6415, it looks like this:
> > > > > >
> > > > > > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > > > > > all the way up to
> > > > > > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> > > > > >
> > > > > > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
> > > > >
> > > > > Yes.  It is not immediately obvious how this should work.  Do we need
> > > > > to copy the aml_node pointer or not?  We don't do that for
> > > > > AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> > > > > similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> > > > > carry any additional information.  So we end up with just an empty
> > > > > case to avoid the warning.
> > > > >
> > > > > Does this work on the Dell machines?
> > > >
> > > > We've seen crashes in pool_cache_get() in various places after all the acpicpus
> > > > attach, which we haven't seen before on these machines, so I think it's
> > > > corrupting memory somehow.
> > >
> > > Does that happen with only the acpicpu(4) diff?
> >
> > Yes.  Looking at this a bit more, in the case where aml_evalnode() can't
> > copy the result value, it leaves it uninitialised, which means we'll call
> > aml_freevalue(&res) where res is stack junk.  memset(&res, 0, sizeof(res))
> > seems to fix it.
>
> Eh, where exactly?

I had it just before the call to aml_evalnode(), but that can't be it,
since aml_evalnode() does the same thing.

>
> > > > With this addition, we get this for each cpu:
> > > > acpicpu0 at acpi0: C1(@1 halt!)
> > >
> > > The exclamation mark indicates that this is the "fallback" C-state.
> > > Is there a _CST method at all?
> > >
> > > Anyway, given that this is a server system, it isn't really surprising
> > > that there isn't any fancy power saving stuff.
> >
> > Right, there doesn't seem to be any.  The processor devices look like this
> > in the aml:
> >
> >     Scope (_SB)
> >     {
> >         Device (C000)
> >         {
> >             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
> >             Name (_UID, 0x00)  // _UID: Unique ID
> >         }
> >
> >         Device (C001)
> >         {
> >             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
> >             Name (_UID, 0x01)  // _UID: Unique ID
> >         }
> >
> >  .. and so on.
>
> Usually there is an SSDT that fills in the details.  The acpidump
> output I have for the r6415 does have one. but it doesn't add
> anything.

Same here.

>
> > > > > Index: dev/acpi/dsdt.c
> > > > > ===================================================================
> > > > > RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
> > > > > retrieving revision 1.252
> > > > > diff -u -p -r1.252 dsdt.c
> > > > > --- dev/acpi/dsdt.c 21 Jul 2020 03:48:06 -0000 1.252
> > > > > +++ dev/acpi/dsdt.c 28 Jul 2020 09:04:15 -0000
> > > > > @@ -996,6 +996,8 @@ aml_copyvalue(struct aml_value *lhs, str
> > > > >   lhs->v_objref = rhs->v_objref;
> > > > >   aml_addref(lhs->v_objref.ref, "");
> > > > >   break;
> > > > > + case AML_OBJTYPE_DEVICE:
> > > > > + break;
> > > > >   default:
> > > > >   printf("copyvalue: %x", rhs->type);
> > > > >   break;
> > > >
> > > >
> >

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Jonathan Matthew-4
On Wed, Jul 29, 2020 at 08:29:31PM +1000, Jonathan Matthew wrote:

> On Wed, Jul 29, 2020 at 10:06:14AM +0200, Mark Kettenis wrote:
> > > Date: Wed, 29 Jul 2020 10:38:55 +1000
> > > From: Jonathan Matthew <[hidden email]>
> > >
> > > On Tue, Jul 28, 2020 at 07:30:36PM +0200, Mark Kettenis wrote:
> > > > > Date: Tue, 28 Jul 2020 21:42:46 +1000
> > > > > From: Jonathan Matthew <[hidden email]>
> > > > >
> > > > > On Tue, Jul 28, 2020 at 11:12:21AM +0200, Mark Kettenis wrote:
> > > > > > > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > > > > > > From: Jonathan Matthew <[hidden email]>
> > > > > > >
> > > > > > > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > > > > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > > > > > > From: Mark Kettenis <[hidden email]>
> > > > > > > > >
> > > > > > > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > > > > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > > > > > > diff tries to support machines with firmware that implements this.  If
> > > > > > > > > you see something like:
> > > > > > > > >
> > > > > > > > >   "ACPI0007" at acpi0 not configured
> > > > > > > > >
> > > > > > > > > please try the following diff and report back with an updated dmesg.
> > > > > > > > >
> > > > > > > > > Cheers,
> > > > > > > > >
> > > > > > > > > Mark
> > > > > > > >
> > > > > > > > And now with the right diff...
> > > > > > >
> > > > > > > On a dell r6415, it looks like this:
> > > > > > >
> > > > > > > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > > > > > > all the way up to
> > > > > > > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> > > > > > >
> > > > > > > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
> > > > > >
> > > > > > Yes.  It is not immediately obvious how this should work.  Do we need
> > > > > > to copy the aml_node pointer or not?  We don't do that for
> > > > > > AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> > > > > > similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> > > > > > carry any additional information.  So we end up with just an empty
> > > > > > case to avoid the warning.
> > > > > >
> > > > > > Does this work on the Dell machines?
> > > > >
> > > > > We've seen crashes in pool_cache_get() in various places after all the acpicpus
> > > > > attach, which we haven't seen before on these machines, so I think it's
> > > > > corrupting memory somehow.
> > > >
> > > > Does that happen with only the acpicpu(4) diff?
> > >
> > > Yes.  Looking at this a bit more, in the case where aml_evalnode() can't
> > > copy the result value, it leaves it uninitialised, which means we'll call
> > > aml_freevalue(&res) where res is stack junk.  memset(&res, 0, sizeof(res))
> > > seems to fix it.
> >
> > Eh, where exactly?
>
> I had it just before the call to aml_evalnode(), but that can't be it,
> since aml_evalnode() does the same thing.

Much better theory: the acpicpu_sc array has MAXCPUS elements, but on this
system (and all R6415s, as far as I can tell) we have more acpicpu devices
than that.  I suppose we should just make acpicpu_match fail if cf->cf_unit
is >= MAXCPUS as we do with the actual cpu devices.


Index: acpicpu.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpicpu.c,v
retrieving revision 1.85
diff -u -p -r1.85 acpicpu.c
--- acpicpu.c 27 May 2020 05:02:21 -0000 1.85
+++ acpicpu.c 1 Aug 2020 08:18:49 -0000
@@ -186,6 +186,11 @@ struct cfdriver acpicpu_cd = {
  NULL, "acpicpu", DV_DULL
 };
 
+const char *acpicpu_hids[] = {
+ "ACPI0007",
+ NULL
+};
+
 extern int setperf_prio;
 
 struct acpicpu_softc *acpicpu_sc[MAXCPUS];
@@ -650,6 +655,12 @@ acpicpu_match(struct device *parent, voi
  struct acpi_attach_args *aa = aux;
  struct cfdata *cf = match;
 
+ if (cf->cf_unit >= MAXCPUS)
+ return (0);
+
+ if (acpi_matchhids(aa, acpicpu_hids, cf->cf_driver->cd_name))
+ return (1);
+
  /* sanity */
  if (aa->aaa_name == NULL ||
     strcmp(aa->aaa_name, cf->cf_driver->cd_name) != 0 ||
@@ -665,6 +676,7 @@ acpicpu_attach(struct device *parent, st
  struct acpicpu_softc *sc = (struct acpicpu_softc *)self;
  struct acpi_attach_args *aa = aux;
  struct aml_value res;
+ int64_t uid;
  int i;
  uint32_t status = 0;
  CPU_INFO_ITERATOR cii;
@@ -675,6 +687,10 @@ acpicpu_attach(struct device *parent, st
  acpicpu_sc[sc->sc_dev.dv_unit] = sc;
 
  SLIST_INIT(&sc->sc_cstates);
+
+ if (aml_evalinteger(sc->sc_acpi, sc->sc_devnode,
+    "_UID", 0, NULL, &uid) == 0)
+ sc->sc_cpu = uid;
 
  if (aml_evalnode(sc->sc_acpi, sc->sc_devnode, 0, NULL, &res) == 0) {
  if (res.type == AML_OBJTYPE_PROCESSOR) {

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Jan Stary
On Aug 01 18:23:08, [hidden email] wrote:

> Much better theory: the acpicpu_sc array has MAXCPUS elements, but on this
> system (and all R6415s, as far as I can tell) we have more acpicpu devices
> than that.  I suppose we should just make acpicpu_match fail if cf->cf_unit
> is >= MAXCPUS as we do with the actual cpu devices.
>
>
> Index: acpicpu.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/acpi/acpicpu.c,v
> retrieving revision 1.85
> diff -u -p -r1.85 acpicpu.c
> --- acpicpu.c 27 May 2020 05:02:21 -0000 1.85
> +++ acpicpu.c 1 Aug 2020 08:18:49 -0000
> @@ -186,6 +186,11 @@ struct cfdriver acpicpu_cd = {
>   NULL, "acpicpu", DV_DULL
>  };
>  
> +const char *acpicpu_hids[] = {
> + "ACPI0007",
> + NULL
> +};
> +
>  extern int setperf_prio;
>  
>  struct acpicpu_softc *acpicpu_sc[MAXCPUS];
> @@ -650,6 +655,12 @@ acpicpu_match(struct device *parent, voi
>   struct acpi_attach_args *aa = aux;
>   struct cfdata *cf = match;
>  
> + if (cf->cf_unit >= MAXCPUS)
> + return (0);
> +
> + if (acpi_matchhids(aa, acpicpu_hids, cf->cf_driver->cd_name))
> + return (1);
> +
>   /* sanity */
>   if (aa->aaa_name == NULL ||
>      strcmp(aa->aaa_name, cf->cf_driver->cd_name) != 0 ||
> @@ -665,6 +676,7 @@ acpicpu_attach(struct device *parent, st
>   struct acpicpu_softc *sc = (struct acpicpu_softc *)self;
>   struct acpi_attach_args *aa = aux;
>   struct aml_value res;
> + int64_t uid;
>   int i;
>   uint32_t status = 0;
>   CPU_INFO_ITERATOR cii;
> @@ -675,6 +687,10 @@ acpicpu_attach(struct device *parent, st
>   acpicpu_sc[sc->sc_dev.dv_unit] = sc;
>  
>   SLIST_INIT(&sc->sc_cstates);
> +
> + if (aml_evalinteger(sc->sc_acpi, sc->sc_devnode,
> +    "_UID", 0, NULL, &uid) == 0)
> + sc->sc_cpu = uid;
>  
>   if (aml_evalnode(sc->sc_acpi, sc->sc_devnode, 0, NULL, &res) == 0) {
>   if (res.type == AML_OBJTYPE_PROCESSOR) {
>

See below for the old and the new dmesg of current/amd64 at an APU2.

Edited highlights of the diff:

--- apu2e.20200610 Wed Jun 10 22:24:25 2020
+++ apu2e.20200801 Sat Aug  1 19:17:00 2020
-"ACPI0007" at acpi0 not configured
-"ACPI0007" at acpi0 not configured
-"ACPI0007" at acpi0 not configured
-"ACPI0007" at acpi0 not configured
-"ACPI0007" at acpi0 not configured
-"ACPI0007" at acpi0 not configured
-"ACPI0007" at acpi0 not configured
-"ACPI0007" at acpi0 not configured
+acpicpu0 at acpi0copyvalue: 6: C2(0@400 io@0x1771), C1(@1 halt!), PSS
+acpicpu1 at acpi0copyvalue: 6: C2(0@400 io@0x1771), C1(@1 halt!), PSS
+acpicpu2 at acpi0copyvalue: 6: C2(0@400 io@0x1771), C1(@1 halt!), PSS
+acpicpu3 at acpi0copyvalue: 6: C2(0@400 io@0x1771), C1(@1 halt!), PSS
+acpicpu4 at acpi0copyvalue: 6: no cpu matching ACPI ID 4
+acpicpu5 at acpi0copyvalue: 6: no cpu matching ACPI ID 5
+acpicpu6 at acpi0copyvalue: 6: no cpu matching ACPI ID 6
+acpicpu7 at acpi0copyvalue: 6: no cpu matching ACPI ID 7
+cpu0: 998 MHz: speeds: 1000 800 600 MHz

        Jan


OpenBSD 6.7-current (GENERIC.MP) #0: Wed Jun 10 22:14:40 CEST 2020
    [hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 1996484608 (1903MB)
avail mem = 1921105920 (1832MB)
random: good seed from bootblocks
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.8 @ 0x7ee8d020 (13 entries)
bios0: vendor coreboot version "v4.11.0.5" date 03/29/2020
bios0: PC Engines apu2
acpi0 at bios0: ACPI 4.0
acpi0: sleep states S0 S1 S4 S5
acpi0: tables DSDT FACP SSDT MCFG TPM2 APIC HEST SSDT SSDT HPET
acpi0: wakeup devices PWRB(S4) PBR4(S4) PBR5(S4) PBR6(S4) PBR7(S4) PBR8(S4) UOH1(S3) UOH2(S3) UOH3(S3) UOH4(S3) UOH5(S3) UOH6(S3) XHC0(S4)
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpimcfg0 at acpi0
acpimcfg0: addr 0xf8000000, bus 0-64
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: AMD GX-412TC SOC, 998.26 MHz, 16-30-01
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
cpu0: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB 64b/line 16-way L2 cache
cpu0: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu0: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu0: mwait min=64, max=64, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: AMD GX-412TC SOC, 998.14 MHz, 16-30-01
cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
cpu1: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB 64b/line 16-way L2 cache
cpu1: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu1: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu1: smt 0, core 1, package 0
cpu2 at mainbus0: apid 2 (application processor)
cpu2: AMD GX-412TC SOC, 998.14 MHz, 16-30-01
cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
cpu2: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB 64b/line 16-way L2 cache
cpu2: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu2: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu2: smt 0, core 2, package 0
cpu3 at mainbus0: apid 3 (application processor)
cpu3: AMD GX-412TC SOC, 998.14 MHz, 16-30-01
cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
cpu3: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB 64b/line 16-way L2 cache
cpu3: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu3: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu3: smt 0, core 3, package 0
ioapic0 at mainbus0: apid 4 pa 0xfec00000, version 21, 24 pins
ioapic1 at mainbus0: apid 5 pa 0xfec20000, version 21, 32 pins
acpihpet0 at acpi0: 14318180 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (PBR4)
acpiprt2 at acpi0: bus 1 (PBR5)
acpiprt3 at acpi0: bus 2 (PBR6)
acpiprt4 at acpi0: bus 3 (PBR7)
acpiprt5 at acpi0: bus 4 (PBR8)
acpitz0 at acpi0: critical temperature is 115 degC
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
"ACPI0007" at acpi0 not configured
acpibtn0 at acpi0: PWRB
acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001
extent `acpipci0 pcibus' (0x0 - 0xff), flags=0
extent `pciio' (0x0 - 0xffffffff), flags=0
     0x10000 - 0xffffffff
extent `pcimem' (0x0 - 0xffffffffffffffff), flags=0
     0x0 - 0x77ffffff
     0x7ee8d000 - 0x7effffff
     0xf8000000 - 0xfbffffff
     0xfed40000 - 0xfed44fff
     0x40000000000 - 0xffffffffffffffff
acpicmos0 at acpi0
amdgpio0 at acpi0 GPIO uid 0 addr 0xfed81500/0x300 irq 7, 184 pins
"PRP0001" at acpi0 not configured
"PRP0001" at acpi0 not configured
"PRP0001" at acpi0 not configured
"PRP0001" at acpi0 not configured
"PRP0001" at acpi0 not configured
"PRP0001" at acpi0 not configured
"BOOT0000" at acpi0 not configured
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "AMD 16h Root Complex" rev 0x00
vendor "AMD", unknown product 0x1567 (class system subclass IOMMU, rev 0x00) at pci0 dev 0 function 2 not configured
pchb1 at pci0 dev 2 function 0 "AMD 16h Host" rev 0x00
ppb0 at pci0 dev 2 function 2 "AMD 16h PCIE" rev 0x00: msi
pci1 at ppb0 bus 1
em0 at pci1 dev 0 function 0 "Intel I211" rev 0x03: msi, address 00:0d:b9:56:5e:fc
ppb1 at pci0 dev 2 function 3 "AMD 16h PCIE" rev 0x00: msi
pci2 at ppb1 bus 2
em1 at pci2 dev 0 function 0 "Intel I211" rev 0x03: msi, address 00:0d:b9:56:5e:fd
ppb2 at pci0 dev 2 function 4 "AMD 16h PCIE" rev 0x00: msi
pci3 at ppb2 bus 3
em2 at pci3 dev 0 function 0 "Intel I211" rev 0x03: msi, address 00:0d:b9:56:5e:fe
ppb3 at pci0 dev 2 function 5 "AMD 16h PCIE" rev 0x00: msi
pci4 at ppb3 bus 4
athn0 at pci4 dev 0 function 0 "Atheros AR9281" rev 0x01: apic 5 int 16
athn0: AR9280 rev 2 (2T2R), ROM rev 11, address c0:d9:62:75:ee:26
ccp0 at pci0 dev 8 function 0 "AMD 16h Crypto" rev 0x00
xhci0 at pci0 dev 16 function 0 "AMD Bolton xHCI" rev 0x11: msi, xHCI 1.0
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
ahci0 at pci0 dev 17 function 0 "AMD Hudson-2 SATA" rev 0x40: apic 4 int 19, AHCI 1.3
ahci0: port 0: 6.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, SanDisk SSD U100, 10.5> naa.5001b449c6c365ca
sd0: 15272MB, 512 bytes/sector, 31277232 sectors, thin
ehci0 at pci0 dev 19 function 0 "AMD Hudson-2 USB2" rev 0x39: apic 4 int 18
usb1 at ehci0: USB revision 2.0
uhub1 at usb1 configuration 1 interface 0 "AMD EHCI root hub" rev 2.00/1.00 addr 1
piixpm0 at pci0 dev 20 function 0 "AMD Hudson-2 SMBus" rev 0x42: SMI
iic0 at piixpm0
iic1 at piixpm0
iic1: addr 0x4c 3e=00 48=00 4a=00 4e=00 fc=00 fe=00 words 00=ffff 01=ffff 02=ffff 03=ffff 04=ffff 05=ffff 06=ffff 07=ffff
pcib0 at pci0 dev 20 function 3 "AMD Hudson-2 LPC" rev 0x11
sdhc0 at pci0 dev 20 function 7 "AMD Bolton SD/MMC" rev 0x01: apic 4 int 16
sdhc0: SDHC 3.0, 200 MHz base clock
sdmmc0 at sdhc0: 8-bit, sd high-speed, mmc high-speed, dma
pchb2 at pci0 dev 24 function 0 "AMD 16h Link Cfg" rev 0x00
pchb3 at pci0 dev 24 function 1 "AMD 16h Address Map" rev 0x00
pchb4 at pci0 dev 24 function 2 "AMD 16h DRAM Cfg" rev 0x00
km0 at pci0 dev 24 function 3 "AMD 16h Misc Cfg" rev 0x00
pchb5 at pci0 dev 24 function 4 "AMD 16h CPU Power" rev 0x00
pchb6 at pci0 dev 24 function 5 "AMD 16h Misc Cfg" rev 0x00
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
com2 at isa0 port 0x3e8/8 irq 5: ns16550a, 16 byte fifo
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
intr_establish: pic ioapic0 pin 7: can't share type 3 with 2
wbsio0 at isa0 port 0x2e/2: NCT5104D rev 0x53
vmm0 at mainbus0: SVM/RVI
uhub2 at uhub1 port 1 configuration 1 interface 0 "Advanced Micro Devices Hub" rev 2.00/0.18 addr 2
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on sd0a (cccc9705ab789db3.a) swap on sd0b dump on sd0b


OpenBSD 6.7-current (GENERIC.MP) #0: Sat Aug  1 18:28:34 CEST 2020
    [hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 1996484608 (1903MB)
avail mem = 1920937984 (1831MB)
random: good seed from bootblocks
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.8 @ 0x7ee8d020 (13 entries)
bios0: vendor coreboot version "v4.11.0.5" date 03/29/2020
bios0: PC Engines apu2
acpi0 at bios0: ACPI 4.0
acpi0: sleep states S0 S1 S4 S5
acpi0: tables DSDT FACP SSDT MCFG TPM2 APIC HEST SSDT SSDT HPET
acpi0: wakeup devices PWRB(S4) PBR4(S4) PBR5(S4) PBR6(S4) PBR7(S4) PBR8(S4) UOH1(S3) UOH2(S3) UOH3(S3) UOH4(S3) UOH5(S3) UOH6(S3) XHC0(S4)
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpimcfg0 at acpi0
acpimcfg0: addr 0xf8000000, bus 0-64
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: AMD GX-412TC SOC, 998.25 MHz, 16-30-01
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
cpu0: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB 64b/line 16-way L2 cache
cpu0: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu0: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu0: mwait min=64, max=64, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: AMD GX-412TC SOC, 998.14 MHz, 16-30-01
cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
cpu1: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB 64b/line 16-way L2 cache
cpu1: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu1: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu1: smt 0, core 1, package 0
cpu2 at mainbus0: apid 2 (application processor)
cpu2: AMD GX-412TC SOC, 998.19 MHz, 16-30-01
cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
cpu2: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB 64b/line 16-way L2 cache
cpu2: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu2: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu2: smt 0, core 2, package 0
cpu3 at mainbus0: apid 3 (application processor)
cpu3: AMD GX-412TC SOC, 998.14 MHz, 16-30-01
cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
cpu3: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB 64b/line 16-way L2 cache
cpu3: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu3: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu3: smt 0, core 3, package 0
ioapic0 at mainbus0: apid 4 pa 0xfec00000, version 21, 24 pins
ioapic1 at mainbus0: apid 5 pa 0xfec20000, version 21, 32 pins
acpihpet0 at acpi0: 14318180 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (PBR4)
acpiprt2 at acpi0: bus 1 (PBR5)
acpiprt3 at acpi0: bus 2 (PBR6)
acpiprt4 at acpi0: bus 3 (PBR7)
acpiprt5 at acpi0: bus 4 (PBR8)
acpitz0 at acpi0: critical temperature is 115 degC
acpicpu0 at acpi0copyvalue: 6: C2(0@400 io@0x1771), C1(@1 halt!), PSS
acpicpu1 at acpi0copyvalue: 6: C2(0@400 io@0x1771), C1(@1 halt!), PSS
acpicpu2 at acpi0copyvalue: 6: C2(0@400 io@0x1771), C1(@1 halt!), PSS
acpicpu3 at acpi0copyvalue: 6: C2(0@400 io@0x1771), C1(@1 halt!), PSS
acpicpu4 at acpi0copyvalue: 6: no cpu matching ACPI ID 4
acpicpu5 at acpi0copyvalue: 6: no cpu matching ACPI ID 5
acpicpu6 at acpi0copyvalue: 6: no cpu matching ACPI ID 6
acpicpu7 at acpi0copyvalue: 6: no cpu matching ACPI ID 7
acpibtn0 at acpi0: PWRB
acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001
extent `acpipci0 pcibus' (0x0 - 0xff), flags=0
extent `pciio' (0x0 - 0xffffffff), flags=0
     0x10000 - 0xffffffff
extent `pcimem' (0x0 - 0xffffffffffffffff), flags=0
     0x0 - 0x77ffffff
     0x7ee8d000 - 0x7effffff
     0xf8000000 - 0xfbffffff
     0xfed40000 - 0xfed44fff
     0x40000000000 - 0xffffffffffffffff
acpicmos0 at acpi0
amdgpio0 at acpi0 GPIO uid 0 addr 0xfed81500/0x300 irq 7, 184 pins
"PRP0001" at acpi0 not configured
"PRP0001" at acpi0 not configured
"PRP0001" at acpi0 not configured
"PRP0001" at acpi0 not configured
"PRP0001" at acpi0 not configured
"PRP0001" at acpi0 not configured
"BOOT0000" at acpi0 not configured
cpu0: 998 MHz: speeds: 1000 800 600 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "AMD 16h Root Complex" rev 0x00
vendor "AMD", unknown product 0x1567 (class system subclass IOMMU, rev 0x00) at pci0 dev 0 function 2 not configured
pchb1 at pci0 dev 2 function 0 "AMD 16h Host" rev 0x00
ppb0 at pci0 dev 2 function 2 "AMD 16h PCIE" rev 0x00: msi
pci1 at ppb0 bus 1
em0 at pci1 dev 0 function 0 "Intel I211" rev 0x03: msi, address 00:0d:b9:56:5e:fc
ppb1 at pci0 dev 2 function 3 "AMD 16h PCIE" rev 0x00: msi
pci2 at ppb1 bus 2
em1 at pci2 dev 0 function 0 "Intel I211" rev 0x03: msi, address 00:0d:b9:56:5e:fd
ppb2 at pci0 dev 2 function 4 "AMD 16h PCIE" rev 0x00: msi
pci3 at ppb2 bus 3
em2 at pci3 dev 0 function 0 "Intel I211" rev 0x03: msi, address 00:0d:b9:56:5e:fe
ppb3 at pci0 dev 2 function 5 "AMD 16h PCIE" rev 0x00: msi
pci4 at ppb3 bus 4
athn0 at pci4 dev 0 function 0 "Atheros AR9281" rev 0x01: apic 5 int 16
athn0: AR9280 rev 2 (2T2R), ROM rev 11, address c0:d9:62:75:ee:26
ccp0 at pci0 dev 8 function 0 "AMD 16h Crypto" rev 0x00
xhci0 at pci0 dev 16 function 0 "AMD Bolton xHCI" rev 0x11: msi, xHCI 1.0
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
ahci0 at pci0 dev 17 function 0 "AMD Hudson-2 SATA" rev 0x40: apic 4 int 19, AHCI 1.3
ahci0: port 0: 6.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, SanDisk SSD U100, 10.5> naa.5001b449c6c365ca
sd0: 15272MB, 512 bytes/sector, 31277232 sectors, thin
ehci0 at pci0 dev 19 function 0 "AMD Hudson-2 USB2" rev 0x39: apic 4 int 18
usb1 at ehci0: USB revision 2.0
uhub1 at usb1 configuration 1 interface 0 "AMD EHCI root hub" rev 2.00/1.00 addr 1
piixpm0 at pci0 dev 20 function 0 "AMD Hudson-2 SMBus" rev 0x42: SMI
iic0 at piixpm0
iic1 at piixpm0
iic1: addr 0x4c 3e=00 48=00 4a=00 4e=00 fc=00 fe=00 words 00=ffff 01=ffff 02=ffff 03=ffff 04=ffff 05=ffff 06=ffff 07=ffff
pcib0 at pci0 dev 20 function 3 "AMD Hudson-2 LPC" rev 0x11
sdhc0 at pci0 dev 20 function 7 "AMD Bolton SD/MMC" rev 0x01: apic 4 int 16
sdhc0: SDHC 3.0, 200 MHz base clock
sdmmc0 at sdhc0: 8-bit, sd high-speed, mmc high-speed, dma
pchb2 at pci0 dev 24 function 0 "AMD 16h Link Cfg" rev 0x00
pchb3 at pci0 dev 24 function 1 "AMD 16h Address Map" rev 0x00
pchb4 at pci0 dev 24 function 2 "AMD 16h DRAM Cfg" rev 0x00
km0 at pci0 dev 24 function 3 "AMD 16h Misc Cfg" rev 0x00
pchb5 at pci0 dev 24 function 4 "AMD 16h CPU Power" rev 0x00
pchb6 at pci0 dev 24 function 5 "AMD 16h Misc Cfg" rev 0x00
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
com2 at isa0 port 0x3e8/8 irq 5: ns16550a, 16 byte fifo
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
intr_establish: pic ioapic0 pin 7: can't share type 3 with 2
wbsio0 at isa0 port 0x2e/2: NCT5104D rev 0x53
vmm0 at mainbus0: SVM/RVI
uhub2 at uhub1 port 1 configuration 1 interface 0 "Advanced Micro Devices Hub" rev 2.00/0.18 addr 2
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on sd0a (cccc9705ab789db3.a) swap on sd0b dump on sd0b

Reply | Threaded
Open this post in threaded view
|

Re: acpicpu(4) and ACPI0007

Mark Kettenis
In reply to this post by Jonathan Matthew-4
> Date: Sat, 1 Aug 2020 18:23:08 +1000
> From: Jonathan Matthew <[hidden email]>
> Cc: [hidden email]
> Content-Type: text/plain; charset=us-ascii
> Content-Disposition: inline
>
> On Wed, Jul 29, 2020 at 08:29:31PM +1000, Jonathan Matthew wrote:
> > On Wed, Jul 29, 2020 at 10:06:14AM +0200, Mark Kettenis wrote:
> > > > Date: Wed, 29 Jul 2020 10:38:55 +1000
> > > > From: Jonathan Matthew <[hidden email]>
> > > >
> > > > On Tue, Jul 28, 2020 at 07:30:36PM +0200, Mark Kettenis wrote:
> > > > > > Date: Tue, 28 Jul 2020 21:42:46 +1000
> > > > > > From: Jonathan Matthew <[hidden email]>
> > > > > >
> > > > > > On Tue, Jul 28, 2020 at 11:12:21AM +0200, Mark Kettenis wrote:
> > > > > > > > Date: Tue, 28 Jul 2020 13:46:34 +1000
> > > > > > > > From: Jonathan Matthew <[hidden email]>
> > > > > > > >
> > > > > > > > On Mon, Jul 27, 2020 at 05:16:47PM +0200, Mark Kettenis wrote:
> > > > > > > > > > Date: Mon, 27 Jul 2020 17:02:41 +0200 (CEST)
> > > > > > > > > > From: Mark Kettenis <[hidden email]>
> > > > > > > > > >
> > > > > > > > > > Recent ACPI versions have deprecated "Processor()" nodes in favout of
> > > > > > > > > > "Device()" nodes with a _HID() method that returns "ACPI0007".  This
> > > > > > > > > > diff tries to support machines with firmware that implements this.  If
> > > > > > > > > > you see something like:
> > > > > > > > > >
> > > > > > > > > >   "ACPI0007" at acpi0 not configured
> > > > > > > > > >
> > > > > > > > > > please try the following diff and report back with an updated dmesg.
> > > > > > > > > >
> > > > > > > > > > Cheers,
> > > > > > > > > >
> > > > > > > > > > Mark
> > > > > > > > >
> > > > > > > > > And now with the right diff...
> > > > > > > >
> > > > > > > > On a dell r6415, it looks like this:
> > > > > > > >
> > > > > > > > acpicpu0 at acpi0copyvalue: 6: C1(@1 halt!)
> > > > > > > > all the way up to
> > > > > > > > acpicpu127 at acpi0copyvalue: 6: no cpu matching ACPI ID 127
> > > > > > > >
> > > > > > > > which I guess means aml_copyvalue() needs to learn how to copy AML_OBJTYPE_DEVICE.
> > > > > > >
> > > > > > > Yes.  It is not immediately obvious how this should work.  Do we need
> > > > > > > to copy the aml_node pointer or not?  We don't do that for
> > > > > > > AML_OBJTYPE_PROCESSOR and AML_OBJTYPE_POWERRSRC types which are
> > > > > > > similar to AML_OBJTYPE_DEVICE.  But AML_OBJTYPE_DEVICE object don't
> > > > > > > carry any additional information.  So we end up with just an empty
> > > > > > > case to avoid the warning.
> > > > > > >
> > > > > > > Does this work on the Dell machines?
> > > > > >
> > > > > > We've seen crashes in pool_cache_get() in various places after all the acpicpus
> > > > > > attach, which we haven't seen before on these machines, so I think it's
> > > > > > corrupting memory somehow.
> > > > >
> > > > > Does that happen with only the acpicpu(4) diff?
> > > >
> > > > Yes.  Looking at this a bit more, in the case where aml_evalnode() can't
> > > > copy the result value, it leaves it uninitialised, which means we'll call
> > > > aml_freevalue(&res) where res is stack junk.  memset(&res, 0, sizeof(res))
> > > > seems to fix it.
> > >
> > > Eh, where exactly?
> >
> > I had it just before the call to aml_evalnode(), but that can't be it,
> > since aml_evalnode() does the same thing.
>
> Much better theory: the acpicpu_sc array has MAXCPUS elements, but on this
> system (and all R6415s, as far as I can tell) we have more acpicpu devices
> than that.  I suppose we should just make acpicpu_match fail if cf->cf_unit
> is >= MAXCPUS as we do with the actual cpu devices.

Yes, that makes more sense.

There are a couple of problems with this approach:

1. The set of "active" CPUs might not actually be covered by the first
   MAXCPUS ACPI0007 devices that appear in the ACPI device tree.

2. There are machines that have both Processor() nodes and ACPI0007
   Device() nodes.  See for example the machine from the "no output on
   glass console after switching to serial" post from sthen@ on tech@.

To address #1 we probably should check for a matching CPU early in
acpicpu_attach() and only add it to the acpicpu_sc[] array if there is
a match.  The current code is actually broken since the array is
indexed by acpicpu(4) dv_unit in places but cpu_number() in other
places.

To address #2 we could move the check for Processor() nodes later and
skip it if any acpicpu(4) devices already attached.

Cheers,

Mark

P.S. I don't have amd64 hardware with ACPI0007 devices, so if you want
     to take this diff, that is fine with me.  If not, let me know and
     I'll try to come up with a suitable diff.


> Index: acpicpu.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/acpi/acpicpu.c,v
> retrieving revision 1.85
> diff -u -p -r1.85 acpicpu.c
> --- acpicpu.c 27 May 2020 05:02:21 -0000 1.85
> +++ acpicpu.c 1 Aug 2020 08:18:49 -0000
> @@ -186,6 +186,11 @@ struct cfdriver acpicpu_cd = {
>   NULL, "acpicpu", DV_DULL
>  };
>  
> +const char *acpicpu_hids[] = {
> + "ACPI0007",
> + NULL
> +};
> +
>  extern int setperf_prio;
>  
>  struct acpicpu_softc *acpicpu_sc[MAXCPUS];
> @@ -650,6 +655,12 @@ acpicpu_match(struct device *parent, voi
>   struct acpi_attach_args *aa = aux;
>   struct cfdata *cf = match;
>  
> + if (cf->cf_unit >= MAXCPUS)
> + return (0);
> +
> + if (acpi_matchhids(aa, acpicpu_hids, cf->cf_driver->cd_name))
> + return (1);
> +
>   /* sanity */
>   if (aa->aaa_name == NULL ||
>      strcmp(aa->aaa_name, cf->cf_driver->cd_name) != 0 ||
> @@ -665,6 +676,7 @@ acpicpu_attach(struct device *parent, st
>   struct acpicpu_softc *sc = (struct acpicpu_softc *)self;
>   struct acpi_attach_args *aa = aux;
>   struct aml_value res;
> + int64_t uid;
>   int i;
>   uint32_t status = 0;
>   CPU_INFO_ITERATOR cii;
> @@ -675,6 +687,10 @@ acpicpu_attach(struct device *parent, st
>   acpicpu_sc[sc->sc_dev.dv_unit] = sc;
>  
>   SLIST_INIT(&sc->sc_cstates);
> +
> + if (aml_evalinteger(sc->sc_acpi, sc->sc_devnode,
> +    "_UID", 0, NULL, &uid) == 0)
> + sc->sc_cpu = uid;
>  
>   if (aml_evalnode(sc->sc_acpi, sc->sc_devnode, 0, NULL, &res) == 0) {
>   if (res.type == AML_OBJTYPE_PROCESSOR) {
>