summaryrefslogtreecommitdiffstats
path: root/src/hwpf
diff options
context:
space:
mode:
authorClaus Michael Olsen <cmolsen@us.ibm.com>2017-03-15 23:00:23 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2017-11-02 02:50:59 -0400
commit8247c1a74c108600dd571e4a1d80475647a79d8c (patch)
treed2558c4f181b593f4570f1e53aae936e586ea38e /src/hwpf
parent0d8c248cc29e659ab67fffcd26f54a660569ab8a (diff)
downloadtalos-sbe-8247c1a74c108600dd571e4a1d80475647a79d8c.tar.gz
talos-sbe-8247c1a74c108600dd571e4a1d80475647a79d8c.zip
Centaur ring support - TOR API
Key_Cronus_Test=XIP_REGRESS - Updates to TOR API codes to allow user codes to call TOR API function on a Centaur image. Note that the API no longer needs the caller to supply and XIP section ID. - Updates to TOR API codes to take advantage of the improved data and meta-data representation in the ring Id codes and the more self-contained ring image which now has the TOR magic header. - Updates to xip_tool to allow dissection of Centaur image. - Additional updates to TOR API codes and ring Id codes to continue improving overall clarity of data, data structures and flow through TOR API, incl name changes to related data variables and structures. Change-Id: I42891b9662cc0c443d2b16ce866ac945dc2c58dc Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/38018 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@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/38562 Reviewed-by: Hostboot Team <hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'src/hwpf')
-rw-r--r--src/hwpf/hw_access.H4
-rw-r--r--src/hwpf/plat_ring_traverse.C90
2 files changed, 39 insertions, 55 deletions
diff --git a/src/hwpf/hw_access.H b/src/hwpf/hw_access.H
index de0ac924..ab17a763 100644
--- a/src/hwpf/hw_access.H
+++ b/src/hwpf/hw_access.H
@@ -39,7 +39,7 @@
#endif
#include <utils.H>
-#include <p9_ringId.H>
+#include <common_ringId.H>
#include <plat_hw_access.H>
#include "plat_ring_traverse.H" // for findRS4InImageAndApply
@@ -279,7 +279,7 @@ __fapi2exit__:
/// @return fapi::ReturnCode. FAPI2_RC_SUCCESS if success, else error code.
template< TargetType K, typename V >
inline ReturnCode putRing(const Target<K, V>& i_target,
- const RingID i_ringID,
+ const RingId_t i_ringID,
const RingMode i_ringMode = RING_MODE_HEADER_CHECK)
{
ReturnCode l_rc = FAPI2_RC_SUCCESS;
diff --git a/src/hwpf/plat_ring_traverse.C b/src/hwpf/plat_ring_traverse.C
index 101c066b..b8ab38de 100644
--- a/src/hwpf/plat_ring_traverse.C
+++ b/src/hwpf/plat_ring_traverse.C
@@ -72,10 +72,10 @@ fapi2::ReturnCode findRS4InImageAndApply(
SBE_TRACE("No ring data in .RING section");
break;
}
-
+
uint8_t l_torHdrSz;
TorHeader_t* torHeader = (TorHeader_t*)(g_seepromAddr +
- l_section->iv_offset);
+ l_section->iv_offset);
if (torHeader->magic == TOR_MAGIC_SBE)
{
@@ -93,8 +93,8 @@ fapi2::ReturnCode findRS4InImageAndApply(
}
SectionTOR* l_sectionTOR = (SectionTOR*)(g_seepromAddr +
- l_section->iv_offset +
- l_torHdrSz);
+ l_section->iv_offset +
+ l_torHdrSz);
l_rc = getRS4ImageFromTor(i_target, i_ringID, l_sectionTOR,
l_applyOverride,
@@ -161,7 +161,7 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
}
- CHIPLET_DATA l_chipletData;
+ ChipletData_t l_chipletData;
l_chipletData.iv_base_chiplet_number = 0;
l_chipletData.iv_num_common_rings = 0;
l_chipletData.iv_num_instance_rings = 0;
@@ -175,10 +175,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
switch(l_chipLetType)
{
case PERV_TYPE: // PERV
- l_chipletData = PERV::g_pervData;
+ l_chipletData = PERV::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(PERV::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_PERV_COMMON_RING;
@@ -190,10 +189,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case N0_TYPE: // Nest - N0
- l_chipletData = N0::g_n0Data;
+ l_chipletData = N0::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(N0::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_N0_COMMON_RING;
@@ -205,10 +203,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case N1_TYPE: // Nest - N1
- l_chipletData = N1::g_n1Data;
+ l_chipletData = N1::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(N1::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_N1_COMMON_RING;
@@ -220,10 +217,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case N2_TYPE: // Nest - N2
- l_chipletData = N2::g_n2Data;
+ l_chipletData = N2::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(N2::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_N2_COMMON_RING;
@@ -235,10 +231,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case N3_TYPE: // Nest - N3
- l_chipletData = N3::g_n3Data;
+ l_chipletData = N3::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(N3::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_N3_COMMON_RING;
@@ -250,10 +245,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case XB_TYPE: // XB - XBus2
- l_chipletData = XB::g_xbData;
+ l_chipletData = XB::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(XB::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_XB_COMMON_RING;
@@ -265,10 +259,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case MC_TYPE: // MC - MC23
- l_chipletData = MC::g_mcData;
+ l_chipletData = MC::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(MC::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_MC_COMMON_RING;
@@ -280,10 +273,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case OB0_TYPE: // OB0
- l_chipletData = OB0::g_ob0Data;
+ l_chipletData = OB0::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(OB0::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_OB0_COMMON_RING;
@@ -295,10 +287,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case OB1_TYPE: // OB1
- l_chipletData = OB1::g_ob1Data;
+ l_chipletData = OB1::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(OB1::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_OB1_COMMON_RING;
@@ -310,10 +301,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case OB2_TYPE: // OB2
- l_chipletData = OB2::g_ob2Data;
+ l_chipletData = OB2::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(OB2::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_OB2_COMMON_RING;
@@ -325,10 +315,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case OB3_TYPE: // OB3
- l_chipletData = OB3::g_ob3Data;
+ l_chipletData = OB3::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(OB3::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_OB3_COMMON_RING;
@@ -341,10 +330,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
case PCI0_TYPE: // PCI - PCI0
- l_chipletData = PCI0::g_pci0Data;
+ l_chipletData = PCI0::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(PCI0::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_PCI0_COMMON_RING;
@@ -356,10 +344,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case PCI1_TYPE: // PCI - PCI1
- l_chipletData = PCI1::g_pci1Data;
+ l_chipletData = PCI1::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(PCI1::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_PCI1_COMMON_RING;
@@ -371,10 +358,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case PCI2_TYPE: // PCI - PCI2
- l_chipletData = PCI2::g_pci2Data;
+ l_chipletData = PCI2::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(PCI2::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_PCI2_COMMON_RING;
@@ -386,10 +372,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case EQ_TYPE: // EQ - Quad 0 - Quad 5
- l_chipletData = EQ::g_eqData;
+ l_chipletData = EQ::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- ( sizeof(EQ::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_EQ_COMMON_RING;
@@ -404,10 +389,9 @@ fapi2::ReturnCode getRS4ImageFromTor(
break;
case EC_TYPE: // EC - Core 0 - 23
- l_chipletData = EC::g_ecData;
+ l_chipletData = EC::g_chipletData;
l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE :
- (sizeof(EC::RingVariants) /
- sizeof(l_cpltRingVariantSz));
+ l_chipletData.iv_num_ring_variants;
l_sectionOffset = i_sectionTOR->TOC_EC_COMMON_RING;
l_CC_offset = 1;
OpenPOWER on IntegriCloud