EHCI problem on -current, and unknown devs
John Baldwin
jhb at freebsd.org
Wed Nov 29 10:21:35 PST 2006
On Thursday 16 November 2006 03:34, Stephane E. Potvin wrote:
> Doug Barton wrote:
> > [ No response from the -usb list, so I'll try here. ]
> >
> > Howdy,
> >
> > I have a new Dell Latitude D620, and using recent -current I get this:
> >
> > ehci0: <Intel 82801GB/R (ICH7) USB 2.0 controller> mem
> > 0xffa80000-0xffa803ff irq 20 at device 29.7 on pci0
> > ehci0: Could not map memory
> > device_attach: ehci0 attach returned 6
> >
> > FWIW, I also saw a user on the -stable list report this same problem.
> > I'm assuming this is bad, but what to do about it?
> >
> >
> > I'm also getting some unknown devices:
> >
> > uhub4: <vendor 0x413c product 0xa005, class 9/0, rev 2.00/50.18, addr
> > 2> on uhub0
> > uhub5: <vendor 0x0b97 product 0x7761, class 9/0, rev 1.10/1.10, addr
> > 3> on uhub4
> > ugen2: <vendor 0x413c product 0x8103, class 224/1, rev 2.00/24.22,
> > addr 6> on uhub4
> > uhub6: <vendor 0x413c product 0x0058, class 9/0, rev 2.00/0.00, addr
> > 2> on uhub3
> >
> > Vendor ID 0x413c is Dell, and is already in the usbdevs file. The
> > other vendor is O2, and I got their ID for the attached patch from the
> > list at http://www.usb.org/developers/tools. The 0x0058 device is
> > already in our usbdevs file, it's the port replicator (docking
> > station) that the laptop is plugged into currently. I added the 0x8103
> > device in the attached patch based on an entry in the NetBSD usbdevs
> > file. (The entry makes sense to me as well, since I have one of those.)
> >
> > So I have two questions ... for the devices (and vendors) that are
> > already in my local usbdevs file, why are they still showing up by ID?
> > And how do I find the device IDs for the two unknown devices? I
> > imagine that the O2 device is related to my built in smart card
> > reader, not sure about the other one.
> >
>
> Hi Doug,
>
> I had the same problem with my Dell Inspiron 9400 and fixed it using the
> following patch:
>
> Index: sys/kern/subr_rman.c
> ===================================================================
> RCS file: /home/FreeBSD/ncvs/src/sys/kern/subr_rman.c,v
> retrieving revision 1.53
> diff -u -r1.53 subr_rman.c
> --- sys/kern/subr_rman.c 11 Sep 2006 19:31:52 -0000 1.53
> +++ sys/kern/subr_rman.c 2 Nov 2006 03:05:34 -0000
> @@ -170,7 +170,7 @@
>
> /* Skip entries before us. */
> for (s = TAILQ_FIRST(&rm->rm_list);
> - s && s->r_end + 1 < r->r_start;
> + s && s->r_end < r->r_start;
> s = TAILQ_NEXT(s, r_link))
> ;
>
> This code was added in revision 1.53 when support for intelligent
> merging was added. When r_end is equal to UINT_MAX, adding one will
> cause it to overflow, creating quite a mess in the entries ordering. I'm
> not sure the fix I did is completely correct as I didn't had time to
> check if the +1 is needed at all in this case. At least it fixed the
> problem for me.
It is needed to avoid overlaps. Can you show me which rman_manage_region() is
breaking? Rather, enable the DPRINTF() in rman_manage_region() and provide
the output?
--
John Baldwin
More information about the freebsd-current
mailing list