Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 03 Mar 2009 09:04:32 -0800
From:      Marcel Moolenaar <xcllnt@mac.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        FreeBSD Hackers <freebsd-hackers@freebsd.org>, Navdeep Parhar <nparhar@gmail.com>
Subject:   Re: puc support for a generic card (patch attached)
Message-ID:  <9B775F97-1E5A-4E55-A2AE-26DC78CD08C0@mac.com>
In-Reply-To: <200903031159.55299.jhb@freebsd.org>
References:  <d04e16b70903021305u69138cfav8b6838c7199a60ed@mail.gmail.com> <200903030915.43037.jhb@freebsd.org> <C428B1A1-7F4F-4DD2-8BBD-C88CA7B659AE@mac.com> <200903031159.55299.jhb@freebsd.org>

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

On Mar 3, 2009, at 8:59 AM, John Baldwin wrote:

> On Tuesday 03 March 2009 11:48:42 am Marcel Moolenaar wrote:
>>
>> On Mar 3, 2009, at 6:15 AM, John Baldwin wrote:
>>
>>>> diff -r 025cb00d19d7 sys/dev/puc/puc.c
>>>> --- a/sys/dev/puc/puc.c	Sat Feb 28 12:42:37 2009 -0800
>>>> +++ b/sys/dev/puc/puc.c	Mon Mar 02 12:21:07 2009 -0800
>>>> @@ -440,9 +440,6 @@
>>>> 	sc->sc_dev = dev;
>>>> 	sc->sc_cfg = cfg;
>>>>
>>>> -	/* We don't attach to single-port serial cards. */
>>>> -	if (cfg->ports == PUC_PORT_1S || cfg->ports == PUC_PORT_1P)
>>>> -		return (EDOOFUS);
>>>
>>> FWIW, the traditional reason for this is that we made the sio/uart
>>> or ppc
>>> drivers claim single port devices directly and only use puc for
>>> multiple-port
>>> cards.  I'm not sure if that should still be the case or not.
>>> Marcel, do you
>>> have an opinion?
>>
>> Yes :-)
>>
>> I explicitly added the test with that particular error code
>> to make it absolutely clear that puc(4) is not the driver
>> for single port cards. The reason being that it's pointless.
>>
>> There are 2 things that puc(4) facilitates in: resource
>> assignment and interrupt handling. For single port cards
>> there's nothing to distribute nor is there any interrupt
>> sharing. In other words: there's no value that puc(4) adds.
>> As such, uart(4) and ppc(4) can attach directly to those
>> cards and puc(4) does not have to be involved.
>>
>> BTW: Traditionally puc(4) was used to attach even to single
>> port cards. With the puc(4) rewrite I changed that, because
>> it was really a mixed bag. Some single-port cards were known
>> to puc(4) others to uart(4)/sio(4) or ppc(4). That typically
>> leads to confusion given that puc(4) is (still) not in GENERIC.
>> (i.e. why is this UART attached, but that one isn't, they're
>> both single port?)
>>
>> So, please do not apply the patch and instead add the IDs to
>> sys/dev/uart/uart_bus_pci.c...
>
> This sounds fine to me. :)  Navdeep, can you develop a patch for  
> uart(4)
> instead and test that?

BTW: I forgot to mention that puc(4) needs to back-off from this
particular card. That means that the catch-all that we have there
needs to be tweaked.

So, the change to pucdata.c can still be made, but with a big
comment that states that the entry is added only to avoid puc(4)
from attaching to that particular 1-port card so that uart(4)
can claim it...

-- 
Marcel Moolenaar
xcllnt@mac.com






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9B775F97-1E5A-4E55-A2AE-26DC78CD08C0>