From: Felix Fietkau Date: Fri, 7 May 2010 11:48:15 +0000 (+0000) Subject: brcm47xx: adjust the brcm4710 cache workaround code so that it does not break bcm4716... X-Git-Tag: reboot~19922 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=0f7864456a60f1ea4a5a2ce7aa4f99d68bd4a1d9;p=openwrt%2Fstaging%2Fblogic.git brcm47xx: adjust the brcm4710 cache workaround code so that it does not break bcm4716 (patch by Bernhard Loos) SVN-Revision: 21395 --- diff --git a/target/linux/brcm47xx/patches-2.6.32/150-cpu_fixes.patch b/target/linux/brcm47xx/patches-2.6.32/150-cpu_fixes.patch index e6ac4c8e8aba..16bfd7fc6c35 100644 --- a/target/linux/brcm47xx/patches-2.6.32/150-cpu_fixes.patch +++ b/target/linux/brcm47xx/patches-2.6.32/150-cpu_fixes.patch @@ -7,7 +7,7 @@ +#ifdef CONFIG_BCM47XX +#include +#include -+#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))) ++#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE))) + +#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr)) +#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); }) diff --git a/target/linux/brcm47xx/patches-2.6.32/920-cache-wround.patch b/target/linux/brcm47xx/patches-2.6.32/920-cache-wround.patch index 688d3e138958..7b889d8995f1 100644 --- a/target/linux/brcm47xx/patches-2.6.32/920-cache-wround.patch +++ b/target/linux/brcm47xx/patches-2.6.32/920-cache-wround.patch @@ -4,11 +4,11 @@ #ifdef CONFIG_BCM47XX #include #include --#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))) +-#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE))) +#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg() + +static inline unsigned long bcm4710_dummy_rreg(void) { -+ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))); ++ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE))); +} + +#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr)) diff --git a/target/linux/brcm47xx/patches-2.6.33/150-cpu_fixes.patch b/target/linux/brcm47xx/patches-2.6.33/150-cpu_fixes.patch index 41986144413d..c073b3663a14 100644 --- a/target/linux/brcm47xx/patches-2.6.33/150-cpu_fixes.patch +++ b/target/linux/brcm47xx/patches-2.6.33/150-cpu_fixes.patch @@ -7,7 +7,7 @@ +#ifdef CONFIG_BCM47XX +#include +#include -+#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))) ++#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE))) + +#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr)) +#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); }) diff --git a/target/linux/brcm47xx/patches-2.6.33/920-cache-wround.patch b/target/linux/brcm47xx/patches-2.6.33/920-cache-wround.patch index 3edf04bf05df..c5441f97477c 100644 --- a/target/linux/brcm47xx/patches-2.6.33/920-cache-wround.patch +++ b/target/linux/brcm47xx/patches-2.6.33/920-cache-wround.patch @@ -4,11 +4,11 @@ #ifdef CONFIG_BCM47XX #include #include --#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))) +-#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE))) +#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg() + +static inline unsigned long bcm4710_dummy_rreg(void) { -+ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))); ++ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE))); +} + +#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr)) diff --git a/target/linux/brcm47xx/patches-2.6.34/150-cpu_fixes.patch b/target/linux/brcm47xx/patches-2.6.34/150-cpu_fixes.patch index 56fdbbc62bc6..f9fb25e71fab 100644 --- a/target/linux/brcm47xx/patches-2.6.34/150-cpu_fixes.patch +++ b/target/linux/brcm47xx/patches-2.6.34/150-cpu_fixes.patch @@ -7,7 +7,7 @@ +#ifdef CONFIG_BCM47XX +#include +#include -+#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))) ++#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE))) + +#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr)) +#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); }) diff --git a/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch b/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch index a308335b54b8..6291a222d034 100644 --- a/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch +++ b/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch @@ -4,11 +4,11 @@ #ifdef CONFIG_BCM47XX #include #include --#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))) +-#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE))) +#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg() + +static inline unsigned long bcm4710_dummy_rreg(void) { -+ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))); ++ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE))); +} + +#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr))