ppcrcd/trunk/yaboot/yaboot.c

sparky cvs at pld-linux.org
Mon Jan 9 21:49:30 CET 2006


Author: sparky
Date: Mon Jan  9 21:49:26 2006
New Revision: 6782

Modified:
   ppcrcd/trunk/yaboot/yaboot.c
Log:
- fixed and some hacks added to vmlinux extraction from zImage, It works !!!


Modified: ppcrcd/trunk/yaboot/yaboot.c
==============================================================================
--- ppcrcd/trunk/yaboot/yaboot.c	(original)
+++ ppcrcd/trunk/yaboot/yaboot.c	Mon Jan  9 21:49:26 2006
@@ -1297,11 +1297,6 @@
 		return 0;
 	}
 
-	/* leave some room (1Mb) for boot infos */
-	loadinfo->memsize = _ALIGN(loadinfo->memsize,(1<<20)) + 0x100000;
-	/* Claim OF memory */
-	DEBUG_F("Before prom_claim, mem_sz: 0x%08lx\n", loadinfo->memsize);
-
 	/* Determine whether we are trying to boot a vmlinux or some
 	* other binary image (eg, zImage). We load vmlinux's at
 	* KERNELADDR and all other binaries at their e_entry value.
@@ -1315,9 +1310,19 @@
 	}
 	if ( kernel_position > 0 ) {
 		flat_vmlinux = 1;
+		/* hardcode some info */
+		loadinfo->load_loc = 0xc0000000;
 		loadaddr = KERNELADDR;
+		loadinfo->entry = KERNEL_LINK_ADDR_PPC32;
+		/* memsize must be larger than filesize, but _ALIGN should help*/
 		loadinfo->memsize = kernel_size;
+		loadinfo->filesize = kernel_size;
 	}
+	
+	/* leave some room (1Mb) for boot infos */
+	loadinfo->memsize = _ALIGN(loadinfo->memsize,(1<<20)) + 0x100000;
+	/* Claim OF memory */
+	DEBUG_F("Before prom_claim, mem_sz: 0x%08lx\n", loadinfo->memsize);
 
 	/* On some systems, loadaddr may already be claimed, so try some
 	* other nearby addresses before giving up.
@@ -1381,6 +1386,8 @@
 			prom_printf ("Gunzip read failed\n");
 			prom_release(loadinfo->base, loadinfo->memsize);
 			return 0;
+		} else {
+			prom_printf ("vmlinux extracted successfully !\n");
 		}
 	}
 


More information about the pld-cvs-commit mailing list