summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2017-04-20 13:03:13 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-05-05 13:57:04 -0400
commitc8bfa9011f04d9969fe1dcea056bea148bcd8b70 (patch)
tree3338df2baebaceed7d8e5ab8bf6d33633fec47ae /src
parent7f00c4651a9c7d4150fd5c7f91c3b2ca7701c05f (diff)
downloadblackbird-hostboot-c8bfa9011f04d9969fe1dcea056bea148bcd8b70.tar.gz
blackbird-hostboot-c8bfa9011f04d9969fe1dcea056bea148bcd8b70.zip
Apply RINGOVD to SBE image prior to core data
-SBE is tight on space and if ALL core data is applied then ring override section doesn't fit. Since this is debug only, apply ring overrides to the base and let code winnow down the boot cores to fit constraints Change-Id: Ic0338e94b65d0481c51aac1dfa42f1c95abc9a4c Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39496 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/usr/sbe/sbe_update.C53
-rw-r--r--src/usr/sbe/sbe_update.H4
2 files changed, 30 insertions, 27 deletions
diff --git a/src/usr/sbe/sbe_update.C b/src/usr/sbe/sbe_update.C
index 8d045a85b..71471217f 100644
--- a/src/usr/sbe/sbe_update.C
+++ b/src/usr/sbe/sbe_update.C
@@ -932,8 +932,6 @@ namespace SBE
TRACFCOMP( g_trac_sbe,
INFO_MRK"ringOvd():Valid overrides, applying them");
- // Hard coded value, pass in 2KB max
- uint32_t RING_OVD_SIZE = 0x800;
FAPI_INVOKE_HWP(l_err,p9_xip_section_append,
(void *)l_pnorRingOvd.vaddr,
RING_OVD_SIZE,
@@ -1049,31 +1047,6 @@ namespace SBE
// Check for no error and use of input cores
if ( (NULL == err) && (procIOMask == coreMask))
{
- // Check if we have a valid ring override section and
- // append it in if so
- uint32_t l_ovdImgSize = static_cast<uint32_t>(i_maxImgSize);
- err = ringOvd(io_imgPtr,l_ovdImgSize);
- if(err)
- {
- TRACFCOMP( g_trac_sbe,
- ERR_MRK"procCustomizeSbeImg(): "
- "Error in call to ringOvd!");
- break;
- }
- // If it's larger then the original size then we added some
- // overrides
- if(l_ovdImgSize > tmpImgSize)
- {
- // We added an override so adjust tmpImgSize
- TRACFCOMP( g_trac_sbe,
- INFO_MRK"procCustomizeSbeImg(): We added some "
- "ring overrides, initial image size:%u "
- "new image size:%u",
- tmpImgSize, l_ovdImgSize);
-
- tmpImgSize = l_ovdImgSize;
- }
-
// Procedure was successful
procedure_success = true;
@@ -1934,6 +1907,32 @@ namespace SBE
break;
}
+ /*******************************************/
+ /* Append RINGOVD Image from PNOR to SBE */
+ /*******************************************/
+ // Check if we have a valid ring override section and
+ // append it in if so
+ uint32_t l_ovdImgSize =
+ static_cast<uint32_t>(sbeHbblImgSize+RING_OVD_SIZE);
+ err = ringOvd(sbeHbblImgPtr,l_ovdImgSize);
+ if(err)
+ {
+ TRACFCOMP( g_trac_sbe,
+ ERR_MRK"procCustomizeSbeImg(): "
+ "Error in call to ringOvd!");
+ break;
+ }
+
+ //If it's larger than the original size then we added some overrides
+ if(l_ovdImgSize > sbeHbblImgSize)
+ {
+ TRACFCOMP( g_trac_sbe,
+ INFO_MRK"procCustomizeSbeImg(): We added some "
+ "ring overrides, initial image size:%u "
+ "new image size:%u",
+ sbeHbblImgSize, l_ovdImgSize);
+ }
+
/*******************************************/
/* Customize SBE/HBBL Image and */
diff --git a/src/usr/sbe/sbe_update.H b/src/usr/sbe/sbe_update.H
index d4ed02717..7257fb062 100644
--- a/src/usr/sbe/sbe_update.H
+++ b/src/usr/sbe/sbe_update.H
@@ -85,6 +85,10 @@ namespace SBE
// (PERV_SB_CS_SCOM 0x00050008 or PERV_SB_CS_FSI 0x2808)
const uint64_t SBE_BOOT_SELECT_MASK = 0x0000400000000000;
+ // Hard coded value, pass in 2KB max
+ const uint32_t RING_OVD_SIZE = 0x800;
+
+
// PNOR SBE and SBEC Partition constants
const uint32_t MAX_SBE_ENTRIES = 9;
const uint32_t SBETOC_EYECATCH = 0x53424500; //'SBE\0'
OpenPOWER on IntegriCloud