[Skiboot] [PATCH] NX: Print read xscom config failures.

ppaidipe at linux.vnet.ibm.com ppaidipe at linux.vnet.ibm.com
Wed Feb 22 00:51:13 AEDT 2017


From: Pridhiviraj Paidipeddi <ppaidipe at linux.vnet.ibm.com>

Currently in NX, only write xscom config failures are tracing.
Add trace statements for read xscom config failures too.
No functional changes.

Signed-off-by: Pridhiviraj Paidipeddi <ppaidipe at linux.vnet.ibm.com>
---
 hw/nx-842.c    | 17 +++++++++++++----
 hw/nx-crypto.c | 25 ++++++++++++++++++++-----
 hw/nx-rng.c    | 23 ++++++++++++++++++-----
 3 files changed, 51 insertions(+), 14 deletions(-)

diff --git a/hw/nx-842.c b/hw/nx-842.c
index f462f7a..6622bd5 100644
--- a/hw/nx-842.c
+++ b/hw/nx-842.c
@@ -44,8 +44,11 @@ static int nx_cfg_842(u32 gcid, u64 xcfg)
 	BUILD_ASSERT(MAX_CHIPS < NX_842_CFG_CI_MAX);
 
 	rc = xscom_read(gcid, xcfg, &cfg);
-	if (rc)
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM 842 config read failure %d\n",
+                 gcid, rc);
 		return rc;
+	}
 
 	ct = GETFIELD(NX_842_CFG_CT, cfg);
 	if (!ct)
@@ -96,8 +99,11 @@ static int nx_cfg_dma(u32 gcid, u64 xcfg)
 	int rc;
 
 	rc = xscom_read(gcid, xcfg, &cfg);
-	if (rc)
-		return rc;
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM DMA config read failure %d\n",
+                 gcid, rc);
+                return rc;
+	}
 
 	if (proc_gen == proc_gen_p8) {
 		cfg = SETFIELD(NX_P8_DMA_CFG_842_COMPRESS_PREFETCH, cfg,
@@ -137,8 +143,11 @@ static int nx_cfg_ee(u32 gcid, u64 xcfg)
 	int rc;
 
 	rc = xscom_read(gcid, xcfg, &cfg);
-	if (rc)
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM EE config read failure %d\n",
+                 gcid, rc);
 		return rc;
+	}
 
 	cfg = SETFIELD(NX_EE_CFG_CH1, cfg, EE_1);
 	cfg = SETFIELD(NX_EE_CFG_CH0, cfg, EE_0);
diff --git a/hw/nx-crypto.c b/hw/nx-crypto.c
index 723c571..b247f19 100644
--- a/hw/nx-crypto.c
+++ b/hw/nx-crypto.c
@@ -53,8 +53,11 @@ static int nx_cfg_sym(u32 gcid, u64 xcfg)
 	BUILD_ASSERT(MAX_CHIPS < NX_SYM_CFG_CI_MAX);
 
 	rc = xscom_read(gcid, xcfg, &cfg);
-	if (rc)
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM SYM config read failure %d\n",
+		 gcid, rc);
 		return rc;
+	}
 
 	ct = GETFIELD(NX_SYM_CFG_CT, cfg);
 	if (!ct)
@@ -106,8 +109,11 @@ static int nx_cfg_asym(u32 gcid, u64 xcfg)
 	BUILD_ASSERT(MAX_CHIPS < NX_ASYM_CFG_CI_MAX);
 
 	rc = xscom_read(gcid, xcfg, &cfg);
-	if (rc)
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM ASYM config read failure %d\n",
+		 gcid, rc);
 		return rc;
+	}
 
 	ct = GETFIELD(NX_ASYM_CFG_CT, cfg);
 	if (!ct)
@@ -158,8 +164,11 @@ static int nx_cfg_dma(u32 gcid, u64 xcfg)
 	int rc;
 
 	rc = xscom_read(gcid, xcfg, &cfg);
-	if (rc)
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM DMA config read failure %d\n",
+		 gcid, rc);
 		return rc;
+	}
 
 	cfg = SETFIELD(NX_DMA_CFG_AES_SHA_MAX_RR, cfg,
 		       AES_SHA_MAX_RR);
@@ -199,8 +208,11 @@ static int nx_cfg_iq(u32 gcid, u64 xcfg)
 	int rc;
 
 	rc = xscom_read(gcid, xcfg, &cfg);
-	if (rc)
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM CRB IQ config read failure %d\n",
+		 gcid, rc);
 		return rc;
+	}
 
 	cfg = SETFIELD(NX_CRB_IQ_SYM, cfg, CFG_CRB_IQ_SYM);
 	cfg = SETFIELD(NX_CRB_IQ_ASYM, cfg, CFG_CRB_IQ_ASYM);
@@ -221,8 +233,11 @@ static int nx_cfg_ee(u32 gcid, u64 xcfg)
 	int rc;
 
 	rc = xscom_read(gcid, xcfg, &cfg);
-	if (rc)
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM EE config read failure %d\n",
+		 gcid, rc);
 		return rc;
+	}
 
 	cfg = SETFIELD(NX_EE_CFG_CH7, cfg, EE_CH7);
 	cfg = SETFIELD(NX_EE_CFG_CH6, cfg, EE_CH6);
diff --git a/hw/nx-rng.c b/hw/nx-rng.c
index dc419cb..65ee594 100644
--- a/hw/nx-rng.c
+++ b/hw/nx-rng.c
@@ -49,12 +49,18 @@ void nx_create_rng_node(struct dt_node *node)
 	}
 
 	rc = xscom_read(gcid, xbar, &bar); /* Get RNG BAR */
-	if (rc)
-		return;	/* Hope xscom always prints error message */
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM RNG BAR read failure %d\n",
+			 gcid, rc);
+		return;
+	}
 
 	rc = xscom_read(gcid, xcfg, &cfg); /* Get RNG CFG */
-	if (rc)
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM RNG config read failure %d\n",
+			 gcid, rc);
 		return;
+	}
 
 	/*
 	 * We mask in-place rather than using GETFIELD for the base address
@@ -80,13 +86,20 @@ void nx_create_rng_node(struct dt_node *node)
 
 	/* RNG must be enabled before MMIO is enabled */
 	rc = xscom_write(gcid, xcfg, cfg | NX_RNG_CFG_ENABLE);
-	if (rc)
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM RNG config enable failure %d\n",
+			 gcid, rc);
 		return;
+	}
 
 	/* The BAR needs to be enabled too */
 	rc = xscom_write(gcid, xbar, bar | NX_RNG_BAR_ENABLE);
-	if (rc)
+	if (rc) {
+                prerror("NX%d: ERROR: XSCOM RNG config enable failure %d\n",
+			 gcid, rc);
 		return;
+	}
+
 	rng = dt_new_addr(dt_root, "hwrng", rng_addr);
 	if (!rng)
 		return;
-- 
2.7.4



More information about the Skiboot mailing list