Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Mar 2009 09:15:42 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-hackers@freebsd.org
Cc:        marcel@freebsd.org, Navdeep Parhar <nparhar@gmail.com>
Subject:   Re: puc support for a generic card (patch attached)
Message-ID:  <200903030915.43037.jhb@freebsd.org>
In-Reply-To: <d04e16b70903021305u69138cfav8b6838c7199a60ed@mail.gmail.com>
References:  <d04e16b70903021305u69138cfav8b6838c7199a60ed@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 02 March 2009 4:05:02 pm Navdeep Parhar wrote:
> This may interest puc and uart maintainers.
> 
> I needed an extra serial port on my FreeBSD machine and bought a
> store-branded "1-Port Serial PCI Adapter" from a local computer
> store.
> 
> This is what pciconf shows:
> puc0@pci0:4:1:0: class=0x070002 card=0x00011000 chip=0x98359710
> rev=0x01 hdr=0x00
> 
> And here's what puc identified it as:
> puc0: <NetMos NM9835 Dual UART and 1284 Printer port> port
> 
0xec00-0xec07,0xe480-0xe487,0xe400-0xe407,0xe080-0xe087,0xe000-0xe007,0xdc00-0xdc0f
> irq 16 at device 1.0 on pci4
> 
> Visual inspection shows the card has missing circuitry and headers
> for the extra serial and parallel port that the chip supports.  puc
> gave me 2 serial port and 1 parallel port devices for the card, and
> none of them would work (not even the first serial port device).
> 
> I had to tweak pucdata.c to get the card working.  Patch against
> HEAD is attached, and also pasted at the end of this email (in case
> this list drops attachements).
> 
> Regards,
> Navdeep
> 
> 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? 

>  	error = puc_config(sc, PUC_CFG_GET_NPORTS, 0, &res);
>  	if (error)
>  		return (error);
> diff -r 025cb00d19d7 sys/dev/puc/pucdata.c
> --- a/sys/dev/puc/pucdata.c	Sat Feb 28 12:42:37 2009 -0800
> +++ b/sys/dev/puc/pucdata.c	Mon Mar 02 12:21:07 2009 -0800
> @@ -761,6 +761,12 @@
>  	    PUC_PORT_2P, 0x10, 8, 0,
>  	},
> 
> +	{   0x9710, 0x9835, 0x1000, 1,
> +	    "NetMos NM9835 based 1-port serial",
> +	    DEFAULT_RCLK,
> +	    PUC_PORT_1S, 0x10, 4, 0,
> +	},
> +
>  	{   0x9710, 0x9835, 0xffff, 0,
>  	    "NetMos NM9835 Dual UART and 1284 Printer port",
>  	    DEFAULT_RCLK,
> 



-- 
John Baldwin



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