From 4d3e4c421e94814884d1ff035a4c4ec80d4b33b2 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Tue, 14 Jul 2015 22:28:27 +0200 Subject: cbfs: hardcode file alignment Assume that it's 64 byte. Change-Id: I168facd92f64c2cf99c26c350c60317807a4aed4 Signed-off-by: Patrick Georgi Reviewed-on: http://review.coreboot.org/10919 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/arch/x86/walkcbfs.S | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'src/arch/x86/walkcbfs.S') diff --git a/src/arch/x86/walkcbfs.S b/src/arch/x86/walkcbfs.S index 60eb8b53b0..9c26d3c9a9 100644 --- a/src/arch/x86/walkcbfs.S +++ b/src/arch/x86/walkcbfs.S @@ -7,6 +7,9 @@ #define CBFS_HEADER_ALIGN (CBFS_HEADER_BOOTBLOCKSIZE + 4) #define CBFS_HEADER_OFFSET (CBFS_HEADER_ALIGN + 4) +/* we use this instead of CBFS_HEADER_ALIGN because the latter is retired. */ +#define CBFS_ALIGNMENT 64 + #define CBFS_FILE_MAGIC 0 #define CBFS_FILE_LEN (CBFS_FILE_MAGIC + 8) #define CBFS_FILE_TYPE (CBFS_FILE_LEN + 4) @@ -74,13 +77,9 @@ tryharder: mov CBFS_FILE_LEN(%ebx), %edi bswap %edi add %edi, %ecx - mov CBFS_HEADER_PTR, %edi - mov CBFS_HEADER_ALIGN(%edi), %edi - bswap %edi - sub $1, %edi - add %edi, %ecx - not %edi - and %edi, %ecx + /* round by 64 bytes */ + add $(CBFS_ALIGNMENT - 1), %ecx + and $~(CBFS_ALIGNMENT - 1), %ecx /* if oldaddr >= addr, leave */ cmp %ebx, %ecx @@ -106,11 +105,8 @@ out: searchfile: - /* if filemagic isn't found, move forward cbfs_header->align bytes */ - mov CBFS_HEADER_PTR, %edi - mov CBFS_HEADER_ALIGN(%edi), %edi - bswap %edi - add %edi, %ebx + /* if filemagic isn't found, move forward 64 bytes */ + add $CBFS_ALIGNMENT, %ebx jmp check_for_exit filemagic: -- cgit v1.2.3