From nobody Tue May 7 20:49:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+67332+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+67332+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1605139917; cv=none; d=zohomail.com; s=zohoarc; b=PoY0i6fo3NabPZWPSRpvNEww5fHxXCeL1sCa1qzcFzuz1nYxqtlcKkcPz6TXOzRRum0xda7DsrYQp1qiG5+GX5x1po8SVh9DQY6J0hro4roCTR4x83HMWXlVPqzPmH6v2jlUM4pMeR7xmAAKjLn1pIn6+o8GwSwEKbEIocf1Pwc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1605139917; h=Content-Transfer-Encoding:Cc:Date:From:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=B3dEJxLrHq9vBo+eOlZKRsvAD05sLTHywwLOq2gkBK4=; b=m/koHUp8Z7B1osH8/VLH+quSRnbT2yzTGAtYJXVR5RrFx+C4Mz3v7nZxk3PDouYfyBndy48Uzfh0b54iOZev2I+rfQI17gy5+Bi24hcxlTX2gSvlHTAiq5rijoa6zt5iB75XiHQlUnizARn1d8L8RB/EYaooCLfVhKFjNagP9sg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+67332+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1605139917356716.0373345890362; Wed, 11 Nov 2020 16:11:57 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id oePSYY1788612xPGB8Bo5Sz6; Wed, 11 Nov 2020 16:11:57 -0800 X-Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web10.15658.1605139916477214314 for ; Wed, 11 Nov 2020 16:11:56 -0800 IronPort-SDR: SlGuC4TsUYBaG2CNxuEzicyBium8hQpPGEzEgrIENvdfUkirf6HGN/dwjoEDd21bnjNbiguJc2 Km3Y17TRI1kA== X-IronPort-AV: E=McAfee;i="6000,8403,9802"; a="169452046" X-IronPort-AV: E=Sophos;i="5.77,471,1596524400"; d="scan'208";a="169452046" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2020 16:11:50 -0800 IronPort-SDR: 9QHrcORED5J2mnz3me3c2qbafK6CcpW1uaSvSlyZdEn2GHLSYR21mykS2vCNm+9izmdcnjtyXw aDbxRjNkiQXQ== X-IronPort-AV: E=Sophos;i="5.77,471,1596524400"; d="scan'208";a="356856604" X-Received: from mxma-mobl1.amr.corp.intel.com ([10.209.147.9]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2020 16:11:49 -0800 From: "Ma, Maurice" To: devel@edk2.groups.io Cc: Maurice Ma , Chasel Chiu , Nate DeSimone , Star Zeng Subject: [edk2-devel] [PATCH] IntelFsp2Pkg: Fix FSP binary rebasing issue for PE32+ image Date: Wed, 11 Nov 2020 16:10:32 -0800 Message-Id: <6799c7ce4aff0db1d5d0c6afe2901fb10bc939a9.1605139779.git.maurice.ma@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,maurice.ma@intel.com X-Gm-Message-State: vWgvJe311lArINPC5USGUu3Gx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1605139917; bh=4jnYEmzvueWyuub+Z4bR75nHiB1ooU9wD/XNNY+/Ct4=; h=Cc:Date:From:Reply-To:Subject:To; b=EG8toeYWdoF+KiOOYJ3u7IteuagmpYCvNiRetlCCtZGy7J2KVNbbKRP4zKShRNTAogQ T7YVEU687AJn0HzvUgo3L1w6F1U4dCuKS9OnTDCmU6WmRMMJXKqugcp1y8ZNb8E3aN/cK lclkqCDxslIdg6ZAndLNPnTUF43hfawRAPg= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Current FSP rebasing script SplitFspBin.py has support for both PE32 and PE32+ image formats. However, while updating the ImageBase field in the image header, it always assumed the ImageBase field is 32bit long. Since PE32+ image format defined ImageBase as 64bit, the current script will only update the lower 32bit value and leave the upper 32bit untouched. It does not work well for PE32+ image that requires update in the upper 32bit ImageBase field. The expected behavior is to update the full 64bit field. This patch implemented this fix. Signed-off-by: Maurice Ma Cc: Chasel Chiu Cc: Nate DeSimone Cc: Star Zeng Reviewed-by: Chasel Chiu Reviewed-by: Nate DeSimone Reviewed-by: Star Zeng --- IntelFsp2Pkg/Tools/SplitFspBin.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/IntelFsp2Pkg/Tools/SplitFspBin.py b/IntelFsp2Pkg/Tools/SplitFs= pBin.py index 3c0d5af1b6..24272e82af 100644 --- a/IntelFsp2Pkg/Tools/SplitFspBin.py +++ b/IntelFsp2Pkg/Tools/SplitFspBin.py @@ -677,8 +677,12 @@ class PeTeImage: else: offset =3D self.Offset + self.DosHdr.e_lfanew offset +=3D EFI_IMAGE_NT_HEADERS32.OptionalHeader.offset - offset +=3D EFI_IMAGE_OPTIONAL_HEADER32.ImageBase.offset - size =3D EFI_IMAGE_OPTIONAL_HEADER32.ImageBase.size + if self.PeHdr.OptionalHeader.PePlusOptHdr.Magic =3D=3D 0x20b: = # PE32+ image + offset +=3D EFI_IMAGE_OPTIONAL_HEADER32_PLUS.ImageBase.off= set + size =3D EFI_IMAGE_OPTIONAL_HEADER32_PLUS.ImageBase.size + else: + offset +=3D EFI_IMAGE_OPTIONAL_HEADER32.ImageBase.offset + size =3D EFI_IMAGE_OPTIONAL_HEADER32.ImageBase.size =20 value =3D Bytes2Val(fdbin[offset:offset+size]) + delta fdbin[offset:offset+size] =3D Val2Bytes(value, size) --=20 2.29.2.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#67332): https://edk2.groups.io/g/devel/message/67332 Mute This Topic: https://groups.io/mt/78196419/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-