https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=130483

John Baldwin <j...@freebsd.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |j...@freebsd.org

--- Comment #4 from John Baldwin <j...@freebsd.org> ---
For posterity in case we have to revisit this in the future.  I ended up
resolving this PR in r189404.  I've included some boot -v output from the
affected machine below along with some additional notes:

MADT: Found IO APIC ID 4, Interrupt 0 at 0xfec00000
ioapic0: Changing APIC ID to 4
ioapic0: Routing external 8259A's -> intpin 0
MADT: Found IO APIC ID 5, Interrupt 256 at 0xfec10000
ioapic1: Changing APIC ID to 5
ioapic1: WARNING: intbase 256 != expected base 24
MADT: Found IO APIC ID 6, Interrupt 64 at 0xfec10000
ioapic2: Changing APIC ID to 6
ioapic2: WARNING: intbase 64 != expected base 280
lapic: Routing NMI -> LINT1
lapic: LINT1 trigger: edge
lapic: LINT1 polarity: high
MADT: Interrupt override: source 0, irq 2
ioapic0: Routing IRQ 0 -> intpin 2
MADT: Interrupt override: source 9, irq 9
ioapic0: intpin 9 trigger: level
ioapic0 <Version 2.0> irqs 0-23 on motherboard
ioapic1 <Version 2.0> irqs 0-23 on motherboard
ioapic2 <Version 2.0> irqs 64-87 on motherboard

Here the error was that ioapic1 and ioapic2 were actually the same I/O APIC
(note the same memory mapped base address), but ioapic1 used a IRQ base of 256
which caused IRQ values for MSI to get reserved by the nexus resulting in the
panic.  Here is the MADT table from this machine:

/*
  APIC: Length=138, Revision=1, Checksum=201,
        OEMID=DELL, OEM Table ID=PE_SC3, OEM Revision=0x1,
        Creator ID=DELL, Creator Revision=0x1
        Local APIC ADDR=0xfee00000
        Flags={PC-AT}

        Type=Local APIC
        ACPI CPU=1
        Flags={ENABLED}
        APIC ID=0

        Type=Local APIC
        ACPI CPU=2
        Flags={ENABLED}
        APIC ID=1

        Type=Local APIC
        ACPI CPU=3
        Flags={ENABLED}
        APIC ID=2

        Type=Local APIC
        ACPI CPU=4
        Flags={ENABLED}
        APIC ID=3

        Type=Local NMI
        ACPI CPU=ALL
        LINT Pin=1
        Flags={Polarity=active-hi, Trigger=edge}

        Type=INT Override
        BUS=0
        IRQ=0
        INTR=2
        Flags={Polarity=conforming, Trigger=conforming}

        Type=INT Override
        BUS=0
        IRQ=9
        INTR=9
        Flags={Polarity=active-hi, Trigger=level}

        Type=IO APIC
        APIC ID=4
        INT BASE=0
        ADDR=0x00000000fec00000

        Type=IO APIC
        APIC ID=5
        INT BASE=256
        ADDR=0x00000000fec10000

        Type=IO APIC
        APIC ID=6
        INT BASE=64
        ADDR=0x00000000fec10000
 */

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
freebsd-amd64@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-amd64
To unsubscribe, send any mail to "freebsd-amd64-unsubscr...@freebsd.org"

Reply via email to