diff -Nur linux-2.6.36.orig/arch/mips/Kconfig linux-2.6.36/arch/mips/Kconfig --- linux-2.6.36.orig/arch/mips/Kconfig 2010-10-20 22:30:22.000000000 +0200 +++ linux-2.6.36/arch/mips/Kconfig 2010-12-16 21:02:19.000000000 +0100 @@ -46,7 +46,6 @@ select CEVT_R4K select CSRC_R4K select IRQ_CPU - select NO_EXCEPT_FILL select SWAP_IO_SPACE select SYS_HAS_CPU_MIPS32_R1 select SYS_HAS_EARLY_PRINTK diff -Nur linux-2.6.36.orig/arch/mips/ar7/prom.c linux-2.6.36/arch/mips/ar7/prom.c --- linux-2.6.36.orig/arch/mips/ar7/prom.c 2010-10-20 22:30:22.000000000 +0200 +++ linux-2.6.36/arch/mips/ar7/prom.c 2010-12-16 21:02:19.000000000 +0100 @@ -206,6 +206,14 @@ if (strstr(arcs_cmdline, "console=")) return; +#ifdef CONFIG_KGDB + if (!strstr(prom_getcmdline(), "nokgdb")) { + strcat(prom_getcmdline(), " console=kgdb"); + kgdb_enabled = 1; + return; + } +#endif + s = prom_getenv("modetty0"); if (s) { baud = simple_strtoul(s, &p, 10); diff -Nur linux-2.6.36.orig/drivers/mtd/ar7part.c linux-2.6.36/drivers/mtd/ar7part.c --- linux-2.6.36.orig/drivers/mtd/ar7part.c 2010-10-20 22:30:22.000000000 +0200 +++ linux-2.6.36/drivers/mtd/ar7part.c 2010-12-16 21:02:19.000000000 +0100 @@ -28,7 +28,7 @@ #include #include -#define AR7_PARTS 4 +#define AR7_PARTS 5 #define ROOT_OFFSET 0xe0000 #define LOADER_MAGIC1 le32_to_cpu(0xfeedfa42) @@ -122,14 +122,19 @@ ar7_parts[2].name = "linux"; ar7_parts[2].offset = pre_size; - ar7_parts[2].size = master->size - pre_size - post_size; + ar7_parts[2].size = master->size - pre_size - post_size - 2*master->erasesize; ar7_parts[2].mask_flags = 0; ar7_parts[3].name = "rootfs"; ar7_parts[3].offset = root_offset; - ar7_parts[3].size = master->size - root_offset - post_size; + ar7_parts[3].size = master->size - root_offset - post_size - 2*master->erasesize; ar7_parts[3].mask_flags = 0; + ar7_parts[4].name = "cfgfs"; + ar7_parts[4].offset = master->size - 2*master->erasesize; + ar7_parts[4].size = 2*master->erasesize; + ar7_parts[4].mask_flags = 0; + *pparts = ar7_parts; return AR7_PARTS; } diff -Nur linux-2.6.36.orig/drivers/mtd/maps/physmap.c linux-2.6.36/drivers/mtd/maps/physmap.c --- linux-2.6.36.orig/drivers/mtd/maps/physmap.c 2010-10-20 22:30:22.000000000 +0200 +++ linux-2.6.36/drivers/mtd/maps/physmap.c 2010-12-16 21:02:19.000000000 +0100 @@ -79,7 +79,7 @@ "map_rom", NULL }; #ifdef CONFIG_MTD_PARTITIONS -static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL }; +static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", "ar7part", NULL }; #endif static int physmap_flash_probe(struct platform_device *dev) diff -Nur linux-2.6.36.orig/drivers/serial/8250.c linux-2.6.36/drivers/serial/8250.c --- linux-2.6.36.orig/drivers/serial/8250.c 2010-10-20 22:30:22.000000000 +0200 +++ linux-2.6.36/drivers/serial/8250.c 2010-12-16 21:02:19.000000000 +0100 @@ -2761,7 +2761,11 @@ { struct uart_8250_port *up = (struct uart_8250_port *)port; +#ifdef CONFIG_AR7 + wait_for_xmitr(up, BOTH_EMPTY); +#else wait_for_xmitr(up, UART_LSR_THRE); +#endif serial_out(up, UART_TX, ch); }