Hi,
I think I've at last found a bug in elfboot.c.
Until this fix, I had always needed to disable verify code in
elfboot.c to get it work.
Now it boots ELF kernel with BOOT_IDE perfectly.
One of doubly-linked chain was not initialized.
I think it did not cause problem when memory near address 0 comes
up with zeroes.
But my raminit.inc leaves gabages there so some bogus memory ranges
have been included in checksum.
--
Takeshi
Index: src/lib/elfboot.c
===================================================================
RCS file: /cvsroot/freebios/freebios/src/lib/elfboot.c,v
retrieving revision 1.15
diff -u -r1.15 elfboot.c
--- src/lib/elfboot.c 10 Oct 2002 22:23:43 -0000 1.15
+++ src/lib/elfboot.c 30 Jun 2003 18:11:26 -0000
@@ -368,6 +368,7 @@
int i;
memset(head, 0, sizeof(*head));
head->next = head->prev = head;
+ head->phdr_next = head->phdr_prev = head;
for(i = 0; i < headers; i++) {
struct segment *new;
/* Ignore data that I don't need to handle */