Blog | About

Two days with HelenOS USB

14 May 2011

Tags: EHCI, HelenOS, HID, OHCI, QEMU, UHCI and USB

We decided to have a coding weekend (the last one) due to approaching deadline for our USB project and I can (again) announce some good news.

First of all, JV fixed the problem of accessing memory mapped registers in IRQ pseudo-code by using a simple hack. During the registration, address space of the caller is remembered and in the handler the address space is switched back. Of course, it is not optimal and I am not sure how this would behave on other architectures, but on Intel it works just fine.

JV also fixed some initialization problems with EHCI. Actually, we do not support EHCI (that is host controller for USB 2.0) but we need to turn it off to allow UHCI and OHCI drivers take control. As a result, all machines we have access to are able to boot and work with our USB branch.

LS a MK again engaged in a fight with USB HID, discovered several problems and fixed a lot of bugs. The support for multimedia keys is almost complete, pressing them shall write their names to the console. As a bonus, LS wrote a very small subdriver that converts mouse wheel to arrows so now you can scroll in edit.

MD was fixing some bugs concerning device initialization and proper device discovery of peripherals plugged at boot time. Unless I am mistaken, we have currently only 2 devices that refuses to get initialized when plugged directly into root hub. Both Microsoft-made mouses. Both not respecting standard Microsoft helped to write. Oh, well...

I did some refactoring of our virtual USB and revived the virtual HID. I hope that the current state would allow to use it as a tester for the HID driver, especially for the HID parser. The HID specification is definitely becoming the most cursed part of our project - it allows almost any sequence of bytes to be a valid descriptor.

I also added a very simple lsusb for listing attached USB devices. For more detailed information, we have usbinfo. Today I fixed a bug in mass storage stub. Tested three flash disks + the emulated in QEMU and all are able to report themselves correctly.

And together we discussed how our presentation shall look like and how we would ship our project to the committee. The deadline is dangerously close.

And that's all for tonight. Stay tuned.

Comments

Watch comments through RSS

Add a comment

The e-mail will be used to get a Gravatar picture and will not be directly displayed.

Please, show me you are not a robot.

You can use basic HTML formatting (following tags are allowed: A, CODE, PRE, B, I, STRONG, P and BLOCKQUOTE). For replies, I recommend using the Quote button next to a post.