summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <stefan.reinauer@coreboot.org>2011-04-14 20:33:53 +0000
committerStefan Reinauer <stepan@openbios.org>2011-04-14 20:33:53 +0000
commit1fdfed1798259ad9e123e9329b9810033df0e3c0 (patch)
treeee99711aebda859474f9301b7999cc3bc789248d
parent31853d8976ffd817bc773d559f104d2c42ed0c43 (diff)
downloadcoreboot-1fdfed1798259ad9e123e9329b9810033df0e3c0.tar.xz
add some comments to walkcbfs.S
Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6498 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--src/arch/x86/lib/walkcbfs.S21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/arch/x86/lib/walkcbfs.S b/src/arch/x86/lib/walkcbfs.S
index 27d82ae742..2dc9617651 100644
--- a/src/arch/x86/lib/walkcbfs.S
+++ b/src/arch/x86/lib/walkcbfs.S
@@ -16,11 +16,11 @@
#define CBFS_FILE_STRUCTSIZE (CBFS_FILE_OFFSET + 4)
/*
- input %esi: filename
- input %esp: return address (not pointer to return address!)
- output %eax: entry point
- clobbers %ebx, %ecx, %edi
-*/
+ * input %esi: filename
+ * input %esp: return address (not pointer to return address!)
+ * output %eax: entry point
+ * clobbers %ebx, %ecx, %edi
+ */
walkcbfs_asm:
cld
@@ -28,10 +28,10 @@ walkcbfs_asm:
mov CBFS_HEADER_ROMSIZE(%eax), %ecx
bswap %ecx
mov $0, %ebx
- sub %ecx, %ebx
+ sub %ecx, %ebx /* rom base address in ebx */
mov CBFS_HEADER_OFFSET(%eax), %ecx
bswap %ecx
- add %ecx, %ebx
+ add %ecx, %ebx /* address where we start looking for LARCHIVEs */
/* determine filename length */
mov $0, %eax
@@ -43,21 +43,22 @@ walkcbfs_asm:
2:
add $1, %eax
walker:
- mov 0(%ebx), %edi
+ mov 0(%ebx), %edi /* Check for LARCHIVE header */
cmp %edi, filemagic
jne searchfile
mov 4(%ebx), %edi
cmp %edi, filemagic+4
jne searchfile
+ /* LARCHIVE header found */
mov %ebx, %edi
add $CBFS_FILE_STRUCTSIZE, %edi /* edi = address of first byte after struct cbfs_file */
mov %eax, %ecx
repe cmpsb
- # zero flag set if strings are equal
+ /* zero flag set if strings are equal */
jnz tryharder
- # we found it!
+ /* we found it! */
mov CBFS_FILE_OFFSET(%ebx), %eax
bswap %eax
add %ebx, %eax