summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/accessors
diff options
context:
space:
mode:
authorSumit Kumar <sumit_kumar@in.ibm.com>2017-01-31 04:50:15 -0600
committerChristian R. Geddes <crgeddes@us.ibm.com>2017-11-01 13:48:36 -0400
commitf43da019dd692145c0f761a537041e5caf451828 (patch)
tree966227d8643eb759a20fba04f00593379adbdbe5 /src/import/chips/p9/procedures/hwp/accessors
parentbbd317375f825b30ba0ddea995528a12b5f50b89 (diff)
downloadtalos-hostboot-f43da019dd692145c0f761a537041e5caf451828.tar.gz
talos-hostboot-f43da019dd692145c0f761a537041e5caf451828.zip
Centaur ring support - ring_apply and ring data
- Introduces Centaur ring ID header files and ring_apply support to generate a separate Centaur ring image file. - Introduces common ring ID header file consumed by both P9 and Centaur and all user codes, e.g. putRing, ipl_build, xip_tool, etc. - Introduces a namespace approach for complete separation of P9 and Centaur ring data and to facilitate execution time selection of either P9 and Centaur ring data. - Added Centaur image .rings generation function to p9_ring_apply. - This commit does NOT support Centaur in the TOR API nor in xip_tool. See commit 38018 for that support. - Modified hw_image.mk file to support Centaur XIP image generation. - Updated ring_apply to also support .overrides ring gen for Centaur. Change-Id: I12a27b194dc14d906fea7bc273eb9f766f0fc5bf Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/35639 Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Sumit Kumar <sumit_kumar@in.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Reviewed-by: Richard J. Knight <rjknight@us.ibm.com> Reviewed-by: Thi N. Tran <thi@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36011 Reviewed-by: Hostboot Team <hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/accessors')
-rw-r--r--src/import/chips/p9/procedures/hwp/accessors/p9_get_mvpd_ring.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/accessors/p9_get_mvpd_ring.H4
-rw-r--r--src/import/chips/p9/procedures/hwp/accessors/p9_mvpd_ring_funcs.C47
-rw-r--r--src/import/chips/p9/procedures/hwp/accessors/p9_mvpd_ring_funcs.H6
4 files changed, 33 insertions, 26 deletions
diff --git a/src/import/chips/p9/procedures/hwp/accessors/p9_get_mvpd_ring.C b/src/import/chips/p9/procedures/hwp/accessors/p9_get_mvpd_ring.C
index b98a7cb30..6cb36c88b 100644
--- a/src/import/chips/p9/procedures/hwp/accessors/p9_get_mvpd_ring.C
+++ b/src/import/chips/p9/procedures/hwp/accessors/p9_get_mvpd_ring.C
@@ -55,7 +55,7 @@ extern "C"
fapi2::MvpdKeyword i_keyword,
const uint8_t i_chipletId,
const uint8_t i_evenOdd,
- const uint8_t i_ringId,
+ const RingId_t i_ringId,
uint8_t* o_pRingBuf,
uint32_t& io_rRingBufsize )
{
diff --git a/src/import/chips/p9/procedures/hwp/accessors/p9_get_mvpd_ring.H b/src/import/chips/p9/procedures/hwp/accessors/p9_get_mvpd_ring.H
index 352f8ae07..385cdbe8d 100644
--- a/src/import/chips/p9/procedures/hwp/accessors/p9_get_mvpd_ring.H
+++ b/src/import/chips/p9/procedures/hwp/accessors/p9_get_mvpd_ring.H
@@ -45,7 +45,7 @@ typedef ReturnCode (*getMvpdRing_FP_t) (
MvpdKeyword,
const uint8_t,
const uint64_t,
- const uint8_t,
+ const RingId_t,
uint8_t*,
uint32_t& );
@@ -98,7 +98,7 @@ extern "C"
MvpdKeyword i_keyword,
const uint8_t i_chipletId,
const uint8_t i_evenOdd,
- const uint8_t i_ringId,
+ const RingId_t i_ringId,
uint8_t* o_pRingBuf,
uint32_t& io_rRingBufsize );
diff --git a/src/import/chips/p9/procedures/hwp/accessors/p9_mvpd_ring_funcs.C b/src/import/chips/p9/procedures/hwp/accessors/p9_mvpd_ring_funcs.C
index e4ba01b64..dc01832e7 100644
--- a/src/import/chips/p9/procedures/hwp/accessors/p9_mvpd_ring_funcs.C
+++ b/src/import/chips/p9/procedures/hwp/accessors/p9_mvpd_ring_funcs.C
@@ -37,18 +37,22 @@
// *HWP Consumed by: HOSTBOOT, CRONUS
//
-#include <stdint.h>
+#include <stdint.h>
+#include <p9_scan_compression.H>
+
+namespace P9_RID
+{
+#include <p9_ringId.H>
+}
+
+#include <p9_mvpd_ring_funcs.H>
// fapi2 support
-#include <fapi2.H>
-#include <utils.H>
-#include <mvpd_access.H>
-#include <p9_mvpd_ring_funcs.H>
+#include <fapi2.H>
+#include <utils.H>
+#include <mvpd_access.H>
-// pull in CompressedScanData def from proc_slw_build HWP
-#include <p9_scan_compression.H>
-#include <p9_ring_identification.H>
-#include <p9_ringId.H>
+using namespace P9_RID;
extern "C"
{
@@ -61,7 +65,7 @@ extern "C"
& i_fapiTarget,
CompressedScanData* i_pRing,
uint8_t i_chipletId,
- uint8_t i_ringId,
+ RingId_t i_ringId,
uint32_t i_ringBufsize);
fapi2::ReturnCode mvpdRingFuncFind( const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>
@@ -70,7 +74,7 @@ extern "C"
fapi2::MvpdKeyword i_keyword,
const uint8_t i_chipletId,
const uint8_t i_evenOdd,
- const uint8_t i_ringId,
+ const RingId_t i_ringId,
uint8_t* i_pRecordBuf,
uint32_t i_recordBufLenfapi,
uint8_t*& o_rRingBuf,
@@ -208,7 +212,7 @@ extern "C"
fapi2::MvpdKeyword i_keyword,
const uint8_t i_chipletId,
const uint8_t i_evenOdd,
- const uint8_t i_ringId,
+ const RingId_t i_ringId,
uint8_t* o_pRingBuf,
uint32_t& io_rRingBufsize )
{
@@ -439,7 +443,7 @@ extern "C"
& i_fapiTarget,
const uint8_t i_chipletId,
const uint8_t i_evenOdd,
- const uint8_t i_ringId,
+ const RingId_t i_ringId,
uint8_t** io_pBufLeft,
uint32_t* io_pBufLenLeft,
CompressedScanData** o_pScanData)
@@ -523,14 +527,15 @@ extern "C"
// check if this ring matches the given criteria
// (ring ID, chiplet Id, and even/odd for EX)
- if ( l_pScanDataOld->iv_ringId == i_ringId &&
+ if ( ( i_ringId <= 0xff &&
+ l_pScanDataOld->iv_ringId == i_ringId ) &&
l_pScanDataOld->iv_chipletId == i_chipletId &&
- (l_evenOddMask == 0 ||
- be64toh(l_pScanDataOld->iv_scanSelect) & l_evenOddMask) )
+ ( l_evenOddMask == 0 ||
+ be64toh(l_pScanDataOld->iv_scanSelect) & l_evenOddMask ) )
{
// look up ring in p9_ringId and retrieve scanAddr
- GenRingIdList* l_ringProp = p9_ringid_get_ring_properties(
- (RingID)i_ringId);
+ GenRingIdList* l_ringProp = p9_ringid_get_ring_properties(i_ringId);
+
FAPI_ASSERT(l_ringProp,
fapi2::MVPD_RINGID_DATA_NOT_FOUND().
set_CHIP_TARGET(i_fapiTarget).
@@ -608,7 +613,7 @@ extern "C"
& i_fapiTarget,
const uint8_t i_chipletId,
const uint8_t i_evenOdd,
- const uint8_t i_ringId,
+ const RingId_t i_ringId,
uint8_t** io_pBufLeft,
uint32_t* io_pBufLenLeft,
CompressedScanData** o_pScanData)
@@ -746,7 +751,7 @@ extern "C"
fapi2::MvpdKeyword i_keyword,
const uint8_t i_chipletId,
const uint8_t i_evenOdd,
- const uint8_t i_ringId,
+ const RingId_t i_ringId,
uint8_t* i_pRecordBuf,
uint32_t i_recordBufLen,
uint8_t*& o_rpRing,
@@ -888,7 +893,7 @@ extern "C"
& i_fapiTarget,
CompressedScanData* i_pRingBuf,
uint8_t i_chipletId,
- uint8_t i_ringId,
+ RingId_t i_ringId,
uint32_t i_ringBufsize)
{
uint8_t l_failedTestVec = 0x00;
diff --git a/src/import/chips/p9/procedures/hwp/accessors/p9_mvpd_ring_funcs.H b/src/import/chips/p9/procedures/hwp/accessors/p9_mvpd_ring_funcs.H
index b8fae9fd5..449a684cc 100644
--- a/src/import/chips/p9/procedures/hwp/accessors/p9_mvpd_ring_funcs.H
+++ b/src/import/chips/p9/procedures/hwp/accessors/p9_mvpd_ring_funcs.H
@@ -46,6 +46,8 @@ enum mvpdRingFuncOp
MVPD_RING_SET,
};
+#define MVPD_END_OF_DATA_MAGIC (uint32_t)0x454E4400 // "END "
+
typedef ReturnCode (*mvpdRingFuncs_FP_t) (
const Target<TARGET_TYPE_PROC_CHIP>&,
mvpdRingFuncOp,
@@ -53,7 +55,7 @@ typedef ReturnCode (*mvpdRingFuncs_FP_t) (
MvpdKeyword,
const uint8_t,
const uint64_t,
- const uint8_t,
+ const RingId_t,
uint8_t*,
uint32_t& );
@@ -87,7 +89,7 @@ extern "C"
MvpdKeyword i_keyword,
const uint8_t i_chipletId,
const uint8_t i_evenOdd,
- const uint8_t i_ringId,
+ const RingId_t i_ringId,
uint8_t* o_pRingBuf,
uint32_t& io_rRingBufsize );
OpenPOWER on IntegriCloud