Skip to content

Commit

Permalink
NX: Print read xscom config failures.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
pridhiviraj authored and stewartsmith committed Dec 1, 2017
1 parent 92813a8 commit 78168d1
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 14 deletions.
17 changes: 13 additions & 4 deletions hw/nx-842.c
Expand Up @@ -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)
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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);
Expand Down
25 changes: 20 additions & 5 deletions hw/nx-crypto.c
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand All @@ -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);
Expand Down
23 changes: 18 additions & 5 deletions hw/nx-rng.c
Expand Up @@ -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
Expand All @@ -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;
Expand Down

0 comments on commit 78168d1

Please sign in to comment.