[linux-yocto] [PATCH 06/48] drivers/misc: Update the Axxia PEI Driver

Daniel Dragomir daniel.dragomir at windriver.com
Mon Dec 11 05:13:36 PST 2017


From: John Jacques <john.jacques at intel.com>

Support undocumented PEI configurations.

Signed-off-by: John Jacques <john.jacques at intel.com>
---
 drivers/misc/axxia-pei.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/drivers/misc/axxia-pei.c b/drivers/misc/axxia-pei.c
index 0385306..559f5a2 100644
--- a/drivers/misc/axxia-pei.c
+++ b/drivers/misc/axxia-pei.c
@@ -1509,6 +1509,62 @@ pei_setup_56xx(unsigned int control)
 		pr_debug("Done\n");
 		break;
 
+	case 15:
+		/*
+		 * This configuration is not documented, but is used.
+		 *
+		 * UNUSED  (HSS10-ch0,1)
+		 * SRIO0x2 (HSS11-ch0,1)
+		 * PEI1x4  (HSS12-ch0,1; HSS13-ch0,1)
+		 */
+
+		set_sw_port_config0(pc0_SRIO1x2_SRIO0x2);
+		set_sw_port_config1(pc1_PEI1x4);
+		set_pipe_port_sel(pp_0_1_2_3);
+
+		if (pei1_mode) {
+			release_reset(2);
+			release_reset(3);
+		}
+
+		/* Enable PEI1 */
+		ncr_read32(NCP_REGION_ID(0x115, 0), 0, &reg_val);
+		reg_val |= (pei1_mode << 1);
+		ncr_write32(NCP_REGION_ID(0x115, 0), 0, reg_val);
+
+		set_srio_mode(SRIO0, srio0_ctrl);
+		set_srio_speed(SRIO0, srio0_speed);
+		if (srio0_mode) {
+			pr_debug("Set up sRIO0 -- %d\n", srio0_speed);
+			setup_srio_mode(SRIO0, srio0_speed);
+			if (release_srio_reset(SRIO0, srio0_speed))
+				srio0_mode = 0;
+		}
+		pr_debug("Enabling sRIO .");
+		/* Power up TX/RX lanes */
+		if (srio0_mode && powerup_srio_lanes(SRIO0, P1))
+			srio0_mode = 0;
+
+		pr_debug(".");
+		/* Set TX clock ready */
+		if (srio0_mode)
+			set_tx_clk_ready();
+
+		/* Power up TX/RX lanes */
+		if (srio0_mode && powerup_srio_lanes(SRIO0, P0))
+			srio0_mode = 0;
+		pr_debug(".");
+
+		if (srio0_mode)
+			enable_srio_lanes(SRIO0);
+		pr_debug(".");
+		/* Enable SRIO0/SRIO1 */
+		ncr_read32(NCP_REGION_ID(0x115, 0), 0, &reg_val);
+		reg_val |= (srio0_mode << 3);
+		ncr_write32(NCP_REGION_ID(0x115, 0), 0, reg_val);
+		pr_debug("Done\n");
+		break;
+
 	default:
 		pr_err("axxia_pei: invalid PCI/SRIO config\n");
 		pr_err("pei_setup control=0x%08x pci_srio_sata_mode=%d\n",
-- 
2.7.4



More information about the linux-yocto mailing list