summaryrefslogtreecommitdiff
path: root/kernel/acpi.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/acpi.c')
-rw-r--r--kernel/acpi.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/kernel/acpi.c b/kernel/acpi.c
index 6d1fbc8..084c193 100644
--- a/kernel/acpi.c
+++ b/kernel/acpi.c
@@ -1,7 +1,7 @@
#include "kernel/kernel.h"
// Advanced Configuration and Power Interface
// http://wiki.xomb.org/index.php?title=ACPI_Tables
-
+// https://wiki.osdev.org/MADT#Entry_Type_1_:_I.2FO_APIC
#include <stdint.h>
@@ -58,11 +58,11 @@ typedef struct
uint8_t *apci_get_next_entry(uint8_t *addr,smp_processors *procdata)
{
- klog("Examining MADT Entry at 0x%08X",addr);
+ //klog("Examining MADT Entry at 0x%08X",addr);
if(*addr==0)
{
- klog("MADT Entry: LocalAPIC");
+ klog("MADT Entry: LocalAPIC ()");
// usable
if(addr[4]&1)
{
@@ -78,7 +78,7 @@ uint8_t *apci_get_next_entry(uint8_t *addr,smp_processors *procdata)
}
else if(*addr==1)
{
- klog("MADT Entry: IO APIC");
+ klog("MADT Entry: IO APIC 0x%08X",addr[4]);
}
else if(*addr==2)klog("MADT Entry: Interrupt Source Override");
else klog("MADT Entry: type:0x%X",*addr);
@@ -91,7 +91,7 @@ void acpi_check_madt(uint32_t *madt,smp_processors *procdata)
{
acpi_madt *table=(acpi_madt *)*madt;
- klog("Looking for MADT Table at %08X.",table);
+// klog("Looking for MADT Table at %08X.",table);
if(!strcmp_l("APIC",table->sig,4))
{
klog("Found MADT Table at 0x%08X",table);
@@ -102,6 +102,7 @@ void acpi_check_madt(uint32_t *madt,smp_processors *procdata)
entry+=sizeof(acpi_madt);
procdata->local_apic_address=table->apic_local;
+ procdata->flags=table->flags;
while(entry<end)
{
@@ -142,6 +143,7 @@ bool acpi_find(smp_processors *procdata)
{
klog("Looking for RSDP Table");
char *search=(char *)0x9f000; //will be 16 bit aligned;
+
procdata->processors=0;
procdata->boot=0;