diff options
Diffstat (limited to 'target/linux/brcm47xx/patches-2.6.25/800-cfe-workaround.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-2.6.25/800-cfe-workaround.patch | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/patches-2.6.25/800-cfe-workaround.patch b/target/linux/brcm47xx/patches-2.6.25/800-cfe-workaround.patch new file mode 100644 index 0000000000..361f006c5f --- /dev/null +++ b/target/linux/brcm47xx/patches-2.6.25/800-cfe-workaround.patch @@ -0,0 +1,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) ; + } + |