Page 1 of 1
usbd.irx comaptibility....
Posted: Sat May 22, 2004 4:57 am
by ole
is usbd.irx compatible with npm_usbd.irx (loaded with naplink)?
I can't use usbd.irx beacause the npm_usbd.irx is sitting on my IOP. When I reset IOP (to get rid of the npm_usbd.irx) the host: and printf are lost :(
Ole
Posted: Sat May 22, 2004 5:09 am
by Drakonite
No, you cannot use both usbd.irx and npm_usbd.irx at the same time. That would be like having two different people drive the same car at the same time ;)
I haven't used them, but I do not think they are compatible enough for a drop in replacement either, but I don't know for sure.
Posted: Sat May 22, 2004 6:12 am
by mrbrown
They are API-compatible.
Posted: Sat May 22, 2004 3:09 pm
by TyRaNiD
Yes they are API compatible _but_ at least with the keyboard + mouse drivers I wrote just skipping the load of the usbd will not work for some unexplainable reason.
To get my solitaire demo working in naplink you have to reset the IOP, only way I could find to get it to play nice.
Posted: Sat May 22, 2004 11:03 pm
by ole
Thanks!
that's good news! I will try to dig some data out of my usb flash disk (through ps2lib ofcourse...) and post some info if I get somewhere.
hm..... still no luck :
how to get for example the 3rd endpoint from interface?
If I use this:
endpoint = (UsbEndpointDescriptor*) UsbGetDeviceStaticDescriptor(devID, NULL, USB_DT_ENDPOINT);
This way I can get the first endpoint only. Is it possible to define the index of the item (endpoint) somehow/somewhere in this function?
If I use this:
ret = UsbGetEndpointDescriptor(epID, USB_DT_ENDPOINT, 3, 0, &endpoint, 7, NULL, NULL);
This way i get ret =0, but the endpoint data are invalid and allways the same even when the index is different. (This could be problem with my incompatible usbd irx...?).
Another question:
How to get the DEFAULT_CONTROL_PIPE epID? It seems to me that i cannot obtain correct default control pipe edID when I'm not able to get correct EndpointDescriptor. The UsbOpenEndpoint(devID, &endpoint) function creates some epID for me, but using of this epID gives me no valid results (the endpoint structure was filled by zeros before the open function was called).
So I'm stuck...Any Idea?
Posted: Sun May 23, 2004 4:45 am
by ole
endp = (UsbEndpointDescriptor *) ((char *) endp + endp->bLength);
ufff.... didn't expected anything like that should work :) - thanks TyRaNiD.