[coreboot] ifdtool newlayout errors

Nicola Corna nicola at corna.info
Fri Aug 19 10:49:22 CEST 2016


Hi everyone,

I have a Thinkpad X220t with coreboot and I'm trying to replace the 5MB ME firmware with the small (2MB) one, extracted from a Sandy Bridge Chromebook. The small ME blob works but now I want to reclaim the free space by modifying the Intel descriptor, partly following the x220 guide (https://www.coreboot.org/Board:lenovo/x220#Bigger_SPI_ROM).

If I extract the layout and modify it from

00000000:00000fff fd
00500000:007fffff bios
00003000:004fffff me
00001000:00002fff gbe
00fff000:00000fff pd
00fff000:00ffffff res1
00fff000:00ffffff res2
00fff000:00ffffff res3
00000000:00ffffff ec

to

00000000:00000fff fd
00183000:007fffff bios
00003000:00182fff me
00001000:00002fff gbe
00fff000:00000fff pd
00fff000:00ffffff res1
00fff000:00ffffff res2
00fff000:00ffffff res3
00000000:00ffffff ec

ifdtool --newlayout fails with "Region would overlap." (gdb shows me that the overlapping regions are fd and ec).
If I remove the overlap exit, ifdtool segfaults with this output:

File coreboot.rom is 8388608 bytes
Regions would overlap.
Regions would overlap.
Regions would overlap.
Regions would overlap.
Regions would overlap.
Regions would overlap.
Regions would overlap.
Regions would overlap.
Regions would overlap.
Regions would overlap.
The image has changed in size.
The old image is 8388608 bytes.
The new image is 16777216 bytes.
Copy Descriptor 0 (Flash Descriptor) (4096 bytes)
   from 00000000+00000000:00000fff (      4096)
     to 00000000+00000000:00000fff (      4096)
Copy Descriptor 1 (BIOS) (3145728 bytes)
   from 00500000+00000000:007fffff (   3145728)
     to 00500000+00000000:007fffff (   3145728)
Copy Descriptor 2 (Intel ME) (5230592 bytes)
   from 00003000+00000000:004fffff (   5230592)
     to 00003000+00000000:004fffff (   5230592)
Copy Descriptor 3 (GbE) (8192 bytes)
   from 00001000+00000000:00002fff (      8192)
     to 00001000+00000000:00002fff (      8192)
Copy Descriptor 5 (Reserved) (4096 bytes)
   from 00fff000+00000000:00ffffff (      4096)
     to 00fff000+00000000:00ffffff (      4096)
[1]    8451 segmentation fault  ../util/ifdtool/ifdtool --newlayout layout.txt coreboot.rom

If I use an unmodified layout as newlayout the result is the same (overlap + segfault).
Suggestions?
Thanks

Nicola Corna



More information about the coreboot mailing list