From a17c71a65a9ff93d851231513cba938ebbb03dc7 Mon Sep 17 00:00:00 2001 From: Prasad Bg Ranganath Date: Sun, 12 Jun 2016 22:46:44 -0500 Subject: New rings and obus0,1,2,3 support in ringId file Modified p9_ringId.C and p9_ring_identification.H for accommudating new rings support Change-Id: I5a43ddf01c7377327b6d13c3bde5191458cf96d7 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/25695 Tested-by: Jenkins Server Tested-by: PPE CI Tested-by: Hostboot CI Reviewed-by: Claus M. Olsen Reviewed-by: Joseph E. Dery Reviewed-by: Martin Peschke Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/25913 Reviewed-by: Sachin Gupta --- sbe/hwpf/src/plat_ring_traverse.C | 51 +++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 10 deletions(-) (limited to 'sbe/hwpf') diff --git a/sbe/hwpf/src/plat_ring_traverse.C b/sbe/hwpf/src/plat_ring_traverse.C index cd5ff7e4..e6a70efa 100644 --- a/sbe/hwpf/src/plat_ring_traverse.C +++ b/sbe/hwpf/src/plat_ring_traverse.C @@ -69,13 +69,6 @@ fapi2::ReturnCode findRS4InImageAndApply( // Get the address of the Section-TOR P9XipHeader *l_hdr = getXipHdr(); P9XipSection *l_section = &(l_hdr->iv_section[P9_XIP_SECTION_SBE_RINGS]); - - - if (!(l_section->iv_offset)) - { - SBE_TRACE("No ring data in .RING section"); - break; - } SectionTOR *l_sectionTOR = (SectionTOR *)(g_seepromAddr + l_section->iv_offset); @@ -180,9 +173,9 @@ fapi2::ReturnCode findRS4InImageAndApply( break; - case OB_TYPE: // OB - OB2 - l_chipletData = OB::g_obData; - l_cpltRingVariantSz = sizeof(OB::RingVariants) / + case OB0_TYPE: // OB0 + l_chipletData = OB0::g_ob0Data; + l_cpltRingVariantSz = sizeof(OB0::RingVariants) / sizeof(l_cpltRingVariantSz); l_sectionOffset = l_sectionTOR->TOC_OB_COMMON_RING; @@ -192,6 +185,43 @@ fapi2::ReturnCode findRS4InImageAndApply( } break; + case OB1_TYPE: // OB1 + l_chipletData = OB1::g_ob1Data; + l_cpltRingVariantSz = sizeof(OB1::RingVariants) / + sizeof(l_cpltRingVariantSz); + + l_sectionOffset = l_sectionTOR->TOC_OB_COMMON_RING; + if(INSTANCE_RING == l_ringType) + { + l_sectionOffset = l_sectionTOR->TOC_OB_INSTANCE_RING; + } + + break; + case OB2_TYPE: // OB2 + l_chipletData = OB2::g_ob2Data; + l_cpltRingVariantSz = sizeof(OB2::RingVariants) / + sizeof(l_cpltRingVariantSz); + + l_sectionOffset = l_sectionTOR->TOC_OB_COMMON_RING; + if(INSTANCE_RING == l_ringType) + { + l_sectionOffset = l_sectionTOR->TOC_OB_INSTANCE_RING; + } + + break; + case OB3_TYPE: // OB3 + l_chipletData = OB3::g_ob3Data; + l_cpltRingVariantSz = sizeof(OB3::RingVariants) / + sizeof(l_cpltRingVariantSz); + + l_sectionOffset = l_sectionTOR->TOC_OB_COMMON_RING; + if(INSTANCE_RING == l_ringType) + { + l_sectionOffset = l_sectionTOR->TOC_OB_INSTANCE_RING; + } + + break; + case PCI0_TYPE: // PCI - PCI0 l_chipletData = PCI0::g_pci0Data; @@ -347,6 +377,7 @@ fapi2::ReturnCode findRS4InImageAndApply( } else { + l_rc = fapi2::FAPI2_RC_PLAT_RING_ID_NOT_FOUND_IN_RS4_IMAGE; SBE_TRACE("Ring image is not found for this is ringId %u",i_ringID); } }while(0); -- cgit v1.2.1