openwrt/target/linux/brcm47xx/patches-2.6.25/800-cfe-workaround.patch

24 lines
712 B
Diff

Index: linux-2.6.25.4/arch/mips/bcm47xx/prom.c
===================================================================
--- linux-2.6.25.4.orig/arch/mips/bcm47xx/prom.c
+++ linux-2.6.25.4/arch/mips/bcm47xx/prom.c
@@ -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) ;
}