From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web12.10158.1592878499392236736 for ; Mon, 22 Jun 2020 19:14:59 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=eEaS7K7A; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: eric.dong@intel.com) IronPort-SDR: UC6ZEhpc2gTWf9kdDgB5g8mbtKUmBeBxAJokYL+YbdREaOHPgvRqawgOjhIJBMC95mqMdcvRdx a1eEsb6+US9g== X-IronPort-AV: E=McAfee;i="6000,8403,9660"; a="205429919" X-IronPort-AV: E=Sophos;i="5.75,268,1589266800"; d="scan'208,217";a="205429919" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jun 2020 19:14:57 -0700 IronPort-SDR: Gm1H5Dxw2jnt2ILswWlHBsqphdHIXDNRgKSI5W7oN7f8uxgYmIphpwtIj+J6oX12HRjZYDM9HV Ex6VFXNCLiGQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,268,1589266800"; d="scan'208,217";a="283391133" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga007.jf.intel.com with ESMTP; 22 Jun 2020 19:14:56 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 22 Jun 2020 19:14:55 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 22 Jun 2020 19:14:55 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 22 Jun 2020 19:14:55 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.173) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 22 Jun 2020 19:14:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HODzdy2Vw6YDfGcds2sSv0W76LwtJfv/EV5o9eL6F9Hwp2zZyLiyxc8eLg2eaBH3wPbMK2Dt3lXSbwtYuLndsd3o8f4QBj6UIbCO4nP3CbZCbGSzfMwbgk+gbULjukrioD4eyNQKtsTEkIHO0DLtwKEdskSZU2BIBcwJnNIT+pdvkBHBHDdQMDbzhBLJy5tz+vwzYGK1EtCXCAivhmOO9vZhVxtuB10yq1Dj30rRTWuWuvEyQXxckPVNgBdyV/MTuWpwQ2FVubIz/8nYkLHTfdWBskcEJFQ865i1hkXyvQCQymfVV11xvShhMjvzJqjgiC8aQcc9SFNEG2fwvhW9gg== 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=4zHKto+Q7d9FZq1zNPkmlWsb6jdaJqgHXzKp2KB4QmU=; b=TnHdllQaNuc3hAyjySeXfFV1V62etoDYB5/sdrXSpIV+XJzqI1x70iq2Ena8GOyg8dkKuWtnxChXgpYms3+gJ6HwCKY9YDCWxbhYoHcDGi2IlRCyL4VjUTG5+UvhjCUueWmJRegaBOS/kqDaPdIXDpoTG/Uu8lJAEY3TRJwPK7R00Y/pG8HWIqmmhe1EOJwVgW9L4y0lsIXS0GDlYu/NqoybstOO3EzgPqDFlHcRg3UQbWUMSc86emSXONCjOhNsbjnLaWslfflR2pExPfNOux+77URcOOwdwOXMsXZ+n3LFFv7Ci+HsRuqpuqa6ES+y/kVV2fM3mNoPhdIt9/FkKg== 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=4zHKto+Q7d9FZq1zNPkmlWsb6jdaJqgHXzKp2KB4QmU=; b=eEaS7K7ACYH2if9wTp9R3j0kEFmcrQRvy9Xy0CYNrouSm2R39u71lrksI5oLtnJ38NoD2chAQDJpym97OCVikQCgxOdzxr2dImpVwzSoTtKrJPakPJ2tY1ZHhArSi5Z5VzVOLKXyBSX3U31qGxZZ03PwLpzBcxkryOHv3Zc8ayY= Received: from DM6PR11MB3274.namprd11.prod.outlook.com (2603:10b6:5:b::26) by DM5PR11MB2011.namprd11.prod.outlook.com (2603:10b6:3:f::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.23; Tue, 23 Jun 2020 02:14:52 +0000 Received: from DM6PR11MB3274.namprd11.prod.outlook.com ([fe80::cc01:6f05:1402:e7d7]) by DM6PR11MB3274.namprd11.prod.outlook.com ([fe80::cc01:6f05:1402:e7d7%6]) with mapi id 15.20.3109.027; Tue, 23 Jun 2020 02:14:52 +0000 From: "Dong, Eric" To: "Ni, Ray" , "Cole, Deric" , "devel@edk2.groups.io" CC: Laszlo Ersek Subject: Re: [PATCH] UefiCpuPkg/SecCore: Add pre-memory AP vector Thread-Topic: [PATCH] UefiCpuPkg/SecCore: Add pre-memory AP vector Thread-Index: AQHWOGSbN0TkY4ZjVkCLEir5AvF/majEwgQAgADGl4CAH/jpgIAAFa8Q Date: Tue, 23 Jun 2020 02:14:52 +0000 Message-ID: References: <20200601223225.1925-1-deric.cole@intel.com> <734D49CCEBEEF84792F5B80ED585239D5C596480@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C5CDBF2@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5C5CDBF2@SHSMSX104.ccr.corp.intel.com> Accept-Language: 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.102.204.45] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e6f33b3d-c63d-4dac-2e0e-08d8171b36e8 x-ms-traffictypediagnostic: DM5PR11MB2011: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 04433051BF x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: yUX39CqtxfhxkpSY7/GH+zgEJ2Doxy2qZJFoYZGoaz837Sm/03SSKZtS1zkn8s96wtvY/0c3kFX2AUb6H3u9+kI7LD69CWPaSlh5fcoA0R34m6rrNwx9V1Vdhuoej0E0QGbHE6vOHWt/KDeXhKcr2jLjzRPKcB5FHZ+LDafDtFyqXeUHYDqEbIwPZi+LCwerui1hmXfOFn8ylgsSPoHaUSklUpD4tklb7pXdzJJxGm2FvkTFIbl2vPaAM0EdMuzLh/97BE1XBILzPvrTdzRxNiYyKxAK8xWv5IZTh8q4GkVAq8qsjr4o5DobuUoLQ6TmSHP9Mgfom665ti2QbO0BDPU45K+DolVM9eOxB7xV8RhNLIRy0dzjeHGZOJjGtZSdaIjSM3I4c+HXRbix2qx3ew== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB3274.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(376002)(136003)(346002)(366004)(396003)(39860400002)(83380400001)(7696005)(186003)(26005)(66946007)(4326008)(6506007)(33656002)(8936002)(53546011)(8676002)(55016002)(86362001)(5660300002)(9686003)(76116006)(52536014)(64756008)(2906002)(66556008)(66476007)(478600001)(66446008)(316002)(110136005)(71200400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: uQuE4WfLW0/QLxmYLZwLXABbpeglLksuFoaKL1pH9Sq0VshtCGAVD7knebbEC3HiDUz0299048ObRu+IhQmksFKbcMnCYQ3Tb3sF2EhEMteeRcjGHnGIchXLeAVtG2ICWdJOVi17WLC+pgSU3ANFySmr9dK/O/TR+V+5o9mf/VbSajdxwvYjBm7XRbk4tw268l6ZV7O/2Pr8YULEE3l9XT0CTrnSaA4AhGTQKmDDIrzlVNAy3w6w0liQ15hFUaT/mmhBWLn6Y4aV9D1DEVXm4/qh6AOzkYd1569tymteJqpC8hfDqql0MDBKe9NWY7J6Dz3LvkejiG4lKK1+u1aKxlUqxtyjJbP5VMZ+QkmBdtYmA5Xg+5Myt0qJdyx2sg6UlbwIjPzpkcYheZ9y1L34GoE3UEMkSoashqWxE3a8+fd9UmhUWG9WzKYbZuZXG846hmL8QretszNsJwpi7i/skB1iB7IGJPUU6mX3jwDYDQNgrEedbOcQgWv7Ut3LtV6o MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: e6f33b3d-c63d-4dac-2e0e-08d8171b36e8 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jun 2020 02:14:52.4987 (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: 5VnDWsncOJeayxKNBfCzzaJSfGvsqQCVqmAe1e6eJ8abEyOAEOGW/CI3XTXm7voFMrNJHFMJ1ly46nZaiXq7CA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB2011 Return-Path: eric.dong@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_DM6PR11MB3274EB907460406C4AFB8773FE940DM6PR11MB3274namp_" --_000_DM6PR11MB3274EB907460406C4AFB8773FE940DM6PR11MB3274namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Eric Dong eric.dong@intel.com Pushed: SHA-1: 00b8bf7eda00fb6f0197d3968b6078cfdb4870fa * UefiCpuPkg/SecCore: Add pre-memory AP vector REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D2776 Thanks, Eric From: Ni, Ray Sent: Tuesday, June 23, 2020 8:57 AM To: Cole, Deric ; devel@edk2.groups.io Cc: Dong, Eric ; Laszlo Ersek Subject: RE: [PATCH] UefiCpuPkg/SecCore: Add pre-memory AP vector Reviewed-by: Ray Ni > > -----Original Message----- > From: Cole, Deric > > Sent: Wednesday, June 3, 2020 12:42 AM > To: Ni, Ray >; devel@edk2.group= s.io > Cc: Dong, Eric >; Laszlo = Ersek > > Subject: RE: [PATCH] UefiCpuPkg/SecCore: Add pre-memory AP vector > > Ray, > > The NOP is not a functional change, it's just for ease of debug. > > Before, this file was padding with zeros in various places. When viewing = this memory using a disassembler, two > subsequent zero-bytes show up as an ADD instruction, which I found confus= ing. But worse, if the number of zero-bytes was > odd, the disassembler might try to "consume" part of the next (real) inst= ruction as an operand to the last hypothetical > ADD. > > Since NOP is a 1-byte instruction, I used that instead, so it is easier t= o visually identify the real code versus the padding > when viewing disassembly. > > -Deric > > -----Original Message----- > From: Ni, Ray > > Sent: Monday, June 1, 2020 9:51 PM > To: Cole, Deric >; deve= l@edk2.groups.io > Cc: Dong, Eric >; Laszlo = Ersek > > Subject: RE: [PATCH] UefiCpuPkg/SecCore: Add pre-memory AP vector > > Deric, > Can you explain why changing all padding 0x0 to 0x90 (nop) in your patch? > > Is it required to enable AP start up in pre-mem? > > Thanks, > Ray > > > -----Original Message----- > > From: Cole, Deric > > > Sent: Tuesday, June 2, 2020 6:32 AM > > To: devel@edk2.groups.io > > Cc: Cole, Deric >; Do= ng, Eric > > >; Ni, Ray >; Laszlo Ersek > > > > > Subject: [PATCH] UefiCpuPkg/SecCore: Add pre-memory AP vector > > > > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D2776 > > > > Add a vector at 0xFF000 (0xFFFFF000) that can be used by > > Init-SIPI-SIPI to start an AP before memory is initialized. This > > vector jumps into the same SEC entry point as the ordinary reset > > vector, with a special value of "AP" in the DI register. The > > platform-specific SEC code is expected to check for that value and > > take a different path for APs, if this feature is supported by the plat= form. > > > > Cc: Eric Dong > > > Cc: Ray Ni > > > Cc: Laszlo Ersek > > > Signed-off-by: Deric Cole > > > --- > > UefiCpuPkg/SecCore/Ia32/ResetVec.nasmb | 31 > > ++++++++++++++++++++++++------- > > 1 file changed, 24 insertions(+), 7 deletions(-) > > > > diff --git a/UefiCpuPkg/SecCore/Ia32/ResetVec.nasmb > > b/UefiCpuPkg/SecCore/Ia32/ResetVec.nasmb > > index f41b9669d0..1dfc4efe4c 100644 > > --- a/UefiCpuPkg/SecCore/Ia32/ResetVec.nasmb > > +++ b/UefiCpuPkg/SecCore/Ia32/ResetVec.nasmb > > @@ -10,7 +10,7 @@ > > ; Abstract: > > > > ; > > > > ; Reset Vector Data structure > > > > -; This structure is located at 0xFFFFFFC0 > > > > +; This structure is located at 0xFFFFF000 > > > > ; > > > > > > ;--------------------------------------------------------------------- > > --------- > > > > > > > > @@ -23,19 +23,36 @@ USE16 > > ; > > > > > > > > ORG 0h > > > > + > > > > +; > > > > +; 0xFFFFF000 > > > > +; > > > > +; We enter here with CS:IP =3D 0xFF00:0x0000. Do a far-jump to change > > +CS to > > 0xF000 > > > > +; and IP to ApStartup. > > > > +; > > > > +ApVector: > > > > + mov di, "AP" > > > > + jmp 0xF000:0xF000+ApStartup > > > > + > > > > + TIMES 0xFC0-($-$$) nop > > > > + > > > > +; > > > > +; This should be at 0xFFFFFFC0 > > > > +; > > > > + > > > > ; > > > > ; Reserved > > > > ; > > > > ReservedData: DD 0eeeeeeeeh, 0eeeeeeeeh > > > > > > > > - TIMES 0x10-($-$$) DB 0 > > > > + TIMES 0xFD0-($-$$) nop > > > > ; > > > > -; This is located at 0xFFFFFFD0h > > > > +; This is located at 0xFFFFFFD0 > > > > ; > > > > mov di, "PA" > > > > jmp ApStartup > > > > > > > > - TIMES 0x20-($-$$) DB 0 > > > > + TIMES 0xFE0-($-$$) nop > > > > ; > > > > ; Pointer to the entry point of the PEI core > > > > ; It is located at 0xFFFFFFE0, and is fixed up by some build tool > > > > @@ -53,7 +70,7 @@ ASM_PFX(InterruptHandler): > > jmp $ > > > > iret > > > > > > > > - TIMES 0x30-($-$$) DB 0 > > > > + TIMES 0xFF0-($-$$) nop > > > > ; > > > > ; For IA32, the reset vector must be at 0xFFFFFFF0, i.e., 4G-16 byte > > > > ; Execution starts here upon power-on/platform-reset. > > > > @@ -74,7 +91,7 @@ ApStartup: > > DW -3 > > > > > > > > > > > > - TIMES 0x38-($-$$) DB 0 > > > > + TIMES 0xFF8-($-$$) nop > > > > ; > > > > ; Ap reset vector segment address is at 0xFFFFFFF8 > > > > ; This will be fixed up by some build tool, > > > > @@ -83,7 +100,7 @@ ApStartup: > > ; > > > > ApSegAddress: dd 12345678h > > > > > > > > - TIMES 0x3c-($-$$) DB 0 > > > > + TIMES 0xFFC-($-$$) nop > > > > ; > > > > ; BFV Base is at 0xFFFFFFFC > > > > ; This will be fixed up by some build tool, > > > > -- > > 2.26.2.windows.1 > > --_000_DM6PR11MB3274EB907460406C4AFB8773FE940DM6PR11MB3274namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Reviewed-by: Eric Dong eric.dong@intel.com

 

Pushed:

SHA-1: 00b8bf7eda00fb6f0197d3= 968b6078cfdb4870fa

 

* UefiCpuPkg/SecCore: Add = pre-memory AP vector

 

REF:https://bugzilla.tianocor= e.org/show_bug.cgi?id=3D2776

 

 

Thanks,

Eric

From: Ni, Ray <ray.ni@intel.com>
Sent: Tuesday, June 23, 2020 8:57 AM
To: Cole, Deric <deric.cole@intel.com>; devel@edk2.groups.io Cc: Dong, Eric <eric.dong@intel.com>; Laszlo Ersek <lersek@= redhat.com>
Subject: RE: [PATCH] UefiCpuPkg/SecCore: Add pre-memory AP vector

 

Reviewed-by: Ray Ni <ray.ni@intel.com>


> -----Original Message-----
> From: Cole, Deric <= ;deric.cole@intel.com>
> Sent: Wednesday, June = ;3, 2020 12:42 AM
> To: Ni, Ray <ray.ni@intel.com>; devel@edk2.groups.io
> Cc: Dong, Eric <eric.dong@intel.com>; Lasz= lo Ersek <lersek@redhat.c= om>
> Subject: RE: [PATCH] = UefiCpuPkg/SecCore: Add pre-memory AP vector

> Ray,

> The NOP is not a=  functional change, it's just for ease o= f debug.

> Before, this file was=  padding with zeros in various places. W= hen viewing this memory using a disassembler,=  two
> subsequent zero-bytes show=  up as an ADD instruction, which I = found confusing. But worse, if the number&nbs= p;of zero-bytes was
> odd, the disassembler = ;might try to "consume" part of the=  next (real) instruction as an operand t= o the last hypothetical
> ADD.

> Since NOP is a 1= -byte instruction, I used that instead, so&nb= sp;it is easier to visually identify the = ;real code versus the padding
> when viewing disassembly.<= /span>

> -Deric

> -----Original Message-----
> From: Ni, Ray <ray.ni@intel.com>
> Sent: Monday, June 1,=  2020 9:51 PM
> To: Cole, Deric <<= a href=3D"mailto:deric.cole@intel.com">deric.cole@intel.com>; <= a href=3D"mailto:devel@edk2.groups.io">devel@edk2.groups.io
> Cc: Dong, Eric <eric.dong@intel.com>; Lasz= lo Ersek <lersek@redhat.c= om>
> Subject: RE: [PATCH] = UefiCpuPkg/SecCore: Add pre-memory AP vector

> Deric,
> Can you explain why&n= bsp;changing all padding 0x0 to 0x90 (nop)&nb= sp;in your patch?

> Is it required to&nbs= p;enable AP start up in pre-mem?

> Thanks,
> Ray

> > -----Original Message--= ---
> > From: Cole, Deric&= nbsp;<deric.cole@intel.com&g= t;
> > Sent: Tuesday, Jun= e 2, 2020 6:32 AM
> > To: devel@edk2.groups.io
> > Cc: Cole, Deric&nb= sp;<deric.cole@intel.com>= ; Dong, Eric
> > <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>; Laszlo = Ersek
> > <lersek@redhat.com>
> > Subject: [PATCH] U= efiCpuPkg/SecCore: Add pre-memory AP vector
> >
> > REF:https://bugzilla.tianoco= re.org/show_bug.cgi?id=3D2776
> >
> > Add a vector = at 0xFF000 (0xFFFFF000) that can be used = ;by
> > Init-SIPI-SIPI to = start an AP before memory is initialized.&nbs= p;This
> > vector jumps into&= nbsp;the same SEC entry point as the ord= inary reset
> > vector, with a&nbs= p;special value of "AP" in the DI&n= bsp;register. The
> > platform-specific SEC&n= bsp;code is expected to check for that v= alue and
> > take a different&n= bsp;path for APs, if this feature is sup= ported by the platform.
> >
> > Cc: Eric Dong = ;<eric.dong@intel.com>
> > Cc: Ray Ni &l= t;ray.ni@intel.com>
> > Cc: Laszlo Ersek&n= bsp;<lersek@redhat.com>
> > Signed-off-by: Deric&nb= sp;Cole <deric.cole@intel.c= om>
> > ---
> >  UefiCpuPkg/SecCore/Ia3= 2/ResetVec.nasmb | 31
> > +++++= 3;++++++++++++++= 3;+++-------
> >  1 file chang= ed, 24 insertions(+), 7 deletions(-)
> >
> > diff --git a/UefiC= puPkg/SecCore/Ia32/ResetVec.nasmb
> > b/UefiCpuPkg/SecCore/Ia32/Re= setVec.nasmb
> > index f41b9669d0..1dfc4= efe4c 100644
> > --- a/UefiCpuPkg/SecCor= e/Ia32/ResetVec.nasmb
> > +++ b/UefiC= puPkg/SecCore/Ia32/ResetVec.nasmb
> > @@ -10,7 +10,7=  @@
> >  ; Abstract:
> >
> >  ;
> >
> >  ;  Reset&nbs= p;Vector Data structure
> >
> > -;  This stru= cture is located at 0xFFFFFFC0
> >
> > +;  This = structure is located at 0xFFFFF000
> >
> >  ;
> >
> >
> > ;---------------------------= ------------------------------------------
> > ---------
> >
> >
> >
> > @@ -23,19 +23,= 36 @@ USE16
> >  ;
> >
> >
> >
> >     &nbs= p;ORG     0h
> >
> > +
> >
> > +;
> >
> > +; 0xFFFFF000
> >
> > +;
> >
> > +; We enter&nb= sp;here with CS:IP =3D 0xFF00:0x0000. Do a&nb= sp;far-jump to change
> > +CS to
> > 0xF000
> >
> > +; and IP = ;to ApStartup.
> >
> > +;
> >
> > +ApVector:
> >
> > +    = ;mov     di, "AP"
> >
> > +    = ;jmp     0xF000:0xF000+ApStartup
> >
> > +
> >
> > +    = ;TIMES 0xFC0-($-$$) nop
> >
> > +
> >
> > +;
> >
> > +; This should=  be at 0xFFFFFFC0
> >
> > +;
> >
> > +
> >
> >  ;
> >
> >  ; Reserved=
> >
> >  ;
> >
> >  ReservedData: &nb= sp;          DD 0eee= eeeeeh, 0eeeeeeeeh
> >
> >
> >
> > -    TIM= ES 0x10-($-$$) DB 0
> >
> > +    = ;TIMES 0xFD0-($-$$) nop
> >
> >  ;
> >
> > -; This is lo= cated at 0xFFFFFFD0h
> >
> > +; This is&nbs= p;located at 0xFFFFFFD0
> >
> >  ;
> >
> >     &nbs= p;mov     di, "PA"
> >
> >     &nbs= p;jmp     ApStartup
> >
> >
> >
> > -    TIM= ES 0x20-($-$$) DB 0
> >
> > +    = ;TIMES 0xFE0-($-$$) nop
> >
> >  ;
> >
> >  ; Pointer to=  the entry point of the PEI core<= br> > >
> >  ; It is = ;located at 0xFFFFFFE0, and is fixed up = by some build tool
> >
> > @@ -53,7 +70,7=  @@ ASM_PFX(InterruptHandler):
> >     &nbs= p;jmp     $
> >
> >     &nbs= p;iret
> >
> >
> >
> > -    TIM= ES 0x30-($-$$) DB 0
> >
> > +    = ;TIMES 0xFF0-($-$$) nop
> >
> >  ;
> >
> >  ; For IA32,&= nbsp;the reset vector must be at 0xFFFFFFF0,&= nbsp;i.e., 4G-16 byte
> >
> >  ; Execution = starts here upon power-on/platform-reset.
> >
> > @@ -74,7 +91,7=  @@ ApStartup:
> >     &nbs= p;DW      -3
> >
> >
> >
> >
> >
> > -    TIM= ES 0x38-($-$$) DB 0
> >
> > +    = ;TIMES 0xFF8-($-$$) nop
> >
> >  ;
> >
> >  ; Ap reset&n= bsp;vector segment address is at 0xFFFFFFF8=
> >
> >  ; This will&= nbsp;be fixed up by some build tool, > >
> > @@ -83,7 +100,= 7 @@ ApStartup:
> >  ;
> >
> >  ApSegAddress: &nb= sp;  dd      12345678h
> >
> >
> >
> > -    TIM= ES 0x3c-($-$$) DB 0
> >
> > +    = ;TIMES 0xFFC-($-$$) nop
> >
> >  ;
> >
> >  ; BFV Base&n= bsp;is at 0xFFFFFFFC
> >
> >  ; This will&= nbsp;be fixed up by some build tool, > >
> > --
> > 2.26.2.windows.1

--_000_DM6PR11MB3274EB907460406C4AFB8773FE940DM6PR11MB3274namp_--