summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Stegmiller <bjs@us.ibm.com>2017-08-15 09:38:28 -0500
committerMartha Broyles <mbroyles@us.ibm.com>2017-08-16 12:31:48 -0400
commitcc3f1edde23cbb8a70d00bde8cbbb6815e9a4383 (patch)
tree43b05dcf20155469806c91e6fe6289dcce35681a
parent0faa5bf44b69510065a5ddea380dc18ceea0e2a6 (diff)
downloadtalos-occ-cc3f1edde23cbb8a70d00bde8cbbb6815e9a4383.tar.gz
talos-occ-cc3f1edde23cbb8a70d00bde8cbbb6815e9a4383.zip
OCC: Hostboot handles ECC size in firdata
Change-Id: Ifa63f04bb83e5dea0cff3beae38753b910f6d877 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44633 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com> Reviewed-by: William A. Bryan <wilbryan@us.ibm.com> Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
-rw-r--r--src/occ_gpe0/firdata/firData.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/occ_gpe0/firdata/firData.c b/src/occ_gpe0/firdata/firData.c
index f87f9d5..6906b2e 100644
--- a/src/occ_gpe0/firdata/firData.c
+++ b/src/occ_gpe0/firdata/firData.c
@@ -163,8 +163,13 @@ bool FirData_addRegToPnor( FirData_t * io_fd, PNOR_Trgt_t * io_pTrgt,
break;
}
+ // Skip zero value registers.
+ if ( 0 == reg.val ) break;
- if ( 0 == reg.val ) break; // Skip zero value registers.
+ // Skip chiplet global checkstop registers if only reporting
+ // xstop Broadcast via OOB
+ if ( ((i_addr & 0x00FFFFFF) == 0x040000) &&
+ ((reg.val & 0x3FFFFFFFFFFFFFFF) == 0) ) break;
#ifdef DEBUG_PRD_CHKSTOP_ANALYSIS
TRAC_IMP("addRegToPnor: got scom value, addr=0x%08X value=0x%08X %08X",
@@ -1217,7 +1222,6 @@ int32_t FirData_init( FirData_t * io_fd,
int32_t rc = SUCCESS;
uint32_t sz_hData = sizeof(HOMER_Data_t);
- uint32_t sz_pnoNoEcc = 0;
uint32_t sz_u32 = sizeof(uint32_t);
uint32_t sz_u64 = sizeof(uint64_t);
@@ -1259,11 +1263,11 @@ int32_t FirData_init( FirData_t * io_fd,
break; /* nothing to analyze. */
}
- /* The actual maximum PNOR size may possibly be less then the PNOR data */
- /* buffer. If so, adjust maximum size. */
- sz_pnoNoEcc = (io_fd->hData->pnorInfo.pnorSize / 9) * 8;
- if ( sz_pnoNoEcc < io_fd->maxPBufSize )
- io_fd->maxPBufSize = sz_pnoNoEcc;
+ /* The actual max PNOR size may possibly be less then the PNOR data */
+ /* buffer. If so, adjust maximum size. Hostboot already handled ECC.*/
+ /* We have to use smaller of what OCC or Hostboot has. */
+ if ( io_fd->hData->pnorInfo.pnorSize < io_fd->maxPBufSize )
+ io_fd->maxPBufSize = io_fd->hData->pnorInfo.pnorSize;
/* Initialize the PNOR header data. */
PNOR_Data_t pData;
OpenPOWER on IntegriCloud