From: Hou Zhiqiang <b48...@freescale.com>

Impact board list:
P1020MBG-PC. P1022DS, P2020RDB
All above boards have its PCIE memory range less than 0xbfff_ffff,
but in dts its boundary value was 0xe0000000. Both of them was maped
to the same boundary 0xe0000000 which was Overlapped and crossed. Cpu
will access the illicit memery addr and detect error then lead to
cpu stall.
So update dts for these boards.

error log:
PCI host bridge /pcie@ffe09000 (primary) ranges:
 MEM 0x00000000a0000000..0x00000000bfffffff -> 0x00000000e0000000
  IO 0x00000000ffc10000..0x00000000ffc1ffff -> 0x0000000000000000
  /pcie@ffe09000: PCICSRBAR @ 0xdff00000
  Found FSL PCI host bridge at 0x00000000ffe0a000. Firmware bus number: 0->0
  PCI host bridge /pcie@ffe0a000  ranges:
  MEM 0x0000000080000000..0x000000009fffffff -> 0x00000000e0000000
  IO 0x00000000ffc00000..0x00000000ffc0ffff -> 0x0000000000000000
  /pcie@ffe0a000: PCICSRBAR @ 0xdff00000
.........
ata2: SATA link down (SStatus 0 SControl 300)
INFO: rcu_sched self-detected stall on CPU { 1} INFO: rcu_sched detected
stalls on CPUs/tasks: { 1} (detected by 0, t=5252 jiffies, g=4294967053,
c=4294967052, q=76)
Task dump for CPU 1:
swapper/0 R running 0 1 0 0x00000804
Call Trace:
[ee049c30] [c00091c8] timer_interrupt+0x180/0x1a0 (unreliable)
[ee049c60] [c000e7ec] ret_from_except+0x0/0x18

Signed-off-by: Hou Zhiqiang <b48...@freescale.com>
---
 arch/powerpc/boot/dts/p1020mbg-pc_32b.dts | 14 +++++++-------
 arch/powerpc/boot/dts/p1022ds_32b.dts     | 18 +++++++++---------
 arch/powerpc/boot/dts/p2020rdb-pc_32b.dts | 12 ++++++------
 3 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/arch/powerpc/boot/dts/p1020mbg-pc_32b.dts 
b/arch/powerpc/boot/dts/p1020mbg-pc_32b.dts
index ab8f076..4dfbd30 100644
--- a/arch/powerpc/boot/dts/p1020mbg-pc_32b.dts
+++ b/arch/powerpc/boot/dts/p1020mbg-pc_32b.dts
@@ -55,12 +55,12 @@
        };
 
        pci0: pcie@ffe09000 {
-               reg = <0x0 0xffe09000 0x0 0x1000>;
-               ranges = <0x2000000 0x0 0xe0000000 0x0 0xa0000000 0x0 0x20000000
+               ranges = <0x2000000 0x0 0xa0000000 0x0 0xa0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0x0 0xffc10000 0x0 0x10000>;
+               reg = <0x0 0xffe09000 0x0 0x1000>;
                pcie@0 {
-                       ranges = <0x2000000 0x0 0xe0000000
-                                 0x2000000 0x0 0xe0000000
+                       ranges = <0x2000000 0x0 0xa0000000
+                                 0x2000000 0x0 0xa0000000
                                  0x0 0x20000000
 
                                  0x1000000 0x0 0x0
@@ -71,11 +71,11 @@
 
        pci1: pcie@ffe0a000 {
                reg = <0x0 0xffe0a000 0x0 0x1000>;
-               ranges = <0x2000000 0x0 0xe0000000 0x0 0x80000000 0x0 0x20000000
+               ranges = <0x2000000 0x0 0x80000000 0x0 0x80000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0x0 0xffc00000 0x0 0x10000>;
                pcie@0 {
-                       ranges = <0x2000000 0x0 0xe0000000
-                                 0x2000000 0x0 0xe0000000
+                       ranges = <0x2000000 0x0 0x80000000
+                                 0x2000000 0x0 0x80000000
                                  0x0 0x20000000
 
                                  0x1000000 0x0 0x0
diff --git a/arch/powerpc/boot/dts/p1022ds_32b.dts 
b/arch/powerpc/boot/dts/p1022ds_32b.dts
index d96cae0..803e0db 100644
--- a/arch/powerpc/boot/dts/p1022ds_32b.dts
+++ b/arch/powerpc/boot/dts/p1022ds_32b.dts
@@ -54,12 +54,12 @@
        };
 
        pci0: pcie@ffe09000 {
-               ranges = <0x2000000 0x0 0xe0000000 0 0xa0000000 0x0 0x20000000
+               ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
                reg = <0x0 0xffe09000 0 0x1000>;
                pcie@0 {
-                       ranges = <0x2000000 0x0 0xe0000000
-                                 0x2000000 0x0 0xe0000000
+                       ranges = <0x2000000 0x0 0xa0000000
+                                 0x2000000 0x0 0xa0000000
                                  0x0 0x20000000
 
                                  0x1000000 0x0 0x0
@@ -69,12 +69,12 @@
        };
 
        pci1: pcie@ffe0a000 {
-               ranges = <0x2000000 0x0 0xe0000000 0 0xc0000000 0x0 0x20000000
+               ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
                reg = <0 0xffe0a000 0 0x1000>;
                pcie@0 {
-                       ranges = <0x2000000 0x0 0xe0000000
-                                 0x2000000 0x0 0xe0000000
+                       ranges = <0x2000000 0x0 0xc0000000
+                                 0x2000000 0x0 0xc0000000
                                  0x0 0x20000000
 
                                  0x1000000 0x0 0x0
@@ -84,12 +84,12 @@
        };
 
        pci2: pcie@ffe0b000 {
-               ranges = <0x2000000 0x0 0xe0000000 0 0x80000000 0x0 0x20000000
+               ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
                reg = <0 0xffe0b000 0 0x1000>;
                pcie@0 {
-                       ranges = <0x2000000 0x0 0xe0000000
-                                 0x2000000 0x0 0xe0000000
+                       ranges = <0x2000000 0x0 0x80000000
+                                 0x2000000 0x0 0x80000000
                                  0x0 0x20000000
 
                                  0x1000000 0x0 0x0
diff --git a/arch/powerpc/boot/dts/p2020rdb-pc_32b.dts 
b/arch/powerpc/boot/dts/p2020rdb-pc_32b.dts
index 57573bd..1676d81 100644
--- a/arch/powerpc/boot/dts/p2020rdb-pc_32b.dts
+++ b/arch/powerpc/boot/dts/p2020rdb-pc_32b.dts
@@ -63,11 +63,11 @@
 
        pci1: pcie@ffe09000 {
                reg = <0 0xffe09000 0 0x1000>;
-               ranges = <0x2000000 0x0 0xe0000000 0 0xa0000000 0x0 0x20000000
+               ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
                pcie@0 {
-                       ranges = <0x2000000 0x0 0xe0000000
-                                 0x2000000 0x0 0xe0000000
+                       ranges = <0x2000000 0x0 0xa0000000
+                                 0x2000000 0x0 0xa0000000
                                  0x0 0x20000000
 
                                  0x1000000 0x0 0x0
@@ -78,11 +78,11 @@
 
        pci0: pcie@ffe0a000 {
                reg = <0 0xffe0a000 0 0x1000>;
-               ranges = <0x2000000 0x0 0xe0000000 0 0x80000000 0x0 0x20000000
+               ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
                pcie@0 {
-                       ranges = <0x2000000 0x0 0xe0000000
-                                 0x2000000 0x0 0xe0000000
+                       ranges = <0x2000000 0x0 0x80000000
+                                 0x2000000 0x0 0x80000000
                                  0x0 0x20000000
 
                                  0x1000000 0x0 0x0
-- 
2.1.0.27.g96db324

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to