[SeaBIOS] ohci bulk?

Kevin O'Connor kevin at koconnor.net
Sat Nov 20 19:28:51 CET 2010


On Sat, Nov 20, 2010 at 01:18:18PM -0500, Stefan Berger wrote:
> On 11/20/2010 01:05 PM, Kevin O'Connor wrote:
> >Is it something like stacks.c:call32() or is it via SMM?
> >
> The way it works is that there is a jumptable with entries to the
> function in the 'high bios'. That jumptable along with all the other
> 32 bit code gets relocated to upper memory and in the 'lower BIOS' I
> keep a pointer to the jumptable in the 'high bios' for the upcall
> code to see. It's basically similar to what I have previously
> contributed to Bochs BIOS in Xen, just that the upcall code can deal
> with parameter passed via registers or a limited number on the
> stack.
> 
> http://xenbits.xensource.com/xen-4.0-testing.hg?file/e9156d9d996b/tools/firmware/rombios/32bitgateway.c

That looks to be doing the same thing that stacks.c:call32() does.

> >BTW, are you reserving the relocated code or are you only doing this
> >during the init phase?
> The 'high bios' functions should be accessible all the time
> basically. So, the relocated code needs to be marked as
> e820-reserved memory -- I suppose that should do the trick then?

Yes, but of course that means the OS can't use the memory then.  Why
does the code need to be in high memory - why not just have it in the
f-segment?

-Kevin



More information about the SeaBIOS mailing list