From nobody Sun May 19 20:47:26 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+87458+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+87458+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1646983753367195.89007742361753; Thu, 10 Mar 2022 23:29:13 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id D4oDYY1788612xaFiUZVVoaX; Thu, 10 Mar 2022 23:29:14 -0800 X-Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web08.3253.1646983752200171819 for ; Thu, 10 Mar 2022 23:29:13 -0800 X-IronPort-AV: E=McAfee;i="6200,9189,10282"; a="318742940" X-IronPort-AV: E=Sophos;i="5.90,173,1643702400"; d="scan'208";a="318742940" X-Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 23:29:11 -0800 X-IronPort-AV: E=Sophos;i="5.90,173,1643702400"; d="scan'208";a="633328921" X-Received: from tedkuo1-win10.gar.corp.intel.com ([10.5.215.13]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 23:29:10 -0800 From: "Kuo, Ted" To: devel@edk2.groups.io Cc: Ray Ni , Debkumar De , Harry Han , Catharine West Subject: [edk2-devel][PATCH v2] UefiCpuPkg: Support FFS3 GUID in SearchForBfvBase.asm Date: Fri, 11 Mar 2022 15:28:34 +0800 Message-Id: <3825a811b080d332ee27d42c625d0753daf3a961.1646981876.git.ted.kuo@intel.com> 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,ted.kuo@intel.com X-Gm-Message-State: 2qJCxzdNcR2gK55ZCTd7RRrxx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1646983754; bh=vKEmhkBegzHsDZ4GjdYUprN2K1hiQYI25QqY0r7VJds=; h=Cc:Date:From:Reply-To:Subject:To; b=cAk4FTNttGbVx26ZoLNPtjbmjNdpRp0p2h2TyUtpoi7S6A7BlZlr66eRQZtoTmwx3kH 4XKLTrlbhXVT+qJNRf30RUiOVA/WTlGCNnRg11M8061kVmxLkD8tIpWS6/oDgj3k938Wv AvD8N355Wvx7VeuTq5dA73OmKwC5W2Hp72o= X-ZohoMail-DKIM: fail (Signature date is -1 seconds in the future.) X-ZM-MESSAGEID: 1646983754792100001 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D3862 The new algorithm searches BFV address with FFS3 GUID first. If not found, it will search BFV address with FFS2 GUID. Cc: Ray Ni Cc: Debkumar De Cc: Harry Han Cc: Catharine West Signed-off-by: Ted Kuo Reviewed-by: Ray Ni --- .../Vtf0/Bin/IA32/ResetVector.ia32.port80.raw | Bin 484 -> 548 bytes .../ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.raw | Bin 468 -> 516 bytes .../Vtf0/Bin/IA32/ResetVector.ia32.serial.raw | Bin 868 -> 932 bytes .../Bin/X64/PageTable1G/ResetVector.x64.port80.raw | Bin 12292 -> 12292 by= tes .../Vtf0/Bin/X64/PageTable1G/ResetVector.x64.raw | Bin 12292 -> 12292 by= tes .../Bin/X64/PageTable1G/ResetVector.x64.serial.raw | Bin 12292 -> 12292 by= tes .../Bin/X64/PageTable2M/ResetVector.x64.port80.raw | Bin 28676 -> 28676 by= tes .../Vtf0/Bin/X64/PageTable2M/ResetVector.x64.raw | Bin 28676 -> 28676 by= tes .../Bin/X64/PageTable2M/ResetVector.x64.serial.raw | Bin 28676 -> 28676 by= tes .../ResetVector/Vtf0/Ia32/SearchForBfvBase.asm | 51 +++++++++++++++++= ---- 10 files changed, 41 insertions(+), 10 deletions(-) diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.port80.r= aw b/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.port80.raw index 79b23c047bdc6e552d77d5c9e9aeae21ff04d91d..23254e83bf1a17dee9f38c235fc= c9948624a7536 100644 GIT binary patch delta 227 zcmaFDyo9BG0uUG;*vZVmz@W<@z`$S&Wc)9RYyQbxs@7N`P<5a2DnL~gPkVYw4**r!cFFjcZU?HGY1)}sx(=3DwS^|0>c z(xuH6Dh#FbI}bBQD3s24Eoykcv-u}uY2Sto!p|CZ><5C*qp$yU9^J6;8$wu(9TV=3D}(c8 zUjg)y@_Q48|1M?^0T*VtBLDzE4S>dJ0U!uIkRJe$|NsA!umLp*>x1c7{{R2! Mtds8n6_W!3A^UepbpQYW diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.raw b/Ue= fiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.raw index ce7faa502b858e99908bcdb397b776258205e1d5..18562d8f1f58601f66fcb0cbf2f= 994046ce48fde 100644 GIT binary patch delta 225 zcmcb@+`>{n0SF8a>||zOV9;d{U|_HXGX59EHUDHTRcoves5(#_Qu?g1LgcjVDc{n& zjTI7m^W~3nW7tMv416`-n$r#(HT2Y{+C)y36^7FJorjqt6iR2j7BoEI+5D5Sv~S0L?*04scOHHHuk+|j`-wr}jBh5cDmQQY zub0NpD4w=3DMnSsH9U+F;FtK9$p{|hkeaA0F#;8%K(wu6JA??&H&z6X6T`Yyb-n;_3H Z0jOYd0;3s6_e+a^|Np<-GkG4P833r5W}5&2 delta 153 zcmZo+xxySY0SF8a=3DrRZ}FxWCMF#InvZmbZfc-qrb`ns_~#I{Suzw}XKg~UwL&cxE2 zjTJJjhjlNPUTCgRVJJP-d6+puq4e-;&K>)Kp!4YKf1O8Px=3D-v1XZ$kpQMqv4f4ww* zM)9;A$_xw+{7MJXUZqaXVU!VYn;_3H;s5{tAge)O@&raRj^>vc|Nj4fxn=3DS>Ml%58 CZbm=3D=3D diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.serial.r= aw b/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.serial.raw index 6503a988abdac06f9aa88f0a65f2525e12233b0a..e4aa4fc30a32bc3d4d8d0e1726c= 43fdafef4a374 100644 GIT binary patch delta 214 zcmaFDwuF6xY`rV9;enmZ3=3D9mq3<3-cwm`=3DJqPXUt%%y6L6#`WUibG1DHCBk6wms!r zdbhDcVsF0Ow9+e$6*8UAO=3DgvzeysvjRq?c^r}O|&m2H=3Ddf9ZChs+p#piKXj+s#*{0 zUM^kQT%p2HI=3D}NUbA&?ajMssN2Rxg9GM4tG?fT0+F{OjiW8&Lej75`AFs>J_`LCD8 z&nTX@Lz#iWfnVuB+AHPBT}&|oJ`>~_Cj9^Ze*zRte#c}Yu;9;Yrq|zIvi^U${?Gsa LFE>v%Vm1N**#ci0 delta 146 zcmV;D0B!%I2jm8j9YX~JF~BVV5C8x@00030ax;N=3D5P0Q`jCJdQcoaQ~98Y!Pfp{31 zHHl$$*@1W*g~Kh=3Dbrcl3=3DnSp^pmqCDm!4}B)UliB;letu_u|lBgKygUvv&IUM)3&F4OYb&T zNbJp*n^t{?AX75Kkxp|qp$yU9^J6Bj4$8^oS9{Mya%q3`zYTOak(_!-61 zb|^D2IPfbSNPD$!a;u^OyQ4b81EBWFTNEw%UN^ja@b~}!mpT7{gvsPTiV} delta 259 zcmZokXi3<>rVygbAi%(2%fP_!zsR_;LZISlPfzLV#tISJE*byQM~xK{Gfg`aOK&z- z$h02Tysxk81Z^i=3D0z<_Lw-!>@TaY`>8ANp?ZUi48fjh|6GZHF=3Dg zg9E?PfwWg`llLkr@O!Brcl3=3DnSp^pmqCDm!4}B)UliB;letu_u|lBgKygUvv&IUM)3&F4OYb&T zNbJp*n^tq;e#OWC z|0Nh+&I3AT2g8N`|M`_}ygvDBH^Ya%+q?ID)Jx-M6i?fs%)sEluXG^o)w0RCiZc9u z>I@fv+9p83MyJRzkL7q|Noc8|A2(?|NsAY0P%kh#bX|dM?DmecyvDa|7^m9 eje;9^6<$hx0&4}@$q*Le#xP;ROJ;}$oEHj+dD delta 239 zcmZokXi3<>rr@K?Ai%(2%fP_!zsR_;LZISlPfzLV#tISJE*byQM~xK{Gfg`aOK&z- z$h02Tysxk81Z^i=3D0z<_Lw-!>>7a><5C*qp$yU9(`Fqxl19OQD^cag(*P}AOHWC zV0bwdXz&h(3;+M~E8Tc~^4D&L4}G_Hw|&%0<7X64+o8{ z27aXnX*)O=3D`fl_c=3DzGxjqVK|MS9OL7K>5iR6m9ulx4bm?_y7OP8W3SKSw=3D~Mal%Hy e54;L5Z+)Bq0zms1!b02_CQNvF7$O1|o&W$orgJI) diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x6= 4.serial.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.= x64.serial.raw index d9b051ff06d1d30b0dfd585e05e75c98ebd88b03..de97b858ddd03171114aa0efb19= 29796b1aa5435 100644 GIT binary patch delta 259 zcmZokXi3;0t5Cm}+3>(lW(EcZT?PRL23sKGe^FfXPv%m!#tMO|1H~bw&l)R4PTQXH zExp@VA+a}KZd&P;#tNCv=3DO(jCPrp_Hs;YR}(^Gl?sLHlW#=3DmqsP}NM+&cxDnKvk`W zbuX7LZLUyZD4pMVm^nhBbjIsI!vmhpKN(B=3D(suo2o}8l4!FXWuTZLPUuO^>RoWeM5 za;%aYqwwSrau&;S2V&QrD#)%f$8 z>GijlZ2w=3DH|M~y_rS)GRQMY-&@>gz!m#;og00E$%7{Wr_7$!`3c^M)C7M=3DhAKvr~s delta 209 zcmZokXi3;0tKi(rY; zmfmcvkZC=3Dvd%5&NbA<{+>8Z}c%n=3DHuhhKY6o}tjgcw(}u;w{Ecla!_~#!a58nO}3=3DaHC2hv`#Otw~z;SW}4DER#U{{$$QJWtt1G~&-|rq|zI x{`>bb{m=3DjZFOB~KiL%Y_mA`UNR4`C@x$84nG0>R|VIgh|6DGV|3=3Dx5t0RVO0UcCSS diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x6= 4.port80.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.= x64.port80.raw index 0e53a574fab74db6973d7ea41a6a495266a4d0ae..23c58501b5a48448ffcd2757310= 442ef33f45fa0 100644 GIT binary patch delta 291 zcmZp9z}WJDaRXaI{Z3{E1_oUQ0R{$JAme{gT=3DP%nQnkhkfvN+=3DA*Ih6D@0D)p7Jfd z+gKs7H(zdA>6OL`na<}Xvr13DRspK2c-qrbdH|@(woAspbURShOw-Q9(se*pt%r3l zmo9CtP+=3D&Y-+7ohLZNiVYf-}kp3OfQOZzr#c-F9E|Ni~F`#X=3Dm{?~bQ!^UR~FZ(A) zCB!qDOx~3+#k}L=3D|NjyU8&ZJ6Gl34I@Hn+9z*GwB&o;@bbam|Nmd+`~wmulm8@2FizMg exPVvTrPikjAOJL+AuPm=3DVZwx$!VnR#@B{$qM2t58 delta 261 zcmZp9z}WJDaRXaIh%SQw1A{FC1H=3DC!4oMB6^7DNorjqt6iN@j=3DH0O2S;LO~K+t*g^}o)e8#X>`csXP8q=3Da}z z+sU62rkDqO{QqBqVM7W~coEQ&9Sjrx|L0e_@%rcnv1bjxb~AkFyS;nSN4+$DM)9;A z$_xw+{7MJXUbRi$o2bC=3DrOvPcsC@zyOn#DRss6J3|4aUV|Np;C1`*o-|Nq|s#Q!}M uk9jB_^-w(G(fQ#2vk4P63SQt6OL`na<}Xvr13DRspK2c-qrbdH|@(woAspbURShOw-Q9(se*pt%r3l zmo9CtP+=3D&Y-+7ohLZNiVYeB;Up3OfQOZ#^02ZGL{uUY?f9(~y{IVd5V(RA{vgem$J zAOHWCV0bwX=3D$IW06aN3_SGw`~2jh|6GZHF=3Dgg9E?PfwWi4Cg&!~ z@cXGVTmWjD00omLB-*OKtp5M<{onupUl#uZ62|}k|K9<`|2-6sc_<$BP(0$%`QZPv g2@^I7Zs1jTDfJ1g6=3D)|zScn_Lgb6R1AtDeH0oMqWMgRZ+ delta 241 zcmZp9z}WJDaRXa|k1m4%1A{FC1H=3DC!4oMB6^7DNorjqt6iN@j=3DG?I#2s)3x{?~c*W&Px?gm6Zk$&V7I1UY>C z|6hXP<fsFq}am_!OOVt`H1gZ`chm<~RtPnYE zd&;-;ZexYS-h8=3DfrB@m&WICUl%ql(oS_P=3D8;%QG$=3D>ecB+b$XZ((OQ1Gfg`aOVu0bK?G1_oOO28RDd#*GyM6;FG5N?$ith}d??_?JFvtdN*# z+L>5-v#~;^^|0>c(hJQMDh#EkIuA2PD3l(4?KycyLJ#AK$*PIB7(Y!)n!*@2d1{gy zqx9rENj}0cpY_uC8O76fC^IlP@GBiid&M%@Iyr_vSe>EZ^Z)-7pkVU6WE;_lKd+fy ze|!1w-^=3Dtr|Np-<{tG0^Hos5)$~{rRK;h-C&tSzsXEKC^xG_wa@NzLk1Y!mNLy2Mk diff --git a/UefiCpuPkg/ResetVector/Vtf0/Ia32/SearchForBfvBase.asm b/UefiCp= uPkg/ResetVector/Vtf0/Ia32/SearchForBfvBase.asm index 10f8e3e8bb..786239325d 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/Ia32/SearchForBfvBase.asm +++ b/UefiCpuPkg/ResetVector/Vtf0/Ia32/SearchForBfvBase.asm @@ -9,10 +9,17 @@ =20 ;#define EFI_FIRMWARE_FILE_SYSTEM2_GUID \ ; { 0x8c8ce578, 0x8a3d, 0x4f1c, { 0x99, 0x35, 0x89, 0x61, 0x85, 0xc3, 0x2= d, 0xd3 } } -%define FFS_GUID_DWORD0 0x8c8ce578 -%define FFS_GUID_DWORD1 0x4f1c8a3d -%define FFS_GUID_DWORD2 0x61893599 -%define FFS_GUID_DWORD3 0xd32dc385 +%define FFS2_GUID_DWORD0 0x8c8ce578 +%define FFS2_GUID_DWORD1 0x4f1c8a3d +%define FFS2_GUID_DWORD2 0x61893599 +%define FFS2_GUID_DWORD3 0xd32dc385 + +;#define EFI_FIRMWARE_FILE_SYSTEM3_GUID \ +; { 0x8c8ce578, 0x3dcb, 0x4dca, { 0xbd, 0x6f, 0x1e, 0x96, 0x89, 0xe7, 0x3= 4, 0x9a } } +%define FFS3_GUID_DWORD0 0x5473c07a +%define FFS3_GUID_DWORD1 0x4dca3dcb +%define FFS3_GUID_DWORD2 0x961e6fbd +%define FFS3_GUID_DWORD3 0x9a34e789 =20 BITS 32 =20 @@ -25,6 +32,7 @@ BITS 32 Flat32SearchForBfvBase: =20 xor eax, eax + mov ecx, 3 ; 3: FFS3 GUID, 2: FFS2 GUID, 1: Not Found searchingForBfvHeaderLoop: ; ; We check for a firmware volume at every 4KB address in the top 16MB @@ -32,20 +40,37 @@ searchingForBfvHeaderLoop: ; sub eax, 0x1000 cmp eax, 0xff000000 - jb searchedForBfvHeaderButNotFound + jb searchingForBfvWithOtherFfsGuid + cmp ecx, 3 + jne searchingForFfs2Guid =20 ; - ; Check FFS GUID + ; Check FFS3 GUID ; - cmp dword [eax + 0x10], FFS_GUID_DWORD0 + cmp dword [eax + 0x10], FFS3_GUID_DWORD0 jne searchingForBfvHeaderLoop - cmp dword [eax + 0x14], FFS_GUID_DWORD1 + cmp dword [eax + 0x14], FFS3_GUID_DWORD1 jne searchingForBfvHeaderLoop - cmp dword [eax + 0x18], FFS_GUID_DWORD2 + cmp dword [eax + 0x18], FFS3_GUID_DWORD2 jne searchingForBfvHeaderLoop - cmp dword [eax + 0x1c], FFS_GUID_DWORD3 + cmp dword [eax + 0x1c], FFS3_GUID_DWORD3 jne searchingForBfvHeaderLoop + jmp checkingFvLength =20 +searchingForFfs2Guid: + ; + ; Check FFS2 GUID + ; + cmp dword [eax + 0x10], FFS2_GUID_DWORD0 + jne searchingForBfvHeaderLoop + cmp dword [eax + 0x14], FFS2_GUID_DWORD1 + jne searchingForBfvHeaderLoop + cmp dword [eax + 0x18], FFS2_GUID_DWORD2 + jne searchingForBfvHeaderLoop + cmp dword [eax + 0x1c], FFS2_GUID_DWORD3 + jne searchingForBfvHeaderLoop + +checkingFvLength: ; ; Check FV Length ; @@ -57,6 +82,12 @@ searchingForBfvHeaderLoop: =20 jmp searchedForBfvHeaderAndItWasFound =20 +searchingForBfvWithOtherFfsGuid: + xor eax, eax + dec ecx + cmp ecx, 1 + jne searchingForBfvHeaderLoop + searchedForBfvHeaderButNotFound: ; ; Hang if the SEC entry point was not found --=20 2.16.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 (#87458): https://edk2.groups.io/g/devel/message/87458 Mute This Topic: https://groups.io/mt/89706139/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-