Date: Fri, 8 Feb 2002 22:10:48 -0800 From: Justin C.Walker <justin@mac.com> To: freebsd-hackers@FreeBSD.ORG Subject: Re: USB device framework in FreeBSD 4.2 Message-ID: <C3084FBA-1D23-11D6-9A56-00306544D642@mac.com> In-Reply-To: <F127PIwXrZhMddY7V4D00005ad7@hotmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday, February 8, 2002, at 01:51 PM, Srinivas Dharmasanam wrote: > Nick, > I'm trying to use a modified version of the ugen driver in FreeBSD 4.2 > to control a USB device from the kernel space and am getting a kernel > crash with a page fault trap (trap_fatal) when I try to do open on this > device. > > From a user process, I am able to open this device with no problem but > when I call the underlying open() function from an ISR (so that I get > kernel mode), I get this fatal trap. > > The backtrace of the kernel core dump is pasted below. > > Note that the usbd_transfer() function in usbdi.c has the call tsleep() > that is causing this trap. > > Can you please let me know how I would be able to access a USB device > from the kernel space? Do I have to write another USB driver along with > the usbdi.c interface or is there a way I can do this with the existing > USB device framework? First, try usb@lists.apple.com, where the USB mavins tend to hang out. Next, be aware that the device driver model in Darwin and Mac OS X is significantly different from that in FreeBSD, so it won't be a simple matter to get this code working. Also, you don't want to call open() in the kernel, unless it is *really* necessary; if you do need to do this, which is unlikely, you should study the open() call in the kernel source to be sure you are obeying all the rules. In particular, *don't* call open() from an ISR. Finally, don't call tsleep() from an ISR. Oh, and the backtrace seems to have disappeared between the time you wrote the above and when you sent it. There are several USB components in the darwin repository; check them out and look at the code. Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | It's not whether you win or lose... | It's whether *I* win or lose. *--------------------------------------*-------------------------------* To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C3084FBA-1D23-11D6-9A56-00306544D642>