void *sysmap_base;
unsigned long sysmap_size;
kernel_entry_t kernel_entry;
- struct bi_record* birec;
char* loc=NULL;
loadinfo_t loadinfo;
void *initrd_more,*initrd_want;
flush_icache_range ((long)loadinfo.base, (long)loadinfo.base+loadinfo.memsize);
DEBUG_F(" done\n");
- if (flat_vmlinux) {
- /*
- * Fill new boot infos (only if booting a vmlinux).
- *
- * The birec is low on memory, probably inside the malloc pool,
- * so we don't write it earlier. At this point, we should not
- * use anything coming from the malloc pool.
- */
- birec = (struct bi_record *)_ALIGN(loadinfo.filesize+(1<<20)-1,(1<<20));
-
- /* We make sure it's mapped. We map only 64k for now, it's
- * plenty enough we don't claim since this precise memory
- * range may already be claimed by the malloc pool.
- */
- prom_map (birec, birec, 0x10000);
- DEBUG_F("birec at %p\n", birec);
- DEBUG_SLEEP;
-
- birec->tag = BI_FIRST;
- birec->size = sizeof(struct bi_record);
- birec = (struct bi_record *)((ulong)birec + birec->size);
-
- birec->tag = BI_BOOTLOADER_ID;
- sprintf( (char *)birec->data, "yaboot");
- birec->size = sizeof(struct bi_record) + strlen("yaboot") + 1;
- birec = (struct bi_record *)((ulong)birec + birec->size);
-
- birec->tag = BI_MACHTYPE;
- birec->data[0] = _machine;
- birec->size = sizeof(struct bi_record) + sizeof(ulong);
- birec = (struct bi_record *)((ulong)birec + birec->size);
-
- if (sysmap_base) {
- birec->tag = BI_SYSMAP;
- birec->data[0] = (ulong)sysmap_base;
- birec->data[1] = sysmap_size;
- birec->size = sizeof(struct bi_record) + sizeof(ulong)*2;
- birec = (struct bi_record *)((ulong)birec + birec->size);
- }
- birec->tag = BI_LAST;
- birec->size = sizeof(struct bi_record);
- birec = (struct bi_record *)((ulong)birec + birec->size);
- }
-
/* compute the kernel's entry point. */
kernel_entry = loadinfo.base + loadinfo.entry - loadinfo.load_loc;
goto bail;
}
- /* leave some room (1Mb) for boot infos */
- loadinfo->memsize = _ALIGN(loadinfo->memsize,(1<<20)) + 0x100000;
+ loadinfo->memsize = _ALIGN(loadinfo->memsize,(1<<20));
/* Claim OF memory */
DEBUG_F("Before prom_claim, mem_sz: 0x%08lx\n", loadinfo->memsize);