[SeaBIOS] ohci bulk?

Stefan Berger stefanb at linux.vnet.ibm.com
Sat Nov 20 19:40:12 CET 2010


On 11/20/2010 01:28 PM, Kevin O'Connor wrote:
> 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?
With possible future extensions to the BIOS, the f-segment may not 
provide enough space and so we can open up 'the world' using the high 
memory areas. Reserving for example 256kb out of 1 GB seems negligible...

    Stefan




More information about the SeaBIOS mailing list