From nobody Thu Mar 28 16:35:03 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+80533+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+80533+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1631361732; cv=none; d=zohomail.com; s=zohoarc; b=fbhEp6s9aCV0yct7C/zWzIOustNaWKjzK7aWUxmXB6FpZHg5HBWMWdPRLxZojUT1sriklyPb35yk1SqASgIEf7fOBYl5+/PqcS8AEXL21lTn1zLLURJodw6zz5TQGfJXrr8qvf9AKk++7hABTQbrR6Wrb3/X8LiOjcqV6v/w6EY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1631361732; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=YsJeAYRDI5uBLOBw9dBFR01EhfvXTs77QNoT9nRDJ+E=; b=SUh6PVIBfK0HNnYVAIxaStFWFf4bwzZHRQJSelK7i90E2J5LDPCdJGwk/MxP6eXFr005pcQ3ESjEkjXkcEXA5XQpv+5IVZLfLmYz0CGTyzyvAqVzcRojzSEuNrm4b7aDOVaNmoZspZXENsyvYLoK3przShEos7YbcjFqaEjrqvQ= 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+80533+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1631361732106533.0372343073955; Sat, 11 Sep 2021 05:02:12 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id ilbBYY1788612xtEvodNyt74; Sat, 11 Sep 2021 05:02:11 -0700 X-Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web08.3043.1631361729996233033 for ; Sat, 11 Sep 2021 05:02:10 -0700 X-IronPort-AV: E=McAfee;i="6200,9189,10103"; a="221328310" X-IronPort-AV: E=Sophos;i="5.85,285,1624345200"; d="scan'208";a="221328310" X-Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Sep 2021 05:02:08 -0700 X-IronPort-AV: E=Sophos;i="5.85,285,1624345200"; d="scan'208";a="695490943" X-Received: from basfe004.gar.corp.intel.com ([10.66.129.57]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Sep 2021 05:02:05 -0700 From: "Ashraf Ali S" To: devel@edk2.groups.io Cc: Ashraf Ali S , Ray Ni , Rahul Kumar , Debkumar De , Harry Han , Catharine West , Sangeetha V , Rangasai V Chaganty , Sahil Dureja Subject: [edk2-devel] [PATCH v2] UefiCpuPkg: VTF0 Linear-Address Translation to a 1-GByte Page till 512GB Date: Sat, 11 Sep 2021 17:31:40 +0530 Message-Id: <977ba0ce12d1fb540fe1dec0d6a4676de7d516e5.1631360582.git.ashraf.ali.s@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: 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,ashraf.ali.s@intel.com X-Gm-Message-State: 3Lspydhi6rSwYSOgPVME97g9x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1631361731; bh=SnLIqW2MYclNjiccUViEtIvT3GVbNRTIZkqRe/tmXdE=; h=Cc:Date:From:Reply-To:Subject:To; b=RNg21W0+kPVFWpq4zPnFHKHSGALnxfoJGQWXDT9eUdHQWPquWcCvrdz9OZ6lAtvnnKy KTIm19XmavnoLaA/EFN2SJzpIeO9wIymPltvm/1Fn0b/L5uX4gaEX3N7H1/CykIijTicu EEHrxuQxJXOBag2tV5DqYidcerq7Fghfg9U= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1631361733075100001 Content-Type: text/plain; charset="utf-8" [edk2-devel] [PATCH V2] REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D3473 X64 Reset Vector Code can access the memory range till 4GB using the Linear-Address Translation to a 2-MByte Page, when user wants to use more than 4G using 2M Page it will leads to use more number of Page table entries. using the 1-GByte Page table user can use more than 4G Memory by reducing the page table entries using 1-GByte Page, this patch attached can access memory range till 512GByte via Linear- Address Translation to a 1-GByte Page Test Result: Tested in both Simulation environment and Hardware both works fine without any issues. Cc: Ray Ni Cc: Rahul Kumar Cc: Debkumar De Cc: Harry Han Cc: Catharine West Cc: Sangeetha V Cc: Rangasai V Chaganty Cc: Sahil Dureja Signed-off-by: Ashraf Ali S --- .../PageTable1G/ResetVector.ia32.port80.raw | Bin 0 -> 484 bytes .../Vtf0/Bin/PageTable1G/ResetVector.ia32.raw | Bin 0 -> 468 bytes .../PageTable1G/ResetVector.ia32.serial.raw | Bin 0 -> 868 bytes .../PageTable1G/ResetVector.x64.port80.raw | Bin 0 -> 12292 bytes .../Vtf0/Bin/PageTable1G/ResetVector.x64.raw | Bin 0 -> 12292 bytes .../PageTable1G/ResetVector.x64.serial.raw | Bin 0 -> 12292 bytes .../PageTable2M/ResetVector.ia32.port80.raw | Bin 0 -> 484 bytes .../Vtf0/Bin/PageTable2M/ResetVector.ia32.raw | Bin 0 -> 468 bytes .../PageTable2M/ResetVector.ia32.serial.raw | Bin 0 -> 868 bytes .../ResetVector.x64.port80.raw | Bin 28676 -> 28676 bytes .../Bin/{ =3D> PageTable2M}/ResetVector.x64.raw | Bin 28676 -> 28676 bytes .../ResetVector.x64.serial.raw | Bin 28676 -> 28676 bytes .../Vtf0/Bin/ResetVector.ia32.port80.raw | Bin 516 -> 0 bytes .../ResetVector/Vtf0/Bin/ResetVector.ia32.raw | Bin 484 -> 0 bytes .../Vtf0/Bin/ResetVector.ia32.serial.raw | Bin 884 -> 0 bytes .../ResetVector/Vtf0/Bin/ResetVector.inf | 4 +- .../ResetVector/Vtf0/Bin/ResetVector1G.inf | 31 +++++++ UefiCpuPkg/ResetVector/Vtf0/Build.py | 83 ++++++++++++------ UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt | 2 +- UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb | 6 +- .../ResetVector/Vtf0/X64/1GPageTables.asm | 66 ++++++++++++++ .../X64/{PageTables.asm =3D> 2MPageTables.asm} | 0 22 files changed, 159 insertions(+), 33 deletions(-) create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector= .ia32.port80.raw create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector= .ia32.raw create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector= .ia32.serial.raw create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector= .x64.port80.raw create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector= .x64.raw create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector= .x64.serial.raw create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable2M/ResetVector= .ia32.port80.raw create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable2M/ResetVector= .ia32.raw create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable2M/ResetVector= .ia32.serial.raw rename UefiCpuPkg/ResetVector/Vtf0/Bin/{ =3D> PageTable2M}/ResetVector.x64= .port80.raw (56%) rename UefiCpuPkg/ResetVector/Vtf0/Bin/{ =3D> PageTable2M}/ResetVector.x64= .raw (56%) rename UefiCpuPkg/ResetVector/Vtf0/Bin/{ =3D> PageTable2M}/ResetVector.x64= .serial.raw (56%) delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.port80= .raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.serial= .raw create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector1G.inf create mode 100644 UefiCpuPkg/ResetVector/Vtf0/X64/1GPageTables.asm rename UefiCpuPkg/ResetVector/Vtf0/X64/{PageTables.asm =3D> 2MPageTables.a= sm} (100%) diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector.ia32.p= ort80.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector.ia32.po= rt80.raw new file mode 100644 index 0000000000000000000000000000000000000000..79b23c047bdc6e552d77d5c9e9a= eae21ff04d91d GIT binary patch literal 484 zcmYk2!Alfz6vy8yHl)}V zcG*_&Hg-ER3P7>NzOzHK{_>8}w92SftcjYiOP;uF74pB9jiIw>#6GG&9iTswB!MfR z>~G3@yT|(CI{hlqFjo^qW81h>6zpT|jA+4e?AqPnMDkDNwGuY(iR``YMZ3S04kAoH{**Icc)Uq~+N;a$TM7 z^Te3G@j|=3DR#NJTGK*yH2U@&(7Y{IeM+FVL*o4PV&hBpB!`lv9EUde?FgcS`yA8iMv z*fqmG@SDEy+y0@yiw}4XxLlI&<|#6jJQ3ja=3Dkvb)zpp~$Q5CN?9#*l}WFN2xf1}qi ex=3DGS`BMWOMaSFL0+&dpq=3DIrw)z&XCVVDo(mlgCI3pM%UYB$vrh9+XHNgTvMYh>&7q1g=3DxfqoHJL>v=3DbK_oV*Y_#xgthrX_$x zk=3D?RqHTShwDriZRQ`%sb>wPA#)8er|>zVMY+pfRlzO>Lg-}j;6Ouvy1^?-J@W;Dwr zh~X?JL3WDg3C>QkuOy(Cz2D+G0r_U~$nfcMX3da8daJ0-dS5O=3DA1WLXmNL1lC1Y<` zGxU}H zio}TkTR*G5^X{9FA5UXrek_f(Dm%ge{zcRKQTBarR}@zApFT*{1~02#Vb0G@fokrZCZ#4rO<$dgqlM|B1ucd5-YJ)(Sw+Slu!}T!yY`YJFv$tYmjZq zy5K>?Kj1O9hD6B7TCH9z^k5_?QBk@bSv|$5X~tQj(A|Ri4sZD8@xJ-K_r^3$v+@I# zZaI~2s02=3D>jY@*!-V8W)A4-!XL;z+1fJsxT5>Y;^tYE4tBeTn67w|h(iQb#mui{s# zGFGsXn|MQ05`drU7Rtx5MbC+q9rWozT>dJ$%-0+*PWf=3DihliYUjfcKQyZV~9)lZf7 zweF>|vjKo~Lw}=3DhiN(t)p)Q@EC@akrh&-*40V$PeFXu;FR$SgLo*hx&GR9!=3DnfzLK zBnPCIOUf|9gZ5oMi2}j>`Z|4@Ci;^?3(t9li9R9!_9%D%&hQ`Bt_!X#`HDuOGwV0< zOA3m}2Y4QqCyP<_y=3D#U0&1wWmnM8*+G_p@rkDXt{$?$6axL~Q7+-U$DL-P|f#*4Zo zs+omFydTX6H8K%iz0`lGPW#H-J=3DmQtW53thcDI^#cB7*n6!M@U=3DX({t7>(*pc0>#d zqhk3WKsG#1#O=3DdeV+6|Cet__J(>stU-$*BYc<-*oauAHVL5!xcWo*z>W(-XJ0RQYf zToZ2ap#a=3D@(L3+|Id4O4E=3DNPPlQ|j`^~ZLzLj$yBhnW4j!4qZpX=3Dtz11%2=3DTdhrvQ2P!8c7PF+^UX)tetZH!=3DpH%^Zg z70DEZNZf$9;~&6W5#XW^3Pp^YRpNq96(~?GYU&$$gElnPylKDiKWus}#UDH0_!sB7 zvLnyT%*?Ex?{-yQ$_2^=3D$_2^=3D$_2^=3D$_2^=3D$_2^=3D$_2^=3D$_2^=3D{;wA}z+YE5= x^%P9 z7*tPjW2vJtsAY6C2GvVPV^GJ@(HPWnIvRuOqoXmX2fpiZHqF{lb1jY0L((HPXJbTkIFl8(lpen>}SP^;)@4C+U8GzN7V z9gRV)rlT>a0XiCkI-QQjpngn8V^C+%(HPVkIvRue2_20=3Dok>SyP=3Dje!aqoXmXU(nGQ)Ce7oL0wKqV^CY^XbkEKIvRtzl8(lpM(Jn_>MA-KgSwiI z#-O&*(HPV{H{bu%4}LES<} zV^Fu!(HPWibTkGvPDf)e!KprbLU2kB@G>Nj*W2K5jf zjX^z3M`KXGrK2&ZDjkhM{f>^tpngwBV^DvfqcNyQ=3Dx7Y;Q92rf`Xe2ULH&u2#-RR8 zM`KWr(a{*xU+8EI>Tx<6gPNqHF{mf#Xbh@GM`KWRIvRs|l8(lpo}!~Ms0JO4LH(7E z#-RR2M`KV=3D)6p2zGjuct^(-BYK|M!DV^Gi2(U>K-6t5!tb@U}hck;q!qrdU5mtLxO znvGRkUtDur{mW)!;I)fe57z(LY^>Qix9OAm-l@h0)jw{{^-c`c=3DQ=3D01+Y6rEU0hmw zI!9W2+HWm*@ztK<;Qg)7TL-JV?%mw8Z*rv5J34vE&eVpda{T0`4gY>|V)fT^L$yP@ z##S}I=3DoTMAIN|TL&wAdkEt~w*jg`IizRuvz)caZ=3Dbw1vb)`vU4uJ^UST5#=3D1`*3mo z*5dr)u=3D}SnaM?#sOt{h8Upu3?URfL7HPAe;bYAgGN2k&|IkMruo&8feuG+lxmL2s? zmA5A@@0n|kj9)9&2Ya_|>%x@cGqB&+6*z`r_Xy#e=3DGcUML>bui4Q)sW`hmyx{8W3Qg~u&h-5B z!Rfu78_!X@_?hCP8b>cnPig6L^ivzJ{NtFff9IRre_6Y)9`BsE`>OHI@@ngY&a%#b z7N6=3DaR*rPLiw`Ybomc!(v&C0;Z0(0*Yxj(;{a~y$-(8rQId*z^T`o{AP%cm|P%cm| pP%cm|P%cm|P%cm|@V~ae;x~uCf8V(MuIn^2vv}axcaFWE{1))d6p#P_ literal 0 HcmV?d00001 diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector.x64.ra= w b/UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector.x64.raw new file mode 100644 index 0000000000000000000000000000000000000000..9b09a80f225736a413b7146b0e7= bd4aafc73abe1 GIT binary patch literal 12292 zcmeI&TaT0n0mkuXS=3Da)$%ob6$1>NOPOO>TS?QuaD5Zs;w6>+83+N$HB2ko-cj*9Y3 zR!jz(brR!+@k4mYS}u5+EluG@5-&uFW|e4I-W$1T)ELHh;oqd6p?N3S`Mop$*>`rH ztC`JoI-Smjxo%h0rCOj`pjx0>pjx0>pjx0>pjx0>pjx0>pjx0>;C;QoWnNwB=3D)z&C zF{qyMV41YhJxM{2DO=3Dv z#-N7jXbfr#9gRWVOGjf+Tj^*FY8xGmL2aj_F{u0KXbkF;bTkHaKOK!hJwQieP!H14 z7}P^_GzRrB9gRUfLPujzBXl$dwS$hvpmx&H7}TfeXbkGpbTkGvN=3DIW*yXa^PYBwE? zLG7WVF{sbb(HPWTIvRu8M@M5&pQWQQs4+SkgL;&X#-JXfqcNz*>1Yh<2|5~sdXkRD zpgu=3DOV^I6)XbkEA9gRVKo{q+#zCcG~P+z2@F{p!dGzRr0IvRsIL`P##U#6omsBt

)@^#UD@LA^*vV^A;A z(HPYC>1Yh<2Xr(B^)eleK~2!n7}OCu8iSgoqcNxk9gRV~LPujzuhP*NRFjUzpngb4 zV^BY$qcNx-)6p2zQ92rf`UxG4LH(4D#-NVT(U=3D9dmG2_^b>l5YcjCTQv%mR|*IsKB zt>&toC)Vz7{Jqs2`1SqmXB&TNHP;@W9sWb(!c=3Dpk8t2=3Dyz2ifT*<#tunex&;TU>9S zoj=3Dx7p72upuk9=3DKlTUB$xi~RW^o~wEa6FUSr*g~0@Wy|i7+?L)?9k-ZlVht|f9sZC zJy>>b@-IDaOfH)Eqnj&x8-2y<<7xD@-!9H?OZ%Ep7O~?r_wtyvhjb#rKv2gw;p=3D(aAUZ3YJ5k}Y-{AeUa2wI zyJu4|SjP5jy)|;^aAQU9o~2XSR6F%l-#r(LB{St7nm<~et{AQj&DCDNvZS_t?st|_ z+g{#UTH9J1N_j9?Tc4|=3D*Sg&S&Ht+Wof%!|c5CY|7U%wZTK}59bo%Glw$y7qtLrlx z%72@b53XN*seE+5W=3D8v@@|^XVrJBAto$0yhE7KQ>y?3iq_VVi(orOPP;d0|!8NdAf zO@H&QzvcEXbY}N~V)>a}2Z|;2_M63`;y=3DaD=3DC@w&cIS^ST)sq|&vpO#p7Y;)mg>4%pjx0>pjx0>pjx0>pjx0>pjx0>pjzPlvcUYGuPuD6yz#m6 S(7}D`bmnJo-gD#b&i?@{82-Ef literal 0 HcmV?d00001 diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector.x64.se= rial.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable1G/ResetVector.x64.seri= al.raw new file mode 100644 index 0000000000000000000000000000000000000000..d9b051ff06d1d30b0dfd585e05e= 75c98ebd88b03 GIT binary patch literal 12292 zcmeI&No9KGfv*W2je6GiJ*aVq!UOdkWL_-KsteR0_g=3D{ zW|6X+Od)I>T48a0WIfkrjcG0>>VbPP0V3LOKDI*5*e zMjcGYK%=3DJ8G0><(=3Don~JmX3i&wa_ups6*)(Xw)=3D11{!r39RrP;PRBr_4yR+FQAf}* z(5M-73^b~hj)6uUNyk8=3Dj-q3rQ8VcnXw)n^1{!rV9RrOzhK_+o&8B0ZQEhY#G-?hV z1C5$X$3Uaz(J|1d`E(34>R37k8g(2U1C2VKj)6ukpkts>C(tp_s1xZJXw*q`3^eLw zItCiGkdA>yokGVzqfVt`pi%8~3^b~Pj)6ukqGO;@i|H6>)M<1KG-?SQ1C3fr$3UY_ zr(>W|XV5XwsAY5vH0n$`1{$@Tj)6vfXw><13^eKjItChbAsqvax`>W}Ms?9K(5Q>)7--ZbbPP1=3DQaT12br~H4 zjk=3DtUfks_H$3UZ2(J|1d)pQIr>Pk8W8g&&N1C6?xj)6v9L&rd)uBBt3QETWJXw-Fd z3^b~nj)6v9Psc!`*3vQ1s2k`QXw;2#3^eK{ItChbGaUnsx`mE`M%_xsK%;J>W1vyD z(=3DpJfJLni_)SYw;H0mxo1{#&4W1vxY(=3DpJfd*~Qw)V*{JH0nM&1{!rg9RrPefR2Gi zJxIquqaLDTpivLgG0><-=3Doo0!qjU^3s)vq&Mm3^b}h$3UYVr(>W|PtY;Y zs3IK$je3%ffkr(=3D$3UZ=3DremN{&(JZ@sAuUIXw-9b3^eL_ItIG#;IEktFN_TSoY|m} z!9AG`O(XS3CXG~H&U7RnFk7_m(?_jmajDo+{Pv}n3e{3^`q?keT2=3DVERBU~HN%^+I z=3DcVGTbwdk3Eo|*A&R5~%@=3D&I`tuR!*I5+rP=3DKHtW@;~M3XTE)8?7F>SJ+)yyWn^Gu za+Eh!N6VYWKDF^w9Su+Y^QkIZ#z`I9%U_mv8o1utBA=3DT<-cfpKR>SLvnWo>6ed?*OXjuCg^A@Y)ek#d-n?#i zVa3=3DB%QalcKkqR=3D`uAt}7hC(WseW1cTYBBPY|CTaQOvaDXC}AP@{88DmcFTPCE0Ih zuQNT%=3DkKj<@Addx>5R+Q78YjT=3D{~DzsI+|b1yW&lX61tF>?D?la;4>K))o%QtZeS} zg6umtOgv#*b;3ZhdsX(1)@s!Uvu(rK!5tH_bBEsz$=3DOB8syW-9ZF6#Gc6P3J-uz>& z)~d04TiP(4(;C))@wUxO_BNocwOV%WwrZKbr#WS4+pNrjA)n8TsWs{m{4l zy&HF(lFK&D$PLU({+X3rWNzp9UA0<^20AB7$zH}@?c#>3Thy@r^VQ}Cn$@?h&wayv zJNmX(uRdOnBgv>u=3DdG?b=3DgJ>cy7yMc zRd-iLM=3DN*lt<@@ve@kv2Pu_`vFXH(al54y_3weJpit@_>lua@4X6G$hJ vP9U8?I)QWo=3D>*aVq!UOd@PC*yHl)}V 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 literal 28676 zcmeI*_qU~IRlxBb!cc4z0VOI*h=3D`z~ASxiBTM>*{07XO;eQaZIF{5MOqedOT7{y*6 z?7b^dRJH~XJN77+4YpijN3k=3DWBp=3Dt(KS9@d*1G3&&YAan-kIl~yWchU{&26q{`%`* z5x1{b#1*&Qc|{}_i<`}1TypE3L(k-5akDv$JLs8QEN(W3ajBlk#o}gj7X}?DZZ?PUT6!iIi<`}1oYphBSlnz5<1#&yi^a|6 zFkV~F*$$WEN(W3@w$2@7mJ(C zVcb*CJ(G*Y&E_!PLeJ!4akDv$2kMzzEN(W3@s@ff z7mJ(CVZ4=3D|$;IMka~KcOGr3sYY!2hWdL|c(o6TXowVuhv;%0Lg579HZSlnz5<8Aaz zE*3YN!+2XglZ(a8<}lt)&*WlpvpI~1>X}?DZZ?PUFg=3Drt#m(k09=3D$TwBZZ?PUL_L#>#m(k0 z-doS)VsW!MjQ7zqxmet64&zCBCKrpF&0)N+p2@}HW^))%)-$vVsW!MjE~hbxmet64&&qWOfD8To5T2cJ(G*Y&E_yZLC@r3akDv$Pt-HH zSlnz5i^a|6Fg{z)6u(CZZ?PU z&3Yymi<`}1Y(0~U#m(k0o*jpExc)P_Slnz5<6HDhE*3YN!}wM`lZ(a8<}kiZ&*Wlp zvpI}!*E6|T+-wfxJM>I07B`#2_)a~Oi^a|6FuqIAlZ(a8<}iLt&*WlpvpI|(*E6|T+-wfxC-h7% z7B`#2c#fXQ#o}gj7&qvdTr6%jhw+noCKrpF&0+kMp2@}HW^)+N)ib$R+-wfxr}a!O z7B`#2_!&Kui^a|6Fn(6g{@#m(k0p08(evAEeB#tZaJE*3YN!+4>d$;IMka~Qv%XL7N)*&N1; z^h_=3DmH=3DD!wMLm;?#m(k0eo4>dVsW!Mj9=3DC>xmet64&zt!OfD8To5T23J(G*Y&E_zE zP0!?FakDv$U)M9aSlnz56u(CZZ?PU z+j=3DG!i<`}1{EnW<#o}gj7{9A$aT#m(k0{zlK_VsW!MjK9@0xmet64&(3iOfD8To5T2fJ(G*Y z&E_!vLC@r3akDu*jGn_f%pWEfi<`}1{G*=3D9#o}gj82_YaawS z9OuDt4jkveaSj~kz;O;7=3DfH6e9OuAs4*cJq126Xf{G+#j9*_HQ+=3DpAQYsdG&@qKW7 z9~{39j&tBR2aa>#I0ue%;5Y}4bKp1!{-4c(!><51uHz0Ici^}K#~nECz;OqTJ8;~A z;|?5m;J5?F9r!=3D60}np@I*H379(DNE#Ko&0e*WBL=3Dl=3DYe&pdm}`E&Pp)YI?v__HrN zf9~?HecKBka`yMnpS#z!H$L#U&c68kx%(atjdy`d5y!P8=3DiMq7hZ7k z?-ws#Jn-yGA|Cvb3x9m!<}=3DTD+Ji2+>FURxTzWVvuYQMX`XTe|h>- z?)l0auej#sXIyoU^DjM=3Dao1nG<|UW>+%Y@z3YV+o&5aa zfCu-57he0yvv;`WRVR-=3DoZ|3eSD(84aLB`7^eG=3D*=3DPteMnkx>scf011&$#^jpWga< zhciF%)U9W}`f>ODkCWd$Jay`hhev15KkPl9diJ5GpYxPQUUK94M?B#%hkwokE`9X< zPwsd4!`qIyaO0Wtk9hJ^&))sgN8jbt{SVKce$EHn=3D>a#LoI2dS;qVbBXAUoRL(IjC zr?0%}^c8dZr*1xV`pWsqis;jCeRy=3D2(+@g*MIY|m`}CFl@&_J{zC2EzbtwPsx$$?` zz2vzcckwOHoWA6qXKr}o!@e92IrH)-9*(&zZpb?w&UWRTx#2Ex-A&i^b#vX#*S+}U zafkBWQHMkR_nYeQ^lj_5pTa-u*W)(7{=3Dfafc-}id;g(l_-a9?vmOGuf@chFk;pCq$ zo_yBDlT)v{c=3D6<^x86ML@RC>EaJaec+jCdl=3DY?0@=3DLJ{Y=3DlNG%n2UdLIMppT-hRGY SPx9m^JvI){eBb~48~hhX6Rzk0 diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.serial.raw b/U= efiCpuPkg/ResetVector/Vtf0/Bin/PageTable2M/ResetVector.x64.serial.raw similarity index 56% rename from UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.serial.raw rename to UefiCpuPkg/ResetVector/Vtf0/Bin/PageTable2M/ResetVector.x64.seria= l.raw index 61c71349a8a599916f3eeae8c5dee92efb56db71..f1d6536cec924d0e167cf1ee4e9= 309ed5fd7ad60 100644 GIT binary patch literal 28676 zcmeI*d-SE}RnYOBPA_S-OsLgHTW#7@C}J^bX{DCprWFh*Pz6gYw+Gb08;W5D$18h` z5vMI70*Z*>qjsei+H{y3lW z{APXM^S=3D9>wcd4Rt@+J8_uO;O&HLmej_Wvq;{=3DWqI8NX=3Df#U>@6F5%bIDz8?juSXe z;5dQf1b$Xe;O2WD{r-P*^X;7D-wXV#e&df9cbvd+0>=3Dp)Cvcp=3DaRSE)94By`z;Ob{ z2^=3DTzb7}$)x!Q-~rVl)OD3XiC&E_z!yZYqNGr3sYY!2gbdL|c(o6TXI(lfbO+-wfx z@p>i~i<`}1JVDRoVsW!Mj3?@uTr6%jhw&smlZ(a8<}j|;Gr3sYY!2hedL|c(o6TW7 zMbG47akDv$pQmSXvAEeB#?RL?xmet64&$kMCKrpF&0&0qp2@}HW^)*)^-L}nH=3DDz_ zLC@r3akDv$57jfdSlnz5<7s*(7mJ(CVf+F;lZ(a8<}jYFXL7N)*&N0%)HAtQ+-wfx z7wMT?EN(W3@eDnai^a|6FmBW{xmet64&xW=3DnOrPxHiz*`^h_=3DmH=3DDzFrk=3D^g;%0Lg z&(brwSlnz56u(CZZ?PUoH(q*{h!Ij z;%0Lg&($-zSlnz5<7PdRi^a|6FrKGpaJ(G*Y&E_zErJl*f;%0LgFVHi& zSlnz5LUE*3YN!}wKtCKrpF&0*Z4XL7N)*&N2LdL|c(o6TXoP|xIIakDv$7wMT? zEN(W3@zHuF7mJ(CVZ2z+XL7N)*&N32)-$6u(CZZ?PUrFte8i<`}1{6RgFi^a|6FwX0lTr6%jhw+E>OfD8To5T3S zdL|c(o6TYT5j~TO#m(k0{-~bG#o}gj7=3DKL96u(CZZ?Ne zdL|c(o6TWdh{Jj)Zent=3DxY-=3DWpU^Y8Slnz5<4!%3i^a|6F#e>T$;IMka~OB&nOrPx zHiz-2^h_=3DmH=3DD!way^ra#m(k0{X}?DZZ?PU4SFUQ zi<`}1e50Pp#o}gj7=3DKC67B`#2`1^V$7mJ(CVf+InuxY-=3DWKhZO}Slnz5PEN(W3@fJOki^a|6Fy5+X zau~>Pahp za6u(CZZ?PUU-e8b7B`#2xT0rrvAEeB#(&c@ zxmet64&%r5OfD8To5T3;dL|c(o6TXoThHWTakDv$_vo2iEN(W3@jvuTE*3YN!}yzs!IQQKbA2@aUP3IoC{7Gl-fB&f; z`{tX@{=3D}K9NB)8^cf9njKKtT3`$>1)^1S!G_V#DI_ko+vzUy_jJ^jKD zog9Aq;gi4X>%He*@z@hP zbIpnTzpwG^Bmeg!{C`~9yRW-?T4z7+&c5-bZ~Kzl>-?!3&OY<-__VVxeBF%~9=3Ddud zhwIHd`_vsTd)~vB-*IO@{>+7s`IOh3d%@{9-2SoGJ#gV=3Dulj_DbI(5Y%I9Bx_TdjN zK5*v3%U=3DDOb02c*mDk_d&p-W!&wAoVJb3vD_g(#%U3&PDlatF|bo!<_eg8Y3aQeCP z?G@3dUwGJEfBKfwH}&Dkvrj*_-}SlgJ~_ED9(!#sxn?>aea-&=3D@U}hkaBcU+Jtrrp zpZnnDi#|{9yZUju^~wkDUh9zvrXQoWAZEXYRW>A`d5d z=3D3S3}&&kORabG?$;&3gGJ=3D+&ub9OJhX8$wK_RM|P$K4O!-FMI3@4Wl%mp}c(fAGEFx@#^}(Z`b_l?|Ia(|KEO#{a41DUh%5SPkqzJzv}Y!XD+_^((Mmle%$5v zUV7w_OJDf#$;qV`z5np=3DrH6OozQdb)a@%v>dfRi}a@%v>eA~r2`Oy!0t*cKTeYNA` zaRSE)94By`z;Ob{2^=3DSIoWOAc#|ivgn82m`-}8ZQ1Xr*1)t~W+anC)MzUk4QJo-i9 Fe*tvrwzvQQ literal 28676 zcmeI*eb}aXSiBf_koT4VNV>r74W=3DUAH! z&^G!0-me$S%5r;UT`EppK(rT8)0QYZ)ueq`n=3DA}bUdDTNKOVMYNA+(W_wP97`P|n% z*Z01!>vvzz?>e5DKb}jME?s(OJUreRH$U{?osnEDZZ?N;-PH$&p2@}HW^)*i(lfbO z+-wfxl%C1O;%0LgkJdA}Slnz5<9a=3Dli^a|6Fdn04a=3D$TwBZZ?PUOZ7}H7B`#2c(R_!#o}gj7&qyeTr6%jhw;nwOfD8To5T1}J(G*Y z&E_zExt__z;%0LgPth~ESlnz5<5%dJTr6%jhw&@*OfD8To5Ogjp2@}HW^))f>zQ0E zZZ?PUv^b2z{h!Ij;%0Lgx9FK%EN(W3@nL!<7mJ(CVLV;WzQ0E zZZ?PUGCh-v#m(k0K10vsVsW!MjNhbZazQ0EZZ?PUC3+?oi<`}1`~^Lei^a|6FfQtuTr6%jhw&;s zlZ(a8<}hBZXL7N)*&N1e^h_=3DmH=3DD!wi+Uy(i<`}1+@)u7vAEeB#$VDixmet64&#!Z z$;IMka~OYF&*WlpvpI|})ib$R+-wfx%k)ex7B`#2_;Njyi^a|6Fup?1D~mlZ(a8 z<}m)6p2@}HW^)*SUC-oVakDv$zoBPxvAEeB#y9DiTr6%jhw(S{OfD8To5T29dL|c( zo6TW-v!2Pt;%0Lge_PMwVsW!MjK8C2ai^a|6FuqmK6u(CZZ?PU&-F|$7B`#2_!oL67mJ(CVZ2_? z6u(CZZ?PU20fFD#m(k0 z-l%7CvAEeB#+&p^E*3YN!}v};lZ(a8<}lu@XL7N)*&N1q>6u(CZZ?PU-FhY$i<`}1 z{7XHPi^a|6F#eUE$;IMka~S_x&*WlpvpI}^qi1rlxY-=3DW_vo2iEN(W3@fJOki^a|6 zFuqsMxmet64&wnm zlZ(a8<}gn5OfD8To5OgAp2@}HW^))1>X}?DZZ?PU<9a3+i<`}1{8v4bi^a|6FfQwv zTr6%jhwz);J6MP z*MVPT>%iex03640297guoPpyE9B1G-1IHOS&cJa7jx+F!bO!Ey&#Ak=3D zAOGf?&;HbztFQmLmmj(PtZTNPaLxAPFW>X}!?^gyllNS?a^>P1A6Z}fYPVif|H4;0 zdF!JhZhhOuAG-L!nOA@Iv#z`Uju)StIvi!*@dlFe%F0B zpMBufw?FB^4&pzsoAE@(BJaz7dldnDOd1s%y;o_T5zT>dNt$p!L zcfRY~3m>y?Q=3D}Gyjb1ub%lGFM0ZVPk!+5)b)=3D(Y@NCAaW8%4xsN^l+E+aPy8A9X z?`5BK_&A?=3D>P62u`G~_`KD5Wh`_5c=3D-pgNk?n6$!=3DyBIS3biz{`4*LZ57d{pMBVR-05eXzPS$%o_hM0e#iO4 z-Zx!yl|1K~Y5VAFw*NPu>jxZ8+LiY1s~6g>m;cwT=3DR9KT36I!%{N}eRnR`C$a6KFj?aVu#beNVKweB}jn}{MWep$^j z58iO*;u}u#y@!kUM7JAA3bjNX3F;bkBC7rNV@_NLpP_QuoK+# diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.port80.raw b/= UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.port80.raw deleted file mode 100644 index 2c6ff655ded2a5855ca8f4428d559a7727eb6983..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmXYu&r2IY6vyAXZffw5pki|H5Mn5LNHL07>yK(hDFtZ?MS?}4mxbPR-GRMz=3Da9oB zvMhKKFZ~nNlM5cQb+xr81!+kMl-SZG(_HkTQj62K>Vuhi^XB_L@6C*D+jh>&LL6WM z0E9M5jkxi9eVsI^(KS)(c}ad!Be^-u-jeUs=3DqdWy6LL(A42pq#X1-iV5sza!I8I=3D? z6*P9huZ0loz}XH=3DzA6FaYU~GVsO6;rsjAI!8P!wTWYN=3D~C=3DbxrhB8;BLgK5cO9 zE_#aD5dEUpq>p-w_SG~xWD@0RR2DrFWrutZ1v!s>DqfI?a~7ETjdPBr+OZTuH6@AC z(ZjWOrXk1m6wV#`csWUbg92AHT^9%NWrR81f%$hA&aB$5Egq>cDWST( zc->gqQ~#`>AP(+S1e4QsXD~2Tw+*bS_ZG54!{z}tj_%g2 yBd9#fH`^=3DI`DR3A`}nB*QttZQD+`9S{Z>1OTb`GBa#G zt*_G(GaClinx^RkGo#yGe2LyNvnlO${H9mTj3XK78TZswjJl#0BPWZ(PsE3m63x5< zkjV2pUL=3D{H-<6y`Ayi}y>qBYR=3D+mmu*E{2X*HV!;FJ=3D@olMU=3D1Dr@&PjmS*9G|11z5fTzEKTW^U3gc6Jd}Rz>i=3DxwezWi&|RKrFLb)7MgiLyt(A5Nap z{K@){_&;%jkXDHiVLej|v^%t)8c;mepB%?^+SRc((Td402KNZ-pIe~y>R7ebhG=3DMi zG0>h98oCZ15CogOAHb`XKiHDrNJxngrv+CGHM`_x1(RWLh67mGTp&(0SUJnJ3Rcm& z65UvCM_?B@w(a-w1uqM*d0DnQmyjJzmTIyi$x?vuV|+aEM~V$8raq+}|{T|byNFuntcu)ljL%WQZ+mqCDm!Ipu6;eU~3V}(G) z)1IEv*Nqh-wp}v*rH>jbBxag+CYIi8tdMCvtb4iiLSuyrP%%U4@y^4{5elUTUitue zX}kV1zgeMB@;wb?e$qQsz5yDa7md&LZpVHg=3Dsf!J_y7O@JCCC3MmNn6O*f`#F9Vqv z7z}TB-s^mk)*WlWc%#VeB{R^K4n=3DmY2TH71*@5gLW0fCW5#rwtE0nzG_7G`&2(+1j z^JK|w#)BnHMOPatgqTY?U(N!mY&}rQ*?HpSA)o@o1D(fOzm+_q@(;fW zM0l~75#+LxB322Y6D>~^XEszY3zR4TNud&(Zi&XnApZb;9>@yvd6AdOpO@EwLaZ!6 zURtAtZ&ax{|MmzQ#>0))0j|L4)MR$nc&P@I1gq#goYrU^7F8cjO8KZ@=3D5gH#e8KmvtVCcKiccAY<-;2HrFU^6@7H3!h z3Ku8KdG*i#|1Vel1t!i1 c|DR2GeH)mmfB +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION =3D 0x00010005 + BASE_NAME =3D ResetVector + MODULE_UNI_FILE =3D ResetVector.uni + FILE_GUID =3D 1BA0062E-C779-4582-8566-336AE8F78F09 + MODULE_TYPE =3D SEC + VERSION_STRING =3D 1.1 + +# +# The following information is for reference only and not required by the = build tools. +# +# VALID_ARCHITECTURES =3D IA32 X64 +# + +[Binaries.Ia32] + RAW|PageTable1G/ResetVector.ia32.raw|* + +[Binaries.X64] + RAW|PageTable1G/ResetVector.x64.raw|* + +[UserExtensions.TianoCore."ExtraFiles"] + ResetVectorExtra.uni diff --git a/UefiCpuPkg/ResetVector/Vtf0/Build.py b/UefiCpuPkg/ResetVector/= Vtf0/Build.py index b791d32762..b96bdf1322 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/Build.py +++ b/UefiCpuPkg/ResetVector/Vtf0/Build.py @@ -11,40 +11,65 @@ import os import subprocess import sys =20 +PAGE_TABLE_2M =3D 'PageTable2M' +PAGE_TABLE_1G =3D 'PageTable1G' + +FILE_FORMAT =3D '.raw' +PAGE_TABLES =3D [PAGE_TABLE_2M, PAGE_TABLE_1G] + def RunCommand(commandLine): #print ' '.join(commandLine) return subprocess.call(commandLine) =20 -for filename in glob.glob(os.path.join('Bin', '*.raw')): - os.remove(filename) +for PageTable in PAGE_TABLES: + for filename in glob.glob(os.path.join('Bin', PageTable, '*.raw')): + os.remove(filename) =20 for arch in ('ia32', 'x64'): for debugType in (None, 'port80', 'serial'): - output =3D os.path.join('Bin', 'ResetVector') - output +=3D '.' + arch - if debugType is not None: - output +=3D '.' + debugType - output +=3D '.raw' - commandLine =3D ( - 'nasm', - '-D', 'ARCH_%s' % arch.upper(), - '-D', 'DEBUG_%s' % str(debugType).upper(), - '-o', output, - 'Vtf0.nasmb', - ) - print(f"Command : {' '.join(commandLine)}") - ret =3D RunCommand(commandLine) - if ret !=3D 0: - print(f"something went wrong while executing {commandLine[-1]}= ") - sys.exit() - print('\tASM\t' + output) - - commandLine =3D ( - 'python', - 'Tools/FixupForRawSection.py', - output, - ) - print('\tFIXUP\t' + output) - ret =3D RunCommand(commandLine) - if ret !=3D 0: sys.exit(ret) + for PageTable in PAGE_TABLES: + directory =3D os.path.join('Bin', PageTable) + + # output raw binary name with arch type + filename =3D 'ResetVector' + '.' + arch + + if debugType is not None: + filename +=3D '.' + debugType + filename +=3D FILE_FORMAT + + output =3D os.path.join(directory, filename) + + # if the directory not exists then create it + if not os.path.isdir(directory): + os.mkdir(directory) + + # Prepare the command to execute the nasmb + commandLine =3D ( + 'c:\\nasm\\nasm', + '-D', 'ARCH_%s' % arch.upper(), + '-D', 'DEBUG_%s' % str(debugType).upper(), + '-o', output, + 'Vtf0.nasmb', + ) + + # if the Page table is Linear-Address Translation to a 1-GByte= Page + # append Pre-Define a Macro PAGE_TABLE_1G + if PageTable =3D=3D PAGE_TABLE_1G: + commandLine +=3D ('-dPAGE_TABLE_1G',) + + print(f"Command : {' '.join(commandLine)}") + ret =3D RunCommand(commandLine) + if ret !=3D 0: + print(f"something went wrong while executing {commandLine[= -1]}") + sys.exit() + print('\tASM\t' + output) + + commandLine =3D ( + 'python', + 'Tools/FixupForRawSection.py', + output, + ) + print('\tFIXUP\t' + output) + ret =3D RunCommand(commandLine) + if ret !=3D 0: sys.exit(ret) =20 diff --git a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt b/UefiCpuPkg/ResetVecto= r/Vtf0/ReadMe.txt index e6e5b54243..97f4600968 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt +++ b/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt @@ -29,7 +29,7 @@ EBP/RBP - Pointer to the start of the Boot Firmware Volume =3D=3D=3D HOW TO BUILD VTF0 =3D=3D=3D =20 Dependencies: -* Python 2.5~2.7 +* Python 3 or newer * Nasm 2.03 or newer =20 To rebuild the VTF0 binaries: diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb b/UefiCpuPkg/ResetVecto= r/Vtf0/Vtf0.nasmb index 493738c79c..556feac5c2 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb +++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb @@ -36,7 +36,11 @@ %include "PostCodes.inc" =20 %ifdef ARCH_X64 -%include "X64/PageTables.asm" + %ifdef PAGE_TABLE_1G + %include "X64/1GPageTables.asm" + %else + %include "X64/2MPageTables.asm" + %endif %endif =20 %ifdef DEBUG_PORT80 diff --git a/UefiCpuPkg/ResetVector/Vtf0/X64/1GPageTables.asm b/UefiCpuPkg/= ResetVector/Vtf0/X64/1GPageTables.asm new file mode 100644 index 0000000000..11d73637d2 --- /dev/null +++ b/UefiCpuPkg/ResetVector/Vtf0/X64/1GPageTables.asm @@ -0,0 +1,66 @@ +;-------------------------------------------------------------------------= ----- +; @file +; Emits Page Tables for 1:1 mapping of the addresses 0 - 0x8000000000 (512= GB) +; +; Copyright (c) 2021, Intel Corporation. All rights reserved.
+; SPDX-License-Identifier: BSD-2-Clause-Patent +; Linear-Address Translation to a 1-GByte Page +; +;-------------------------------------------------------------------------= ----- + +BITS 64 + +%define ALIGN_TOP_TO_4K_FOR_PAGING + +%define PAGE_PRESENT 0x01 +%define PAGE_READ_WRITE 0x02 +%define PAGE_USER_SUPERVISOR 0x04 +%define PAGE_WRITE_THROUGH 0x08 +%define PAGE_CACHE_DISABLE 0x010 +%define PAGE_ACCESSED 0x020 +%define PAGE_DIRTY 0x040 +%define PAGE_PAT 0x080 +%define PAGE_GLOBAL 0x0100 +%define PAGE_2M_MBO 0x080 +%define PAGE_2M_PAT 0x01000 +%define PAGE_1G 0x80 + +%define PAGE_PDP_ATTR (PAGE_ACCESSED + \ + PAGE_READ_WRITE + \ + PAGE_PRESENT) + +%define PAGE_PDP_1G_ATTR (PAGE_ACCESSED + \ + PAGE_READ_WRITE + \ + PAGE_DIRTY + \ + PAGE_PRESENT + \ + PAGE_1G) + +%define PGTBLS_OFFSET(x) ((x) - TopLevelPageDirectory) +%define PGTBLS_ADDR(x) (ADDR_OF(TopLevelPageDirectory) + (x)) + +%define PDP(offset) (ADDR_OF(TopLevelPageDirectory) + (offset) + \ + PAGE_PDP_ATTR) + +%define PDP_1G(x) ((x << 30) + PAGE_PDP_1G_ATTR) + +ALIGN 16 + +TopLevelPageDirectory: + + ; + ; Top level Page Directory Pointers (1 * 512GB entry) + ; + DQ PDP(0x1000) + + TIMES 0x1000-PGTBLS_OFFSET($) DB 0 + ; + ; Next level Page Directory Pointers (512 * 1GB entries =3D> 512GB) + ; +%assign i 0 +%rep 512 + DQ PDP_1G(i) + %assign i i+1 +%endrep + TIMES 0x2000-PGTBLS_OFFSET($) DB 0 + +EndOfPageTables: diff --git a/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm b/UefiCpuPkg/Re= setVector/Vtf0/X64/2MPageTables.asm similarity index 100% rename from UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm rename to UefiCpuPkg/ResetVector/Vtf0/X64/2MPageTables.asm --=20 2.26.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 (#80533): https://edk2.groups.io/g/devel/message/80533 Mute This Topic: https://groups.io/mt/85530925/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-