Hi all!
I have learned a lot about Visopsys USB stack and I like it for the simplicity and efficiency. I want to make a USB stack for another OS using ideas from it.
Is it under development nowadays? Does UHCI work? What about OHCI? EHCI?
USB
Re: USB
Hi Asper,
Visopsys hasn't had a new release in a long time, but a big new release is basically ready to go. I've done a fair bit of work on the USB stack in the last year or so. It's not perfect at all, but when it works, it works pretty well. Usually depends on the device that's plugged in.
There's an abstraction layer that should make it pretty easy to implement other types of controllers, but only UHCI (EHCI) is currently implemented. I'd like to add OHCI.
Andy
Visopsys hasn't had a new release in a long time, but a big new release is basically ready to go. I've done a fair bit of work on the USB stack in the last year or so. It's not perfect at all, but when it works, it works pretty well. Usually depends on the device that's plugged in.
There's an abstraction layer that should make it pretty easy to implement other types of controllers, but only UHCI (EHCI) is currently implemented. I'd like to add OHCI.
Andy
Re: USB
I'll be waiting for the new release. It's a very good news!
Now I'd like to make a Host controller drivers first .andymc wrote:Usually depends on the device that's plugged in.
Yes I know it. And as I sayed I like it.andymc wrote:There's an abstraction layer that should make it pretty easy to implement other types of controllers
Re: USB
I have no computer with UHCI now, my old motherboard unfortunately burned . Now I have computer and nettop that are both have EHCI+OHCI controllers. Last Friday I have printed out OHCI specification and am reading it now. So I think that there will be some difficulties to integrate OHCI support into the current USB stack, because data structures for UHCI and OHCI differes a lot. TDs have different structures, there are no QHs in OHCI instead of it there are EDs that contains much more information (some of that info is in TDs in UHCI). There is no Frame List and Frame List Register instead of it there are 3 different lists of EDs for 4 transfer types with the corresponding registers.
So I think that some changes will be done in the current hardware abstraction layer.
So I think that some changes will be done in the current hardware abstraction layer.
Re: USB
That's right, yes, I think the top-level USB layer should be implementation-agnostic enough, meaning you can add other host controller types. In the current version, there's even a kernelUsbOhciDriver.c file that detects them, etc. So, implementing it would mean taking that file and expanding it by adding the usbController driver functions (reset(), interrupt(), queue(), etc).
EHCI is sort of like an expanded version of UHCI. EHCI controllers typicaly expose multiple UHCI interfaces.
EHCI is sort of like an expanded version of UHCI. EHCI controllers typicaly expose multiple UHCI interfaces.