summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPridhiviraj Paidipeddi <ppaidipe@linux.vnet.ibm.com>2017-02-21 19:21:13 +0530
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-11-30 23:46:28 -0600
commit78168d1bad23c3877bac284eb7c4b259bc022a38 (patch)
tree7d5b606011ffec94ee1f7c0de75c7f61cabb829b
parent92813a8bf9f3658dac5315c0c02025b74a8b0533 (diff)
downloadtalos-skiboot-78168d1bad23c3877bac284eb7c4b259bc022a38.tar.gz
talos-skiboot-78168d1bad23c3877bac284eb7c4b259bc022a38.zip
NX: Print read xscom config failures.
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@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r--hw/nx-842.c17
-rw-r--r--hw/nx-crypto.c25
-rw-r--r--hw/nx-rng.c23
3 files changed, 51 insertions, 14 deletions
diff --git a/hw/nx-842.c b/hw/nx-842.c
index 21bc2fd2..8009f032 100644
--- a/hw/nx-842.c
+++ b/hw/nx-842.c
@@ -40,8 +40,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)
@@ -118,8 +121,11 @@ static int nx_cfg_842_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_DMA_CFG_842_COMPRESS_PREFETCH, cfg,
@@ -161,8 +167,11 @@ static int nx_cfg_842_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 96998925..769112fd 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 a74fa45a..c0c90f56 100644
--- a/hw/nx-rng.c
+++ b/hw/nx-rng.c
@@ -75,12 +75,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
@@ -106,13 +112,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;
OpenPOWER on IntegriCloud