summaryrefslogtreecommitdiff
path: root/target/linux/patches/2.6.37/ar7.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/patches/2.6.37/ar7.patch')
-rw-r--r--target/linux/patches/2.6.37/ar7.patch90
1 files changed, 90 insertions, 0 deletions
diff --git a/target/linux/patches/2.6.37/ar7.patch b/target/linux/patches/2.6.37/ar7.patch
new file mode 100644
index 000000000..5f3b69ce1
--- /dev/null
+++ b/target/linux/patches/2.6.37/ar7.patch
@@ -0,0 +1,90 @@
+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 <linux/bootmem.h>
+ #include <linux/magic.h>
+
+-#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);
+ }
+