[SeaBIOS] ohci bulk?

Kevin O'Connor kevin at koconnor.net
Wed Sep 22 02:00:15 CEST 2010


On Tue, Sep 21, 2010 at 07:51:37PM +0000, Jonathan A. Kollasch wrote:
> Hi,
> 
> http://www.seabios.org/pipermail/seabios/2010-March/000396.html
> 
> Could anyone explain what the difficulty with OHCI bulk in
> 16-bit mode is before I spend a few hours discovering for myself?

In order to start a bulk or control transmission on ohci, one must
write to the cmdstatus register.  You'll see this in the code as:

    writel(&cntl->regs->cmdstatus, OHCI_CLF);

This register is a memory mapped register in one of the PCI bars.

When in 16bit mode, one can only reliably access the first 1Meg of
ram.  Unfortunately, the PCI bar is going to be in high memory.

I couldn't think of any reliable way to toggle the cmdstatus bit to
start a bulk transfer while in 16bit mode.  I thought of a few
different hacks - but they all seemed to fragile.

-Kevin



More information about the SeaBIOS mailing list