Skip site navigation (1)Skip section navigation (2)
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>