diff options
| author | Claus Michael Olsen <cmolsen@us.ibm.com> | 2018-04-09 13:48:56 -0500 |
|---|---|---|
| committer | Sachin Gupta <sgupta2m@in.ibm.com> | 2018-04-24 21:19:15 -0400 |
| commit | 84cfeb2aef7acdb4ce7e7c758faf00b8c6a10fd7 (patch) | |
| tree | acf0c2bd3eafaec4241557b3fd7c7619f8f48b70 /src/hwpf | |
| parent | c0db49ee81188dbba099b77bd1247d3f09906a22 (diff) | |
| download | talos-sbe-84cfeb2aef7acdb4ce7e7c758faf00b8c6a10fd7.tar.gz talos-sbe-84cfeb2aef7acdb4ce7e7c758faf00b8c6a10fd7.zip | |
Risk level 3/4/5 support: Step 1 - backward compatibility and v6 image
- Introducing RV_RL3/4/5 ring variant (RV) support for EC/EQ chiplets.
- Dropping RV support for all chiplet's instance rings which saves 456
Quad bytes and 58 Nest bytes in Seeprom's TOR slots (compared to
master).
- Each additional risk level adds 144 bytes in Seeprom TOR slots.
- Various changes to data names associated with ring variants to
clarify that the notion of ring variants is now specific only to
Common rings while Instance rings only have the BASE variant.
- Also, removed backwards compatibility to TOR v5, i.e. from before
we introduced RL2 in february. Assumption is that all images/drivers
used in fips910/920 and OP920 are TOR v6.
- This commit produces a TOR v6 image to ensure EKB FSP CI success.
Key_Cronus_Test=XIP_REGRESS
Change-Id: Icfcb1e68fd74a10ffc48ee7a5da528a8042ef3b1
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56973
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: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Kahn C. Evans <kahnevan@us.ibm.com>
Reviewed-by: James N. Klazynski <jklazyns@us.ibm.com>
Reviewed-by: Joseph J. McGill <jmcgill@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56982
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'src/hwpf')
| -rw-r--r-- | src/hwpf/plat_ring_traverse.C | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/src/hwpf/plat_ring_traverse.C b/src/hwpf/plat_ring_traverse.C index 6fc31309..c8a3a6a1 100644 --- a/src/hwpf/plat_ring_traverse.C +++ b/src/hwpf/plat_ring_traverse.C @@ -38,6 +38,7 @@ const uint32_t RISK_LEVEL_ZERO = 0; #define CACHE_CONTAINED_MODE_OFFSET_IN_TOR 1 #define RISK_LEVEL_MODE_OFFSET_IN_TOR 2 #define OVERRIDE_VARIANT_SIZE 1 +#define INSTANCE_VARIANT_SIZE 1 // TOR v7 specific /// /// @brief This is a plat pecific (SBE Plat) function that locates the @@ -340,9 +341,9 @@ fapi2::ReturnCode getRS4ImageFromTor( case EQ_TYPE: // EQ - Quad 0 - Quad 5 l_chipletData = EQ::g_chipletData; - if (l_torVersion < 6) + if (l_torVersion < 7) { - l_numVarAdjust = 1; + l_numVarAdjust = 3; } l_sectionOffset = l_sectionTOR->TOC_EQ_COMMON_RING; @@ -358,9 +359,9 @@ fapi2::ReturnCode getRS4ImageFromTor( case EC_TYPE: // EC - Core 0 - 23 l_chipletData = EC::g_chipletData; - if (l_torVersion < 6) + if (l_torVersion < 7) { - l_numVarAdjust = 1; + l_numVarAdjust = 3; } l_sectionOffset = l_sectionTOR->TOC_EC_COMMON_RING; @@ -385,9 +386,23 @@ fapi2::ReturnCode getRS4ImageFromTor( { break; } - - l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE : - (l_chipletData.iv_num_ring_variants - l_numVarAdjust); + + // If TOR v7 image, adjust variant size according to Common vs Instance ring type + // since there is only BASE variant support for Instance (repr) rings in v7 + if (l_torVersion < 7) + { + l_cpltRingVariantSz = (l_chipletData.iv_num_common_ring_variants - l_numVarAdjust); + } + else + { + l_cpltRingVariantSz = (l_ringType == INSTANCE_RING) ? + INSTANCE_VARIANT_SIZE : + (l_chipletData.iv_num_common_ring_variants - l_numVarAdjust); + } + + // Subsequently, re-adjust variant size according to whether override or flush ring + // (Note, no TOR version dependency here.) + l_cpltRingVariantSz = i_applyOverride ? OVERRIDE_VARIANT_SIZE : l_cpltRingVariantSz; FAPI_INF("l_sectionOffset %08x", l_sectionOffset); // Determine the section TOR address for the ring |

