From d79d2cd2ce07cf6d18177648aba90e3ec0923ec3 Mon Sep 17 00:00:00 2001 From: geekboy15a Date: Tue, 2 Feb 2010 18:05:03 +0000 Subject: [PATCH] Updated OvmfPkg to use the reset vector binary from the UefiCpuPkg. Removing local reset vector files. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9912 6f19259b-4bc3-4df7-8a09-765794883524 --- OvmfPkg/OvmfPkg.fdf | 2 +- OvmfPkg/OvmfPkgIa32X64.fdf | 2 +- .../Bin/ResetVector.ia32.port80.raw | Bin 500 -> 0 bytes OvmfPkg/ResetVector/Bin/ResetVector.ia32.raw | Bin 484 -> 0 bytes .../Bin/ResetVector.ia32.serial.raw | Bin 884 -> 0 bytes OvmfPkg/ResetVector/Bin/ResetVector.inf | 35 ---- .../Bin/ResetVector.x64.port80.raw | Bin 28676 -> 0 bytes OvmfPkg/ResetVector/Bin/ResetVector.x64.raw | Bin 28676 -> 0 bytes .../Bin/ResetVector.x64.serial.raw | Bin 28676 -> 0 bytes OvmfPkg/ResetVector/Build.py | 53 ----- OvmfPkg/ResetVector/CommonMacros.inc | 31 --- OvmfPkg/ResetVector/DebugDisabled.asm | 26 --- OvmfPkg/ResetVector/Ia16/16RealTo32Flat.asm | 133 ------------ OvmfPkg/ResetVector/Ia16/Init16.asm | 48 ----- OvmfPkg/ResetVector/Ia16/ResetVectorVtf0.asm | 57 ----- OvmfPkg/ResetVector/Ia32/32FlatTo64Flat.asm | 46 ---- OvmfPkg/ResetVector/Ia32/SearchForBfvBase.asm | 86 -------- .../ResetVector/Ia32/SearchForSecEntry.asm | 196 ------------------ OvmfPkg/ResetVector/Main.asm | 106 ---------- OvmfPkg/ResetVector/Makefile | 42 ---- OvmfPkg/ResetVector/Port80Debug.asm | 28 --- OvmfPkg/ResetVector/PostCodes.inc | 25 --- OvmfPkg/ResetVector/ResetVectorCode.asm | 52 ----- OvmfPkg/ResetVector/SerialDebug.asm | 132 ------------ .../ResetVector/Tools/FixupForRawSection.py | 110 ---------- 25 files changed, 2 insertions(+), 1208 deletions(-) delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.ia32.port80.raw delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.ia32.raw delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.ia32.serial.raw delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.inf delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.port80.raw delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.raw delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.serial.raw delete mode 100644 OvmfPkg/ResetVector/Build.py delete mode 100644 OvmfPkg/ResetVector/CommonMacros.inc delete mode 100644 OvmfPkg/ResetVector/DebugDisabled.asm delete mode 100644 OvmfPkg/ResetVector/Ia16/16RealTo32Flat.asm delete mode 100644 OvmfPkg/ResetVector/Ia16/Init16.asm delete mode 100644 OvmfPkg/ResetVector/Ia16/ResetVectorVtf0.asm delete mode 100644 OvmfPkg/ResetVector/Ia32/32FlatTo64Flat.asm delete mode 100644 OvmfPkg/ResetVector/Ia32/SearchForBfvBase.asm delete mode 100644 OvmfPkg/ResetVector/Ia32/SearchForSecEntry.asm delete mode 100644 OvmfPkg/ResetVector/Main.asm delete mode 100644 OvmfPkg/ResetVector/Makefile delete mode 100644 OvmfPkg/ResetVector/Port80Debug.asm delete mode 100644 OvmfPkg/ResetVector/PostCodes.inc delete mode 100644 OvmfPkg/ResetVector/ResetVectorCode.asm delete mode 100644 OvmfPkg/ResetVector/SerialDebug.asm delete mode 100644 OvmfPkg/ResetVector/Tools/FixupForRawSection.py diff --git a/OvmfPkg/OvmfPkg.fdf b/OvmfPkg/OvmfPkg.fdf index d811b562f5..432975d2e1 100644 --- a/OvmfPkg/OvmfPkg.fdf +++ b/OvmfPkg/OvmfPkg.fdf @@ -65,7 +65,7 @@ READ_LOCK_STATUS = TRUE # INF OvmfPkg/Sec/SecMain.inf -INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/Bin/ResetVector.inf +INF RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf ################################################################################ [FV.MAINFV] diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf index dd238cfe04..c3c1636c2d 100644 --- a/OvmfPkg/OvmfPkgIa32X64.fdf +++ b/OvmfPkg/OvmfPkgIa32X64.fdf @@ -66,7 +66,7 @@ READ_LOCK_STATUS = TRUE INF OvmfPkg/Sec/SecMain.inf FILE RAW = 1BA0062E-C779-4582-8566-336AE8F78F09 { - SECTION RAW = OvmfPkg/ResetVector/Bin/ResetVector.ia32.raw + SECTION RAW = UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw } ################################################################################ diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.ia32.port80.raw b/OvmfPkg/ResetVector/Bin/ResetVector.ia32.port80.raw deleted file mode 100644 index 3a8a46d17265364917572a83248743cf60d1c301..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmX9*%}X0W6o2cw+XN3A{7NVuB+Wq&O4B0vmEs3V4~jVy35o?TTfA;}V2?Y{9LC5J z(2MP*f5P_Uf`@Dyzj{(ALP|bu`AZl@~eYVRiEZEvc~nXtZRHyS}@j!;t#n@^sdrnH1abM`Wq`DbZpe5pGK2@ zzGb$_B*Z(AnRQ8s9q~ORBwY3@dq43bBiYg?uqHahY#`qx*&p0kSI zQ=f`I^GkeEnh~*zMn~qBNkA=TK1&Evi_4^4o(w9zm{p4_fxasLh#^g-r*O!iJlV?? z#10sVGf?KOrDu@A1m7??d@Z+6!oGAD74P1^*`a+=~!=7cW*9*S?HbdlU0D O78j;L4SDuCcSR4P&xrO!xEkXg5G&p&K}$w2)fy!XBQ?|a|(|L<9rWfiw@ z;jUNwi3`XpHgSRT{FQc(9>XN}wB zwXSvN%6+fMny#fF8Ic!88E2Ekp%Z}Q;x_*BIH~@Sef}9Qi2FmhGlV-ly98mZ&@IN8 zu@c-JW|Km@_p{OKZ3sy<NjaZlAYWqnRNjEO)WKxWP%f>EK*AVG4B=eZ4%4hob*g8pq+-T6Die^{L5 zd}Zn#J^>O3E3>!eG#pcp zTtZ*X+LFai$s!k*?Gw-svB!}=p8;_(WRFBZKut@4T zqiK+B#nB@;10KR&_+I>gIw5p#b$5KYic0B>d#H3d;|j8|Oe-z8H1s>82N_*&F-D(k a!{w~APnKKTCGt5YZ;T^RaF>5``{OTLqqwX9 diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.inf b/OvmfPkg/ResetVector/Bin/ResetVector.inf deleted file mode 100644 index a1a0e78cb1..0000000000 --- a/OvmfPkg/ResetVector/Bin/ResetVector.inf +++ /dev/null @@ -1,35 +0,0 @@ -#/** @file -# Reset Vector binary -# -# Copyright (c) 2006 - 2009, Intel Corporation. -# -# All rights reserved. This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -#**/ - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = ResetVector - FILE_GUID = 1BA0062E-C779-4582-8566-336AE8F78F09 - MODULE_TYPE = SEC - VERSION_STRING = 1.1 - EDK_RELEASE_VERSION = 0x00020000 - EFI_SPECIFICATION_VERSION = 0x00020000 - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 -# - -[Binaries.Ia32] - RAW|ResetVector.ia32.raw|* - -[Binaries.X64] - RAW|ResetVector.x64.raw|* - diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.x64.port80.raw b/OvmfPkg/ResetVector/Bin/ResetVector.x64.port80.raw deleted file mode 100644 index 487d815670e1d693df6736e6a746a08830345932..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28676 zcmeI*`M2)(HNf#5kw_Fbs5U4~qo|>DFjbYU)e1_hs4D7%O4U$AF4w#-g4$;IMka~Q9yXL7N)*&N2}>6u(CZZ?N;LeJ!4akDv$%k)ex z7B`#2czr#Si^a|6Fy27V$|7UWsxY-=W zm3k%@i<`}1yoH|0#o}gj828pQxmet64&yELOfD8To5Of3J(G*Y&E_!PTF>NSakDv$ z`{zQ0EZZ?N;UpX}?DZZ?PU;d&+) zi<`}1JWkK#VsW!MjE~SWxmet64&(89CKrpF&0&0`p2@}HW^))HrDt-nxY-=WN9&nf zEN(W3@dQ1Si^a|6Fg`}lnuxY-=WC+V47EN(W3@yU877mJ(CVSI|7$;IMka~PkhXL7N)*&N1G^h_=mH=D!w zG(D4x#m(k0K3&h`VsW!MjL*-9`77B`#2_y#?bi^a|6FuqaG+wKvAEeB#t-P3Tr6%jhw+1YCKrpF&0+kI zp2@}HW^))ntY>nuxY-=WkLa0PEN(W3@uPYs7mJ(CVf>h$$;IMka~MCaXL7N)*&N1M zJ(G*Y&E_zELeJ!4akDv$pVTwCSlnz5Gr3sYY!2hk;;;_)e zCKrpF&0*Z4XL7N)*&N1S>zQ0EZZ?N;tDecl;%0Lg=k!c27B`#2c$uEb#o}gj7`N$} zTr6%jhw(RhCKrpF&0+klp2@}HW^)*Sr)P4pxY-=W-|LxNEN(W3@p3(ri^a|6F#bW$ zp)S z>&$b{{rmaz=g&O%>`&ZM=YH^li2J|f%%7aO_3Ed6^!+Zl`I<+ZyYO&yUh|&U^|kMQ z(Q6$ZU-Q6w|I1S!clTG`bj7u|KJBWzp8m5#9hbh~+Lv7L%h$ffH7~AHZ*bwsOV3?- zIP$tadFh$wpZk@=0r&4S&%5rGCoewx@>}ZKSD*cd!>Jy2IMv}rpLEgXheIFq{Lg$s zox1R{Yv1H)m!JNN+h6f;?nhp9`?;@q_`Uz*+)EGdy680z&(7R*_33x}z{j7w_{1|G z_Z}A)mk3ac_7e4Hgi|%vy=!s{3NuA z@L60rXCH7&U47#vasAEL_w{rAt=GTk-1{9~;f8xg9gh2-m(}6DcdR@97yfHs7*vmg5C+wSu0_kQ$k7hiqmIfpOCxmTS(ck=wXfBw(&=g&Rn)rU9tJ-pymHy+;H w@#DFx?)AK@?)BWO?)99j&dm8+4kxn+a diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.x64.raw b/OvmfPkg/ResetVector/Bin/ResetVector.x64.raw deleted file mode 100644 index 1f4e9fcb8333ea00e4d7bbdb8b5634591409f210..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28676 zcmeI*_q(N6RlxBTLSkZ@NRfyrAx6ax#D<72L@+8yY>241ZLt?(M#sKJjXHoaiVd-B zd+&uPDoX>19mNvGvh2CUj$&s#Nk04$`kehd_kPZ~^M21ev+sM?`^>#R+?#K{`R13$ z-RtFX#a$0x9?8YxW^))9-1*?pGr3sYY!2fddL|c(o6TWdsAqDqxY-=WJ@rg37B`#2 zxJb|BVsW!MjEnV5E*3YN!+144lZ(a8<}fbNGr3sYY!2g6J(G*Y&E_y(UC-oVakDv$ z*U&S$Slnz5<2Ch6E*3YN!+0${lZ(a8<}hAc&*WlpvpI}YdL|c(o6TWdre|`oxY-=W z>*$$WEN(W3aW6fSi^a|6Fz&5qa47mJ(CVZ4c+$;IMka~N-`XL7N)*&N1$^-L}n zH=DzFGd+`w#m(k0-dxY*VsW!MjJMD;xmet64&yELOfD8To5Of3J(G*Y&E_!PTF>NS zakDv$x6w1XSlnz5;~{z`7mJ(CVLVjN z^h_=mH=DzFyq?L$;%0Lg@1tjOvAEeB#uM~RE*3YN!?;$@CKrpF&0&0yp2@}HW^))% z(lfbO+-wfxgY`@<7B`#2c(R_!#o}gj7$2f%a6u(CZZ?PU#d;nuxY-=WSL&HuEN(W3@l|>z7mJ(CVLVgM zs7B`#2_$ED*i^a|6FuqyOnuxY-=WZ|Rv_EN(W3@!NVP7mJ(CVZ21oX}?DZZ?PUM|vg~i<`}1{IQzQ0EZZ?PU4|*mSi<`}1{G*=9#o}gj82_YaaZAUVYq$yRVPqJ{aGV3jIdGf<$2oAE1IIb=e|rwR*#Gm7-u-zz?!$2(?!2!ZuY==taJ&wV zUkArIaGV3jIdGf<$2oAE1IIaVoCE*Q=D^`s036qG2aY>%+=1f`9CzTj1IHaW?!a*e zjyrJNf#VMRAKZb59)7*VWf6}&e5>O8^$$OL=CU(?^^9knzT@nf`#kb#4|u}qKRxsN#g2WQVb;Kp0u>LsUNeD=&$hlAtvFP*#f!Y5sEx=&v7@a&f79oD%Qoc!1M z^XCtI`=y~zkI_>FZhKU?s5I^)|q=2vd<}@$pYSeetR1Jn5Y;I6Qg86Q6wg-WNXll8YXE_|sF* z`H+j>?6#Bp9v+^3#I=t({39>9@X-%Gx#;lxmcv_|JoWH8x5S)3f9lHHPF*ple&+Uz zPF*=aT@iiiVTWgzoO;NqEBf%@fv2wQmp$xo^yP7K)1my&=f*$Y^wQ^EfBvnnJ9WYR zuDj)p4x4c}y#aZ6r&IQx}z-7S~IO}E|DH_c7A-}K^>!`~ooeqhw$m{(m| zhmYK~?)oYGGk-Jg^4YKQhvRwgcI_Rn@w`V}d&kAsoqPUa(@*~G{K?t#C-;5j`ST~A zaOb;69$xI4TMqB;`u5y44|?G>4|>5h4|@JJ=jQxhA5L<|t#_a4&XYXx10EZvF1_Oi JUUlv}{a@=DvEl## diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.x64.serial.raw b/OvmfPkg/ResetVector/Bin/ResetVector.x64.serial.raw deleted file mode 100644 index 9b08b317ce6768e81096c6620bfb1513f4381a78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28676 zcmeI*d${G-SkI0D5|=w;l~e0(GW5Ad(L*YnJL z_Bv;O_xb(S{+;!E&deX@o_p@O=N<9Lct_m){s-@f z$;IMka~MyF!#LdknOrPxHivPGp2@}HW^))Hu4i(wxY-=WQ}s+P7B`#2_?3Dl7mJ(C zVf-pRlZ(a8<}iM>p2@}HW^))%(=)kP+-wfxBlJuz7B`#2_((mIi^a|6Fn*1m$;IMk za~Qu?&*WlpvpI~9(lfbO+-wfxqxDQK7B`#2_;q?F7mJ(CVLV;W6u(CZZ?PUF?uE!i<`}1JX6o)VsW!MjA!YYTr6%jhwX}?DZZ?PUJM~O17B`#2c$uEb#o}gj7@wtQa6u(CZZ?PUd-Y5%7B`#2_X}?DZZ?PU#d;jKlq($;IMka~OX{&*WlpvpI}Et7metxY-=W zpVKqBSlnz5<1Rgui^a|6Fup|3zQ0EZZ?N;QP1RJakDv$ zm+P5aEN(W3@d`bYi^a|6FkY!=aWE*3YN!}!a3CKrpF&0&0*p2@}HW^)*SMbG47akDv$FV{1nuxY-=WKhZO}Slnz56u(CZZ?PU zt$HRGi<`}1+^=VHvAEeB#;f&AE*3YN!}#ZVCKrpF&0+itJ(G*Y&E_!vrJl*f;%0Lg zuhBEPSlnz5qxDQK7B`#2__jEV!~LJh#o}gj7~igEa6u(CZZ?PUdOeei#m(k0zC+LCVsW!Mj5p|+Tr6%jhw(-|lZ(a8<}kif&*Wlp zvpI}^rDt-nxY-=Wzt%IkSlnz56u(CZZ?PU7Cn=T#m(k0-l}JE zvAEeB#(&l`xmet64&!ZlCKrpF&0+i(J(G*Y&E_yh&*WlpvpJ0Ki^DkF|CwAYZZ?PU z{dy)Bi<`}1{D7Xx#o}gj82?qzp6_W{=?*A zakDv$AJ;RvSlnz56u(CZZ?PUlX@l> zi<`}1{FI)_#o}gj81L3Ixmet64&yy~CKrpF&0)M(&*WlpvpJ0S>6u(CZZ?N;S?q4;=S_ z<34cQ2mbHg2j1l8{G*S&kH>X5uEUl4+VMI#UI)kP;P`!T+y{>Pz;Pcq?gPht;J6PQ z_krU+@c-C8aQGDf$8lVN;|d&C;J5HeQQ zb#Gj{|6QlwnIrN6(*r)%@{S%^!E^zSkVa#n+v@`|{<>7hm`2`s!D^^{V=3 zzS_wf9}{uwTQ0us;zMU%@v^61^WdE?JUMkZ%DnRv?&`B2ckN>jkMF$gsqcFEOP=`7 z2W~$5&?|0#!iDcUeC4>|jc4C-&9|L>%$?s;=RfGwxf@Qt^6<>N`rHi{-*EEnhbP?H z7hiwZJI_7u(Fb_usssA@PxtKme(qQJ1)So;*IYTWv!8eEO@~8#_8Y$Fv+De*8_#~& zD{i{*16R)EaLzBf_R2Zm`GTju=j5%24_*5KhuOsk&RqD|PkQOO>rTJwB_DsyVe*_8 zzx3P(pL+iF*FNp=+0(E3%>jldnJZ{HL8`=+Zdjb~l8 zRv&ZK{AYPHuRENn%j;cNuC7}z{q)(h9yNRXqh^o0^i!{nAG!N2uReSEqtBea=80$S z`|!g>a5%IxZ~xH4irg6Y<#mU%zGWW$Zrpa&F+Jm|`OiGYGxuE|cRzS{-#vFfboZN1 z4l5T=jyimaM>d!%YjSignature == EFI_TE_IMAGE_HEADER_SIGNATURE) - cmp word [ebx], 'VZ' - jne thereIsNoVzSignature - ; *EntryPoint = (VOID *)((UINTN)Pe32Data + - ; (UINTN)(Hdr.Te->AddressOfEntryPoint & 0x0ffffffff) + - ; sizeof(EFI_TE_IMAGE_HEADER) - Hdr.Te->StrippedSize); - add eax, [ebx + 0x8] - add eax, 0x28 - movzx ebx, word [ebx + 0x6] - sub eax, ebx - jmp getEntryPointOfFfsFileReturn - -thereIsNoVzSignature: - - ; if (Hdr.Pe32->Signature == EFI_IMAGE_NT_SIGNATURE) - cmp dword [ebx], `PE\x00\x00` - jne getEntryPointOfFfsFileErrorReturn - - ; *EntryPoint = (VOID *)((UINTN)Pe32Data + - ; (UINTN)(Hdr.Pe32->OptionalHeader.AddressOfEntryPoint & 0x0ffffffff)); - add eax, [ebx + 0x4 + 0x14 + 0x10] - jmp getEntryPointOfFfsFileReturn - -getEntryPointOfFfsFileErrorReturn: - mov eax, 0 - -getEntryPointOfFfsFileReturn: - OneTimeCallRet GetEntryPointOfFfsFile - diff --git a/OvmfPkg/ResetVector/Main.asm b/OvmfPkg/ResetVector/Main.asm deleted file mode 100644 index bc2a3b168a..0000000000 --- a/OvmfPkg/ResetVector/Main.asm +++ /dev/null @@ -1,106 +0,0 @@ -;------------------------------------------------------------------------------ -; @file -; Main routine of the pre-SEC code up through the jump into SEC -; -; Copyright (c) 2008 - 2009, Intel Corporation -; All rights reserved. This program and the accompanying materials -; are licensed and made available under the terms and conditions of the BSD License -; which accompanies this distribution. The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php -; -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -; -;------------------------------------------------------------------------------ - - -BITS 16 - -; -; Modified: EBX, ECX, EDX, EBP -; -; @param[in,out] RAX/EAX Initial value of the EAX register -; (BIST: Built-in Self Test) -; @param[in,out] DI 'BP': boot-strap processor, or -; 'AP': application processor -; @param[out] RBP/EBP Address of Boot Firmware Volume (BFV) -; -; @return None This routine jumps to SEC and does not return -; -Main16: - OneTimeCall EarlyInit16 - - ; - ; Transition the processor from 16-bit real mode to 32-bit flat mode - ; - OneTimeCall TransitionFromReal16To32BitFlat - -BITS 32 - - ; - ; Search for the Boot Firmware Volume (BFV) - ; - OneTimeCall Flat32SearchForBfvBase - - ; - ; EBP - Start of BFV - ; - - ; - ; Search for the SEC entry point - ; - OneTimeCall Flat32SearchForSecEntryPoint - - ; - ; ESI - SEC Core entry point - ; EBP - Start of BFV - ; - -%ifdef ARCH_IA32 - - ; - ; Restore initial EAX value into the EAX register - ; - mov eax, esp - - ; - ; Jump to the 32-bit SEC entry point - ; - jmp esi - -%else - - ; - ; Transition the processor from 32-bit flat mode to 64-bit flat mode - ; - OneTimeCall Transition32FlatTo64Flat - -BITS 64 - - ; - ; Some values were calculated in 32-bit mode. Make sure the upper - ; 32-bits of 64-bit registers are zero for these values. - ; - mov rax, 0x00000000ffffffff - and rsi, rax - and rbp, rax - and rsp, rax - - ; - ; RSI - SEC Core entry point - ; RBP - Start of BFV - ; - - ; - ; Restore initial EAX value into the RAX register - ; - mov rax, rsp - - ; - ; Jump to the 64-bit SEC entry point - ; - jmp rsi - -%endif - - diff --git a/OvmfPkg/ResetVector/Makefile b/OvmfPkg/ResetVector/Makefile deleted file mode 100644 index a4c3f789d1..0000000000 --- a/OvmfPkg/ResetVector/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -## @file -# Makefile to create FFS Raw sections for VTF images. -# -# Copyright (c) 2008, Intel Corporation -# -# All rights reserved. This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# - -TARGETS = Bin/ResetVector.ia32.raw Bin/ResetVector.x64.raw -ASM = nasm - -COMMON_DEPS = \ - Ia16/16RealTo32Flat.asm \ - Ia32/32FlatTo64Flat.asm \ - JumpToSec.asm \ - Ia16/ResetVectorVtf0.asm \ - Ia32/SearchForBfvBase.asm \ - Ia32/SearchForSecAndPeiEntries.asm \ - SerialDebug.asm \ - Makefile \ - Tools/FixupForRawSection.py - -.PHONY: all -all: $(TARGETS) - -Bin/ResetVector.ia32.raw: $(COMMON_DEPS) ResetVectorCode.asm - nasm -D ARCH_IA32 -o $@ ResetVectorCode.asm - python Tools/FixupForRawSection.py $@ - -Bin/ResetVector.x64.raw: $(COMMON_DEPS) ResetVectorCode.asm - nasm -D ARCH_X64 -o $@ ResetVectorCode.asm - python Tools/FixupForRawSection.py $@ - -clean: - -rm $(TARGETS) - diff --git a/OvmfPkg/ResetVector/Port80Debug.asm b/OvmfPkg/ResetVector/Port80Debug.asm deleted file mode 100644 index 2f9d0862e8..0000000000 --- a/OvmfPkg/ResetVector/Port80Debug.asm +++ /dev/null @@ -1,28 +0,0 @@ -;------------------------------------------------------------------------------ -; @file -; Port 0x80 debug support macros -; -; Copyright (c) 2009, Intel Corporation -; All rights reserved. This program and the accompanying materials -; are licensed and made available under the terms and conditions of the BSD License -; which accompanies this distribution. The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php -; -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -; -;------------------------------------------------------------------------------ - -BITS 16 - -%macro debugInitialize 0 - ; - ; No initialization is required - ; -%endmacro - -%macro debugShowPostCode 1 - mov al, %1 - out 0x80, al -%endmacro - diff --git a/OvmfPkg/ResetVector/PostCodes.inc b/OvmfPkg/ResetVector/PostCodes.inc deleted file mode 100644 index 2556aed873..0000000000 --- a/OvmfPkg/ResetVector/PostCodes.inc +++ /dev/null @@ -1,25 +0,0 @@ -;------------------------------------------------------------------------------ -; @file -; Definitions of POST CODES for the reset vector module -; -; Copyright (c) 2009, Intel Corporation -; All rights reserved. This program and the accompanying materials -; are licensed and made available under the terms and conditions of the BSD License -; which accompanies this distribution. The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php -; -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -; -;------------------------------------------------------------------------------ - -%define POSTCODE_16BIT_MODE 0x16 -%define POSTCODE_32BIT_MODE 0x32 -%define POSTCODE_64BIT_MODE 0x64 - -%define POSTCODE_BFV_NOT_FOUND 0xb0 -%define POSTCODE_BFV_FOUND 0xb1 - -%define POSTCODE_SEC_NOT_FOUND 0xf0 -%define POSTCODE_SEC_FOUND 0xf1 - diff --git a/OvmfPkg/ResetVector/ResetVectorCode.asm b/OvmfPkg/ResetVector/ResetVectorCode.asm deleted file mode 100644 index 8b13942304..0000000000 --- a/OvmfPkg/ResetVector/ResetVectorCode.asm +++ /dev/null @@ -1,52 +0,0 @@ -;------------------------------------------------------------------------------ -; @file -; This file includes all other code files to assemble the reset vector code -; -; Copyright (c) 2008 - 2009, Intel Corporation -; All rights reserved. This program and the accompanying materials -; are licensed and made available under the terms and conditions of the BSD License -; which accompanies this distribution. The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php -; -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -; -;------------------------------------------------------------------------------ - -%ifdef ARCH_IA32 - %ifdef ARCH_X64 - %error "Only one of ARCH_IA32 or ARCH_X64 can be defined." - %endif -%elifdef ARCH_X64 -%else - %error "Either ARCH_IA32 or ARCH_X64 must be defined." -%endif - -%include "CommonMacros.inc" - -%include "PostCodes.inc" - -%ifdef DEBUG_NONE - %include "DebugDisabled.asm" -%elifdef DEBUG_PORT80 - %include "Port80Debug.asm" -%elifdef DEBUG_SERIAL - %include "SerialDebug.asm" -%else - %error "No debug type was specified." -%endif - -%include "Ia32/SearchForBfvBase.asm" -%include "Ia32/SearchForSecEntry.asm" - -%ifdef ARCH_X64 -%include "Ia32/32FlatTo64Flat.asm" -%endif - -%include "Ia16/16RealTo32Flat.asm" -%include "Ia16/Init16.asm" - -%include "Main.asm" - -%include "Ia16/ResetVectorVtf0.asm" - diff --git a/OvmfPkg/ResetVector/SerialDebug.asm b/OvmfPkg/ResetVector/SerialDebug.asm deleted file mode 100644 index 8c2ffc66d3..0000000000 --- a/OvmfPkg/ResetVector/SerialDebug.asm +++ /dev/null @@ -1,132 +0,0 @@ -;------------------------------------------------------------------------------ -; @file -; Serial port debug support macros -; -; Copyright (c) 2008 - 2009, Intel Corporation -; All rights reserved. This program and the accompanying materials -; are licensed and made available under the terms and conditions of the BSD License -; which accompanies this distribution. The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php -; -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -; -;------------------------------------------------------------------------------ - -;//--------------------------------------------- -;// UART Register Offsets -;//--------------------------------------------- -%define BAUD_LOW_OFFSET 0x00 -%define BAUD_HIGH_OFFSET 0x01 -%define IER_OFFSET 0x01 -%define LCR_SHADOW_OFFSET 0x01 -%define FCR_SHADOW_OFFSET 0x02 -%define IR_CONTROL_OFFSET 0x02 -%define FCR_OFFSET 0x02 -%define EIR_OFFSET 0x02 -%define BSR_OFFSET 0x03 -%define LCR_OFFSET 0x03 -%define MCR_OFFSET 0x04 -%define LSR_OFFSET 0x05 -%define MSR_OFFSET 0x06 - -;//--------------------------------------------- -;// UART Register Bit Defines -;//--------------------------------------------- -%define LSR_TXRDY 0x20 -%define LSR_RXDA 0x01 -%define DLAB 0x01 - -; UINT16 gComBase = 0x3f8; -; UINTN gBps = 115200; -; UINT8 gData = 8; -; UINT8 gStop = 1; -; UINT8 gParity = 0; -; UINT8 gBreakSet = 0; - -%define DEFAULT_COM_BASE 0x3f8 -%define DEFAULT_BPS 115200 -%define DEFAULT_DATA 8 -%define DEFAULT_STOP 1 -%define DEFAULT_PARITY 0 -%define DEFAULT_BREAK_SET 0 - -%define SERIAL_DEFAULT_LCR ( \ - (DEFAULT_BREAK_SET << 6) | \ - (DEFAULT_PARITY << 3) | \ - (DEFAULT_STOP << 2) | \ - (DEFAULT_DATA - 5) \ - ) - -%define SERIAL_PORT_IO_BASE_ADDRESS DEFAULT_COM_BASE - -%macro inFromSerialPort 1 - mov dx, (SERIAL_PORT_IO_BASE_ADDRESS + %1) - in al, dx -%endmacro - -%macro waitForSerialTxReady 0 - -%%waitingForTx: - inFromSerialPort LSR_OFFSET - test al, LSR_TXRDY - jz %%waitingForTx - -%endmacro - -%macro outToSerialPort 2 - mov dx, (SERIAL_PORT_IO_BASE_ADDRESS + %1) - mov al, %2 - out dx, al -%endmacro - -%macro debugShowCharacter 1 - waitForSerialTxReady - outToSerialPort 0, %1 -%endmacro - -%macro debugShowHexDigit 1 - %if (%1 < 0xa) - debugShowCharacter BYTE ('0' + (%1)) - %else - debugShowCharacter BYTE ('a' + ((%1) - 0xa)) - %endif -%endmacro - -%macro debugNewline 0 - debugShowCharacter `\r` - debugShowCharacter `\n` -%endmacro - -%macro debugShowPostCode 1 - debugShowHexDigit (((%1) >> 4) & 0xf) - debugShowHexDigit ((%1) & 0xf) - debugNewline -%endmacro - -BITS 16 - -%macro debugInitialize 0 - jmp real16InitDebug -real16InitDebugReturn: -%endmacro - -real16InitDebug: - ; - ; Set communications format - ; - outToSerialPort LCR_OFFSET, ((DLAB << 7) | SERIAL_DEFAULT_LCR) - - ; - ; Configure baud rate - ; - outToSerialPort BAUD_HIGH_OFFSET, ((115200 / DEFAULT_BPS) >> 8) - outToSerialPort BAUD_LOW_OFFSET, ((115200 / DEFAULT_BPS) & 0xff) - - ; - ; Switch back to bank 0 - ; - outToSerialPort LCR_OFFSET, SERIAL_DEFAULT_LCR - - jmp real16InitDebugReturn - diff --git a/OvmfPkg/ResetVector/Tools/FixupForRawSection.py b/OvmfPkg/ResetVector/Tools/FixupForRawSection.py deleted file mode 100644 index a4c3799640..0000000000 --- a/OvmfPkg/ResetVector/Tools/FixupForRawSection.py +++ /dev/null @@ -1,110 +0,0 @@ -## @file -# Apply fixup to VTF binary image for FFS Raw section -# -# Copyright (c) 2008, Intel Corporation -# -# All rights reserved. This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# - -import sys - -filename = sys.argv[1] - -if filename.lower().find('ia32') >= 0: - d = open(sys.argv[1], 'rb').read() - c = ((len(d) + 4 + 7) & ~7) - 4 - if c > len(d): - c -= len(d) - f = open(sys.argv[1], 'wb') - f.write('\x90' * c) - f.write(d) - f.close() -else: - from struct import pack - - PAGE_PRESENT = 0x01 - PAGE_READ_WRITE = 0x02 - PAGE_USER_SUPERVISOR = 0x04 - PAGE_WRITE_THROUGH = 0x08 - PAGE_CACHE_DISABLE = 0x010 - PAGE_ACCESSED = 0x020 - PAGE_DIRTY = 0x040 - PAGE_PAT = 0x080 - PAGE_GLOBAL = 0x0100 - PAGE_2M_MBO = 0x080 - PAGE_2M_PAT = 0x01000 - - def NopAlign4k(s): - c = ((len(s) + 0xfff) & ~0xfff) - len(s) - return ('\x90' * c) + s - - def PageDirectoryEntries4GbOf2MbPages(baseAddress): - - s = '' - for i in range(0x800): - i = ( - baseAddress + long(i << 21) + - PAGE_2M_MBO + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_DIRTY + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def PageDirectoryPointerTable4GbOf2MbPages(pdeBase): - s = '' - for i in range(0x200): - i = ( - pdeBase + - (min(i, 3) << 12) + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def PageMapLevel4Table4GbOf2MbPages(pdptBase): - s = '' - for i in range(0x200): - i = ( - pdptBase + - (min(i, 0) << 12) + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def First4GbPageEntries(topAddress): - PDE = PageDirectoryEntries4GbOf2MbPages(0L) - pml4tBase = topAddress - 0x1000 - pdptBase = pml4tBase - 0x1000 - pdeBase = pdptBase - len(PDE) - PDPT = PageDirectoryPointerTable4GbOf2MbPages(pdeBase) - PML4T = PageMapLevel4Table4GbOf2MbPages(pdptBase) - return PDE + PDPT + PML4T - - def AlignAndAddPageTables(): - d = open(sys.argv[1], 'rb').read() - code = NopAlign4k(d) - topAddress = 0x100000000 - len(code) - d = ('\x90' * 4) + First4GbPageEntries(topAddress) + code - f = open(sys.argv[1], 'wb') - f.write(d) - f.close() - - AlignAndAddPageTables() - -- 2.39.2