X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=second%2Fyaboot.c;h=fd5dee3c5399e818f9469ec5540aa79e2af0ce53;hb=fb19c524bfae0a8105d9321eec4c60daa2f60a03;hp=cf920a1646f2f5ae4290c64120ba5c7934b33871;hpb=15b93b378020b59031b991abe31b130ca105be03;p=yaboot.git diff --git a/second/yaboot.c b/second/yaboot.c index cf920a1..fd5dee3 100644 --- a/second/yaboot.c +++ b/second/yaboot.c @@ -916,6 +916,7 @@ yaboot_text_ui(void) sysmap_base = prom_claim(loadinfo.base+loadinfo.memsize, 0x100000, 0); if (sysmap_base == (void *)-1) { prom_printf("Claim failed for sysmap memory\n"); + prom_pause(); sysmap_base = 0; } else { sysmap_size = file.fs->read(&file, 0xfffff, sysmap_base); @@ -963,7 +964,7 @@ yaboot_text_ui(void) prom_perror(result, params.rd.file); } else { -#define INITRD_CHUNKSIZE 0x400000 +#define INITRD_CHUNKSIZE 0x100000 initrd_base = prom_claim(loadinfo.base+loadinfo.memsize, INITRD_CHUNKSIZE, 0); if (initrd_base == (void *)-1) { prom_printf("Claim failed for initrd memory\n"); @@ -979,6 +980,7 @@ yaboot_text_ui(void) initrd_more = prom_claim(initrd_want, INITRD_CHUNKSIZE, 0); if (initrd_more != initrd_want) { prom_printf("Claim failed for initrd memory at %p rc=%p\n",initrd_want,initrd_more); + prom_pause(); break; } initrd_read = file.fs->read(&file, INITRD_CHUNKSIZE, initrd_more); @@ -1161,7 +1163,7 @@ load_elf32(struct boot_file_t *file, loadinfo_t *loadinfo) loadaddr = KERNELADDR; } else { flat_vmlinux = 0; - loadaddr = e->e_entry; + loadaddr = loadinfo->load_loc; } /* On some systems, loadaddr may already be claimed, so try some