0-13 are on rising edge (legacy) 14-N are active-low level triggered. This allows for PIIX3 chipset to have working IDE, if we patch hurd/acpi to ignore buggy irq 9 response.
--- i386/i386at/ioapic.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/i386/i386at/ioapic.c b/i386/i386at/ioapic.c index 5dd2de2e..d0724f76 100644 --- a/i386/i386at/ioapic.c +++ b/i386/i386at/ioapic.c @@ -393,10 +393,11 @@ ioapic_configure(void) */ entry.both.dest = lapic->apic_id.r >> 24; - for (pin = 0; pin < 16; pin++) { + /* ISA legacy IRQs */ + for (pin = 0; pin < 14; pin++) { gsi = pin; - /* ISA legacy IRQs */ + /* Legacy interrupts are on rising edge */ entry.both.trigger = IOAPIC_EDGE_TRIGGERED; entry.both.polarity = IOAPIC_ACTIVE_HIGH; @@ -426,10 +427,11 @@ ioapic_configure(void) } } - for (pin = 16; pin < ngsis; pin++) { + /* 14,15 and PCI IRQs PIRQ A-H */ + for (pin = 14; pin < ngsis; pin++) { gsi = pin; - /* PCI IRQs PIRQ A-H */ + /* ACPI interrupts default to level-triggered active-low */ entry.both.trigger = IOAPIC_LEVEL_TRIGGERED; entry.both.polarity = IOAPIC_ACTIVE_LOW; -- 2.45.2