diff options
| author | Stephen Cprek <smcprek@us.ibm.com> | 2017-11-20 16:56:44 -0600 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-12-18 17:27:59 -0500 |
| commit | 9ae6e9595f9773d295b7e3ade47088f554c1ed48 (patch) | |
| tree | f33427b681154991423fb9faad3476bf4aa17ff4 /src/include | |
| parent | 8392e4f606607e505bb99de2a8d229ae69be5efe (diff) | |
| download | talos-hostboot-9ae6e9595f9773d295b7e3ade47088f554c1ed48.tar.gz talos-hostboot-9ae6e9595f9773d295b7e3ade47088f554c1ed48.zip | |
Remove Secure Boot workarounds
- Removing the magic number checks that would block sb functionality
if things didn't appear secure
- Remove Best Effort Policy and all of its related code
- Remove the legacy PCR extension
- Remove the non-secure header preservation path.
- Always load HB base image header from the bl to hb data path
vs settings unsecurely out of pnor
Change-Id: Ie638384ac50ed47850985c959ea7a32e5757d64e
RTC: 178520
RTC: 155374
RTC: 173489
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49925
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Nicholas E. Bofferding <bofferdn@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: Michael Baiocchi <mbaiocch@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/bootloader/bootloader_trace.H | 6 | ||||
| -rw-r--r-- | src/include/usr/pnor/pnorif.H | 45 | ||||
| -rw-r--r-- | src/include/usr/secureboot/header.H | 26 | ||||
| -rw-r--r-- | src/include/usr/secureboot/service.H | 6 | ||||
| -rw-r--r-- | src/include/usr/secureboot/settings.H | 11 |
5 files changed, 5 insertions, 89 deletions
diff --git a/src/include/bootloader/bootloader_trace.H b/src/include/bootloader/bootloader_trace.H index 18b5417bf..313afbada 100644 --- a/src/include/bootloader/bootloader_trace.H +++ b/src/include/bootloader/bootloader_trace.H @@ -68,11 +68,7 @@ enum BootloaderTraces /** Bootloader main copy HBB to running location done */ BTLDR_TRC_MAIN_COPY_HBB_DONE = 0x16, - /** Bootloader main verifyContainer skip verification - no eyecatch */ - BTLDR_TRC_MAIN_VERIFY_NO_EYECATCH = 0x17, - - /** Bootloader main verifyContainer skip verification - no magic number */ - BTLDR_TRC_MAIN_VERIFY_NO_MAGIC_NUM = 0x18, + /** Unused hole from previously used traces */ /** Bootloader main verifyContainer skip verification - SAB unset */ BTLDR_TRC_MAIN_VERIFY_SAB_UNSET = 0x19, diff --git a/src/include/usr/pnor/pnorif.H b/src/include/usr/pnor/pnorif.H index 1c35ec852..cef8617fd 100644 --- a/src/include/usr/pnor/pnorif.H +++ b/src/include/usr/pnor/pnorif.H @@ -36,9 +36,6 @@ namespace PNOR { -// @TODO RTC:155374 Remove this in the future -extern const size_t BEST_EFFORT_NUM_BYTES; - /** * Information about a side of PNOR */ @@ -228,48 +225,6 @@ const char * SectionIdToString( uint32_t i_secIdIndex ); */ bool cmpSecurebootMagicNumber(const uint8_t* i_vaddr); -// @TODO RTC 173489 -// Remove API once FSP fully supports signing of PNOR sections that did not -// previously have a sha512 header -/** - * @brief Determines whether requested PNOR section has a recognized header - * - * @param[in] i_secId ID of requested section - * @param[in] i_TOC TOC entry for requested section - * @param[out] o_knownHeader Whether header was recognized or not - * - * @return errlHndl_t Error log handle - * @retval nullptr Success! Output parameter valid - * @retval !nullptr Error log pointer; output parameter invalid - */ -errlHndl_t hasKnownHeader( - PNOR::SectionId i_secId, - const PNOR::SectionData_t& i_TOC, - bool& o_knownHeader); - -// @TODO RTC 173489 -// Remove API once FSP fully supports signing of PNOR sections that did not -// previously have a sha512 header -/** - * @brief Read first few bytes of requested section's "potential" header - * - * @param[in] i_secId ID of requested section - * @param[in] i_TOC TOC entry for requested section - * @param[in] i_size Number of bytes to read from the beginning of the - * requested section - * @param[in] o_pData Pointer to a buffer of at least "i_size" bytes to - * hold the returned data. Asserts if nullptr - * - * @return errlHndl_t Error log handle - * @retval nullptr Success! Requested bytes read to output buffer - * @retval !nullptr Error log pointer; output buffer invalid - */ -errlHndl_t readHeaderMagic( - PNOR::SectionId i_secId, - const PNOR::SectionData_t& i_TOC, - size_t i_size, - void* o_pData); - /** * @brief Determine if a PNOR section is empty by checking if first PAGE * is all 0xFF's or 0x00's depending on ECC or not. diff --git a/src/include/usr/secureboot/header.H b/src/include/usr/secureboot/header.H index 0478fa675..eff1f6769 100644 --- a/src/include/usr/secureboot/header.H +++ b/src/include/usr/secureboot/header.H @@ -59,34 +59,14 @@ namespace SECUREBOOT iv_data=NULL; } - // @TODO RTC 178520 Converge to single method of reading - // secure header - /** * @brief Extracts base image (HBB) header (ECC removed) from - * security area preserved across the bootloader to HBB - * handoff to support extending HBB measurements to TPM in - * secure mode. + * area preserved across the bootloader to HBB handoff to + * support extending HBB measurements to TPM * * @warning Asserts if header is already cached (code bug) */ - void loadSecurely(); - - // @TODO RTC 178520 Converge to single method of reading - // secure header - - /** - * @brief Caches non-secure PNOR copy of the base image (HBB) - * header (ECC removed) to support extending HBB measurements - * to TPM in non-secure mode. - * - * @param[in] i_pHeader Pointer to non-secure 4k HBB header - * extracted from PNOR. - * - * @warning Carries all the same warnings as _set - */ - void setNonSecurely( - const void* i_pHeader); + void loadHeader(); /** * @brief Return pointer to base image (HBB) header. diff --git a/src/include/usr/secureboot/service.H b/src/include/usr/secureboot/service.H index 638c23505..dc1fd5a78 100644 --- a/src/include/usr/secureboot/service.H +++ b/src/include/usr/secureboot/service.H @@ -330,12 +330,6 @@ namespace SECUREBOOT */ bool allowAttrOverrides(); - /* Definition in settings.H */ - bool bestEffortPolicy(); - - /* Definition in securerommgr.H */ - bool secureRomValidPolicy(); - /* * @brief Gets the current SBE security mode value from the secureboot * subsystem diff --git a/src/include/usr/secureboot/settings.H b/src/include/usr/secureboot/settings.H index 491c607d3..417e14d96 100644 --- a/src/include/usr/secureboot/settings.H +++ b/src/include/usr/secureboot/settings.H @@ -90,8 +90,7 @@ namespace SECUREBOOT class Settings { public: - Settings() : iv_enabled(false), - iv_bestEffortPolicy(false) { _init(); }; + Settings() : iv_enabled(false) { _init(); }; ~Settings() {}; /** @brief Determine if Secureboot is enabled. */ @@ -136,13 +135,6 @@ namespace SECUREBOOT TARGETING::Target* i_pProc = TARGETING::MASTER_PROCESSOR_CHIP_TARGET_SENTINEL) const; - /** @brief Determines if the Secureboot best effort policy is - * enabled. Uses knowledge of compile config options and - * secure mode enabled - * @return bool - True if enabled, false otherwise - */ - bool getBestEffortPolicy() const; - private: void _init(); @@ -192,7 +184,6 @@ namespace SECUREBOOT /** Cached secure boot enabled value */ bool iv_enabled; - bool iv_bestEffortPolicy; }; } |

