--- arch/arm/mach-ixp4xx/nslu2-setup.c | 38 ++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-) Index: linux-2.6.20-rc6/arch/arm/mach-ixp4xx/nslu2-setup.c =================================================================== --- linux-2.6.20-rc6.orig/arch/arm/mach-ixp4xx/nslu2-setup.c +++ linux-2.6.20-rc6/arch/arm/mach-ixp4xx/nslu2-setup.c @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -241,40 +242,31 @@ register_mtd_user(&nslu2_flash_notifier); } -static char nslu2_rtc_probe[] __initdata = "rtc-x1205.probe=0,0x6f "; +static char nslu2_default_cmdline[] __initdata = + "init=/linuxrc root=/dev/mtdblock4 rootfstype=jffs2 rw rtc-x1205.probe=0,0x6f " + CONFIG_CMDLINE; static void __init nslu2_fixup(struct machine_desc *desc, struct tag *tags, char **cmdline, struct meminfo *mi) { - struct tag *t = tags; - char *p = *cmdline; - - /* Find the end of the tags table, taking note of any cmdline tag. */ - for (; t->hdr.size; t = tag_next(t)) { - if (t->hdr.tag == ATAG_CMDLINE) { - p = t->u.cmdline.cmdline; - } - } + /* The NSLU2 has one bank of 32MByte memory. + * NOTE: setting nr_banks != 0 causes kernel/setup.c to remove + * the mem tags from the tag list. We need do nothing here! + */ + mi->nr_banks=1; + mi->bank[0].start = 0; + mi->bank[0].size = (32*1024*1024); + mi->bank[0].node = PHYS_TO_NID(0); - /* Overwrite the end of the table with a new cmdline tag. */ - t->hdr.tag = ATAG_CMDLINE; - t->hdr.size = (sizeof (struct tag_header) + - strlen(nslu2_rtc_probe) + strlen(p) + 1 + 4) >> 2; - strlcpy(t->u.cmdline.cmdline, nslu2_rtc_probe, COMMAND_LINE_SIZE); - strlcpy(t->u.cmdline.cmdline + strlen(nslu2_rtc_probe), p, - COMMAND_LINE_SIZE - strlen(nslu2_rtc_probe)); - - /* Terminate the table. */ - t = tag_next(t); - t->hdr.tag = ATAG_NONE; - t->hdr.size = 0; + /* Hard coded command line. */ + strlcpy(*cmdline, nslu2_default_cmdline, COMMAND_LINE_SIZE); } MACHINE_START(NSLU2, "Linksys NSLU2") /* Maintainer: www.nslu2-linux.org */ .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS, .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC, - .boot_params = 0x00000100, + .boot_params = 0, /* because they are garbage from Linksys RedBoot */ .fixup = nslu2_fixup, .map_io = ixp4xx_map_io, .init_irq = ixp4xx_init_irq,