Podule updates
Colin Ferris (399) 1814 posts |
It seems the Castle USB podule is based around the TransDimension TDUHC 124B Any ideas on what is required to drive it? |
Raik (463) 2061 posts |
Not sure. You mean the RiscPC Podule from Castle? |
Theo Markettos (89) 919 posts |
Data sheet and some mentions of it in conjunction with NetBSD. It’s not an OHCI or UHCI device, so probably it means taking OHCIDriver, ripping out the OHCI stuff, and registering your own device with USBDriver instead. Data sheet is only 70 pages and it doesn’t look too complex compared with other USB controllers, but the devil will be in what they forgot to tell you. There’s an OHCI or UHCI personality layer, but I suspect those aren’t available or under a permissive licence. See also this thread |
Colin Ferris (399) 1814 posts |
Ref your ptr ‘Data sheet’ Supports OHCI/UHCI compliant USB host stack It seems that someone has got the RO5? SCSI modules working with the Castle USB Podule RO4.xx. Is there any software source of the Castle USB Podule? |
Theo Markettos (89) 919 posts |
If you read the section on p10 it says:
In other words, pay us extra to get UHCI support, and we haven’t written OHCI yet. There’s also a driver library but no licence to modify or distribute it. I’m quite surprised that someone has got the RO5 SCSISoftUSB almost-working on the podule – would have thought too many things have changed. I don’t think I’ve seen any source of the podule USB code anywhere, BICBW. You could ask John Ballance. |
Chris Evans (457) 1614 posts |
Castle did pass on the source for their USB podule to some one. IIRC they spent some time on it but didn’t get far and decided other RISC OS work was more appealing/worthwhile. I don’t think many Castle USB podules are in use now a days. With RISC OS USB programmers not twiddling their thumbs is it worth pursuing? |
Colin (478) 2433 posts |
Looking at the datasheet it looks nothing like OHCI it looks relatively simple – if simple and USB can be used in the same sentence. Its probably just as easy/difficult to write a controller module from scratch rather than try and emulate OHCI and some how have it recognised by the OHCIDriver. Most of writing a controller driver is writing the methods that go in usbd_bus_methods and usbd_pipe_methods (Netbsd.dev.usb.h.usbdvar). You need 1 set of usbd_pipe_methods for each usb transfer types (bulk interrupt etc.) So on this device you can have up to 16 transactions in a millisec. The high level interface supplies a block of memory to transfer and a call back to be called when the transfer is complete. You queue these requests and feed them in to the device so that the device is ready to send every ms you are informed when complete and go through the completed transactions calling the callbacks. You keep a queue for each transfer type (bulk isochronous etc) and feed the device in the correct order – there are rules for this in the USB spec. It would be an interesting ‘my first controller’ project. The RISC OS fudge icing on top of the BSD interface is probably harder to understand. |
Colin Ferris (399) 1814 posts |
Would it be possible for a Bounty to be had for a RO5 updated USB Podule drivers Castle/Simtec? |