Fix previous commit and add printing APIC id fields.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41437 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -39,11 +39,15 @@
|
|||||||
|
|
||||||
|
|
||||||
// Definitions for a 82093AA IO APIC controller
|
// Definitions for a 82093AA IO APIC controller
|
||||||
#define IO_APIC_IDENTIFICATION 0x00
|
#define IO_APIC_ID 0x00
|
||||||
#define IO_APIC_VERSION 0x01
|
#define IO_APIC_VERSION 0x01
|
||||||
#define IO_APIC_ARBITRATION 0x02
|
#define IO_APIC_ARBITRATION 0x02
|
||||||
#define IO_APIC_REDIRECTION_TABLE 0x10 // entry = base + 2 * index
|
#define IO_APIC_REDIRECTION_TABLE 0x10 // entry = base + 2 * index
|
||||||
|
|
||||||
|
// Fields for the id register
|
||||||
|
#define IO_APIC_ID_SHIFT 24
|
||||||
|
#define IO_APIC_ID_MASK 0x0f
|
||||||
|
|
||||||
// Fields for the version register
|
// Fields for the version register
|
||||||
#define IO_APIC_VERSION_SHIFT 0
|
#define IO_APIC_VERSION_SHIFT 0
|
||||||
#define IO_APIC_VERSION_MASK 0xff
|
#define IO_APIC_VERSION_MASK 0xff
|
||||||
@@ -306,10 +310,13 @@ ioapic_map_ioapic(struct ioapic& ioapic, phys_addr_t physicalAddress)
|
|||||||
ioapic.global_interrupt_last
|
ioapic.global_interrupt_last
|
||||||
= ioapic.global_interrupt_base + ioapic.max_redirection_entry;
|
= ioapic.global_interrupt_base + ioapic.max_redirection_entry;
|
||||||
|
|
||||||
dprintf("io-apic %u has range %u-%u, %u entries, version 0x%08lx\n",
|
uint8 id = (ioapic_read_32(ioapic, IO_APIC_ID) >> IO_APIC_ID_SHIFT)
|
||||||
ioapic.number, ioapic.global_interrupt_base,
|
& IO_APIC_ID_MASK;
|
||||||
|
|
||||||
|
dprintf("io-apic %u has range %u-%u, %u entries, version 0x%08lx, "
|
||||||
|
"apic-id %u\n", ioapic.number, ioapic.global_interrupt_base,
|
||||||
ioapic.global_interrupt_last, ioapic.max_redirection_entry + 1,
|
ioapic.global_interrupt_last, ioapic.max_redirection_entry + 1,
|
||||||
version);
|
version, id);
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
@@ -382,13 +389,15 @@ acpi_enumerate_ioapics(acpi_module_info* acpi)
|
|||||||
if (alreadyMapped != NULL) {
|
if (alreadyMapped != NULL) {
|
||||||
// we've already mapped this IO-APIC (at boot)
|
// we've already mapped this IO-APIC (at boot)
|
||||||
dprintf("io-apic %u, already mapped at %p, range %u-%u, "
|
dprintf("io-apic %u, already mapped at %p, range %u-%u, "
|
||||||
"%u entries, version 0x%08lx, apic-id %u\n",
|
"%u entries, version 0x%08lx, apic-id %lu\n",
|
||||||
alreadyMapped->number,
|
alreadyMapped->number,
|
||||||
alreadyMapped->registers,
|
alreadyMapped->registers,
|
||||||
alreadyMapped->global_interrupt_base,
|
alreadyMapped->global_interrupt_base,
|
||||||
alreadyMapped->global_interrupt_last,
|
alreadyMapped->global_interrupt_last,
|
||||||
alreadyMapped->max_redirection_entry + 1,
|
alreadyMapped->max_redirection_entry + 1,
|
||||||
ioapic_read_32(*alreadyMapped, IO_APIC_VERSION));
|
ioapic_read_32(*alreadyMapped, IO_APIC_VERSION),
|
||||||
|
(ioapic_read_32(*alreadyMapped, IO_APIC_ID)
|
||||||
|
>> IO_APIC_ID_SHIFT) & IO_APIC_ID_MASK);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user