From 7a55c43b072ec2192d35df5e44cf37eb8be06555 Mon Sep 17 00:00:00 2001 From: jljusten Date: Wed, 16 Dec 2009 23:29:15 +0000 Subject: [PATCH] OVMF ResetVector: Modify interface with SEC module Previously it was: ESI/RSI - SEC Core entry point EDI/RDI - PEI Core entry point EBP/RBP - Start of BFV Now it is: RAX/EAX Initial value of the EAX register (BIST: Built-in Self Test) DI 'BP': boot-strap processor, or 'AP': application processor RBP/EBP Address of Boot Firmware Volume (BFV) git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9571 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Bin/ResetVector.ia32.port80.raw | Bin 0 -> 548 bytes OvmfPkg/ResetVector/Bin/ResetVector.ia32.raw | Bin 884 -> 532 bytes .../Bin/ResetVector.ia32.serial.raw | Bin 0 -> 932 bytes .../Bin/ResetVector.x64.port80.raw | Bin 0 -> 28676 bytes OvmfPkg/ResetVector/Bin/ResetVector.x64.raw | Bin 28676 -> 28676 bytes .../Bin/ResetVector.x64.serial.raw | Bin 0 -> 28676 bytes OvmfPkg/ResetVector/Build.py | 53 +++++++ OvmfPkg/ResetVector/CommonMacros.inc | 16 +- ...etVectorOldTools.asm => DebugDisabled.asm} | 47 ++---- OvmfPkg/ResetVector/Ia16/16RealTo32Flat.asm | 137 ++++++++---------- OvmfPkg/ResetVector/Ia16/Init16.asm | 48 ++++++ OvmfPkg/ResetVector/Ia16/ResetVectorVtf0.asm | 43 +++--- OvmfPkg/ResetVector/Ia32/32FlatTo64Flat.asm | 19 +-- OvmfPkg/ResetVector/Ia32/SearchForBfvBase.asm | 50 +++---- ...ndPeiEntries.asm => SearchForSecEntry.asm} | 94 +++++------- OvmfPkg/ResetVector/JumpToSec.asm | 63 -------- OvmfPkg/ResetVector/Main.asm | 106 ++++++++++++++ OvmfPkg/ResetVector/Port80Debug.asm | 28 ++++ OvmfPkg/ResetVector/PostCodes.inc | 25 ++++ OvmfPkg/ResetVector/ResetVectorCode.asm | 35 +++-- OvmfPkg/ResetVector/SerialDebug.asm | 46 ++++-- 21 files changed, 478 insertions(+), 332 deletions(-) create mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.ia32.port80.raw create mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.ia32.serial.raw create mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.port80.raw create mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.serial.raw create mode 100644 OvmfPkg/ResetVector/Build.py rename OvmfPkg/ResetVector/{Ia16/ResetVectorOldTools.asm => DebugDisabled.asm} (51%) create mode 100644 OvmfPkg/ResetVector/Ia16/Init16.asm rename OvmfPkg/ResetVector/Ia32/{SearchForSecAndPeiEntries.asm => SearchForSecEntry.asm} (69%) delete mode 100644 OvmfPkg/ResetVector/JumpToSec.asm create mode 100644 OvmfPkg/ResetVector/Main.asm create mode 100644 OvmfPkg/ResetVector/Port80Debug.asm create mode 100644 OvmfPkg/ResetVector/PostCodes.inc diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.ia32.port80.raw b/OvmfPkg/ResetVector/Bin/ResetVector.ia32.port80.raw new file mode 100644 index 0000000000000000000000000000000000000000..b136e69af9ff755c44e7c37a456671f1645bd0eb GIT binary patch literal 548 zcmZ8e&r1|h9RE(^OuKZLr8JlDAnP9VAh?N;nPr;dp>Pi&i}xJ|vC#1Ooz{c+h4=mOzMt>s^M1Il>*j)9NC6B3 zfG`HBm9l;=Es=;?t;35QQ{+3f(r*UXbMl2+9mPuT9@(W<7QsM1vWi^jBmu{9@VwCW z%V=zq9}6MaruQMVIgLZZR-#E0-}h`m=u*3+;!MPP0*( zY^C3D8j_#PnzUwKGCteZRhcAt29d>pB-u7!M?fxMTg5}7dIzCxo_N1estcu%bWTYl zba4CCtZm6D^F}F6f5eQa{ZNUujq&V1{uQ^B7OYrBr?(!>5LH_)+>x*tnw}xozgs z`zi28ROHIky_=z}`w4KWPTNeC(NXH! literal 0 HcmV?d00001 diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.ia32.raw b/OvmfPkg/ResetVector/Bin/ResetVector.ia32.raw index 76286b9fa3c49e96543042703f424cc2004062d4..f772255004a366fef2b693f0e54a4c2d2c93ccb8 100644 GIT binary patch delta 319 zcmeyuHid_B#rvC5CG2=Q-+6-r)odx$hX1nOkqJXvy^@n8v4 z(ba|uA?8xfmr_8Ltp`duJ5Rhk1XN&npz~Pkw^F8(e=n7RRsao4XPx|xG28!TAyD?$ zZiWwiw|B?{27aXnX*)O=`fl_c=zGxjqVK}X zY@iJj>=_DxYCwL2fJw|Q0sEZ-UUTnv40z3!)_DZz{FmSVzl{0+QuW{e|1Yb6MCXJ5 a&tU37^y|wI9?(37un;!}e$Ll>kmUi<@R?5l literal 884 zcmaiyL1+^}6ozLz-84OAsg;CMVOt}_L%}GDB^HYzMM1HkgivWAmldz;F6_ZW_7G*0 zvMkC*3nD}!wN{jj)xlGZrtSKsso0&113UA+H}n2^^WHj+ebK7poUD6f07!AS@wX?k_ETZ{BQ)t*FN3~wG{{pNXE~N>|95SN zJQNU0Hmz0bgVj>Xv&V#ndV^rNaZ=3}J#AL(16$3;+ofD|vo33`^7%pYqwo8u|FzZ> zUT8h)+fr_z(CO8N3LUH;aUXB{K3Rq+2#;E?2)rJ-HRg1?&K_&gS|X1?qqwO{!K_EP zEU$2!;W*8)OpE^iG^e>3Uh@LCFH>@>oB4Gy2FCc(&AEbsC2go2Ge5CXK+!IWtY~T` zzD3@HOY8-*>WX>#(u^L8Eac7z0IBSZegLP#Vghy}3)ezN8{{CEW@jL&p0ldW?SS5wz5cgZ`;&A(oeGdlf7j3tyIH&KD-j{8R1ZTdBcq=3H3c#fs!oRB z>e01e*-vm!KF+aBm1-E-4coKV?3TSk@*s8=IWWWT@33^)fKniIce%UX-&=Wp@O1a= b{)s%>B8PUBnA$%*b|!mu3T>=*{eR~_^5&>m diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.ia32.serial.raw b/OvmfPkg/ResetVector/Bin/ResetVector.ia32.serial.raw new file mode 100644 index 0000000000000000000000000000000000000000..7b17db95e390c7cba54e464a7e4cf933fa5eda41 GIT binary patch literal 932 zcmbO*VZwx6znM3*zuWbbc>}|{T|byNFuntcu)llh%4~Q*mqCDm!Ipu6;eU~3V}(G) z)1IEv*Nqh-wp}v*rH>jbBxag+CYIi8tdMCvtb4iiLSuyrP%%U4@y^4{5elUTUitue zX}kV1zgeMB@;wb?e$qQsz5yDa7md&LZpVHg=sf!J_y7O@JCCC3MmNn6O*f`#FDscC z7z}TB-s^mk)*WlWc%#VeB{R^K4n=mY2TH71*@5gLW0fCW5#rwtE0nzG_7G`&2(+1j z^JK|w#)BnHMOPatgqTY?U(N!mY&}rQ*?HpSA)o@o1D(fOzm+_q@(;fW zM0jyFBgkbX>8uh!Ct98;j%%o37ATSGmS}to@(Iw-KCB==7rCnZd3gsY#L5EXbskP@ zwD658W#iu-VZ#XIScgTG3Nt%%uxbEh`L{>2Y2J7#3S>4~2e<+wnSB^Z)OV literal 0 HcmV?d00001 diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.x64.port80.raw b/OvmfPkg/ResetVector/Bin/ResetVector.x64.port80.raw new file mode 100644 index 0000000000000000000000000000000000000000..307fc666a529c7d0765005b5bb88d7d937cd10b8 GIT binary patch literal 28676 zcmeI*_qU~IRlxBbLPBDjs3@qYA);bIDK-RjD}qr`v4Du}vBlnEM#sKKjXHoaVh77( zZ>VD>g387Kf)xuI#jzQ0EZZ?PU8hR!di<`}1oX|75Slnz5<1#&y zi^a|6FkVy76u(CZZ?PU`g$f8i<`}1yn&v{#o}gj828XK zxmet64&x2=OfD8To5Oe`J(G*Y&E_!PSkL5QakDv$%k@ky7B`#2xMv*J;rh?yVsW!M zj4Sj^E*3YN!*~-tlZ(a8<}mK1XL7N)*&N23>X}?DZZ?PUW_l(Ui<`}1yt$sq#o}gj z828pQxmet64&yEKOfD8To5OfZJ(G*Y&E_!PO3&nCakDv$x7IVcSlnz5<34&O7mJ(C zVZ4o=$;IMka~N-{XL7N)*&N1w^-L}nH=Dz_pPtFZ;%0Lg_t!JISlnz5;{kdm7mJ(C zVZ5E5$;IMka~N;0XL7N)*&N0@=$TwBZZ?PUj(R2+i<`}1ypx{E#o}gj7!TAlxmet6 z4&$BmOfD8To5OgJp2@}HW^))1)-$X}?DZZ?PU9(pDhi<`}1JWS8z zVsW!MjEC!)Tr6%jhw+|zCKrpF&0$=rXL7N)*&N1u>6u(CZZ?PU-g+h%i<`}1ypNvA z#o}gj7?031xmet64�GOfD8To5OfNJ(G*Y&E_!PU(e)XakDv$N9vheEN(W3@d0`! z7mJ(CVSJ#T$;IMka~L0_XL7N)*&N0P>zQ0EZZ?PUC_R&l#m(k09<66`vAEeB#)s&c zTr6%jhw&IalZ(a8<}f}~&*WlpvpI~%>X}?DZZ?PUVR|MPi<`}1e7K&;#o}gj7$2c$ za6u(CZZ?N;wVuhv;%0LgpRH$dvAEeB#x;5-7mJ(C zVVu-6xmet64&!t5OfD8To5T2AJ(G*Y&E_yp>6u(CZZ?PUd3q)ni<`}1e7>H^#o}gj z7+;`gaX}?DZZ?PU6?!HY zi<`}1e5Ibr#o}gj7+^-L}nH=DzFf}Y96 z;%0LgU#(|yvAEeB#&voo7mJ(CVSJ6A$;IMka~Rj_nOrPxHiz-GdL|c(o6TW7QP1RJ zakDv$uhTQRSlnz5X}?DZZ?PUV|peRi<`}1 zoYgbASlnz53Sv?i<`}1 z{G6W2#o}gj7(cIPa1o$;IMka~Qv>XL7N)*&N2N>6u(C zZZ?PU>v|>^i<`}1{Dz*%#o}gj7|+);xmet64&yiVOfD8To5T1mJ(G*Y&E_zEThHWT zakDv$-_bLw*$;IMka~LnyGr3sYY!2h^ z^-L}nH=D!w2R)OE#m(mMFnSK_Fn^d_EN(W3@sD~Y7mJ(CVf>Sx$;IMka~LnxGr3sY zY!2g}^-L}nH=DzFnV!kT;%0Lg|DtDdvAEeB#=q*BTr6%jhw*QECKrpF&0)M;&*Wlp zvpI}c=$TwBZZ?PUN#I0ue%;Q#g#I0ue%;5Y~VpUr{8p8z_+Qw8`yKu~#AOi=IsB^O{M8RUed@APfBA$boV@k)sk=Vparb!t zlYe&l)ZM@3?azGl$=^SH>K@nLc%R=s`TWzT?sYggPX5xF8!vp!}4j zaad=beeU1RpFe-**=K+J<~sMh3nK3K!ZUw-=9a4-{}K1S;HIk|e(u7<(RuZ|T-(>Y z^F?<#+`jq&_j=jm9&@*s-gx;nw>B)=FzWC<4=9Opv{_s>Edw8nDgMPwAcRw8Zz~_GU zN7kteFT3XTAAk4Le}3B|9-jLV7v1*US3m4tFF*H(hYwwJ=fk}-H(qu6o!{&s}u5 zf5YJ|&VAD1ac+n?fBwW3H=VeAPCV_Fi%wiIKU)!f;{Jzwmz=ooiOc(N5n*n)rkx4cGV4Ua@d>0kypLwK8HguiyQLd z!;83L&ffp#y6T2Y;<}rz>+9yaTdsTlxlcYkz`Mpe9QNN&n!|^0U$_4+`xAd7Zud$2 zpZA~qWB+mZfBKAff8?#N`iysb>-zZ`QegK7Z~}=g+<173a^NyZ?_T}z zlvmzxcz64+=dQfxbFRGSv#-48v#vZd=Wjl|lv{7SDkDu*Jw)&nJ0tn5H`k+I5;t_bmOhZRa*bbE+2J_PDy z;5=D!oAF=?Q_$g&-l7BCQfmQ$wOJ|+@ zFE^X@Wg$>@a!J0Hmk^Ml!SHe&P~)%N3?KS#?+*B%#?L68wnG`{0Dh$dX|GIyN(2~o zIIuA=@GCt?+rh!mccbq>--EsveHUJ)0X5n)B!G<5%J)jx?-cNwd%t7AYqqq`BS25Q z{Qm!C;{TUl|Nj5~((50PkOivr*a0N|12r;uC?4}rJnEr%#G~`U|7Q~>On7}5NB{vy RGAzW6fuHmB8i)vl1ORN6rKJD> delta 730 zcmZp9z}WJDaf3*X+OFTs8`|IP`pLY3;oYtu%o`ZrfkfEfygt5`JM(+toY9GK<80ZF{gK^d^a?H7#d&U9p~GUe=p}UGB6n4 z?!4D|zw<>}cdP;9jiSt#%s?9*iV|B7l*F>KvjRCqVUzXqWb3;kgc^Rclt?xFW-e9T zrS|v#|Ci^1vOsm>oyT4R-ORAd8YH+2BFNNvyz|7%`Tzg_Z~ay(fa*L&H0K1P@mR1O z3&*Od?!5EPJKr1+jW@^j?|ks)NG=vPo5Q&3@`FRq znOrPxHivOa&*WlpvpI}+(=)kP+-wfxYCV&S#m(k09;s(?vAEeB#-sF1E*3YN!?;Gz z5EN(W3@fbami^a|6Fy2$o z>X}?DZZ?PUJM~O17B`#2ct1Upi^a|6Fy3F!zQ0EZZ?PUF?uE!i<`}1q@Kye;%0Lg9~*~pxc@V`Slnz5<5_wp7mJ(CVLV&U zzQ0EZZ?PUiFzg%i<`}1e3G8Y#o}gj7@w?XaH^#o}gj7+;`ga6u(C zZZ?PU=k-i37B`#2_zQX_7mJ(CVf;lslZ(a8<}m(}p2@}HW^)*SSTr6%jhw-=dOfD8To5T1!dL|c(o6TYTT|JYF#m(k0 z{+^!6#o}gj7+nuxY-=WKhrb0Slnz5<6HDhE*3YN!}#ZV zCKrpF&0+itJ(G*Y&E_z^RnO#NakDv$yYx&h7B`#2_?LPn7mJ(CVf-sSlZ(a8<}m)X zp2@}HW^)+-M$hD8akDv$Z__imSlnz5zQ0EZZ?PUAM{Kv7B`#2_>X!f7mJ(CVf=ue$;IMka~N;XGr3sY zY!2f;>6u(CZZ?PUpY=>G7B`#2_(46Bi^a|6Fn&nSzQ0EZZ?N;qGxikxY-=WoAgXB7B`#2ctFqOVsW!Mj9<_*xmet64&%S;nOrPxHivOh z&*WlpvpI}k)HAtQ+-wfxm-I|77B`#2_+>qli^a|6F#d<0$;IMkb9mT#4&$)@Fu7RV zY!2gB^h_=mH=D!wpL!-2i<`}1yhYFCVsW!Mj9=9=xmet64&y;RlZ(a8<}iLu&*Wlp zvpI}k*E6|T+-wfxt$HRGi<`}1yiL#KVsW!MjJNBVTr6%jhw%?q4;=S_<34cQ z2afx|Z|;5I4Svo)`q2A$T!-U2T)wXzuY==taJ&wV-v`Hi;J6PQ_krU+aNGxu`@nG@ zIPL?##rA>2uK+lX;|d&C;J5RcT7hQk0Po8&}ow?`j zr+(oZufOeA&s=`}&%F5X`Hff1A9Kb0(HHN2^Tr~K>qp<-w|(T*k2*ZQ_2wr(_|g|W{w?=j zf7|^pyXA4`fBNv1uheLe&>%ZvJ>fEX8ZhPOC zJ>mS%UOtngsnp%r4w}=KM!|{EN>%^7JcT^ifwGCeL`` zi_gB-sb^nv^-~Uid-|21^2iUq@8rD?56?g2`Oi7L$=95E_ES!-KFsev{E3rae#fOt zcgI}1boz$-PG3K#@45f#(>KhwS45wF>S1=x=^Ia9--ie9fBJ@g(@PG|e##Y>#?!7? zs}H+k{(pEgKk%vum)C=rudbUezU%C151T#aVY5eH{PkDGFWvFRSH0lUnbTK2{>> 4) & 0xf) + debugShowHexDigit ((%1) & 0xf) + debugNewline +%endmacro + +BITS 16 + +%macro debugInitialize 0 + jmp real16InitDebug +real16InitDebugReturn: +%endmacro + +real16InitDebug: ; ; Set communications format ; @@ -110,5 +128,5 @@ real16InitSerialPort: ; outToSerialPort LCR_OFFSET, SERIAL_DEFAULT_LCR - jmp real16SerialPortInitReturn + jmp real16InitDebugReturn -- 2.39.2