From owner-freebsd-hackers@FreeBSD.ORG Tue Mar 3 17:04:39 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C61231065722; Tue, 3 Mar 2009 17:04:39 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from asmtpout019.mac.com (asmtpout019.mac.com [17.148.16.94]) by mx1.freebsd.org (Postfix) with ESMTP id ADC498FC1A; Tue, 3 Mar 2009 17:04:39 +0000 (UTC) (envelope-from xcllnt@mac.com) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Received: from espititu-t60.jnpr.net (natint3.juniper.net [66.129.224.36]) by asmtp019.mac.com (Sun Java(tm) System Messaging Server 6.3-7.03 (built Aug 7 2008; 32bit)) with ESMTPSA id <0KFX001G1WRK5460@asmtp019.mac.com>; Tue, 03 Mar 2009 09:04:33 -0800 (PST) Message-id: <9B775F97-1E5A-4E55-A2AE-26DC78CD08C0@mac.com> From: Marcel Moolenaar To: John Baldwin In-reply-to: <200903031159.55299.jhb@freebsd.org> Date: Tue, 03 Mar 2009 09:04:32 -0800 References: <200903030915.43037.jhb@freebsd.org> <200903031159.55299.jhb@freebsd.org> X-Mailer: Apple Mail (2.930.3) Cc: FreeBSD Hackers , Navdeep Parhar Subject: Re: puc support for a generic card (patch attached) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Mar 2009 17:04:42 -0000 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