[coreboot] r605 - in coreboot-v3: lib util/lar

svn at coreboot.org svn at coreboot.org
Sat Feb 16 20:18:32 CET 2008


Author: hailfinger
Date: 2008-02-16 20:18:32 +0100 (Sat, 16 Feb 2008)
New Revision: 605

Modified:
   coreboot-v3/lib/lar.c
   coreboot-v3/util/lar/stream.c
Log:
On 16.02.2008 07:41, ron minnich wrote:
> Alix1c won't boot with the zero decompress code.
> I think the code is using the wrong address on decompress.

Indeed, r601 broke all targets, you were just lucky that qemu didn't
explode as well.
It's the seemingly easy patches which break booting. With your hint, I
found the bug. Myles made a small, but important mistake with the memset
for the "zeroes" decompression.
The memset zeroed the archive instead of the destination. No wonder it
did explode.
This patch fixes it and also reverts the emergency commit r604 because
that one is no longer necessary.

Ron tested on the Alix1c, boots fine, ethernet and IDE working.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Acked-by: Stefan Reinauer <stepan at coresystems.de>
Acked-by: Ronald G. Minnich <rminnich at gmail.com>


Modified: coreboot-v3/lib/lar.c
===================================================================
--- coreboot-v3/lib/lar.c	2008-02-16 06:38:45 UTC (rev 604)
+++ coreboot-v3/lib/lar.c	2008-02-16 19:18:32 UTC (rev 605)
@@ -172,7 +172,7 @@
 #endif
 	/* zeroes */
 	if (archive->compression == 3) {
-		memset(archive->start, 0, archive->reallen);
+		memset(where, 0, archive->reallen);
 		return 0;
 	}
 	printk(BIOS_INFO, "LAR: Compression algorithm #%i not supported!\n", archive->compression);

Modified: coreboot-v3/util/lar/stream.c
===================================================================
--- coreboot-v3/util/lar/stream.c	2008-02-16 06:38:45 UTC (rev 604)
+++ coreboot-v3/util/lar/stream.c	2008-02-16 19:18:32 UTC (rev 605)
@@ -148,7 +148,6 @@
 			continue;
 		}
 		thisalgo = zeroes;
-		thisalgo = algo;
 		if (verbose())
 			fprintf(stderr,  "New section addr %#x size %#x\n",
 			(u32)shdr[i].sh_addr, (u32)shdr[i].sh_size);





More information about the coreboot mailing list