Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Jul 2013 12:58:47 -0400
From:      Robert Ames <robertames@hotmail.com>
To:        John Baldwin <jhb@freebsd.org>, "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   RE: Intel D2500CC serial ports
Message-ID:  <BLU177-W338B60FD5BB73DC356E6E5C9660@phx.gbl>
In-Reply-To: <201307111014.42903.jhb@freebsd.org>
References:  <BLU177-W9398FC7BF05E2069A4961C9700@phx.gbl>, <201307111014.42903.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

> From: jhb@freebsd.org
> To: freebsd-hackers@freebsd.org
> Subject: Re: Intel D2500CC serial ports
> Date: Thu, 11 Jul 2013 10:14:42 -0400
> CC: robertames@hotmail.com
> 
> 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

Yes, this patch works too.  All 4 serial ports are functional.  Is
this something that could be committed so that the serial ports on
this board work out of the box on future releases?

And for what it's worth, I seem to be running the latest BIOS
identified as: CCCDT10N.86A.0039.2013.0425.1625 		 	   		  


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BLU177-W338B60FD5BB73DC356E6E5C9660>