Update of /cvsroot/blob/blob/src/blob
In directory usw-pr-cvs1:/tmp/cvs-serv23058/src/blob
Modified Files:
linux.c main.c
Log Message:
don't load ramdisk if it won't fit. Use ramdisk from flash if not downloaded.
Index: linux.c
===================================================================
RCS file: /cvsroot/blob/blob/src/blob/linux.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- linux.c 8 Feb 2002 12:55:16 -0000 1.9
+++ linux.c 27 Feb 2002 03:28:05 -0000 1.10
@@ -105,7 +105,7 @@
params->u.mem.start = memory_map[i].start;
params->u.mem.size = memory_map[i].len;
-
+
params = tag_next(params);
}
#if defined( NEPONSET )
@@ -128,8 +128,8 @@
params->u.cmdline.cmdline[0] = '\0';
/* copy default commandline from parameter block */
- if(blob_status.cmdline[0] != '\0')
- strlcpy(params->u.cmdline.cmdline, blob_status.cmdline,
+ if(blob_status.cmdline[0] != '\0')
+ strlcpy(params->u.cmdline.cmdline, blob_status.cmdline,
COMMAND_LINE_SIZE);
/* copy commandline */
@@ -141,7 +141,7 @@
p += strlen(p);
*p++ = ' ';
}
-
+
p--;
*p = '\0';
@@ -154,9 +154,9 @@
if(strlen(params->u.cmdline.cmdline) > 0) {
params->hdr.tag = ATAG_CMDLINE;
- params->hdr.size = (sizeof(struct tag_header) +
+ params->hdr.size = (sizeof(struct tag_header) +
strlen(params->u.cmdline.cmdline) + 1 + 4) >> 2;
-
+
params = tag_next(params);
}
}
@@ -165,14 +165,19 @@
static void setup_initrd_tag(void)
{
/* an ATAG_INITRD node tells the kernel where the compressed
- * ramdisk can be found. ATAG_RDIMG is a better name, actually.
+ * ramdisk can be found. ATAG_RDIMG is a better name, actually.
*/
params->hdr.tag = ATAG_INITRD;
params->hdr.size = tag_size(tag_initrd);
-
- params->u.initrd.start = RAMDISK_RAM_BASE;
- params->u.initrd.size = RAMDISK_FLASH_LEN;
-
+
+ if (blob_status.ramdiskType = fromDownload) {
+ params->u.initrd.start = RAMDISK_RAM_BASE;
+ params->u.initrd.size = blob_status.ramdiskSize;
+ } else {
+ params->u.initrd.start = RAMDISK_FLASH_BASE;
+ params->u.initrd.size = RAMDISK_FLASH_LEN;
+ }
+
params = tag_next(params);
}
@@ -180,15 +185,15 @@
static void setup_ramdisk_tag(void)
{
/* an ATAG_RAMDISK node tells the kernel how large the
- * decompressed ramdisk will become.
+ * decompressed ramdisk will become.
*/
params->hdr.tag = ATAG_RAMDISK;
params->hdr.size = tag_size(tag_ramdisk);
-
+
params->u.ramdisk.start = 0;
params->u.ramdisk.size = RAMDISK_SIZE;
params->u.ramdisk.flags = 1; /* automatically load ramdisk */
-
+
params = tag_next(params);
}
Index: main.c
===================================================================
RCS file: /cvsroot/blob/blob/src/blob/main.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- main.c 27 Feb 2002 01:44:55 -0000 1.37
+++ main.c 27 Feb 2002 03:28:05 -0000 1.38
@@ -642,6 +642,7 @@
blob_status.kernelSize = 0;
blob_status.kernelType = fromFlash;
printf("Loading kernel from flash ");
+#ifndef NOT_ENOUGH_RAM
} else if(strncmp(what, "ramdisk", 8) == 0) {
dst = (u32 *)RAMDISK_RAM_BASE;
src = (u32 *)RAMDISK_FLASH_BASE;
@@ -649,6 +650,7 @@
blob_status.ramdiskSize = 0;
blob_status.ramdiskType = fromFlash;
printf("Loading ramdisk from flash ");
+#endif
} else {
printerror(EINVAL, what);
return 0;
|