diff options
Diffstat (limited to 'kernel/acpi.c')
| -rw-r--r-- | kernel/acpi.c | 12 |
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; |
