Stefan Reinauer stepan@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