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
+