[SeaBIOS] ohci bulk?
Kevin O'Connor
kevin at koconnor.net
Thu Sep 23 04:05:23 CEST 2010
On Wed, Sep 22, 2010 at 06:33:46PM -0700, H. Peter Anvin wrote:
> On 09/22/2010 06:16 PM, Kevin O'Connor wrote:
> > using an SMI to get out of vm86 mode requires the
> > BIOS to emulate all memory accesses to user memory (manually walking
> > the page table, forcing page faults) which is tricky;
>
> Actually you can switch to protected mode and turn the page tables on if
> you want.
That's a good idea. Though it still sounds tricky to handle page
faults.
> > I didn't think there was a way for the user code to know it was
> > running in vm86 mode - I thought it appeared just like regular
> > real-mode. One could try to go into protected mode and try to catch
> > the failure, but I'd guess most OSs that run code in vm86 mode would
> > trap and abort in that situation.
> No, the SMSW instruction can be used to distinguish protected mode and
> therefore V86 mode.
Thanks. Do you know of a way to backup the hidden segment registers?
The BIOS can be invoked in real mode or bigreal mode. I didn't see a
way for the BIOS to determine this so that it can properly return in
the same mode (real vs bigreal).
> > A related call is INT 0x15 ah=0x87 which does a highmem capable
> > memcpy. Unfortunately this handler does a 16bit memcpy (rep movsw),
> > and the OHCI spec requires the cmdstatus register be accessed with a
> > 32bit memory access.
>
> That might be a problem if that is actually done that way (which it
> generally won't.) Still, you do have the issue of what happens in a V86
> environment if it doesn't just pass code to the original BIOS.
-Kevin
More information about the SeaBIOS
mailing list