Palm m50x & the USB stack

Adriaan de Groot adridg at cs.kun.nl
Wed Jun 11 16:10:40 PDT 2003


[It seems the last time this came up was in march, under the heading of "Sony 
Cybershot should be in hardware notes". This message is intended mainly to 
document what I've managed to track down.]

The m500s still will not sync with pilot-link 0.11.7 in -STABLE. An easily 
triggerable panic is another issue [1]. The pilot-link code first opens 
/dev/ugenX and then switches to /dev/ugenX.2, which is the HotSync endpoint 
for HotSyncs (endpoint 1 is listed as "Generic" in the endpoint 
descriptions).  Relevant code is then:

        i = 0; /* 0 or USBD_SHORT_XFER_OK */
        if (ioctl(endpoint_fd, USB_SET_SHORT_XFER, &i) < 0) {

        i = 50;
        if (ioctl(endpoint_fd, USB_SET_TIMEOUT, &i) < 0) {

later, writes to the endpoint go fine, but a read() on the endpoint_fd returns 
immediately with ETIMEDOUT if the USB_TIMEOUT is non-0. I've started 
following this through the ugen code, but get totally lost in kernel 
intricacies. Mostly I need a good way to dump debug info to the console while 
running though this code. Is kprintf() the right way to go? Will (over)using 
it cause timing problems in the ugen code?

I've got 5.1-RELEASE on a laptop, I'll check tomorrow if the situation is any 
different there (though cvsweb indicates not much has changed, really, 
recently, and NetBSD 1.6.1 fails just as miserably as FreeBSD 4.8 in doing 
anything with an m500.).

[ade]

[1] open(/dev/ugen0) open(/dev/ugen0.2) ioctl(/dev/ugen0.2) is pretty much it, 
as documented in the pilot-link source.

-- 
pub  1024D/FEA2A3FE 2002-06-18 Adriaan de Groot <groot at kde.org>
     Key fingerprint = 934E 31AA 80A7 723F 54F9  50ED 76AC EE01 FEA2 A3FE


More information about the freebsd-stable mailing list