From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.18078.1605154334568527745 for ; Wed, 11 Nov 2020 20:12:14 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=bfokikZX; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: star.zeng@intel.com) IronPort-SDR: GDIzvFspMU3LA10AwjWyV/7QrJmy0PwlDQX5lHaEXxoG5H6VQS6sdCxB6qAEFmc6vRmHNQ02xk t3CNyuQOEfOw== X-IronPort-AV: E=McAfee;i="6000,8403,9802"; a="150106798" X-IronPort-AV: E=Sophos;i="5.77,471,1596524400"; d="scan'208";a="150106798" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2020 20:12:13 -0800 IronPort-SDR: uAx6effY7JBSzqGP7E8JUfoYA6wMJpyZsSVTOmw23joHjDVaoQtnKZ/fTQ0fOEDH2u5bvy83ju 8kPNohv9zukA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,471,1596524400"; d="scan'208";a="308702874" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga008.fm.intel.com with ESMTP; 11 Nov 2020 20:12:13 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 11 Nov 2020 20:12:12 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 11 Nov 2020 20:12:12 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.171) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 11 Nov 2020 20:12:11 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OVCzaa7X+UJy4d52elrxEJSsfUnSk1DkEBNGyVo5gTwukFoBGxgzxzgK4fbWS8rS0S0n60xtf81NO7PkHXvxPKfafOc8d2iGXwOY/NFwRBGNUu9rlpqexJLLJ4mQ92Kao4K8o8pOwHhHL0VdchRaafaXgp5r09PBdWW8XG05AZS4bz+lokWXNfbvI0v+QsKCzJDcHF3UvQYgFZ94VCqKRQxNOzpEbz46k+2NCuM0MGWKqp4NGqk/wvUotUJhJqV2J8f+MvwDEevp0lG8f6fkfOUUd4E0qPZZxySWClrQWgrVVHiyjNmA38HqQ3TKrCPCisgStSGLz+lHGHvvmRa5cw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0wgStJhrSbu2VenPXbzP28jIVFrWbsCjVuAspB2JsdE=; b=CRZycrwv+qOH4Xfdu1PGDLjWQ3yQ05nEHNHNZdS/1O7Z/H+7beHNuiqbytWsf+2ycUJvSw1QOOjaAO9fJJNJaqY3Xvmb2ra1cZlqLPIH9JYkhFXiBfAcfRnsDCSrKcUrLgUwiKwK5dDz67jnHvkt+Pf7PgyTc1kvY2WppKZ4RpcTtv5azQUgW3/Ts/9tYEBYKNY4ZmBeISfIq+LZHlOy4CYHWHeVxDHMwcbwJn5VLc100lEhzujizQj3QouDd87kb0cYCX1esC0nKuHkWo2+fGBqGnLaFfGG2TNyGdzQfjOQHF6P20/vVuX5TpSq1muwq1t2Bflp3kyo9Gjhygaj7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0wgStJhrSbu2VenPXbzP28jIVFrWbsCjVuAspB2JsdE=; b=bfokikZXRyRUcFKBaulNKAXO9IXuds7blj980npZT7UCAIEsiMUo+V5nydz9KDi5fUyP293eZ9x65JPlqJyalI5lfDTKnIpxO85iuPYiaAbRq8QmzB4r68MtZEnSDlXaFtmc+czERtm6woXz9ovTbNmRO7qCv0ElcatkH7tnW5A= Received: from DM6PR11MB4058.namprd11.prod.outlook.com (2603:10b6:5:193::13) by DM6PR11MB3260.namprd11.prod.outlook.com (2603:10b6:5:b::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3541.21; Thu, 12 Nov 2020 04:12:10 +0000 Received: from DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::3558:3d27:c281:3f04]) by DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::3558:3d27:c281:3f04%6]) with mapi id 15.20.3541.025; Thu, 12 Nov 2020 04:12:10 +0000 From: "Zeng, Star" To: "Ma, Maurice" , "devel@edk2.groups.io" CC: "Ma, Maurice" , "Chiu, Chasel" , "Desimone, Nathaniel L" Subject: Re: [PATCH] IntelFsp2Pkg: Fix FSP binary rebasing issue for PE32+ image Thread-Topic: [PATCH] IntelFsp2Pkg: Fix FSP binary rebasing issue for PE32+ image Thread-Index: AQHWuIhv7Hpd7Htc9UCAtuB7FAdJy6nD4tcw Date: Thu, 12 Nov 2020 04:12:09 +0000 Message-ID: References: <6799c7ce4aff0db1d5d0c6afe2901fb10bc939a9.1605139779.git.maurice.ma@intel.com> In-Reply-To: <6799c7ce4aff0db1d5d0c6afe2901fb10bc939a9.1605139779.git.maurice.ma@intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.202] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4d97ca8e-e3c0-4bec-092e-08d886c1203f x-ms-traffictypediagnostic: DM6PR11MB3260: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3631; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3S0VyCEwk3lg1Gw0MgPXYV5cxwftv7NJ+cfXP2XPbXrZgNkBVoiZwUenGjD1muI07NZ7289YOD8rar+6ZtFDI8n8Sc6xmdIIoLSV90iV++PZLpRMm0cQkXZsRVhpKORvIvb73baXnKee61/2+m7YOoZxPkyQ68RpoFTls88Yf72Nm5BSzxx0bCpxUjd6I/uNVGQg8UfZV20qpR5wEPeDCyCriozE63VA5/E+QKwBDF8PkWPTC18a7GleDgpeNhjviAqpnJUc4sgdY3Bc/zTupmdHcNHFOuUmcaAkIzIQyPrIvmgQZl4KyDAhuh86arNy3qpWJaAjjHJB+M/7IEVknA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4058.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(346002)(136003)(366004)(39860400002)(376002)(2906002)(4326008)(6506007)(53546011)(186003)(7696005)(66946007)(55016002)(76116006)(86362001)(478600001)(52536014)(26005)(8676002)(5660300002)(33656002)(9686003)(316002)(83380400001)(71200400001)(64756008)(19627235002)(66556008)(66476007)(66446008)(107886003)(54906003)(110136005)(8936002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: 0HT2uf1UMXIrWKiUNrh6MXE6Uv26WOO1S4GkveVy97V5OTG9tCmPjtphUX3c2ZV5WvDsYdTY+KR0MUK5cMz+yPjBUF+CInn/qagb+6++wLT/eXZzjipuDalMRAtf3v91uaZ+j+QdzgO7xKJvLpv+6eBR5cColqm27LclSjrBCUc9YqYtpw4MzGtKudaPZeDWXv3npIzYdDgMZZfHEyTMP0YxT2iiy6MpKidXXyJiqAR565fPif7jSDfB1hmbxFzLSGjmyK+YNDAlP9YexqePbHvfy+4ZdcN/SRXs7DkNXsfo3mQ38y76gReCszgPsD9KDmwRhOYYG1YjzvP5TzOqP7+JYBGArWjgVAw5j86HBPxRwf/lzzGwnj0z51Bu9TQ85MlqBrWlAFXrfPc10Nf0LMpn+mHTs2V4zouH8S/dKzse9I60pcI7S5hpO3Ms9cUhHHKG4V3N0tuwWN4Q7NP3p2APSkAVPs/1p0s3FPyt0XfXZW0A9z7g4XZ3HFT0QJ/bY+Bz+TsDaqT5z21cG14EfIoVpDJeCg9MeBFNNfSQhU5HyG9g5xkpHdt+ZkMmCzEC6fXKf3CimN2SgHDfY+ckJ/ZJd1tUwvRv8mKJ28mzGKwxAs9XNBp+tKsGeuszu2SV/Bo+u3ut+0zrC2DTQG1vBg== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4058.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d97ca8e-e3c0-4bec-092e-08d886c1203f X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2020 04:12:09.9348 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: PXf4MnmGq+pXiL3cSJR/r9Vb00BI8Wvf2W9Cymmhb5JbQiFp+tpr4bdfUZl5WuUOeQdpSij9euj7Ze4B2WeENw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3260 Return-Path: star.zeng@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Star Zeng -----Original Message----- From: Maurice Ma =20 Sent: Thursday, November 12, 2020 8:11 AM To: devel@edk2.groups.io Cc: Ma, Maurice ; Chiu, Chasel ; Desimone, Nathaniel L ; Zeng, Star Subject: [PATCH] IntelFsp2Pkg: Fix FSP binary rebasing issue for PE32+ imag= e Current FSP rebasing script SplitFspBin.py has support for both PE32 and PE32+ image formats. However, while updating the ImageBase field i= n the image header, it always assumed the ImageBase field is 32bit long. Si= nce PE32+ image format defined ImageBase as 64bit, the current script will = only update the lower 32bit value and leave the upper 32bit untouched. It d= oes not work well for PE32+ image that requires update in the upper 32bit I= mageBase field. The expected behavior is to update the full 64bit field. Th= is patch implemented this fix. Signed-off-by: Maurice Ma Cc: Chasel Chiu Cc: Nate DeSimone Cc: 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: = #=20 + PE32+ image + offset +=3D=20 + EFI_IMAGE_OPTIONAL_HEADER32_PLUS.ImageBase.offset + size =3D EFI_IMAGE_OPTIONAL_HEADER32_PLUS.ImageBase.siz= e + 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) -- 2.29.2.windows.1