Page MenuHomeFreeBSD

D17943.diff
No OneTemporary

D17943.diff

Index: head/sys/arm64/acpica/acpi_machdep.c
===================================================================
--- head/sys/arm64/acpica/acpi_machdep.c
+++ head/sys/arm64/acpica/acpi_machdep.c
@@ -233,3 +233,16 @@
return (bus_space_map(*tag, phys, size, 0, handle));
}
+
+#if MAXMEMDOM > 1
+static void
+parse_pxm_tables(void *dummy)
+{
+
+ acpi_pxm_init(MAXCPU, (vm_paddr_t)1 << 40);
+ acpi_pxm_parse_tables();
+ acpi_pxm_set_mem_locality();
+}
+SYSINIT(parse_pxm_tables, SI_SUB_VM - 1, SI_ORDER_FIRST, parse_pxm_tables,
+ NULL);
+#endif
Index: head/sys/arm64/arm64/mp_machdep.c
===================================================================
--- head/sys/arm64/arm64/mp_machdep.c
+++ head/sys/arm64/arm64/mp_machdep.c
@@ -442,13 +442,15 @@
{
ACPI_MADT_GENERIC_INTERRUPT *intr;
u_int *cpuid;
+ u_int id;
switch(entry->Type) {
case ACPI_MADT_TYPE_GENERIC_INTERRUPT:
intr = (ACPI_MADT_GENERIC_INTERRUPT *)entry;
cpuid = arg;
-
- start_cpu((*cpuid), intr->ArmMpidr);
+ id = *cpuid;
+ start_cpu(id, intr->ArmMpidr);
+ __pcpu[id].pc_acpi_id = intr->Uid;
(*cpuid)++;
break;
default:
@@ -478,6 +480,12 @@
madt_handler, &cpuid);
acpi_unmap_table(madt);
+
+#if MAXMEMDOM > 1
+ /* set proximity info */
+ acpi_pxm_set_cpu_locality();
+ acpi_pxm_free();
+#endif
}
#endif

File Metadata

Mime Type
text/plain
Expires
Thu, Feb 13, 1:41 PM (20 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16628359
Default Alt Text
D17943.diff (1 KB)

Event Timeline