more than a segment of code

Eric W. Biederman ebiederman at lnxi.com
Wed Sep 10 08:11:01 CEST 2003


Stefan Reinauer <stepan at suse.de> writes:

> Hi,
> 
> I'm trying to adopt the AMD Quartet target to the new config scheme
> completely, but until now I failed when using the code I checked into
> CVS. The static tables and structures like the mem_controller cpu[]
> are twice as big as with the HDAMA most of the time, so the image does
> not fit in 64k anymore:

Ouch.

> /usr/lib/gcc-lib/i486-suse-linux/3.3/../../../../i486-suse-linux/bin/ld:
> section .reset [00000000fffffff0 -> 00000000ffffffff] overlaps section
> .payload [00000000ffffb5b0 -> 00000001000008ca]
> /usr/lib/gcc-lib/i486-suse-linux/3.3/../../../../i486-suse-linux/bin/ld:
> section .id [00000000ffffffd8 -> 00000000ffffffef] overlaps section
> .payload [00000000ffffb5b0 -> 00000001000008ca]
> 
> When I set the image size to 128k (ROM_IMAGE_SIZE), I get
> /home/stepan/LinuxBIOS/freebios2/src/cpu/i386/reset16.inc:16:3: #error
> _ROMBASE is an unsupported value
> 
> Is there any solution except stripping down? 

Fixing romcc so it does not inline everything.

There are a lot of good reasons for keeping LinuxBIOS within 64K.  The
two top ones are to limit code bloat and because startup is very
tricky if you don't fit into 64K.

One thing you can look at is to strip down the debugging messages from
the romcc code.  That has at times made a large difference.

Eric



More information about the coreboot mailing list