coreinfo/cbfs: Don't assume that the free space is at the end

On emulation/qemu-i440fx, I get this layout:

  Name                           Offset     Type         Size
  cbfs master header             0x0        cbfs header  32
  fallback/romstage              0x80       stage        14284
  fallback/ramstage              0x38c0     stage        42382
  fallback/payload               0xdec0     payload      1165052
  config                         0x12a600   raw          352
  revision                       0x12a7c0   raw          572
  cmos_layout.bin                0x12aa40   cmos_layout  772
  fallback/dsdt.aml              0x12ad80   raw          4000
  img/coreinfo                   0x12bd80   payload      1165052
  (empty)                        0x2484c0   null         1799192
  bootblock                      0x3ff900   bootblock    1456

... which coreinfo displays in the following way, without this patch:

  cbfs master header
  fallback/romstage
  fallback/ramstage
  fallback/payload
  config
  revision
  cmos_layout.bin
  fallback/dsdt.aml
  img/coreinfo

  <free space>


Change-Id: I21eb1dfbe52921843d28683c9396e9b27caa4fbf
Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Reviewed-on: https://review.coreboot.org/14024
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Jonathan Neuschäfer 2016-03-10 04:32:46 +01:00 committed by Martin Roth
parent 9c3ff1ba52
commit 1aca8b898d
1 changed files with 8 additions and 3 deletions

View File

@ -134,10 +134,15 @@ static int cbfs_module_redraw(WINDOW * win)
wattrset(win, COLOR_PAIR(3) | A_BOLD);
else
wattrset(win, COLOR_PAIR(2));
if (i == filecount - 1)
mvwprintw(win, 2 + i, 1, "<free space>");
else
if (strlen(filenames[i]) == 0) {
if (findfile(filenames[i])->type == COMPONENT_NULL)
mvwprintw(win, 2 + i, 1, "<free space>");
else
mvwprintw(win, 2 + i, 1, "<unnamed>");
} else {
mvwprintw(win, 2 + i, 1, "%.25s", filenames[i]);
}
}
f = findfile(filenames[selected]);