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

From coreboot
Jump to: navigation, search
(remove HTML to make page format better.)
m
Line 1: Line 1:
==You put what where?!==
+
This is a 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.
 
+
 
+
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.
+
 
+
  
 
[[Image:LBv2_anatomy_image.PNG]]
 
[[Image: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.
 
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 ==
  
 +
=== coreboot input file larger than allowed size ===
  
==Some Errors you might come across and probable solutions==
 
 
 
===Linuxbios input file larger than allowed size===
 
 
'''Error:'''
 
'''Error:'''
  
  ./buildrom linuxbios.strip linuxbios.rom payload 0x70000 0x7f000
+
  ./buildrom coreboot.strip coreboot.rom payload 0x70000 0x7f000
  linuxbios image is 458820 bytes; only 458752 allowed
+
  coreboot image is 458820 bytes; only 458752 allowed
  Linuxbios input file larger than allowed size!
+
  coreboot input file larger than allowed size!
  
 
'''Solution:'''
 
'''Solution:'''
  
Typically caused by crt0 having a .data segment. Make sure all rom data is defined as constant.
+
Typically caused by '''crt0''' having a '''.data segment'''. Make sure all ROM data is defined as constant.
 
+
  
===section .id overlaps section .rom===
+
=== section .id overlaps section .rom ===
  
 
'''Error:'''
 
'''Error:'''
Line 43: Line 34:
 
'''Solution:'''
 
'''Solution:'''
  
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 detailed description of a fix.
 
See also [[Section overlaps]] for a detailed description of a fix.

Revision as of 17:54, 24 June 2009

This is a 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

coreboot input file larger than allowed size

Error:

./buildrom coreboot.strip coreboot.rom payload 0x70000 0x7f000
coreboot image is 458820 bytes; only 458752 allowed
coreboot 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 detailed description of a fix.