[SeaBIOS] SeaBIOS error with Juniper FreeBSD kernel

Kevin O'Connor kevin at koconnor.net
Tue Aug 2 02:36:38 CEST 2011


On Mon, Aug 01, 2011 at 03:49:11PM +0200, Bjørn Mork wrote:
> I just confirmed the issue running
> 
>  "JUNOS 11.1R3.5 built 2011-06-25 00:17:21 UTC"
> 
> which is as new as it officially gets at the moment.
[...]
> Also confirmed that 11.1R3.5 is working with SeaBIOS modified as
> follows:
[...]
> -    void *finaltable = malloc_high(structure_table_length);
> +    void *finaltable = malloc_fseg(structure_table_length);

I'm not really sure how best to handle this.  The smbios table can be
larger than the current space reserved for the f-segment (when there
are a large number of CPUs).

Some ideas:

There is actually space in the f-segment that is unused, but not given
to the malloc_fseg pool.  That space could be given to the pool -
though the available space will still vary depending on the code size.

It's also possible to relocate the 32bit "run-time" code to high
memory which would then free up more space in the f-segment (at the
cost of some high memory being reserved from the OS).  As above,
though, the f-segment is still fundamentally limited by the 16bit code
size.

Also, it's possible the code could try to use the f-segment if there
are less than say 16 cpus and use high memory when more cpus are
present.

-Kevin



More information about the SeaBIOS mailing list