Add zero-copy ramdisk support (requires corresponding kernel support!)
This commit is contained in:
parent
4c3b21a5f9
commit
38b99261c1
|
@ -2,6 +2,8 @@
|
||||||
Changes since U-Boot 0.3.1:
|
Changes since U-Boot 0.3.1:
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
|
* Add zero-copy ramdisk support (requires corresponding kernel support!)
|
||||||
|
|
||||||
* Patch by Kyle Harris, 20 May 2003:
|
* Patch by Kyle Harris, 20 May 2003:
|
||||||
In preparation for an ixp port, rename cpu/xscale and arch-xscale
|
In preparation for an ixp port, rename cpu/xscale and arch-xscale
|
||||||
into cpu/pxa and arch-pxa.
|
into cpu/pxa and arch-pxa.
|
||||||
|
|
8
README
8
README
|
@ -1988,6 +1988,14 @@ Some configuration options can be set using Environment Variables:
|
||||||
|
|
||||||
setenv initrd_high 00c00000
|
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
|
ipaddr - IP address; needed for tftpboot command
|
||||||
|
|
||||||
loadaddr - Default load address for commands like "bootp",
|
loadaddr - Default load address for commands like "bootp",
|
||||||
|
|
|
@ -374,6 +374,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
|
||||||
ulong cmd_start, cmd_end;
|
ulong cmd_start, cmd_end;
|
||||||
ulong initrd_high;
|
ulong initrd_high;
|
||||||
ulong data;
|
ulong data;
|
||||||
|
int initrd_copy_to_ram = 1;
|
||||||
char *cmdline;
|
char *cmdline;
|
||||||
char *s;
|
char *s;
|
||||||
bd_t *kbd;
|
bd_t *kbd;
|
||||||
|
@ -385,6 +386,8 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
|
||||||
* turning the "load high" feature off. This is intentional.
|
* turning the "load high" feature off. This is intentional.
|
||||||
*/
|
*/
|
||||||
initrd_high = simple_strtoul(s, NULL, 16);
|
initrd_high = simple_strtoul(s, NULL, 16);
|
||||||
|
if (initrd_high == ~0)
|
||||||
|
initrd_copy_to_ram = 0;
|
||||||
} else { /* not set, no restrictions to load high */
|
} else { /* not set, no restrictions to load high */
|
||||||
initrd_high = ~0;
|
initrd_high = ~0;
|
||||||
}
|
}
|
||||||
|
@ -567,6 +570,10 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data) {
|
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 = (ulong)kbd - len;
|
||||||
initrd_start &= ~(4096 - 1); /* align on page */
|
initrd_start &= ~(4096 - 1); /* align on page */
|
||||||
|
|
||||||
|
@ -621,6 +628,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
|
||||||
memmove ((void *)initrd_start, (void *)data, len);
|
memmove ((void *)initrd_start, (void *)data, len);
|
||||||
#endif /* CONFIG_HW_WATCHDOG || CONFIG_WATCHDOG */
|
#endif /* CONFIG_HW_WATCHDOG || CONFIG_WATCHDOG */
|
||||||
printf ("OK\n");
|
printf ("OK\n");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
initrd_start = 0;
|
initrd_start = 0;
|
||||||
initrd_end = 0;
|
initrd_end = 0;
|
||||||
|
|
Loading…
Reference in New Issue