Page MenuHomeFreeBSD

D26133.id76021.diff
No OneTemporary

D26133.id76021.diff

Index: sys/arm64/acpica/acpi_machdep.c
===================================================================
--- sys/arm64/acpica/acpi_machdep.c
+++ sys/arm64/acpica/acpi_machdep.c
@@ -47,6 +47,16 @@
#include <dev/acpica/acpivar.h>
extern struct bus_space memmap_bus;
+uint64_t id_aa64mmfr0_parange[] = {
+ 4ULL /* GiB */ << 30,
+ 64ULL /* GiB */ << 30,
+ 1ULL /* TiB */ << 40,
+ 4ULL /* TiB */ << 40,
+ 16ULL /* TiB */ << 40,
+ 256ULL /* TiB */ << 40,
+ 4ULL /* PiB */ << 50,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
+};
int
acpi_machdep_init(device_t dev)
@@ -232,12 +242,14 @@
static void
parse_pxm_tables(void *dummy)
{
+ uint64_t mmfr0;
/* Only parse ACPI tables when booting via ACPI */
if (arm64_bus_method != ARM64_BUS_ACPI)
return;
- acpi_pxm_init(MAXCPU, (vm_paddr_t)1 << 40);
+ mmfr0 = READ_SPECIALREG(id_aa64mmfr0_el1);
+ acpi_pxm_init(MAXCPU, id_aa64mmfr0_parange[mmfr0 & 0xf]);
acpi_pxm_parse_tables();
acpi_pxm_set_mem_locality();
}

File Metadata

Mime Type
text/plain
Expires
Mon, Jul 20, 2:38 PM (1 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35275423
Default Alt Text
D26133.id76021.diff (971 B)

Event Timeline