summaryrefslogtreecommitdiffstats
path: root/src/usr/secureboot/base/test
diff options
context:
space:
mode:
authorMike Baiocchi <baiocchi@us.ibm.com>2013-07-10 12:59:28 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-07-10 13:36:47 -0500
commit324eb052b3493eb4723a7c3f3dc56b50dba27516 (patch)
tree74293e5d131c7f36774ea2bc28b6bae277a25e9a /src/usr/secureboot/base/test
parent09177b03b6bd1fecb9e52548fd57633b3dc0d600 (diff)
downloadtalos-hostboot-324eb052b3493eb4723a7c3f3dc56b50dba27516.tar.gz
talos-hostboot-324eb052b3493eb4723a7c3f3dc56b50dba27516.zip
Fix SecureROM Cleanup Function
The SecureROM::_cleanup() function was not putting all of the memory reserved for the secure rom device back into the proper state. Change-Id: I9b11736d7e3cae8f5e21872ad740aef67ac4298e Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/5365 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/secureboot/base/test')
-rw-r--r--src/usr/secureboot/base/test/secureromtest.H36
1 files changed, 34 insertions, 2 deletions
diff --git a/src/usr/secureboot/base/test/secureromtest.H b/src/usr/secureboot/base/test/secureromtest.H
index de1e1e35c..2d9918dc1 100644
--- a/src/usr/secureboot/base/test/secureromtest.H
+++ b/src/usr/secureboot/base/test/secureromtest.H
@@ -52,6 +52,11 @@ errlHndl_t loadSignedFile( const char * i_signedFile_name,
void * & o_signedFile_pageAddr,
size_t & o_signedFile_size );
+// Safely removes signed files from memory
+void unloadSignedFile( void * & io_signedFile_pageAddr,
+ size_t & io_signedFile_size );
+
+
// @todo RTC:34080 - In future key hash will come from HW, but
// Get the software keys that match the signed container
void useSwKeyHash(sha2_hash_t * o_sw_key_hash);
@@ -133,7 +138,7 @@ class SecureROMTest : public CxxTest::TestSuite
printkd("test_verify(): expect to see 'mfsr r2 to CFAR handled': ");
l_errl = l_sRom.verifyContainer( signedFile_pageAddr,
- signedFile_size );
+ signedFile_size );
if (l_errl)
{
@@ -142,8 +147,16 @@ class SecureROMTest : public CxxTest::TestSuite
return;
}
- TRACFCOMP(g_trac_secure,EXIT_MRK"SecureROMTest::test_verify");
+ /*******************************************************************/
+ /* Unload "test_signed_container" from memory */
+ /*******************************************************************/
+ if ( signedFile_pageAddr != NULL )
+ {
+ unloadSignedFile( signedFile_pageAddr, signedFile_size);
+ }
+
+ TRACFCOMP(g_trac_secure,EXIT_MRK"SecureROMTest::test_verify");
};
@@ -209,6 +222,25 @@ errlHndl_t loadSignedFile( const char * i_signedFile_name,
return l_errl;
}
+// Safely removes signed files from memory
+void unloadSignedFile( void * & io_signedFile_pageAddr,
+ size_t & io_signedFile_size )
+{
+
+ // Determine number of pages to be freed
+ size_t l_num_pages = ALIGN_PAGE(io_signedFile_size)/PAGESIZE;
+
+ // Free page(s)
+ PageManager::freePage(io_signedFile_pageAddr, l_num_pages);
+
+ // Reset pageAddr pointer
+ io_signedFile_pageAddr = NULL;
+
+ TRACUCOMP(g_trac_secure, "unloadSignedFile()> "
+ "Info: sF_pA=%p, size=0x%x (pages=%d)",
+ io_signedFile_pageAddr, io_signedFile_size, l_num_pages);
+
+}
// @todo RTC:34080 - In future key hash will come from HW, but
OpenPOWER on IntegriCloud