[coreboot] New patch to review for coreboot: 35e4bec libpayload: cbfs: Fix CBFS max size calculation.

Hung-Te Lin (hungte@chromium.org) gerrit at coreboot.org
Wed Feb 20 08:51:20 CET 2013

Hung-Te Lin (hungte at chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2458


commit 35e4bec7b26d5d1999398ceef36a597676d29743
Author: Hung-Te Lin <hungte at chromium.org>
Date:   Wed Feb 20 15:50:06 2013 +0800

    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
    Change-Id: I286ecda73bd781550e03b0b817ed3fb567d6b8d7
    Signed-off-by: Hung-Te Lin <hungte at chromium.org>
 payloads/libpayload/libcbfs/cbfs_core.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/payloads/libpayload/libcbfs/cbfs_core.c b/payloads/libpayload/libcbfs/cbfs_core.c
index 9bae188..2ea2771 100644
--- a/payloads/libpayload/libcbfs/cbfs_core.c
+++ b/payloads/libpayload/libcbfs/cbfs_core.c
@@ -116,12 +116,12 @@ struct cbfs_file *cbfs_get_file(struct cbfs_media *media, const char *name)
 	align = ntohl(header->align);
 	romsize = ntohl(header->romsize);
-	// TODO header->romsize seems broken now on ARM. Remove this when it's
-	// fixed.
-	romsize = CONFIG_ROM_SIZE;
+	// TODO Add a "size" in CBFS header for a platform independent way to
+	// determine the end of CBFS data.
+#if defined(CONFIG_ARCH_X86) && CONFIG_ARCH_X86
+	romsize -= htonl(header->bootblocksize);
-	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);

More information about the coreboot mailing list