Date: Fri, 8 Feb 2002 22:12:20 -0800 From: Justin C.Walker <justin@mac.com> To: freebsd-hackers@FreeBSD.ORG Subject: Fwd: USB device framework in FreeBSD 4.2 Message-ID: <F9910816-1D23-11D6-9A56-00306544D642@mac.com>
next in thread | raw e-mail | index | archive | help
Forgive the inane chatter below. I have too many windows open, and my brain went to sleep before I did. Regards, Justin Begin forwarded message: > From: "Justin C.Walker" <justin@mac.com> > Date: Fri Feb 08, 2002 10:10:48 PM US/Pacific > To: freebsd-hackers@FreeBSD.ORG > Subject: Re: USB device framework in FreeBSD 4.2 > > > 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 > > -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | Men are from Earth. | Women are from Earth. | Deal with it. *--------------------------------------*-------------------------------* 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?F9910816-1D23-11D6-9A56-00306544D642>