OS/2 guest: VirtualBox 4.1.8 change log about USB

Discussions about using non Windows and Linux guests such as FreeBSD, DOS, OS/2, OpenBSD, etc.

OS/2 guest: VirtualBox 4.1.8 change log about USB

Postby erdmann » 21. Dec 2011, 21:57

Hallo,

VirtualBox 4.1.8 change log says:
"USB: fixed OS/2 boot hang when using recent USB drivers"

This is very nice. But I would be very interested in more specifics as I am the guy working on the OS/2 USB HC drivers
(I mean anything that goes beyond what IBM had delivered as version 10.162 years ago).

Where could I get more detailed/technical information on this topic ? I want to make sure that I don't change anything that would break it again. I would also be grateful to talk to experts on the matter. USB legacy handoff is a freaking nightmare.
erdmann
 
Posts: 21
Joined: 21. Dec 2011, 21:09
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: OS/2

Re: OS/2 guest: VirtualBox 4.1.8 change log about USB

Postby Perryg » 21. Dec 2011, 22:50

I would suspect the DEV list. https://www.virtualbox.org/wiki/Community
Perryg
Site Moderator
 
Posts: 34373
Joined: 6. Sep 2008, 22:55
Primary OS: Linux other
VBox Version: OSE self-compiled
Guest OSses: *NIX

Re: OS/2 guest: VirtualBox 4.1.8 change log about USB

Postby michaln » 22. Dec 2011, 01:01

There's nothing you can do to break this particular fix.

The OHCI spec stipulates that all OHCI MMIO accesses must be dword-sized and dword-aligned. The original IBM OHCI drivers obeyed the spec. At some later point (around 2002, but don't quote me on that), IBM -- or rather SWHT Latvia -- changed the OHCI driver such that it would in some instances perform byte- or word-sized accesses. VirtualBox "failed" such non-standard accesses by returning all bits set. That confused the USBOHCD.SYS driver to such extent that it would hang the guest during boot.

In IBM's OHCI driver, MMIO was supposed to be accessed solely through the GetDWORD() and SetDWORD() routines implemented in ohclong.asm. At some point, someone changed OHCIInit() in ohcinit.c and possibly some other places, too. There are memory accesses through the gVirtHCORAddr pointer which can't possibly follow the OHCI spec, as that code is built with a 16-bit compiler. So the accesses will be word- or byte-sized. In VirtualBox 4.1.8, those non-standard accesses will return what the OHCI driver expects to see.
michaln
Oracle Corporation
 
Posts: 2969
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all

Re: OS/2 guest: VirtualBox 4.1.8 change log about USB

Postby erdmann » 22. Dec 2011, 21:48

Hm,

ok, I updated the OHCI/EHCI drivers to use GetDWORD/SetDWORD not only on the op. regs (I am pretty sure this is done all the way through) but also on TD/QH accesses. But it's possible I didn't catch all places.
In any case, thanks for the information.
erdmann
 
Posts: 21
Joined: 21. Dec 2011, 21:09
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: OS/2

Re: OS/2 guest: VirtualBox 4.1.8 change log about USB

Postby erdmann » 30. Dec 2011, 23:46

For what it's worth:
maybe your explanation is also the answer and fix to Ticket #2850.
erdmann
 
Posts: 21
Joined: 21. Dec 2011, 21:09
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: OS/2


Return to Other Guests

Who is online

Users browsing this forum: No registered users and 3 guests