aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx/patches-2.6.25/800-cfe-workaround.patch
blob: 361f006c5f263c6462c464c8817627896b43588c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Index: linux-2.6.25.1/arch/mips/bcm47xx/prom.c
===================================================================
--- linux-2.6.25.1.orig/arch/mips/bcm47xx/prom.c	2008-05-14 14:46:44.000000000 +0100
+++ linux-2.6.25.1/arch/mips/bcm47xx/prom.c	2008-05-14 17:05:43.000000000 +0100
@@ -83,9 +83,18 @@ static __init void prom_init_cfe(void)
 		}
 	}
 
+        if (((unsigned int)prom_vec == 0x80300000) ||
+	    ((unsigned int)prom_vec == 0x80400000)) {
+		/* WRT54G series workaround */
+		cfe_eptseal = CFE_EPTSEAL;
+		cfe_ept = 0xBFC00500;
+		cfe_handle = (uint32_t)argc;
+        }
+
 	if (cfe_eptseal != CFE_EPTSEAL) {
 		/* too early for panic to do any good */
 		printk(KERN_ERR "CFE's entrypoint seal doesn't match.");
+		*(unsigned int*)0xb8000064 = 0x1;
 		while (1) ;
 	}