Changes since U-Boot 0.3.1:
======================================================================
+* Add zero-copy ramdisk support (requires corresponding kernel support!)
+
* Patch by Kyle Harris, 20 May 2003:
In preparation for an ixp port, rename cpu/xscale and arch-xscale
into cpu/pxa and arch-pxa.
setenv initrd_high 00c00000
+ If you set initrd_high to 0xFFFFFFFF, this is an
+ indication to U-Boot that all addresses are legal
+ for the Linux kernel, including addresses in flash
+ memory. In this case U-Boot will NOT COPY the
+ ramdisk at all. This may be useful to reduce the
+ boot time on your system, but requires that this
+ feature is supported by your Linux kernel.
+
ipaddr - IP address; needed for tftpboot command
loadaddr - Default load address for commands like "bootp",
ulong cmd_start, cmd_end;
ulong initrd_high;
ulong data;
+ int initrd_copy_to_ram = 1;
char *cmdline;
char *s;
bd_t *kbd;
* turning the "load high" feature off. This is intentional.
*/
initrd_high = simple_strtoul(s, NULL, 16);
+ if (initrd_high == ~0)
+ initrd_copy_to_ram = 0;
} else { /* not set, no restrictions to load high */
initrd_high = ~0;
}
}
if (data) {
+ if (!initrd_copy_to_ram) { /* zero-copy ramdisk support */
+ initrd_start = data;
+ initrd_end = initrd_start + len;
+ } else {
initrd_start = (ulong)kbd - len;
initrd_start &= ~(4096 - 1); /* align on page */
memmove ((void *)initrd_start, (void *)data, len);
#endif /* CONFIG_HW_WATCHDOG || CONFIG_WATCHDOG */
printf ("OK\n");
+ }
} else {
initrd_start = 0;
initrd_end = 0;