
Hi, There is a bug in the code of clearing the bss section for processor i386.(File: cpu/i386/start.S) In the code, bss_start addr (starting addr of bss section) is put into the register %eax, but the code which clears the bss section refers to the addr pointed by %edi.
This patch fixes this bug by putting bss_start into %edi register.
Author: Mushtaq Khan mushtaq_k@procsys.com Date: Thu Apr 30 15:40:45 2007 Signed-off-by: Mushtaq Khan mushtaq_k@procsys.com
diff -purN u-boot/cpu/i386/start.S u-boot_chg/cpu/i386/start.S --- u-boot/cpu/i386/start.S 2007-02-21 10:59:41.000000000 +0530 +++ u-boot_chg/cpu/i386/start.S 2007-04-30 14:51:48.000000000 +0530 @@ -149,7 +149,7 @@ data_ok: .progress3:
/* clear bss section in ram, size must be 4-byte aligned */ - movl $_i386boot_bss_start, %eax /* BSS start */ + movl $_i386boot_bss_start, %edi /* MK_CHG BSS start */ movl $_i386boot_bss_size, %ecx /* BSS size */ movl %ecx, %eax andl $3, %eax