--- arch/arm/mach-ixp4xx/nas100d-setup.c | 39 +++++++++++++---------------------- 1 file changed, 15 insertions(+), 24 deletions(-) Index: linux-2.6.20-rc6/arch/arm/mach-ixp4xx/nas100d-setup.c =================================================================== --- linux-2.6.20-rc6.orig/arch/arm/mach-ixp4xx/nas100d-setup.c +++ linux-2.6.20-rc6/arch/arm/mach-ixp4xx/nas100d-setup.c @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -227,41 +228,31 @@ register_mtd_user(&nas100d_flash_notifier); } -static char nas100d_rtc_probe[] __initdata = "rtc-pcf8563.probe=0,0x51 "; +static char nas100d_default_cmdline[] __initdata = + "init=/linuxrc root=/dev/mtdblock2 rootfstype=jffs2 rw rtc-pcf8563.probe=0,0x51 " + CONFIG_CMDLINE; static void __init nas100d_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 NAS100D has one bank of 64MByte 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 = (64*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(nas100d_rtc_probe) + strlen(p) + 1 + 4) >> 2; - strlcpy(t->u.cmdline.cmdline, nas100d_rtc_probe, COMMAND_LINE_SIZE); - strlcpy(t->u.cmdline.cmdline + strlen(nas100d_rtc_probe), p, - COMMAND_LINE_SIZE - strlen(nas100d_rtc_probe)); - - /* Terminate the table. */ - t = tag_next(t); - t->hdr.tag = ATAG_NONE; - t->hdr.size = 0; + /* Hard coded command line. */ + strlcpy(*cmdline, nas100d_default_cmdline, COMMAND_LINE_SIZE); } MACHINE_START(NAS100D, "Iomega NAS 100d") /* 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 IOMega RedBoot */ .fixup = nas100d_fixup, .map_io = ixp4xx_map_io, .init_irq = ixp4xx_init_irq,