summaryrefslogtreecommitdiff
path: root/target/linux/patches/2.6.37/ar7.patch
blob: 5f3b69ce17df10c8a008f6af49a4c91cb5e5cfcd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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);
 }