On Sunday, June 30, 2013 1:24:27 pm Robert Ames wrote: > I just picked up an Intel D2500CCE motherboard and was disappointed > to find the serial ports didn't work. There has been discussion > about this problem here: > > http://lists.freebsd.org/pipermail/freebsd-current/2013-April/040897.html > http://lists.freebsd.org/pipermail/freebsd-current/2013-May/042088.html > > As seen in the second link, Juergen Weiss was able to work around > the problem. This patch (for 8.4-RELEASE amd64) makes all 4 serial > ports functional. > > --- /usr/src/sys/amd64/amd64/io_apic.c.orig 2013-06-02 13:23:05.000000000 > -0500 > +++ /usr/src/sys/amd64/amd64/io_apic.c 2013-06-28 18:52:03.000000000 > -0500 > @@ -452,6 +452,10 @@ > KASSERT(!(trig == INTR_TRIGGER_CONFORM || pol == > INTR_POLARITY_CONFORM), > ("%s: Conforming trigger or polarity\n", __func__)); > > + if (trig == INTR_TRIGGER_EDGE && pol == INTR_POLARITY_LOW) { > + pol = INTR_POLARITY_HIGH; > + } > +
Hmm, so this is your BIOS doing the wrong thing in its ASL. Maybe try this: --- //depot/user/jhb/acpipci/dev/acpica/acpi_resource.c 2011-07-22 17:59:31.000000000 0000 +++ /home/jhb/work/p4/acpipci/dev/acpica/acpi_resource.c 2011-07-22 17:59:31.000000000 0000 @@ -141,6 +141,10 @@ default: panic("%s: bad resource type %u", __func__, res->Type); } +#if defined(__amd64__) || defined(__i386__) + if (irq < 16 && trig == ACPI_EDGE_SENSITIVE && pol == ACPI_ACTIVE_LOW) + pol = ACPI_ACTIVE_HIGH; +#endif BUS_CONFIG_INTR(dev, irq, (trig == ACPI_EDGE_SENSITIVE) ? INTR_TRIGGER_EDGE : INTR_TRIGGER_LEVEL, (pol == ACPI_ACTIVE_HIGH) ? INTR_POLARITY_HIGH : INTR_POLARITY_LOW); -- John Baldwin _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"