diff options
author | Prasad Bg Ranganath <prasadbgr@in.ibm.com> | 2016-06-12 22:46:44 -0500 |
---|---|---|
committer | Sachin Gupta <sgupta2m@in.ibm.com> | 2016-06-29 00:25:40 -0400 |
commit | a17c71a65a9ff93d851231513cba938ebbb03dc7 (patch) | |
tree | 17719a586fce0aa364ca0ec5dc8fa07c05fc3b73 /sbe | |
parent | a5f9e816d9b139708967c8433928498a95e0c536 (diff) | |
download | talos-sbe-a17c71a65a9ff93d851231513cba938ebbb03dc7.tar.gz talos-sbe-a17c71a65a9ff93d851231513cba938ebbb03dc7.zip |
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 <cmolsen@us.ibm.com>
Reviewed-by: Joseph E. Dery <dery@us.ibm.com>
Reviewed-by: Martin Peschke <mpeschke@de.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/25913
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'sbe')
-rw-r--r-- | sbe/hwpf/src/plat_ring_traverse.C | 51 |
1 files changed, 41 insertions, 10 deletions
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); |