aboutsummaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2019-11-01 22:22:55 +1100
committerOliver O'Halloran <oohall@gmail.com>2019-11-04 10:52:47 +1100
commit387ffa7569fb32d8a2a5e30f321da0a6b7f72932 (patch)
tree25616c6c795ea52f8d01dcf4dcac3b4044b84bde /external
parent6214cb800db981d1944615da577dfa46ecf3bfb8 (diff)
downloadskiboot-387ffa7569fb32d8a2a5e30f321da0a6b7f72932.zip
skiboot-387ffa7569fb32d8a2a5e30f321da0a6b7f72932.tar.gz
skiboot-387ffa7569fb32d8a2a5e30f321da0a6b7f72932.tar.bz2
mambo: Add more tweakable security flags
This allows us to test various combinations of the Linux spectre/meltdown mitigations. The default values of the existing settings remain the same. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Diffstat (limited to 'external')
-rw-r--r--external/mambo/skiboot.tcl29
1 files changed, 26 insertions, 3 deletions
diff --git a/external/mambo/skiboot.tcl b/external/mambo/skiboot.tcl
index a16bd32..82209ad 100644
--- a/external/mambo/skiboot.tcl
+++ b/external/mambo/skiboot.tcl
@@ -89,6 +89,21 @@ mconfig net_tapdev MAMBO_NET_TAPDEV "tap0"
# set to 0 to disable. When enabled it causes Linux's RFI flush to be enabled.
mconfig speculation_policy_favor_security MAMBO_SPECULATION_POLICY_FAVOR_SECURITY 1
+# These values ~= P9N DD2.3, except for fw_count_cache_flush_assist=0 because it
+# exercises more kernel code.
+# See https://github.com/open-power/hostboot/blob/7ce2a9daac0ccf759376929b2ec40bbbc7ca3398/src/usr/hdat/hdatiplparms.H#L520
+mconfig needs_l1d_flush_msr_hv MAMBO_NEEDS_L1D_FLUSH_MSR_HV 1
+mconfig needs_l1d_flush_msr_pr MAMBO_NEEDS_L1D_FLUSH_MSR_PR 1
+mconfig fw_l1d_thread_split MAMBO_FW_L1D_THREAD_SPLIT 1
+mconfig needs_spec_barrier MAMBO_NEEDS_SPEC_BARRIER 1
+mconfig fw_bcctrl_serialized MAMBO_FW_BCCTRL_SERIALIZED 0
+mconfig fw_count_cache_disabled MAMBO_FW_COUNT_CACHE_DISABLED 0
+mconfig needs_count_cache_flush MAMBO_NEEDS_COUNT_CACHE_FLUSH 1
+mconfig fw_count_cache_flush_assist MAMBO_COUNT_CACHE_FLUSH_ASSIST 0
+mconfig inst_spec_barrier_ori31 MAMBO_INST_SPEC_BARRIER_ORI31 1
+mconfig inst_l1d_flush_trig2 MAMBO_INST_L1D_FLUSH_TRIG2 1
+mconfig inst_l1d_flush_ori30 MAMBO_INST_L1D_FLUSH_ORI30 0
+
#
# Create machine config
#
@@ -351,9 +366,17 @@ proc add_feature_node { parent name { value 1 } } {
set np [mysim of addchild $opal_node "fw-features" ""]
add_feature_node $np "speculation-policy-favor-security" $mconf(speculation_policy_favor_security)
-add_feature_node $np "needs-l1d-flush-msr-hv-1-to-0"
-add_feature_node $np "needs-l1d-flush-msr-pr-0-to-1"
-add_feature_node $np "needs-spec-barrier-for-bound-checks"
+add_feature_node $np "needs-l1d-flush-msr-hv-1-to-0" $mconf(needs_l1d_flush_msr_hv)
+add_feature_node $np "needs-l1d-flush-msr-pr-0-to-1" $mconf(needs_l1d_flush_msr_pr)
+add_feature_node $np "fw-l1d-thread-split" $mconf(fw_l1d_thread_split)
+add_feature_node $np "needs-spec-barrier-for-bound-checks" $mconf(needs_spec_barrier)
+add_feature_node $np "fw-bcctrl-serialized" $mconf(fw_bcctrl_serialized)
+add_feature_node $np "fw-count-cache-disabled" $mconf(fw_count_cache_disabled)
+add_feature_node $np "needs-count-cache-flush-on-context-switch" $mconf(needs_count_cache_flush)
+add_feature_node $np "fw-count-cache-flush-bcctr2,0,0" $mconf(fw_count_cache_flush_assist)
+add_feature_node $np "inst-spec-barrier-ori31,31,0" $mconf(inst_spec_barrier_ori31)
+add_feature_node $np "inst-l1d-flush-trig2" $mconf(inst_l1d_flush_trig2)
+add_feature_node $np "inst-l1d-flush-ori30,30,0" $mconf(inst_l1d_flush_ori30)
# Init CPUs