bcm53xx: fix booting BCM4709
authorRafał Miłecki <zajec5@gmail.com>
Fri, 30 Jan 2015 06:58:35 +0000 (06:58 +0000)
committerRafał Miłecki <zajec5@gmail.com>
Fri, 30 Jan 2015 06:58:35 +0000 (06:58 +0000)
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 44218

target/linux/bcm53xx/patches-3.14/323-ARM-BCM5301X-Add-DT-for-Netgear-R8000.patch
target/linux/bcm53xx/patches-3.18/323-ARM-BCM5301X-Add-DT-for-Netgear-R8000.patch

index 2dae1046fee83134bd0fc7b832f492946798ef04..72f83af2c6756cf80f6345a81517a61afa543a44 100644 (file)
@@ -59,6 +59,29 @@ index 0000000..2d7e388
 +                     0x88000000 0x08000000>;
 +      };
 +};
+--- a/arch/arm/mach-bcm/bcm_5301x.c
++++ b/arch/arm/mach-bcm/bcm_5301x.c
+@@ -35,15 +35,16 @@ static struct bcma_bus *bcm5301x_get_bcm
+ static int bcm5301x_abort_handler(unsigned long addr, unsigned int fsr,
+                                struct pt_regs *regs)
+ {
+-      if (fsr == 0x1c06 && first_fault) {
++      if ((fsr == 0x1406 || fsr == 0x1c06) && first_fault) {
+               first_fault = false;
+               /*
+-               * These faults with code 0x1c06 happens for no good reason,
+-               * possibly left over from the CFE boot loader.
++               * These faults with codes 0x1406 (BCM4709) or 0x1c06 happens
++               * for no good reason, possibly left over from the CFE boot
++               * loader.
+                */
+               pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
+-              addr, fsr);
++                      addr, fsr);
+               /* Returning non-zero causes fault display and panic */
+               return 0;
 -- 
 1.8.4.5
 
index 2409a045556860e2c835db659219850ade615f41..a09dbebe43422a7806541182b38027bac5288f4e 100644 (file)
@@ -59,6 +59,29 @@ index 0000000..2d7e388
 +                     0x88000000 0x08000000>;
 +      };
 +};
+--- a/arch/arm/mach-bcm/bcm_5301x.c
++++ b/arch/arm/mach-bcm/bcm_5301x.c
+@@ -35,15 +35,16 @@ static struct bcma_bus *bcm5301x_get_bcm
+ static int bcm5301x_abort_handler(unsigned long addr, unsigned int fsr,
+                                struct pt_regs *regs)
+ {
+-      if (fsr == 0x1c06 && first_fault) {
++      if ((fsr == 0x1406 || fsr == 0x1c06) && first_fault) {
+               first_fault = false;
+               /*
+-               * These faults with code 0x1c06 happens for no good reason,
+-               * possibly left over from the CFE boot loader.
++               * These faults with codes 0x1406 (BCM4709) or 0x1c06 happens
++               * for no good reason, possibly left over from the CFE boot
++               * loader.
+                */
+               pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
+-              addr, fsr);
++                      addr, fsr);
+               /* Returning non-zero causes fault display and panic */
+               return 0;
 -- 
 1.8.4.5