diff options
-rw-r--r-- | sys/arch/amd64/amd64/acpi_machdep.c | 3 | ||||
-rw-r--r-- | sys/arch/amd64/amd64/lapic.c | 6 | ||||
-rw-r--r-- | sys/include/arch/amd64/lapic.h | 2 |
3 files changed, 6 insertions, 5 deletions
diff --git a/sys/arch/amd64/amd64/acpi_machdep.c b/sys/arch/amd64/amd64/acpi_machdep.c index 7533621..0f80607 100644 --- a/sys/arch/amd64/amd64/acpi_machdep.c +++ b/sys/arch/amd64/amd64/acpi_machdep.c @@ -34,6 +34,7 @@ #include <dev/acpi/tables.h> #include <machine/ioapic.h> #include <machine/lapic.h> +#include <vm/vm.h> #define pr_trace(fmt, ...) kprintf("acpi: " fmt, ##__VA_ARGS__) @@ -51,7 +52,7 @@ acpi_init_madt(void) cur = (uint8_t *)(madt + 1); end = (uint8_t *)madt + madt->hdr.length; - g_lapic_base = madt->lapic_addr; + g_lapic_base = PHYS_TO_VIRT(madt->lapic_addr); while (cur < end) { apichdr = (void *)cur; diff --git a/sys/arch/amd64/amd64/lapic.c b/sys/arch/amd64/amd64/lapic.c index ceb5428..b44b769 100644 --- a/sys/arch/amd64/amd64/lapic.c +++ b/sys/arch/amd64/amd64/lapic.c @@ -60,7 +60,7 @@ static struct timer lapic_timer; static uint8_t lapic_timer_vec = 0; -uintptr_t g_lapic_base = 0; +void *g_lapic_base = 0; void lapic_tmr_isr(void); @@ -104,7 +104,7 @@ lapic_readl(uint32_t reg) const struct cpu_info *ci = this_cpu(); if (!ci->has_x2apic) { - addr = (void *)(g_lapic_base + reg); + addr = PTR_OFFSET(g_lapic_base, reg); return mmio_read32(addr); } else { reg >>= 4; @@ -125,7 +125,7 @@ lapic_writel(uint32_t reg, uint64_t val) const struct cpu_info *ci = this_cpu(); if (!ci->has_x2apic) { - addr = (void *)(g_lapic_base + reg); + addr = PTR_OFFSET(g_lapic_base, reg); mmio_write32(addr, val); } else { reg >>= 4; diff --git a/sys/include/arch/amd64/lapic.h b/sys/include/arch/amd64/lapic.h index 19d9c2c..a566515 100644 --- a/sys/include/arch/amd64/lapic.h +++ b/sys/include/arch/amd64/lapic.h @@ -45,6 +45,6 @@ void lapic_init(void); void lapic_eoi(void); void lapic_send_ipi(uint8_t id, uint8_t shorthand, uint8_t vector); -extern uintptr_t g_lapic_base; +extern void *g_lapic_base; #endif /* !_MACHINE_LAPIC_H_ */ |