libpayload: cbfs: Fix CBFS max size calculation.
Cherry-picking CBFS fix from http://review.coreboot.org/#/c/2292/ For x86, the old CBFS search behavior was to bypass bootblock and we should keep that. This will speed up searching if a file does not exist in CBFS. For arm, the size in header is correct now so we can remove the hack by CONFIG_ROM_SIZE. Change-Id: I286ecda73bd781550e03b0b817ed3fb567d6b8d7 Signed-off-by: Hung-Te Lin <hungte@chromium.org> Reviewed-on: http://review.coreboot.org/2458 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
parent
58fd5e1d3d
commit
fbf078311f
|
@ -116,12 +116,12 @@ struct cbfs_file *cbfs_get_file(struct cbfs_media *media, const char *name)
|
||||||
align = ntohl(header->align);
|
align = ntohl(header->align);
|
||||||
romsize = ntohl(header->romsize);
|
romsize = ntohl(header->romsize);
|
||||||
|
|
||||||
// TODO header->romsize seems broken now on ARM. Remove this when it's
|
// TODO Add a "size" in CBFS header for a platform independent way to
|
||||||
// fixed.
|
// determine the end of CBFS data.
|
||||||
#if defined(CONFIG_ARCH_ARMV7) && CONFIG_ARCH_ARMV7
|
#if defined(CONFIG_ARCH_X86) && CONFIG_ARCH_X86
|
||||||
romsize = CONFIG_ROM_SIZE;
|
romsize -= htonl(header->bootblocksize);
|
||||||
#endif
|
#endif
|
||||||
DEBUG("offset: 0x%x, align: %d, romsize: %d\n", offset, align, romsize);
|
DEBUG("CBFS location: 0x%x~0x%x, align: %d\n", offset, romsize, align);
|
||||||
|
|
||||||
LOG("Looking for '%s' starting from 0x%x.\n", name, offset);
|
LOG("Looking for '%s' starting from 0x%x.\n", name, offset);
|
||||||
media->open(media);
|
media->open(media);
|
||||||
|
|
Loading…
Reference in New Issue