Merge pull request #170 from ploetzma/master-next

Fix PCIe swap issue in processMRW.pl
diff --git a/openpower/package/hostboot/hostboot-0008-Fix-PCIe-swap-issue.txt b/openpower/package/hostboot/hostboot-0008-Fix-PCIe-swap-issue.txt
new file mode 100644
index 0000000..3777b11
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0008-Fix-PCIe-swap-issue.txt
@@ -0,0 +1,63 @@
+From a4f739abb72b8ac5748138183b274cca5eef50ff Mon Sep 17 00:00:00 2001
+From: Matt Ploetz <maploetz@us.ibm.com>
+Date: Tue, 12 May 2015 15:32:20 -0500
+Subject: [PATCH] PCIe lane swap fix in processMRW.pl
+
+Change-Id: Iee7127fef7f4a911a77e0c24c896d840b1b45ff4
+---
+ src/usr/targeting/common/processMrw.pl | 25 +++++++++++--------------
+ 1 file changed, 11 insertions(+), 14 deletions(-)
+
+diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
+index 5d44e74..bbdb936 100644
+--- a/src/usr/targeting/common/processMrw.pl
++++ b/src/usr/targeting/common/processMrw.pl
+@@ -805,8 +805,8 @@ sub processPcie
+     $iop_swap{0}{1}{'11'}=$t[7];
+ 
+     $iop_swap{1}{0}{'00'}=$t[8];
+-    $iop_swap{1}{0}{'01'}=$t[9];
+-    $iop_swap{1}{0}{'10'}=$t[10];
++    $iop_swap{1}{0}{'10'}=$t[9];
++    $iop_swap{1}{0}{'01'}=$t[10];
+     $iop_swap{1}{0}{'11'}=$t[11];
+     $iop_swap{1}{1}{'00'}=$t[12];
+     $iop_swap{1}{1}{'10'}=$t[13];
+@@ -906,25 +906,22 @@ sub processPcie
+           die "PCIE config for $iop,$iop_lane_swap[$iop],$lane_rev not found\n";
+         }
+     }
+-    my $lane_swap_attr0 = sprintf("%s,%s",$iop_lane_swap[0],
+-                          $iop_lane_swap[1]);
+-    my $lane_swap_attr1 = sprintf("%s,0,%s,0",$iop_lane_swap[0],
+-                          $iop_lane_swap[1]);
++
++    my $lane_rev_attr0 = sprintf("%s,%s",
++                         oct($iop_swap_lu[0]),oct($iop_swap_lu[1]));
++    my $lane_rev_attr1 = sprintf("%s,0,%s,0",
++                         oct($iop_swap_lu[0]),oct($iop_swap_lu[1]));
+ 
+     $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_SWAP",
+-        $lane_swap_attr0);
++        $lane_rev_attr0);
+     $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_SWAP_NON_BIFURCATED",
+-        $lane_swap_attr1);
++        $lane_rev_attr1);
+     $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_SWAP_BIFURCATED",
+         "0,0,0,0");
+-
+-    my $lane_rev_attr = sprintf("%s,0,%s,0",
+-                         oct($iop_swap_lu[0]),oct($iop_swap_lu[1]));
+-
+     $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_REVERSAL",
+-        $lane_rev_attr);
++        "0,0,0,0");
+     $targetObj->setAttribute($parentTarget,
+-        "PROC_PCIE_IOP_REVERSAL_NON_BIFURCATED",$lane_rev_attr);
++        "PROC_PCIE_IOP_REVERSAL_NON_BIFURCATED","0,0,0,0");
+     $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_REVERSAL_BIFURCATED",
+         "0,0,0,0");
+ 
+-- 
+1.8.2.2
+