diff options
author | Sumit Kumar <sumit_kumar@in.ibm.com> | 2017-01-31 04:50:15 -0600 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2017-11-01 13:48:36 -0400 |
commit | f43da019dd692145c0f761a537041e5caf451828 (patch) | |
tree | 966227d8643eb759a20fba04f00593379adbdbe5 /src/import/chips/p9/procedures/hwp/accessors | |
parent | bbd317375f825b30ba0ddea995528a12b5f50b89 (diff) | |
download | talos-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')
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 ); |