From 09ceab095f7d8f2ccae1e67a6f922b83bdc4ede8 Mon Sep 17 00:00:00 2001 From: bzt Date: Fri, 13 Dec 2019 14:15:55 +0100 Subject: [PATCH] More precise error messages --- README.md | 10 ++++++++-- aarch64-rpi/bootboot.c | 12 ++++++++---- bootboot.bin | Bin 11776 -> 11776 bytes bootboot.efi | Bin 94265 -> 94272 bytes bootboot.img | Bin 32040 -> 32144 bytes bootboot.rom | Bin 94720 -> 94720 bytes x86_64-bios/bootboot.asm | 15 +++++++++------ x86_64-efi/bootboot.c | 8 ++++---- 8 files changed, 29 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index d780cb1..85bc122 100644 --- a/README.md +++ b/README.md @@ -364,12 +364,18 @@ BOOTBOOT-PANIC: Unable to initialize SDHC card The loader was unable to initialize EMMC for SDHC card access, probably hardware error or old card. +``` +BOOTBOOT-PANIC: No GPT found +``` + +The loader was unable to load the GUID Partitioning Table. + ``` BOOTBOOT-PANIC: No boot partition ``` -Either the disk does not have a GPT, or there's no EFI System Partition nor any other bootable -partition on it. Or the FAT file system is found but inconsistent, or doesn't have a BOOTBOOT directory. +There's no EFI System Partition nor any other bootable partition in the GPT. Or the FAT file system is found but corrupt +(contains inconsistent BPB data), or doesn't have a BOOTBOOT directory (with 8+3 MSDOS entry, not LFN). ``` BOOTBOOT-PANIC: Not 2048 sector aligned diff --git a/aarch64-rpi/bootboot.c b/aarch64-rpi/bootboot.c index 59da7ab..5470b22 100644 --- a/aarch64-rpi/bootboot.c +++ b/aarch64-rpi/bootboot.c @@ -1218,8 +1218,8 @@ int bootboot_main(uint64_t hcl) /* read and parse GPT table */ r=sd_readblock(1,(unsigned char*)&__diskbuf,1); if(r==0 || memcmp((void*)&__diskbuf, "EFI PART", 8)) { -diskerr: - puts("BOOTBOOT-PANIC: No boot partition\n"); +gpterr: + puts("BOOTBOOT-PANIC: No GPT found\n"); goto error; } // get number of partitions and size of partition entry @@ -1227,7 +1227,7 @@ diskerr: if(np>127) np=127; // read GPT entries r=sd_readblock(*((uint32_t*)((char*)&__diskbuf+72)),(unsigned char*)&__diskbuf,(np*sp+511)/512); - if(r==0) goto diskerr; + if(r==0) goto gpterr; part=NULL; // first, look for a partition with bootable flag for(r=0;r=np) goto diskerr; + if(part==NULL || r>=np) { +diskerr: + puts("BOOTBOOT-PANIC: No boot partition\n"); + goto error; + } r=sd_readblock(part->start,(unsigned char*)&_end,1); if(r==0) goto diskerr; initrd.ptr=NULL; initrd.size=0; diff --git a/bootboot.bin b/bootboot.bin index bd0bd4c669fa51b5935272601b1865cf0277889b..91aa6a8f5a25adb8b36bfbd9433a01da25f9bc26 100644 GIT binary patch delta 2219 zcmaJ?eNa@_6~A|v{Q`Cu5q-OWT4Wo*!c#reVlvcPDM9 z18=huSso?mwN9ELQ()C(8f{Is(?Sy;i?(a&#EwIzj)vBcs?A-ui6mG7wQSD?wKH|5 z`^SCfp7T4u-?{gmdso^jZPk7I7Ym~&QOW_G3)dWQZ@@NtbAZ8{2Q}_{R=jd6z82uj&h&(QhR1ibDEvC9Wh_@CucYBPpsj?rn}& z{@|c*s)d+NTw`iZ*!#D8ymFqS9cn@3!s75c2_bPP1tIjM_^#wS5(=vtan?7T(T}jm zjY3M6h^I-5rUciJw=`B5f2XnK9^-(^^RH;J z86kQQY@S#2dioR+cqNxiX|`&+I5WYyFwRHhFe)Hb*fhEkk)n!5`1(|JO`>Z)X z%!Ruzc89yq-|7dqT+qeckKf$%9N!S!4p@3N9*=is4sacrL9V}%3-)n?xULf>qOu#} zk%Y9!1{Inl&Q{d&EqYylo1_`XhZ1&K|Up12hpuqm>!kGOOl`Xew!=Jx&M&$?pVNbc*b%Z@Ua zCxtf7#^bzVa8UiMKyzmmG=PxLwb5N`^CT*7I1!5WlPY~R7Dzx}w4~7Is^7e#(VHsz zS`&7?<~8_QllQ*-vd3e_mutP3l%p(xT+~~$-ZYGQ4jaOrgTWq9k}I<$IKH!*Mv`n; zq&Wt`0kYEYRpX~BaQoVlkjmU%NOl?Q1q>d1gAIpZ;KH5N#$Yd4qQ5N@c~(koUn@7a zUnajaWIn@C5zX8=vc=YC#%ywRv7f5AF*%pzOkKws#xf7Wa=jfoNv<}jHB4nBs;(MF z2+!A*l9-h|rxR?1SpOkXn&_;t!|v32uSTu#<-$_se9!1a*_}ReH3dEvP<+toC9?Zn!^A-JnnZx&kj(SU4dRB+st)Y4;a4aF5o|afmeR)pf5tOHFVlsh4C?xkQy^dcUWY= zK}+rk^l9?%)ZU^ClgxF}LHA7x@DhXvQT;ILgI?#?Z*-hX@lV&oMb0ga=8@A2_AHRN zN=fyKdQeiW(Jpw$d!m0I*_hUhyF>4%Wnx@NM$;=mN|V7EYKmbWaL=u0$x|66_;u2f zVN2bWg-{Rtj^{eR(vbi6d?WdJMyb1Zf>i)-*ViZ5+vTL|Cj?P>u@p{b^#px(BKj#t zsDXOtU>6;9@q{pJE01UpoxHs^$D70}_Z-wjvNKmyOx;#&

34ioOUK@2m!fE+Y&n zkSYpI;+n(1hYRaTnF*O3j`rELoU7p%_*sR@6$YAA`d(d=j7+YCOw!5?`>Hr9bTd2E~D zNrkDpjG@(KEFSB5?2wJjaVGGkKOzk28OuwIWsdoRKT<@6HpAq`QYG(UfD_5;tWp1y6H$2w+KR}Qsm6oOW6SCW~bkX!bLH07F@(r@_ z6Zp$uU*?hoO-q)G!g zkVo6u{TntN(S3Y1VAL?snEcwwhX~S~lg$YB=PX;p2>g+Jbs0-!>fVciN!gwFh)FHG zlL8kYdyZx58ji?y78WG2oTt;8ASp0;B5?Zn+F@@7TSOD7vaYkbi{PKnTTFMU5gI6m z-r&aHQ&EY{+~h55wuJ$ZS4Z!{I%7FfC7WZ95sc7z>+={pLnV33vBO))QboBJ{S+*E z0+PhwD&RZyGuCDwz#Nv|@$qBWB>Bmrzi8J&7f1JmcH54t@D`G>_%rhsxEErrH+F_y bgq|LfWM6@8p$hvZow|C{w?e*UJ5~PyoGnjA delta 2144 zcmaJ>dr(x@9X{tS`(oK$9gZymYBn{Ol*6ZTn)Ip#F+1#;+M{#jy=Zf_jV$;R;+pF5*?(y&{szwetsf zLH&c5zNr!8dTF&~M^fvBJAxYFX}3m{_=q&RHh_>cl8O-eS~?P_+!u~;E!bXN96N<2 zeiEkG1Ad*ly*PFP3+gAto3sYEk)269@XO?U(g3Dpr?wE6kzZ?_(0-_OXAknAC4Upk zu_8nVU@Qo#!9brtqM(||tah_*H*dwZGV&wclJ?y|PJDi6OK2$@UD<0vC>2@V5zm}8 zC&EX1r+Xv4r>_hFtmN(H?n2OSW2Ngt>r#I0YH+z0?{iel~~mHKYOJ_wPu>lN}h{Yufs7giuH2lQng2*(j;q#j!)A+E9zPk{&~TUVcaA#-~@c_|v40 zSCgLG<2QD^n$r5h3$mPw|5@k%RDH7;Y&yxb!D)ZPI4SQpM&$nC05~ZX_5d8;gtnff z7+u71hq4BU|i7TimVGt_)I+pHi~foY~7*%TyLfSlQ@-o21lQG+O2|7SmLX zB7_&}N=>$>%=--2LvE;(_>zm)=fdvP`7gz?pywljiiJC)mz0`CW0z8)bAa0eFO8NJ zw6IjF`8JUV&5a~rmzB%|7K$$3x#ai!#vttPSgQMtG^7B3lzNgGm(3;;^smqe>Qi3YHY?KC$%JK}W!XH` z?xp8$iZo7sYHhGzWc=cr!2dHeg1W;?UxH+J_>{E@gOepKZt1zfG6P;(c0;5ah(7(T z}8uFV=U(Mke<^_+^ zGc)W_DyEGyqNFy$@@e%9ZJvq!8zZ!dw$Ic4;-v*M;;6ecszvnPwel>#Nl>qNsh#B7 zR;|G^s=E}S(Cz%MLgpJ~ps?2rjRU4i;&y5E;7RxsJy z(b5HM8^ahebdG87RGj}6&p-YmOw(wYyysgS9jYVQ4wvac2nM9qu^gW!t&Zg`jtQLw zrm#sdpN4+EK1W9saqt?PC4X`_(pY*NBtVwU(dk={*6b z5~xT3fMi`y?;lw>rayBjWWLKtQ_7wX{+FTbc@M(bf8m+XxH9cav)HOSb97wP{Cp>n_&?CyK@W1`Qfr9 z1=#fbvW4IKEu@fLE~jboVH_g|T%YJ%a8F}D54XDC=kR*s%Kg%~9&Wx==Z}w*EYB*O T8gB43>BH}?Xy(Z2mD&FRkBTq( diff --git a/bootboot.efi b/bootboot.efi index fd8f328233ae69411bd861a2fe273531816e3973..cbc20c4cd493dcc49ea179d06646e89d7a89aa36 100755 GIT binary patch delta 26244 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 AjsO4v delta 25992 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 HiO&BYsQ@mq diff --git a/bootboot.img b/bootboot.img index 21a50e702a34506a018ce6968b5aa5215c26e7a2..93c040ac7252889067809f1f233967d6e5b2175a 100755 GIT binary patch delta 6661 zcma)A4Rlo1wch96Niz9S^9Pw^0`rrQKSDrA$P5JLW(GzOf0KF06Ewe4Y^)eUkwA1N zlOWcqEyF=j;FS=tI;pQk5~jRgN|)=c zH*3v0_nf=W-uvvm&$su!FJEQ5uCZg8OqY>Gnf+!KiRbf}{z|t<>DW3xKlSHW{5W+xlNwC@-%9t%`ZG;B3U(9Yf1h?W?FqL^q^NSH zqUK37Fw)GgPIs{8{zX|v#+vzR!w&^XG0~af$CPkB#^UesD~3YLb8fW&vvUR|EZZpD z-Q!m47==IVR>Jx!3cvUmUz(lAUgwS3uC%>wHJ_BQ6EyR%hdskjWSeg8aH~a_-Ij?R zjPY~X$8UPZty-~^iqZKP@6EY;2DVsIm9T@TMfM%aF_ly6Nk$$Es4P$On~jw-!2Bqf zvrAfZRg(Qf-8xE>&c8GYibi84+spSGP1#YNZk0(Cc7onPQp>8Vn&;NNe8`x`9^qGv zO;T4LUz=-{B6-}KyG5dWK9*Y}DfxWWjMX|{e(*c|&KV~D=8OtyFrQz;8qEq;N7pvb ztdNvh{Xdy$Wo!%ooyo|a;vbv3;DATXKaoxqaHC}=UM#W{TAT$zMenPTh%z_FD|Y>t z+P=1U3P$A2l0BMM@!A&dx6GFOv-r=VTYhJ`4;u@tE%5Me>*B;+ZZ%iu8`{5xziZu? zjTy;Gn3^e_aud=`I%-vt$g^h)e=u*O&?GO9ZRVqSg_6IJ8}p+&E)_R^c%j6Yr4u7e6j-*m~SDbH1e*dM>M&ZY;GtwK0!ugTK zf4HFjXz0|0>+D0{{^jV4o6nB!Fq|KCcKqi7=ftwJPQ4UxO*qdsVcvv!H^~7Z#fp80 zNV@nNP4h_5I3kg!t}1ntPUov>Ao4h?QfqaRucoFhSHCH`u+C81ZKiwcQgpHTBe}KR zshI1e*nIQM+HO7F>+f(TpC@096VG*|YjN)C&Oyi?>wd+pc0=()oE2mlExMfaZXAbl z4YfKP$uExNNlmZDl~_>l5Ub}e6cl=`aa8`r_ERqp%60FW!E+h@WImN+0$(zB=lovN zvV);^1|^9-X++ui%k>skSY!j}EM!tXHl3jd_2kUhw!7q>}L2@e$iG?Ba2&$qZ$c_(+4yu^0$k4sL2;KXbb z2F)Gn@Ra)JfUKtG%|-fDz-@vmG%EyMLLsql=c69;WJEHR>s%b zmP*ZK{D7@ddb5mcwnb8J8DDJQf?0pR{Xdv=u8g-WE|Bu(_8(ZhUXq-1`{kvZnB7BRE&ker#=G@@NGWC5#tpC@JrvM0y-(BsLiY3mgudpuuj59Bz z*{urC%FI{u`C2Ko9Ny<|I+wAZ@kH0E`cvt?8ipGXk);yh1ws^`L^Mad6s8P>7Qn}^ z_YVmW>el&(bQq@*eTqGwny~Mj=BsgG^vC&!1Z#`WtqR&BPrB6|Sm&>}nr{tV*7o%z zQh5fjPDEOpG%t9qEiN>1Qw%*ifF7$qzaC||B?tMEWrjN&-Rd&Ea+L<$Dz1)-a8#>P z$Rn719u3iXQ}FX$FsPnlFs0r>K6t7^)qdsuaWmI+gp6CZFxu>_9h_K0w|j~ z$!d?^KE>)euu9?&EcYbPlHhvmad*A_u3U$v6#vmB*pH?WUZD(R$Fu-!Q=7uw-;-Yp=Esc^EpDE3E~ z+rU~ozegVS7ZUJxhTs$+%51OYX=I$#n8^iwR<6>{N|pAprIhZdqD{U7*oV2b ziqfO}6vb`;jU|`Tb;}@kg<_A#drOC8>;;g&hds+EKiOusC3kmh=k?FQP7?{iYqFuw zP^bhNAVb*3Uar`!rHZ#5S2k!jQF*C2+6gBr;#tP=rR6tmVtQ1JY1 zq$)*9yAb9qSK42~soYRNQ7HKXScs4Shcr{E$qodT1_Or$4zk=%lJ3!r)VVnt%T- zSo{8QVX2(H3vyQ9RhW59PUst#^?e`6)BFCuyefD_j_*^U;D>T%-}|^lxj3XL1tGB= zp(##0f)f`f#7=D8u+diXaO}i&OloP^_SK0O%vRcS$zNlxguhKnI77)uc2I6h)vkj% zZBHtEcqf(r_NZH(gV-C`;8rinNquUQJ~S@NP#~!f=FdF4t!?Wb$rv~&8!tw7kk@m5 zZer-sBzi}aaxZ?6l@z+R``~`Bmhjn!#^g|=mJl3<)_-%Pgq-lR)AwvnqPSRjVM6mj@arO3k2SeMYRfXz z3IahrF*M%Od+QAlT6Rg>wS$OI%VQcnnA*i-H2Ap8LDDFCr(DG$I~E zFn1s4Gw-~+7*3IJjT@)a0O_DIMge0kQtaLi)LO}?4nfoQW4`y!1=EplXu=U>|FwCy zfOT=h_w-iq_wJnL{b=;MF0q>(`F6Bbu-7+GxdFO}xzNktN(*LVTm+BagEGN!I$k}v z4O#%b5JGBi9Sw-Q7MDlCEAPdJ#t;fu2zVn1x`cSU@}4^+a=Jh)Uk1I_14cLGChPng40~egFfqek z_l7WV=nIrmzF0;v6~!{j7R{?=IVKlz^P*|yBe>D2Q|xu6QY*Wxd0>Sz{|t*6ezjl< z6SET(`vC|uAg&{FcF7CCMBk)O6un|MnW^w%Q~lTt$DBFmSgzV#9)_A`lVTf$*a+_LIUVi6vvBS) z!;x}8CzS~LI?&N1o!6TH{bgV)n2Y#Y4V#FtMsyyFrf%zkDZ`7@eGfMOU#VL-LO4Nz z6P6Vzc4Zy~t4kGorbf zx*knrrGZX_uM?FYkk4*Lgwm~yw?-_8q}JFPyqMy9b+nz z7AePNof2-A45t~c+5{)9XWCiCr9#jU|TE#E{uco_xwUttS~#%hJ$P zVK0R@k7JVp>H7%t=2ot$$7#|!i)mTc*2J)Qv6!%~*mA{5}sB_O)_qf#_fKeT4 zUcF5T>+o%)D2p$xy^FobpRHZ6niVSTj=xB)hu_yctW9ZecwZ|wLc{H@%BVXQL2CWv zg)!p&h<0d*A$>5J1+Jk)Y=d_4Mx`C7on|6qiv^)DcoY9*%}lSjb0R9dDb#9)b1q~Z z+7IYf^AR~@iwn$x<1Emp2{}6M7CaN3o&~@~GZE@U#3UiAr=ml~9ymi7Lqx~T-w+)l zG6aT7kOjQWSIr$1LKSjvqnXMRkX3Ymp$jO7&LO!|3I(543b@HL&09oDyNRW=IBC_k zl@{_GL7&kC`e-J?_y&_N4$dG?gO1+W@M)cGgydCgDL&cs1#7idDdC1V@@zm(GEHNx zhriG~PmAYUS!*?(_2N03wGJbF7U>};QP=s<~`pD=AGID&T66}gsqFfCq#@-^<=Ole!{6wK@pdz(t;*PVDu1Gz?Xy8My5*~qX zpF*%BsSG717Nwn>#{&8|(WXd!Y-{oOu&gg}kbE%@^2F_iwvM59A+Ql@(eqFdf+hR` z)_sFt&Q*Qb80n_*Zk-Z*15Jrg6dRAxU{&zNziImlPV*D@1tix(?pib7+f@=2A6TZG zN>z5TsOV)-3cwL9&oP^1qg5-L6Szi zXGQy)71hyx$&!w4;0`9bfMW!oIGbbr(#h1X`lVN|X<5}NPTS!pw2FT$T>c6fsG#iP zgXu8(Hw$=JTN-SHKU4_<)LJZ9ca+Aui7M3A7Sz>N)YbktQmd5QI%T%15{ySDC7PTM+2f5$c9DQk7@%OP>qzpYB~VIM}ih5 zpP(PZ^X0qsq08tBE}<(BMft&P9b4N_l-os7j*oyJts-?tGQHyhSiUD^UyLkN?0??< z!hTuKmjj|W7ln7MIM3)4g?Ud39dP=d$@u}G?W0xv2WxYp2rBZus1PsTy&|+61`%D3 z6`hSFQ#m@CV-d*L@2Cpa=>R^ED}rB!aRgFYH*ByyG}(H+K~l?MVXVp4YX{Dmi?&Nb z%LP@!J;0lFlLlKiro9Ha>7il>l;9of7g~i-WEM}mKg(+*L!cIZ6MeK;HG=9KiY@{8 zYSW4k(t4I?kWepXS@V@}4QQRWI73@uPA2P7OGB(1s~Cl!0l0j*q=hv$(sN5DrM zN$}p9N}(j70eBREhd>>RvXGk|C`cT@XZRy0MxFKit_QN%BmL_ixF$(Qmh?B(e9(qQcwy+r)5x>H38Dl-us{ znAdOo?xW2~ME#~m-cFF#Y~&xeEtFPl?6+<%)2AJK0-=E4>yzUkZ|KPKdY+7}u9+O` zC&$MoNAktqZ=IZXOpd}a0= delta 6642 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 R(&L)+xIR5T!h3#X`9CbSH4^{; diff --git a/bootboot.rom b/bootboot.rom index c86d2c19665a69f04d867bb9192af5246d97e464..fad245dda943f92f1fd666bf76bcfc8d6ecfe77d 100644 GIT binary patch delta 25831 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 I>=f?*0Qw__Z2$lO delta 25698 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 diff --git a/x86_64-bios/bootboot.asm b/x86_64-bios/bootboot.asm index 3742309..f28805c 100644 --- a/x86_64-bios/bootboot.asm +++ b/x86_64-bios/bootboot.asm @@ -1040,7 +1040,7 @@ end if mov esi, 0A000h+512 cmp dword [esi], 'EFI ' je @f -.nogpt: mov si, nogpt +.nogpt: mov esi, nogpt jmp prot_diefunc @@: mov edi, 0B000h mov ebx, edi @@ -1084,8 +1084,8 @@ end if .noto: add esi, ebx dec ecx jnz @b -.noinitrd: mov esi, nord - jz prot_diefunc +.nopart: mov esi, nopar + jmp prot_diefunc ; load ESP at free memory hole found .loadesp: mov dword [gpt_ptr], esi @@ -1112,9 +1112,9 @@ end if je .isfat ;no, then it's an initrd on the entire partition or eax, eax - jz .noinitrd + jz .nopart or ecx, ecx - jz .noinitrd + jz .nopart sub ecx, eax shl ecx, 9 mov dword [bootboot.initrd_size], ecx @@ -1325,6 +1325,8 @@ end if jz .loadinitrd dec ecx jnz .nextdir +.noinitrd: mov esi, nord + jmp prot_diefunc ;load cluster chain, eax=cluster, ecx=size .loadinitrd: @@ -2571,7 +2573,8 @@ memerr: db "E820 memory map not found",0 nogzmem: db "Inflating: " noenmem: db "Not enough memory",0 noacpi: db "ACPI not found",0 -nogpt: db "No boot partition",0 +nogpt: db "No GPT found",0 +nopar: db "No boot partition",0 nord: db "Initrd not found",0 nolib: db "/sys not found in initrd",0 nocore: db "Kernel not found in initrd",0 diff --git a/x86_64-efi/bootboot.c b/x86_64-efi/bootboot.c index 717abc3..1af243b 100644 --- a/x86_64-efi/bootboot.c +++ b/x86_64-efi/bootboot.c @@ -1256,7 +1256,7 @@ efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab) EFI_PROCESSOR_INFORMATION *pibuf=(EFI_PROCESSOR_INFORMATION*)pibuffer; UINTN bsp_num=0, i, j=0, handle_size=0,memory_map_size=0, map_key=0, desc_size=0; UINT32 desc_version=0; - UINT64 lba_s=0,lba_e=0; + UINT64 lba_s=0,lba_e=0,sysptr; MMapEnt *mmapent, *last=NULL; file_t ret={NULL,0}; CHAR16 **argv, *initrdfile, *configfile, *help= @@ -1550,9 +1550,9 @@ gzerr: return report(EFI_COMPROMISED_DATA,L"Unable to uncompress"); // System tables and structures DBG(L" * System tables%s\n",L""); - LibGetSystemConfigurationTable(&AcpiTableGuid,(void *)&(bootboot->arch.x86_64.acpi_ptr)); - LibGetSystemConfigurationTable(&SMBIOSTableGuid,(void *)&(bootboot->arch.x86_64.smbi_ptr)); - LibGetSystemConfigurationTable(&MpsTableGuid,(void *)&(bootboot->arch.x86_64.mp_ptr)); + sysptr = 0; LibGetSystemConfigurationTable(&AcpiTableGuid,(void *)&sysptr); bootboot->arch.x86_64.acpi_ptr = sysptr; + sysptr = 0; LibGetSystemConfigurationTable(&SMBIOSTableGuid,(void *)&sysptr); bootboot->arch.x86_64.smbi_ptr = sysptr; + sysptr = 0; LibGetSystemConfigurationTable(&MpsTableGuid,(void *)&sysptr); bootboot->arch.x86_64.mp_ptr = sysptr; // FIX ACPI table pointer on TianoCore... ret.ptr = (UINT8*)(bootboot->arch.x86_64.acpi_ptr);