Date: Tue, 15 Jan 2013 08:13:09 +0100 From: Andre Albsmeier <Andre.Albsmeier@siemens.com> To: John Baldwin <jhb@freebsd.org> Cc: "freebsd-hardware@freebsd.org" <freebsd-hardware@freebsd.org> Subject: Re: ppc fails to attach to puc on 9.1-STABLE, 7.4-STABLE works Message-ID: <20130115071309.GA1443@bali> In-Reply-To: <201301141502.58550.jhb@freebsd.org> References: <20130110074052.GA8922@bali> <201301141502.58550.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 14-Jan-2013 at 21:02:58 +0100, John Baldwin wrote: > On Thursday, January 10, 2013 2:40:52 am Andre Albsmeier wrote: > > [Retrying here, maybe anyone can help...} > > > > I want my printer port back on 9.1 ;-( > > > > I have this card: > > > > puc0@pci0:4:1:0: class=0x078000 card=0x00121000 chip=0x98359710 > rev=0x01 hdr=0x00 > > vendor = 'NetMos Technology' > > device = 'PCI 9835 Multi-I/O Controller' > > class = simple comms > > > > It attached and worked under 7.4-STABLE (as long as I disabled > > the interrupt using hint.ppc.0.irq=""): > > > > puc0: <NetMos NM9835 Dual UART and 1284 Printer port> port > 0xdf00-0xdf07,0xde00-0xde07,0xdd00-0xdd07 > > ,0xdc00-0xdc07,0xdb00-0xdb07,0xda00-0xda0f irq 17 at device 1.0 on pci4 > > puc0: [FILTER] > > uart0: <Non-standard ns8250 class UART with FIFOs> on puc0 > > uart0: [FILTER] > > uart1: <Non-standard ns8250 class UART with FIFOs> on puc0 > > uart1: [FILTER] > > ppc0: <Parallel port> on puc0 > > ppc0: Generic chipset (ECP/EPP/PS2/NIBBLE) in ECP+EPP mode (EPP 1.9) > > ppbus0: <Parallel port bus> on ppc0 > > lpt0: <Printer> on ppbus0 > > lpt0: Polled port > > > > > > Under 9.1 the card does not attach the ppc anymore. The hint entries > > > > hint.ppc.0.at=puc0 > > hint.ppc.0.irq="" > > hint.ppc.0.flags=0x2F > > > > get ignored and so it probes as ppc1 (failing due to the interrupt > > problem as it was in 7.4 without hints): > > > > puc0: <NetMos NM9835 Dual UART and 1284 Printer port> port > 0xdf00-0xdf07,0xde00-0xde07,0xdd00-0xdd07 > > ,0xdc00-0xdc07,0xdb00-0xdb07,0xda00-0xda0f irq 17 at device 1.0 on pci4 > > uart2: <Non-standard ns8250 class UART with FIFOs> at port 1 on puc0 > > uart3: <16550 or compatible> at port 2 on puc0 > > ppc1: <Parallel port> at port 3 on puc0 > > ppc1: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode > > ppc1: failed to register interrupt handler: 6 > > device_attach: ppc1 attach returned 6 > > > > Any ideas? How do I construct the hint entries under 9.1 so that > > > > 1. it does not want to use the interrupt (which made it attach under 7.4) > > 2. it takes the flags 0x2F as it did before. > > > > I have also never understood if ppc itself needs to attach to > > the irq as well (I thought this all would be handled by puc). > > Well, ppc wants to use puc's interrupt, and it should be finding puc's > interrupt. Ah, I think I found the bug. Try this patch to sys/dev/puc/puc.c: > > Index: puc.c > =================================================================== > --- puc.c (revision 245225) > +++ puc.c (working copy) > @@ -622,7 +628,7 @@ puc_bus_setup_intr(device_t dev, device_t child, s > if (cookiep == NULL || res != port->p_ires) > return (EINVAL); > /* We demand that serdev devices use filter_only interrupts. */ > - if (ihand != NULL) > + if (port->p_type == PUC_TYPE_SERIAL && ihand != NULL) > return (ENXIO); > if (rman_get_device(port->p_ires) != originator) > return (ENXIO); > > This should let your ppc device re-use IRQ 17 from your puc device. John, thanks a lot for looking at this. I have stumbled over this line as well last weekend but wasn't sure if I can go this way. I will try your patch and report later... Thanks, -Andre > > -- > John Baldwin -- GNU is Not Unix / Linux Is Not UniX
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130115071309.GA1443>