summaryrefslogtreecommitdiffstats
path: root/src/usr/hwas/common/README.md
diff options
context:
space:
mode:
authorMatt Derksen <mderkse1@us.ibm.com>2019-02-20 12:59:06 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-02-28 08:35:46 -0600
commit40cbc0048661edaa492fcc4ee60837a4c75210cd (patch)
treed07dec1960eecf1729b9d9f8cacde6c86591f629 /src/usr/hwas/common/README.md
parent1f4d5ba3b545b81818b8d52a7feae27a2449ecfe (diff)
downloadblackbird-hostboot-40cbc0048661edaa492fcc4ee60837a4c75210cd.tar.gz
blackbird-hostboot-40cbc0048661edaa492fcc4ee60837a4c75210cd.zip
OpenPOWER support for native and compatibility mode for DD2.3
Witherspoon (OpenPOWER) will run in native mode, which means all the processors have to be at the same level (all DD2.2 or all DD2.3). Other systems (ZZ) we support running in a mixed configuration where DD2.3 processors will be run in 2.2 compatibility mode. We also need to support arbitrary OP systems that might want to run in compatibility mode even without mixed parts. See src/usr/hwas/common/README.md for the rules and resulting mode. Change-Id: I80fb98e2687b945ba506f2d75b1533884443e10b RTC:201485 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72214 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/hwas/common/README.md')
-rw-r--r--src/usr/hwas/common/README.md92
1 files changed, 84 insertions, 8 deletions
diff --git a/src/usr/hwas/common/README.md b/src/usr/hwas/common/README.md
index 6b4a7e796..d2621e4c5 100644
--- a/src/usr/hwas/common/README.md
+++ b/src/usr/hwas/common/README.md
@@ -18,14 +18,90 @@
### _deconfigAffinityParent
###### Deconfigure parent if is has no functional children
-- checks if it is allowed to rollup deconfigure to parent
-- Checks base attribute: ATTR_PARENT_DECONFIG_DISABLED
- - 0 = allow parent deconfigure (default)
- - 1 = do not allow parent deconfigure
+- Checks base attribute: ATTR_PARENT_DECONFIG_RULES
+ - childRollupAllowed - Does this target allow its child's deconfiguration to rollup to it?
+ - deconfigureParent - Is this child target allowed to rollup its deconfigure to parent?
+ - valid - Are the previous two rules valid?
+- checks if it is allowed to rollup deconfigure to parent (deconfigureParent)
- Grab parent target via new utility: getImmediateParentByAffinity(childTarget)
- Checks parent is functional
-- Check if parent target has a functional AFFINITY child.
+- Verifies parent is allowed to be deconfigured by child rollup(childRollupAllowed)
+- Check if parent target has a functional AFFINITY child that is same type/class as the child.
- If no functional child found, then deconfigure the parent target and then call
- _deconfigParentAssoc passing the parent target. We already know this parent
- target has no functional children, so we just continue the deconfigure
- rollup to the next level.
+ _deconfigureByAssoc passing the parent target. Need to account for possible non-like
+ children that need to be deconfigured under the parent target.
+
+
+# 2.3 Compatibility RISK_LEVEL update
+
+## updateProcCompatibilityRiskLevel()
+- This function changes the RISK_LEVEL based on ECs installed,
+ Input RISK_LEVEL, and PROC_COMPATIBILITY_REQ setting
+- ATTR_RISK_LEVEL is being used to control what processor security/performance
+is allowable
+ - *Compatibility levels:*
+ + 0 - P9N22_P9C12_RUGBY_FAVOR_SECURITY
+ + 1 - P9N22_P9C12_RUGBY_FAVOR_PERFORMANCE
+ + 2 - P9N22_NO_RUGBY_MITIGATIONS
+ + 3 - P9N22_P9N23_JAVA_PERF
+ - *Native levels: (DD2.3 supported)*
+ + 4 - P9N23_P9C13_NATIVE_SMF_RUGBY_FAVOR_SECURITY
+ + 5 - P9N23_P9C13_NATIVE_SMF_RUGBY_FAVOR_PERFORMANCE
+
+- ATTR_RISK_LEVEL is either setup via MRW or USER (Firmware code).
+ + ATTR_RISK_LEVEL_ORIGIN is defaulted to USER unless MRW is used.
+ + ATTR_RISK_LEVEL_ORIGIN is used for error case of FORCED_COMPATIBIILITY
+
+- ATTR_PROC_COMPATIBILITY_REQ is used to determine how to update the system's
+risk level.
+ + 0 - ALLOW_COMPATIBILITY = set RISK_LEVEL to best allowed (default)
+ + 1 - FORCED_COMPATIBILITY = set RISK_LEVEL to a compatible level
+ + 2 - FORCED_NATIVE = set RISK_LEVEL to ECs native setting
+ (DD2.2 = compatible level, DD2.3 = Native)
+
+### Compatibility Truth Tables
+
+1. **ALLOW_COMPATIBILITY** (default)
+
+| Input RISK_LEVEL | RISK_LEVEL_ORIGIN | Output RISK_LEVEL (All DD2.3) | Output RISK_LEVEL (All DD2.2) | Output RISK_LEVEL (Mixed) |
+|:---------- |:----------------- |:-----------------:|:-----------------:|:-----------------:|
+| 0,1 | User | 0,1 | 0,1 | 0,1 |
+| 2 | User | 2 | 2 | 2 |
+| 3 | User | 3 | 3 | 3 |
+| 4 | User | 4 | `0` | `0` |
+| 5 | User | 5 | `2` | `2` |
+| 0,1 | MRW | `4` | 0,1 | 0,1 |
+| 2 | MRW | `5` | 2 | 2 |
+| 3 | MRW | 3 | 3 | 3 |
+| 4 | MRW | 4 | `0` | `0` |
+| 5 | MRW | 5 | `2` | `2` |
+
+2. **FORCED_COMPATIBILITY**
+
+| Input RISK_LEVEL | RISK_LEVEL_ORIGIN | Output RISK_LEVEL (All DD2.3) | Output RISK_LEVEL (All DD2.2) | Output RISK_LEVEL (Mixed) |
+|:---------- |:----------------- |:-----------------:|:-----------------:|:-----------------:|
+| 0,1 | User | 0,1 | 0,1 | 0,1 |
+| 2 | User | 2 | 2 | 2 |
+| 3 | User | 3 | 3 | 3 |
+| 4 | User | `0` | `0` | `0` |
+| 5 | User | `2` | `2` | `2` |
+| 0,1 | MRW | 0,1 | 0,1 | 0,1 |
+| 2 | MRW | 2 | 2 | 2 |
+| 3 | MRW | 3 | 3 | 3 |
+| 4 | MRW | **ERROR** | **ERROR** | **ERROR** |
+| 5 | MRW | **ERROR** | **ERROR** | **ERROR** |
+
+3. **FORCE_NATIVE**
+
+| Input RISK_LEVEL | RISK_LEVEL_ORIGIN | Output RISK_LEVEL (All DD2.3) | Output RISK_LEVEL (All DD2.2) | Output RISK_LEVEL (Mixed) |
+|:---------- |:----------------- |:-----------------:|:-----------------:|:-----------------:|
+| 0,1 | User | `4` | 0,1 | **ERROR** |
+| 2 | User | `5` | 2 | **ERROR** |
+| 3 | User | **ERROR** | 3 | **ERROR** |
+| 4 | User | 4 | `0` | **ERROR** |
+| 5 | User | 5 | `2` | **ERROR** |
+| 0,1 | MRW | `4` | 0,1 | **ERROR** |
+| 2 | MRW | `5` | 2 | **ERROR** |
+| 3 | MRW | **ERROR** | 3 | **ERROR** |
+| 4 | MRW | 4 | `0` | **ERROR** |
+| 5 | MRW | 5 | `2` | **ERROR** |
OpenPOWER on IntegriCloud