Difference between revisions of "Anatomy of a Failover coreboot v2 Image"

From coreboot
Jump to: navigation, search
(Wikify the syntax, add a link to more info)
Line 1: Line 1:
'''''You put what where?!'''''
+
==You put what where?!==
  
  
Line 7: Line 7:
 
[[Image:LBv2_anatomy_image.PNG]]
 
[[Image:LBv2_anatomy_image.PNG]]
  
----
 
  
  
Line 13: Line 12:
  
  
----
 
  
 
+
==Some Errors you might come across and probable solutions==
'''''Some Errors you might come across and probable solutions'''''
+
----
+
  
  
 +
===Linuxbios input file larger than allowed size===
 
'''Error:'''<br>
 
'''Error:'''<br>
 
<blockquote><code>
 
<blockquote><code>
Line 31: Line 28:
  
  
----
+
===section .id overlaps section .rom===
  
  
Line 49: Line 46:
 
Increase the ROM_IMAGE_SIZE of the failing piece. In this case the fallback image.
 
Increase the ROM_IMAGE_SIZE of the failing piece. In this case the fallback image.
  
 
+
See also [[Section overlaps]] for a datailed description of a fix.
----
+

Revision as of 16:55, 23 January 2009

You put what where?!

Pictorial view of FAILOVER_SIZE, _ROMBASE. ROM_IMAGE_SIZE, PAYLOAD_SIZE, ROM_SIZE, ROM_SECTION_SIZE, HAVE_FALLBACKBOOT, HAVE_FAILOVERBOOT for Options.lb and Config.lb.


LBv2 anatomy image.PNG


XIP_ROM_BASE and XIP_ROM_SIZE are for MTRR setting during CAR to cache part of the ROM image. Speeds up anything with loops like copies and decompression.


Some Errors you might come across and probable solutions

Linuxbios input file larger than allowed size

Error:

./buildrom linuxbios.strip linuxbios.rom payload 0x70000 0x7f000 linuxbios image is 458820 bytes; only 458752 allowed Linuxbios input file larger than allowed size!

Solution:
Typically caused by crt0 having a .data segment. Make sure all rom data is defined as constant.


section .id overlaps section .rom

Error:

gcc -m32 -nostdlib -nostartfiles -static -o linuxbios -T ldscript.ld crt0.o /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: section .id [00000000ffffefd2 -> 00000000ffffefef] overlaps section .rom [00000000fffeed83 -> 00000000ffffff5f] /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: linuxbios: section .id lma 0xffffefd2 overlaps previous sections /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: linuxbios: section .reset lma 0xffffeff0 overlaps previous sections collect2: ld returned 1 exit status make[1]: *** [linuxbios] Error 1 make[1]: Leaving directory `/srv/svn/linuxbios-extra/tmp/LinuxBIOSv2-3021/util/abuild/linuxbios-builds/amd_serengeti_cheetah_fam10/fallback' make: *** [fallback/linuxbios.rom] Error 1

Solution:
Increase the ROM_IMAGE_SIZE of the failing piece. In this case the fallback image.

See also Section overlaps for a datailed description of a fix.