From fe5117f99db8ccdf67196e695f472d43c1f5bc3e Mon Sep 17 00:00:00 2001 From: Nathan Whitehorn Date: Tue, 22 Feb 2005 02:06:13 +0000 Subject: [PATCH] AML table parsing and discovery now works. AcpiEnableSubsystem() is still hangin g my machine hard, probably due to it mucking with the PCI controller way after boot. I'm going to try inserting it earlier in the boot process. Also added bett er debugging tracers, and removed the kernel_debugger() trace calls. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11444 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/bus_managers/acpi/acpi_busman.c | 6 ++++++ src/add-ons/kernel/bus_managers/acpi/oshaiku.c | 11 ++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c b/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c index d6891daa0e..38601adc0c 100644 --- a/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c +++ b/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c @@ -34,6 +34,12 @@ status_t acpi_std_ops(int32 op,...) { switch(op) { case B_MODULE_INIT: + + #ifdef ACPI_DEBUG_OUTPUT + AcpiDbgLevel = ACPI_DEBUG_ALL | ACPI_LV_VERBOSE; + AcpiDbgLayer = ACPI_ALL_COMPONENTS; + #endif + /* Bring up ACPI */ Status = AcpiInitializeSubsystem(); if (Status != AE_OK) { diff --git a/src/add-ons/kernel/bus_managers/acpi/oshaiku.c b/src/add-ons/kernel/bus_managers/acpi/oshaiku.c index 6f5adcef84..61518d87f0 100644 --- a/src/add-ons/kernel/bus_managers/acpi/oshaiku.c +++ b/src/add-ons/kernel/bus_managers/acpi/oshaiku.c @@ -501,15 +501,16 @@ AcpiOsMapMemory ( { #ifdef _KERNEL_MODE - unsigned page_offset = (unsigned int)ACPI_TO_POINTER(where) % B_PAGE_SIZE; - void *map_base = ACPI_TO_POINTER(where) - page_offset; + int page_offset = ACPI_TO_INTEGER(where) % B_PAGE_SIZE; + void *map_base = ACPI_PTR_ADD(void,where,0 - page_offset); + area_id area; - map_physical_memory("acpi_physical_mem_area", map_base, ROUNDUP(length + page_offset,B_PAGE_SIZE),B_ANY_KERNEL_BLOCK_ADDRESS,0,there); + area = map_physical_memory("acpi_physical_mem_area", map_base, ROUNDUP(length + page_offset,B_PAGE_SIZE),B_ANY_KERNEL_BLOCK_ADDRESS,0,there); - there += page_offset; + *there += page_offset; #endif - return AE_OK; + return (area > 0 ? AE_OK : AE_BAD_ADDRESS); }