From ccb74685e3205a1f74e4a2264f27775144600d2c Mon Sep 17 00:00:00 2001 From: Nick Bofferding Date: Tue, 20 Jun 2017 14:22:38 -0500 Subject: Fix secure PNOR provider deadlock - Direct extended/targeting image unprotected payload access to PNOR range Change-Id: Id81b3bcc8c3ef4317e68e111847d6c9d3ede7ac4 CQ: SW392719 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42156 Reviewed-by: Michael Baiocchi Reviewed-by: Marshall J. Wilks Reviewed-by: Stephen M. Cprek Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell --- src/usr/targeting/attrrp.C | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/usr/targeting/attrrp.C') diff --git a/src/usr/targeting/attrrp.C b/src/usr/targeting/attrrp.C index 28ffe8133..da1efdb15 100755 --- a/src/usr/targeting/attrrp.C +++ b/src/usr/targeting/attrrp.C @@ -442,6 +442,17 @@ namespace TARGETING iv_sections[i].pnorAddress = l_pnorSectionInfo.vaddr + l_section->sectionOffset; + #ifdef CONFIG_SECUREBOOT + // RW targeting section is part of the unprotected payload + // so use the normal PNOR virtual address space + if( l_pnorSectionInfo.secure + && iv_sections[i].type == SECTION_TYPE_PNOR_RW) + { + iv_sections[i].pnorAddress -= + (VMM_VADDR_SPNOR_DELTA + VMM_VADDR_SPNOR_DELTA); + } + #endif + if(iv_isMpipl) { //For MPIPL we are reading from real memory, -- cgit v1.2.1