summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorMichael Brown2006-03-16 18:59:51 +0100
committerMichael Brown2006-03-16 18:59:51 +0100
commitbb7394b041a73f21a8dd880ce9e35f0168326b22 (patch)
tree5afd0d102828a4b9227445d7251aa7f602f8c944 /src/core
parentMerge from Etherboot 5.4 (diff)
parentImport from Etherboot 5.4 (diff)
downloadipxe-bb7394b041a73f21a8dd880ce9e35f0168326b22.tar.gz
ipxe-bb7394b041a73f21a8dd880ce9e35f0168326b22.tar.xz
ipxe-bb7394b041a73f21a8dd880ce9e35f0168326b22.zip
Merge from Etherboot 5.4
Diffstat (limited to 'src/core')
-rw-r--r--src/core/elf_loader.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/elf_loader.c b/src/core/elf_loader.c
index 88a2975ef..85b60e8a3 100644
--- a/src/core/elf_loader.c
+++ b/src/core/elf_loader.c
@@ -199,7 +199,6 @@ static inline os_download_t elf32_probe(unsigned char *data, unsigned int len)
}
printf("(ELF");
elf_freebsd_probe();
- multiboot_probe(data, len);
printf(")... ");
phdr_size = estate.e.elf32.e_phnum * estate.e.elf32.e_phentsize;
if (estate.e.elf32.e_phoff + phdr_size > len) {
@@ -207,7 +206,7 @@ static inline os_download_t elf32_probe(unsigned char *data, unsigned int len)
return dead_download;
}
if (phdr_size > sizeof(estate.p.dummy)) {
- printf("Program header to big\n");
+ printf("Program header too big\n");
return dead_download;
}
memcpy(&estate.p.phdr32, data + estate.e.elf32.e_phoff, phdr_size);
@@ -251,6 +250,7 @@ static inline os_download_t elf32_probe(unsigned char *data, unsigned int len)
}
#if ELF_NOTES
/* Load ELF notes from the image */
+ estate.check_ip_checksum = 0;
for(estate.segment = 0; estate.segment < estate.e.elf32.e_phnum; estate.segment++) {
if (estate.p.phdr32[estate.segment].p_type != PT_NOTE)
continue;
@@ -289,6 +289,7 @@ static inline os_download_t elf32_probe(unsigned char *data, unsigned int len)
estate.loc = 0;
estate.skip = 0;
estate.toread = 0;
+ multiboot_init();
return elf32_download;
}
@@ -516,6 +517,7 @@ static inline os_download_t elf64_probe(unsigned char *data, unsigned int len)
}
#if ELF_NOTES
/* Load ELF notes from the image */
+ estate.check_ip_checksum = 0;
for(estate.segment = 0; estate.segment < estate.e.elf64.e_phnum; estate.segment++) {
if (estate.p.phdr64[estate.segment].p_type != PT_NOTE)
continue;