[U-Boot] [PATCH] u-boot-v2 initrd support for ARM
Eric Lammerts
u-boot at lists.lammerts.org
Wed May 6 01:51:41 CEST 2009
Hi,
here's a small patch to make initrd working on ARM in u-boot-v2.
I use it to boot over the network like this:
tftp /tftpboot/kernel.uImage kernel
tftp /tftpboot/rootfs.uImage rootfs
bootm -r rootfs kernel
I create the rootfs image like this:
mkimage -A arm -O linux -T ramdisk -C none -a 0xA0800000 -n rootfs \
-d rootfs.cpio.gz rootfs.uImage
(this is for imx27)
regards,
Eric
Signed-off-by: Eric Lammerts <eric at lammerts.org>
diff --git a/arch/arm/lib/armlinux.c b/arch/arm/lib/armlinux.c
index ce86ff8..7d686eb 100644
--- a/arch/arm/lib/armlinux.c
+++ b/arch/arm/lib/armlinux.c
@@ -68,14 +68,12 @@ static void __setup_memory_tags(void);
#define setup_memory_tags() do {} while(0)
#endif
-#if 0
#ifdef CONFIG_INITRD_TAG
static void __setup_initrd_tag(ulong initrd_start, ulong initrd_end);
#define setup_initrd_tag __setup_initrd_tag
#else
#define setup_initrd_tag(a,b) do {} while(0)
#endif
-#endif
extern ulong calc_fbsize(void);
#if defined (CONFIG_VFD) || defined (CONFIG_LCD)
@@ -156,10 +154,8 @@ int do_bootm_linux(struct image_data *data)
setup_revision_tag(¶ms);
setup_memory_tags();
setup_commandline_tag(commandline);
-#if 0
- if (initrd_start && initrd_end)
- setup_initrd_tag (initrd_start, initrd_end);
-#endif
+ if (data->initrd->data)
+ setup_initrd_tag ((ulong)data->initrd->data, (ulong)data->initrd->data + ntohl(data->initrd->header.ih_size));
setup_videolfb_tag((gd_t *) gd);
setup_end_tag();
More information about the U-Boot
mailing list