Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 May 2000 09:45:49 +0100 (BST)
From:      Doug Rabson <dfr@nlsystems.com>
To:        "John H. Baldwin" <jobaldwi@cslab.vt.edu>
Cc:        freebsd-new-bus@freebsd.org, jhb@freebsd.org, n_hibma@freebsd.org
Subject:   Re: Alpha USB difficulties...
Message-ID:  <Pine.BSF.4.21.0005090943310.47945-100000@salmon.nlsystems.com>
In-Reply-To: <Pine.BSF.4.21.0005081426540.31869-100000@snowcow.cslab.vt.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 8 May 2000, John H. Baldwin wrote:

> On Mon, 8 May 2000, John Baldwin wrote:
> 
> > On Sat, 6 May 2000, John Baldwin wrote:
> > 
> > > Well, I know this is rather a long shot, but I have a test
> > > machine that can be beat on for a week to try to get some Alpha
> > > stuff nailed down, and one of the things I wanted to test was
> > > USB.  The machine in question is a brand new Alphastation XP900.
> > > SRM doesn't support USB at the moment, but I figured that our
> > > support should function at least.  Here's what I get when I boot
> > > the system up:
> > > 
> > > FreeBSD 4.0-RELEASE #0: Fri May  5 22:54:02 EDT 2000
> > >     jhb@doberman.cslab.vt.edu:/usr/src/sys/compile/DOBERMAN
> > > ST6600
> > > COMPAQ AlphaStation XP900 466 MHz, 462MHz
> > > 8192 byte page size, 1 processor.
> > > CPU: EV6 (21264) major=8 minor=4 extensions=0x303<BWX,FIX,MVI,PRECISE>
> > > OSF PAL rev: 0x100360002013e
> > > ....
> > > pcib0: <21271 PCI host bus adapter> on tsunami0
> > > pci0: <PCI bus> on pcib0
> > > ohci0: <AcerLabs M5237 (Aladdin-V) USB controller> mem 0x20d0000-0x20d0fff irq 234 at device 1.0 on
> > pci0
> > > ohci0: could not allocate irq
> > > device_probe_and_attach: ohci0 attach returned 12
> > > 
> > > Thus, it seems to be the classic problem that is solved on PC
> > > systems by toggling the PnP OS support in the BIOS.  Mike
> > > Smith said that we don't currently know how to allocate an IRQ
> > > to a device on the Alpha, but I thought I'd run this by you since
> > > I do have access to a test machine that can be beat up for a week.
> > 
> > The USB hardware on this platform interrupts via the ISA pic. SRM
> > represents this as an interrupt pin of 0xe0 + isa irq no. Unfortunately I
> > have not put in support in the alpha pci code to recognise this so the
> > interrupt allocation fails. The place to add this support is probably
> > pci_alloc_resource() in sys/alpha/pci/pcibus.c.
> 
> Well, I have a patch that does this at least somewhat.  It is available at
> www.freebsd.org/~jhb/patches/alpha.usb.patch.  It assumes that all Alpha's
> use the range 0xe0 - 0xef for ISA IRQ's, or rather, that if a set of IRQ's
> fall in that range on an Alpha, then they are really hints for ISA
> IRQ's.  However, it seems that although I can now get this far:
>
> ...
> 
> The interrupts don't seem to be delivered properly.  Thus, I can't get the
> keyboard to work, usbd takes a while (several seconds) to start, usbdevs
> also runs with delays, and no kernel messages are generated when I
> add/delete items to the USB tree.  Any ideas, suggetions, etc. would be
> greatly appreciated.  I lose access to this machine on Friday, so.... :)

There is already a function isa_alloc_intr() which does most of what you
need so perhaps you don't need to add isa_alloc_intrs(). On the other
hand, your function is slightly more general.

To make interrupt delivery work, you also need to hook pci_setup_intr and
pci_teardown_intr and vector them to the isa functions too.

-- 
Doug Rabson				Mail:  dfr@nlsystems.com
Nonlinear Systems Ltd.			Phone: +44 20 8442 9037




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-new-bus" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0005090943310.47945-100000>