From 6a040451c75c888ad1ecca9e10988c119cbbba84 Mon Sep 17 00:00:00 2001 From: Mike Baiocchi Date: Tue, 15 Aug 2017 10:44:28 -0500 Subject: Fix SECUREBOOT runtime interfaces and tests This commit fixes the SECUREBOOT::allowAttrOverrides() function and also allows for more accurate secureboot testing at runtime. Change-Id: Ife86bd3f6311247438dd68a1a191d5de86892512 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44635 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Reviewed-by: Marshall J. Wilks Reviewed-by: Nicholas E. Bofferding Tested-by: FSP CI Jenkins Tested-by: Jenkins OP HW Reviewed-by: Daniel M. Crowell --- src/usr/targeting/runtime/test/testtargeting.H | 36 +++++++++++++++++++------- 1 file changed, 26 insertions(+), 10 deletions(-) (limited to 'src/usr/targeting/runtime') diff --git a/src/usr/targeting/runtime/test/testtargeting.H b/src/usr/targeting/runtime/test/testtargeting.H index db9c74415..0e539ae85 100644 --- a/src/usr/targeting/runtime/test/testtargeting.H +++ b/src/usr/targeting/runtime/test/testtargeting.H @@ -155,10 +155,29 @@ class TargetingTestSuite : public CxxTest::TestSuite void testApplyAttrOverrides() { using namespace TARGETING; - TRACFCOMP(g_trac_targeting,"testApplyAttrOverrides"); - do + TRACFCOMP(g_trac_targeting,"testApplyAttrOverrides (temporarily allow Attr Overrides)"); + + // Must Temporarily Allow Attribute Overrides since secureboot is + // now set at runtime. Will restore later. + bool allow_attr_overrides = false; + TargetService& l_targetService = targetService(); + TARGETING::Target* l_pTarget = nullptr; + (void) l_targetService.getTopLevelTarget(l_pTarget); + if (l_pTarget == nullptr) + { + TS_FAIL("Top level target handle is NULL"); + } + else { + allow_attr_overrides = l_pTarget->getAttr< + TARGETING::ATTR_ALLOW_ATTR_OVERRIDES_IN_SECURE_MODE>(); + l_pTarget->setAttr< + TARGETING::ATTR_ALLOW_ATTR_OVERRIDES_IN_SECURE_MODE>(true); + } + + do + { // Get the address of the runtime apply overrides function runtimeInterfaces_t* rt_intf = getRuntimeInterfaces(); if(rt_intf == NULL) @@ -173,14 +192,6 @@ class TargetingTestSuite : public CxxTest::TestSuite } // Get the initial value of the test attribute - TargetService& l_targetService = targetService(); - TARGETING::Target* l_pTarget = NULL; - (void) l_targetService.getTopLevelTarget(l_pTarget); - if (l_pTarget == NULL) - { - TS_FAIL("Top level target handle is NULL"); - break; - } uint8_t l_attrVal = l_pTarget->getAttr(); uint8_t l_attrOverrideVal = l_attrVal + 1; @@ -263,6 +274,11 @@ class TargetingTestSuite : public CxxTest::TestSuite TRACFCOMP(g_trac_targeting,"testApplyAttrOverrides SUCCESS"); } while (0); + + // Restore allow_attr_overrides setting + l_pTarget->setAttr< + TARGETING::ATTR_ALLOW_ATTR_OVERRIDES_IN_SECURE_MODE>( + allow_attr_overrides); } }; -- cgit v1.2.3