From f350d78f102faef84910733b6c45e2c72a05d86a Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Fri, 21 Feb 2020 14:18:25 +1100 Subject: [PATCH 01/45] pseries: Update SLOF firmware image This adds vTPM support, full-FDT-rebuild-on-CAS fixes and basic ext4 support. The full changelog is: Alexey Kardashevskiy (10): disk-label: Prepare for extenting disk-label: Support Linux GPT partition type ext2: Prepare for extending ext2: Rename group-desc-size ext2: Read size of group descriptors ext2: Read all 64bit of inode number ext2/4: Add basic extent tree support elf64: Add LE64 ABIv1/2 support for loading images to given address fdt: Fix creating new nodes at H_CAS version: update to 20200221 Greg Kurz (2): fdt: Fix update of "interrupt-controller" node at CAS fdt: Delete nodes of devices removed between boot and CAS Stefan Berger (8): slof: Implement SLOF_get_keystroke() and SLOF_reset() slof: Make linker script variables accessible qemu: Make print_version variable accessible tpm: Add TPM CRQ driver implementation tpm: Add sha256 implementation tcgbios: Add TPM 2.0 support and firmware API tcgbios: Implement menu to clear TPM 2 and activate its PCR banks tcgbios: Measure the GPT table Signed-off-by: Alexey Kardashevskiy Signed-off-by: David Gibson --- pc-bios/README | 2 +- pc-bios/slof.bin | Bin 931032 -> 968616 bytes roms/SLOF | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pc-bios/README b/pc-bios/README index d6d33d237f..a71fb318b3 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -14,7 +14,7 @@ - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware implementation for certain IBM POWER hardware. The sources are at https://github.com/aik/SLOF, and the image currently in qemu is - built from git tag qemu-slof-20191217. + built from git tag qemu-slof-20200221. - sgabios (the Serial Graphics Adapter option ROM) provides a means for legacy x86 software to communicate with an attached serial console as diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin index 78d8b26cbb88a1913c3b262fd5be29ff89afd554..1c5948561639cfe244ad5d60506050ddb0c9b5b2 100644 GIT binary patch delta 263704 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 z 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%0Dqm;fpnz}Sg_ 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

HWi1dI+ZUY+-xeH>z6Nun9r~yBwCv4;p zXJmpH5XA%Gih#qJSs+RS%$Ec$+eLCC==>B=Nf@oF-rWb(JN5di}x&f@7aSE84E`OFooGJRlbcM4VVoWhw)3$SnNyUJ|1!Olg z{1`!VsSJDqF)pC!6Jv@AfVwpX9O+_AF-xHO*G-=QHeergvp&RtM$qnakmF-sLFGYd z7j!-Vy8I8YIa0Cco&lfd!6y)#G+ki_hZs|A$@GA&9O8@(Pn34o_Ad&3`703*H0`W}KFMxE%^Gr9`&LPgI0HJiChQvES_&w7vWN?Tv z#jltyuogsbf$$T=rcc<#Atsf8mQg@QPJzNTL1lUZ$W#jm>THh?c}D5dMnk0y{a>xIo7lfLxpSX!?RZ9AeYMc5=v05B|w1G`)2v zhY@-LW`dTNNlDWU_Hu|ZC6!EHuoEfHlcqrUE5H=Ghd^iCgX~IrH~j!u_mAlxc5#R^ z@<1pFs7I1@zUa>b29mG|VEAgb%5;m<7@Uze0!VuXWLFQfK!(ut17HCeh`a%W zf;lE50K$)f`XQqL!f%043&7NL{R150OqpiWHyq&*o4)J-hae|3b7uNXztG7cW|Rr) z7Jxz!np&BmIVBTTYC>HN7moq!W6GQ~-64om)L0-B)VxPBKm>gJ5uZRNTD_G=?fl! z=r0hu;0lZ-j!NuWSM?Qff&~@-|39xIxJ;5SSeTPjPbmcEL zanPY?Sj3A#n~>1OO&RzEia}9|F2TSjPy)&X*u*8KFEHm6O%^BtofC&m0Vt7U69+XK zv5Dgd!jcHEMfCzDpu~$!BWNEi=(=6BI4l7*+_9+#wcxOcgKkvvJ;yb{`)Ys2KwH|cVG06IQwDOY$l(`uA1nO5o)r0vA3~=>m zi9w z0*9DX4`|>3qzHr=7#3avm0S#b0zFAkdC-U|NDhRN<(r`Lpx!M=4up~9=dPKqFr7n; zY3`Nj4SzYrnC9_7X&;FAycTffSw9bSBOvGiIJ7J<546Y`n>eWQ!6H5%l=QKQgANYB zCJw5TycwpePUjHxnh&a}k@6WUbTnZ;Xm=7e&7k@Ni~0pIV9yyX01c>t5(+ET-B2eKAN_=R60lM7++j(Y-K{Fblt@=>&KoJhgNsD1UGnoCLf{TGq zU@>Sc800RfdeC8>VD+HdsFPv3sUxR=w7}vm3=9mQMVV->SULrqMx~a5ZUV%z3vTI| z=?f-th%qhG0IOqK&I9HrEeBoHheiDgQ1-#%+ZAYoQIKQl`2<#=mjgFI{^b)`u?8G^ zMk_#T@<6_W`5IK4Gw=zl0NDW&hxr;Neg>>hYNZbY1Ly>5^v$Cy3n2a8l^dY+5wO3! zR{mgMV8r5|RUq@Rgxjhk3=E7|QqkI;=>exW#F*BundSn@l54j>`4^@i_`@M4we|%L zeP6)xN$Wsa7Zm$Y|AImT6r1Znqr@O_kb5A4;4)+#Y|IR*o)uJOG4Khj11&W~3Lm(5 z2>95$WPx>c&|~wU8X;!#39JL1c#6#;P?-QS5UQRP)Gh>B1nXZy9R?Tg0b9f@uyM`w z30FD9j5hAU?(>Z|aESkzE^v`U%xe>9pdHy_P&}ka*mMO@hjU9FRCyCvdD0fpO`4zvDVl4yfKHLXBEFS}fdM=)ji!Dps6(<5 zvwgL73V48xY3mj+?X~p|_Kdjo19tIkEI7oKrcb!dAttpAlo^qu7u2C);1k%U1CCas zZJ_iEl82>JP=N%JhoxUwvVe(0Mr@h39fE|@wo~A6V%l~I6s%I)KU`&=504<$QJV-=I?E!UHu@qE$YNjvf z;Sgim(=*+n2{b6Q2dyu_2DXS#U=PT_$QHxISAYXTY7Z!HC}S2idwxtmU;!$j_o7u1 zY#>y=VjSY@ntiNIz(971?1h@dB`UOnZB# zZ>Z!DGun&pF=*Mc7u{npafrvf_Tuo^UQmsK#l!nRgGiu_*l6zG7cqT8Dky~a!P=s* zqzIi^*aw>QMfM0xyawzMqkU+tGd5@&b{{A!AnSvPLt1BE`*Bnz`$3&&ES1Rt(BK4? zLgzpXxUyh6Py(jw58xH=fDt+adN>yP_qq- zhYsN=gbsnuF2RyV57j`*jze?6We3xt1CYY%&;@W|#Vl~>35@Xr%t#hE3~Fg(G3qdS zq6H-y20nqqutW<@1F&M}Fs%Oq&Rq-)Y%uj@kYeXBq`zWx7*xSvvk!EH7&h@M;9`gA zhzz*%$8;nFGWB{S0W5BG1atxz7JWxRV?fx%FHKi?$|1&dk!4gjwJy z4>)9)1&(S#R36oXs61)|alz3jsCXGz+~_E%<%uQoj=sU3I*!#%cX-Aj#&oQ0`h@2k zVqV8U`mwn57^sDYB{d%djg4R_5RXSdBL8?E#C^w`!0ux@-U3Ms$0tp{-~;M39G^D* zz;g~UrsFff*;DE`=zw7?4mf@V(uq021a>IX38Co;4>`o7PM|e`*`S@O6OeLH>I9A? zb)p7rp416YHp61yi9O&bWjb*R;(-(AARajJ0IbjG1gIYmN?vH$>Le(uVG|F61oX); zi2G0Wfy@OkRfiU*RUPDw%3pHhOTKV<}_rA~p0Gb|Btnh#{27}IGX zuz^yi(XtFXwB|cqG~ECc-lt2z;mveLZo0uM4l$`Spqd?2^MTwB8V3P&&KURv&Ztel z@Qg#8Q44G=(-{+RAJXUysG$M!Dw_AttN}HhFzc@~+aSj50vqFX2GkM4l1$HljxEC? zeil@lVDa_YL(>CZbBKAJJq8*Mg)MYpSa`_?)coWVI16fkfeLkK0l^L$TxH-BI16g( zg2W-dWq^xAM+(o`fMeh29Hk~+?TMxU{XcYu?<*Evvo3uHdbUeM?>1E0V-wAvF^ zV4Z_iN-+1p)Gvb+Smz+MsMI-7p^eSnKhSdGyac#hkU9@?AeMkU|7hA<4l%~_)9=6I z5NA670jlkS3OHLDT>y2xk=+d%S!Uo9xB%;V!`ufGhfbnhD8b%-yMUwMyKn>&z8695 zJ1ow;1iI4%OMG7v0auz#mrTI4*QEsP$?Xy>JYnGvnn+>b6S#y{$+N@6A(cGSr61tr z&2*Uy6iiH)`KCX3$05dac>^?eUOocJotG~`pyEYfbw*b~hrS}L1!WlUFw0fYNunTeXk0@i z_yn%5f;xL0l->k(zR^|C26&Kqi1Q)J8TbUQf>v&W#L>;!2X*fuusfu#qUT-cAjWkT zh!2Mg z$ogR7Gp1i);}SI%xDHxd3-SO|BgAKX0@p!n>OtaA3t{3nIG{7pH#A@j8%T1w;QF;+tD0Fc}{h1GZf7Rtr=K zWId0xz%5W@VDa#63$U}i1#W}(1AweYbJlIp5>k*jnzL?$26wR-ct>cuKs2a>bO*FN z8!1|)KouqfpTHf6jm83ZaM*YUhmCgwAYpqq4U%r}W`WZ!)7?D~zuvtC6~6}-m%0l| zM_62VF98}__sSp|?o~lF+yhMuW79AVk|^%Y0w)Tl`z_EgyAN7{3_r~c%THa-~lA%dkZ`O9k2v42+e{Au&j<|!9&ov1{Mn*x>=moLh zVFo0~9^Qfa# ziKCl)2U6BNhAfFNdJGyt1F1s`fXAS+1SF28|4Gnvhff@0UQf`LWN<*+8&A-dWN?5p zE}y^?(3uZNi50Fs0bF(^Jq1k(fR>e`x#KCQ%mj&}x#JnEH4IhH0j)}&!6sCo>fz!F z5PP11>UWTNP<^mM;2CJyEl3=y4=xT{U<_5y0Uhso2AaG@_76<_1K1v;=V+aFn7-#| zop!i*14Q2oQ0o+AF3djYxYG-?aVJ>#z0jJz;1h?K)C;u204@(1cVc>RVETh;pl0_= z9x%gL;3a4=3$jhncJoVgA46mI<*VrjK68jky+j*Pg4y&E;&ZQ8pcdV9%#!~VXgMV| zaZr~Pi}-7g=?x(u7r#C+-Qfj@@n*yHf+`L%rne%~AEqPjQ0v)EzAP%ePALm zHScds-*6t}(hrb8W)}G109ErL2CD1B8gR+L_;EVF38$Epz(-I-BS! z%^Fa#4hfrum!M;8KW9z9z{n{k^$V0nvB>}80?RY~wwwNe3AE|xH*CreVi1c1v^@O{ z+E)eg6GWVW6I%ZLhV=(veua*j{sz?(AoUP&ggKyk0wInt2h^X5ovw10Lx|}Qv@h~k z1f154{(^eUAU!atp)60Yd*P0mZ8*vmgVwa|2?efOpyjW_dU+FOtX z7OYTnDFCn66lE3^Is#LPz0D#h z^abn;V?kk9@dEV`FEj>4Km`LRc%eRmi|>FY9#IxBLt0Q2l;*J{9#IW&;*k~nM2!W-(E35VkT#v5m>TL5Q@FSW*hXnVG0^dmSPDfk zA8?^$B!-sBd7<@$7%Y=RT?7{gcTh#81;s#146zy90ybDm43u$@n{=Sk9OTt~(+dPR z#hAoSf$1bM^gxHS&;-R`feuR$piKZE{b)OAcwp*bGyX6K!_jh7L-9N40)kVP#I7FfeZv$%)r0^7e52lC<}5a z7N5z2TnW+$bqNo&u^_8A{ecjtn2{_<93&4l7%mTMfkMUkK(WZcCn#$HwoqD77Gw~} zRnVY>)o*e$z@;Fwp!^JQY%vSU9{@9q1r0?66O8e!tFz*GROpaCfW*#MeP0Qr@H zPf!819%SHyiT{BHiXvLk#s{s-6t$)ch;fQBDS{Whi5d$kf>v}RY+!MK#|L4S5%CqJ4kYhNvVMHB&cKt$2r5o zOVB!9rD=MBB&V2{3TVI=Ssq$#sLW$vU_{!B0n4f?pgACrIMl^(@l9a+m{fL6-yp{+ z#-y@uniQv4y$UEhfsBVJhg+`-s&+xfKth^P8C07x@Ckx0WMKe_L)62?)j%hDfYgF8 z#7mG!4d}BbTsfFae!r0}@A5Zvr~a1|*JVfhj1bOu?8g5Htlv4@exW9@K;a z`;Jf06qFZ1i5JZRGf)x)iGwwO6@%l);s&&2w|FtVU?r!hw4ep3Q4LZJiXo61XmMxR z0vZ|>W3t==rNN_pqRfJp;E`4_DJxKu4~s@C32>vqSkMY|coC?&Ky#ZF=T4WbfZAw3lc{+3O#>=7X2~s30lGOH`E+{=$MSv zyXhaqImM)`V3h{cJh=Q9aOJ=(XdM6^(l!>f1|7ZyvKeX;B#8M0!KeFz#Gxj@#S6f# z3MT6<(-kB*#h9$2`O+GkFPW?lO@AQADJEqNY88P}HbncvOQ7)<20lR>6^J$)El75@ z(SxYB0a=ety%{+BOWA-1n~>$9#f^;5)AaQJ~0HqtC5n#IkERbZ2*7ybY z0~z=PZP6OPaBnY5riTC)n~82f>;fqZ$W#|f_^MrI(t~U0!0@C0|P&39)y8U&>q%V z2OESW4skoPpo0n6jZ6-(hM2<{uv?4;9nl&Q0?>|M&w!d)X!0(gC3wi80Bu3JfYf6#4>V1RWgC>BD=0BwF(0(_ zhhY)J^sVPP1(*fhAcLC5f^MM70Go19;g7{yw;f<_Fu8#zOhlOl-F?6wXBKq704`R% z1>MoQ68xYp6$76jI4H4LY`iYyc=M8TbVK(9p_0+M6gQ`kw z;-J|iEGaSolv1}dOcyob6qE|UJ^?5ga0Z-gr2;|0fyIzO8?d}rAZTSF7Rv*1I4Ten z-q_4L0XB~*@CvlF3;X~LuAr{z1sa@Uj6u`qYjBD)1?`%?K!a0EG6X&1q1iuV`ubcB zF=oLKSmhC>04}PS1;ez!1~G*hflXiv^8ibD3xLZ_kX{kt1 zy@jPxiP8aAD$;^cprQdwC`LtqL(wP-bjJ;{h0vrG1!_-Y(+3@$ib5+m1VN1}20p>4 zche_ma*8oUK{^`Jg3+L@T3BkB*g4?nlNO9cucM%08v6!ZlNiOLb#Dbh#VP}zU_7h? z4-H$mICzDED6?R^2Xv@5J_lNkCRBj)6H}rKIHO4=!WObYqfHQ$Zy5Ll6DLjopu;J~ zlsE-kBO41Q!g{DMh0rOpM6{_3L6|sX>cUts5p8fz5Ly-_!rCV=$HT;7Bce$v;PR4L zFbRCdh-kfF5{}v@3B8PmCYfYVI3mX^OdOP{k;S1go(w8*vBY>XD9vu4E@Hwd#FWAT zc9pbX3TR{oOJSQ901jcVG_+(T01cQlP_ja@94-!O9AU9M?Fu-VdZmFjg(KS5W2ez{)cXpvGn47xsw@$Rd=_ZF04W#*LD9g#Czw?PF)j;YTvpX|10zl`rmVW@ z4u&AQ31WLz8`yTKEYLsZ#Z1RZrKFbOmtmIsZsJaDXuGaiG4W!@=JSc)@pfP>OoFdwus zA4{0zgLWff6R*K~A-Z7xq-jQ+;*8U#7Z`GaR%nCWlz$GKo(p)umQ61;;xuARoBjc$ zFbm`iF{XkQU@2z7f=km6fW)s&p8%q6K~iwRJ%|CXraPE(iZKiqNVUShgy90Z!LO#h@cl zk;5IDt%^bMhn!D9ZBPb2!Qy4pCs=TbF_o}@^)r=dfEK!nG7FYKi-l6~@?}wJ!BSA6 z4eFkuCCt)E(;t|DL$3iuEt@W2&M7|qyBVjzbbftKcBax}Ape4b736)XGEfr+OR_6# zf!1tgN1&lv&IAdFa<1tDR-9r?FMhSht(E@rCH0GrD!SYrcb7z@_m$YnL4*)}XLtEmBNloqT3 zrBy7RuQ>#Y9HLm)7z@BDz)vY=E&~Eof>B*#>B=)uOetVX;{|Wx4<;i`C8n z(?+$RL=UPuVTBg7y;X}|Xu-r+Ojju46l1DgH{HOFQ_QOtHfj$m+#oB-1ZzQ6Ha2&G zs(xf~Xk67nQ*s^KG;2U+EAczqS8z4FxZh$o~3pSd78TEoqpj?gQ zWMOEz(1auIns8K4%{a1kGsqk)<~M_b5VV*ITAYYLtEJ{QV5ds8fD8o16I32H#?;~g zl?TmRU`bpp8>TDNgK}=m32-W67HrL#?f@!3S}VY7@4W?EL48ClZfZqyE6ho)pzb0T zr?hc^ox;?n0i_`k>(vG_2aD6%KnowRh_{2hicMSx>=kLjc2Iv4n}RjqSdUcMOfiuY9Phgs{WBU9_pq^+a-}DP0{hgrhBuGCv zi!m&O>F*Q)ovS0tEZ8YGy}^}JjHy#?x`7LbhApz{G=rJ|8iN3t0CNG@rF?>&cGD-g zaEeKFf|gc-8S_pP*)LX(b&TWPDfHbXu}I|c{OmlV(J0!+!tjQ?3n`fOfPtotSGZ! zZ^QJ4G7eE=!CugSJyJ-Cf@(zuKEYnl#2ZK);wA>TI3$Rf1^bky7kF}tG4-iU7XZ_G z(+_xo_;%AB!2BpE{R^V5UkswI{{Xn-KmDm2r_l6zPfm8G32xIbfOJfF1TkU4Gl*DTH>bEH zs6!AE~5EEu?gP1Vu2GoRE z-=GSAO*io66qf|`Gm(7)O(=7?rho9|6lav0J^@5QqRm@y4rrnjNjWTD=YR?nPzHdc zZw7H_2ABhDszKutE`DKp!BkLnKIhH!f@Tn7F3a=)MNToMxzMAt1?Q?vzYq!%XqkQ> zo>RZ!le; zn^R0`J}5RojaW4M=4XH%>Mb}QRQX^t09HJ~LI5;M!oVjuA2d9J>~olS57@wD!TD%G z3d#=bxFL5Cife+GwvhDCj{heKvgoC>70r0d^U) z-~u18hNJ~(+a$!HYta^-oV@Wp) zA53@X1{v^TdO;f~cQ5=fz2F6>XtLlUP%df?tdK)ATj$Q`1_!3Y#2%08E zi_IlcU}KlafsJKa;s@adLAlU-F$9-fn4a(%6sb#YO;?EG6k}TQX!?UFPO+xX&RfEw~ij*PxUSviRTh1F4*1Ov@M`7B7>T?(hKA&Rqry zE-WT41Enl%;uE0BVHqenh%>GN$CJ@AP{D*vIjCulP5jUFfJ>n9x8-c$_+HKhHiv1s z#`J(2oTAgGhI0x|?@Qq1kXjDvvLVHnBxtCaflqKbWb2u?;BvIpijvTXTaK0);o_ib z2b2h)5emzU%PXKkvK%zdhQ-axLBkbTB4zoD=@URZ%2q(OK1d6$097PAF=J_k-t-BP zoZ^gTAis)xwxKSHlmIpF82AKNz-Hf|2@x(1S~rHp-7DsR-OVhx;tG_pl41IV)1bVv zQfK;vX<&xg^aT-|Vp1#7b3JHsi-AvYrNi_Kid>?`f-6A_*Fd2SO}G-!T)h%hdV<7Z zj)I9NfHg`Bt^`%apoJ*VPzAT>KqhxhKLGOcG?1Ugm{y(vyGUAaCCIl})UOf%D_|E~ zWx~L~AT#|>6sOYkeQBH=Qma5)$B~>M2~FCoAUg+`1y@yo<3VZ_Xl)dh_*=CD+%REU zbqJi~Rvm*lX*I0xw^|3Bw50`CgEo#~F<^B9OaW-65jF*ovXV(~_4NK}pplE!H>Pg@ z4VA3nfL4NQKuH6Ox7WCUy)7-c21huqSprtTEVyP1)JX6N1ESJ`Yd~||Sd3gN1J$us z2clywWbDsaa4l%Iu^BUct_1}gHj~y(FNot5XWRy<+Sfh+8!Roj78Hl+nC7fgfckbF zD79cQa2=#gz%00~2CULsa2>2|2Tga9&;oNEti1vn5p(5PRJcHn^I22e`p6I@?6T_A;1jA{J@Xp?XK z0&r@RTEBvUfe}l?X+8L~4^d{p^~a_QB!Z`kK=mrq`WMp;dO;=g23Umz3ldOK%D^YM z0W=DRoDX2)kUc%jf*Vx8WvH~^22d3RQVBJI9j4N3dc!+Vv9JNMfq+?XLj>4TX2A`x znUf7Gz%j!txB;?=(^zl=sA5MlO#)^bY%U)fMR4&e;G%(9aKkfje%tU4lHWF}K$Fi# zP^$<_>e$!(*(*#rs&Eb^Om!16|$L1hUxc~C8cC82HZ0VgzL!OgH1IW+Pl zKDQH)1D=2P2;!urnaSn(tx5BpPZiS47NC|EQrAjQd`&MX~zZF{MZ~XyI zgv^55IKbtv)HYC=0}5!gDsr0*Oku!ug&I&RZX2lag-zuIa7-EtZi9s_G|Z(zi&q%< z1h>J4E1=x%^@ET9I;KzlCWqnVL{2QCilaBPQkIHb0NG+=2Q zZFhh+^tSs=4=CakliChzu0fqB1Ih>te1h9kzy+tY;C9fNXP`zNniIEoKy$`+(4h|? zH^JNrErPeh0tIF=OdPVCL|Sk==qyTXCLe)x9JhY~cO01ncTDfE18s)`oeRwX+GUL9 zlpPY_j-|2S4zv=M3sikD@CojK^}3)=fs4Zm+#N39hCb7d04N;;&XUrCJ3tj1mZ;yc z1)4~99D$^!9iSE%7KJ+nz`?{UxYJ;I0jN8?(*_y?JG~$=uoJBz1&e{5kcO1E;7(BT z!xBzAQOA=RWT1ltJ3+_cgCYd#Tevv*upLoj!JTNey9}tI!N4cD6D_&I#UaU+S#am3 z=?e-t#iVwkO`ghtx*H$^AiJfR1$RQ)B+P<4KR|+K7h3Hp4IQA{#W#IJIHwrXE&*_I zV;0;6%YD0ipgKX*@K^$N7o=KZ7Th%hTv$}79k3MXmkgz9eay)2^4g1g10H{@`NOQNmG zm4=Q9?uM+%Wft6<0j`ah_WlDMY9=PN540N-DaN2@nhEX;n4ZALDaN!fWBLYACwpH5 zl->Z*zwZRt>&$}t1t0?ZHDChJtMdf+pO`iQ)VA3F074%Sfv7xS1Ery7ya^td0xs>C z1rNLckF_!#Q~(c|8VeqTb@`wfTo#lT8TbSbqV-V?LWFT5?A`8t42SM9- zkkx~R;TZS?4}nq$vN)(!0TPGB1I&DADm?@m#b*Ys9EM3iOUXm9K{RMqlZA`0PI+=W1w;Zi(`+YOqbu3)m1UzBlEqENXXaJjmXyewf?ZLMZE=2fI9b> zm!%1wfVmVzGcYj7L5qeHup$HI1DLoCI7FCEKn~1g7CaF({Q)S8pNN}&0hD1*BtT;R z#JcGL)tq8dCtwHWKn;=wRkI9yf+x0s)ft@t4SRxu3g!S%T?vwh^^TzWLJg-F)5*T+3&1pN9PZ>MsKhR) z1f+AsEO_z}RN@&#;uIf*e@YC>hn?AS%4d3k6{ncjDOjXIy(SNKBcI?YSg8u;Gcdr# zag2hT>YM(dmQ$?$6sTi>n7&^n2AX_g;1fKBS}U@+LOUF%P-{hmIH(lI(p5SQ>fB)y z2f1@UgEsm>^n#~B7J<4G&^!zZdeHpP=>^k2w1C>(r$Lbo%GhWM&KOKLm<+1a&cH(b z%o1oT>&&O=4)vU3OlN*U>3`D;K>V|8P?~FcK@+DK(^;|U3&7%1(+gTbe6{Hpz%ZFaqzh~h=a~0K^$~04dU=~dDB0D)SoMw*2yVmbRO2kfI3eelujA=1kZy? zR8S;C#8=6H5(P+HZ+bu@rl%p zVL^X>1vu!X1LxRPg3oT%Km@do#JBV5E!m{ZG&75LV7eHk^C`=%JUKIzeWiPCO z^fNAO0rxYQ1uq-`_am4EFI<^Ep$?S5E?Pl+ebEl$>x)j)KQwcSFO~23q zqL+ZXp!I^6LFp0{u@INAxIzoO%b;`#5{GymAr31=AnM^Rzl_#Yfw}xL$mLja_hnEW z$TGd8l~ai6^1kT@8aTxbVMnx}8x5Ko0>uMF9G*5We*>pYugkDj9K@+`CtU%RzaTF_ z^dZDyTjJ2w8%^KP$SFR(zl~E|>Ix`hfDC}9XK_$f$G|6eB?zpDF$@y1SNgyaD|H1_ zNFwZl2iKKZ;0Uk30_!3{+`{6T3n~Nn1h0VF7a)BQw;=R^(jG`0rXDmC1+pI2zJRHR znF9(=kb0OnOg&`%Q#1nu%%E(j#i$FQSX^P^s1+lND=621EJm#u5#qPN0bq0mHS!Q1 zL9Y#<>FdfnaKJEKft>KfBzSfD`({pYrmJcY@vBbY1j~4J`uPq{ajC1ImLHbrxS9l3 z#&k6elCG~dL5jPpZJ^>#>MAJKuxVQaRkjSIjOp4kkS9R1V4&Q|bnV>q1I?V`jF%vB ze0>q5h`qiFQlwr#2BxKMfJShU(q$a9V!Rn@Wfr{gWx7BEs3N-w>ir_?0C|UjPw*z+^amgvH(`SWH$$dB0I!3;30us0 zi(`619;X=7Etly95g+si?Hz9nd;kEY7)e1zhk+ z-2tt(!XkecHXC$T1zIxRwP9dj#8NWeg;Yq=f_FjJKVngEj|~!H_xQlk$aJp&Ty!!E z-a7&b;(O4x!@Y0QFLZN?8-fNNK!dK(k^>aUpytVa(BK|u_dL4zo#_X%ImM(NfR@=} z*-H4JWcmU{E>UK|hb2(2JVI;#!`2)<(gLq7VtQl%X)Ql`0`2`g7Mgyck5f$QF=$04 zC_O<+iPb648tpM;Q#Z5V;{=G#$FTYO$4jOQfZ9EecR=la47!H}%RI>AJJTne0gWR+ z24#3qLkCjeKzz@@C-@lDWCn>t?1qa!nEjzp3IvbFo9D{>IrC62Gkuu z3$7>kpz5AM)q$qUL4JbRw>k^jSAX(vdIMDQZ!U5MKcvd@*_oE25$H%R@Wc z;Iq6z?t<9I02e<3)+hB8HZcR$#{|kLAp34jzc7(gjOpnEusWuvKftunGf<%cG7qX= z3ObSg3^qsswFfRP0@la$Ob1L$J%bI;K=sSR^t(+zP|GRC^vnmWj_FwnlwJZJ5n_Bc z{d^^-IMcH;&_wqfGIhfAJO~nD&%?kG#`L^wdcZVJF{bBj(;Fs(=$`2d`Z&cIXMpud z3qA+62a(EbNoeo(`3^|4>-hm_v+FrzT@bV23l?az>qXLZg+@*>rWaY$9YC$~7dg<; z!53S=hBFJkfXq5D3%>XPj!mYQY|{%Sa*9d4L<=2xXfk>U8DR7ld5{CviTpZ#iW5Jh@su@-@GsuH_Eew2uFJUz>Oe0Jjwlw+W2XKmJ7JLOO z{$D}zue9JRP^}J1yO6kBoeLeIeRXWQ!Zc1XsaK#$9b`{H3xL;VkT`km1c{T^N#HzT z^cqyOg3N=s1)djPgT~~snR5X;AoNB9%#ap*gEr(K3AOP}-gJTKoMKXMKtowbHsnBq z?+vUq{^s5EhMAmVOmBWoUof3h%;+tsJU|Lp1+dfj1mB|dY!sjqYHzisPngOnCiNCJ z#t&A{z@Px?MKbUSzJ;Cj`8H|V3{Ek|x6}D&af&m&g)G5i7JNGgT--|wz6G7}jHN(& zdjV2_y?p^rQBrR~{ajGEfgB1g=0N5DJ4ivqEci|WQg6J29f0vJ1d_7fB|ua5y9RJq zp6R^+v}5revP#BS@I7qM9}>X~3ZP~x1E1h~*n$t3?_lDPGrf!j--Fs+SX}iUl+Ll# z$M3s9p~3XNZ@R!NPBEtU3&3fPN$@>5mm9r@9a08!2grDkJ79$s%pEXs*bambupak^ z6JQgW1wTB2GCrLFGo%GSgGNk|QkN8H6p4XP@H3?5^%ne$I)lOD3LQTE4C_`wY)6QL z+D%wI`7Hu$BeURl@C6j2%!1!%O)ppg8qxf|0=!U7TJSq)57Zh4A-)0XjbE_gv0pI%{F(qQ_g&_lFojo zK;8Je0-T?i1%EG?23q3ydkZA{{N6YH1H{Zj(+?~J8wKjiV##p7-$3%uABX7&dO^MI zKRz%<7S!c`^1v>a7W{)&S;H#*KkLAiJ=33EpwIxX-3LX@pEuw<%=G6En4a!8hm&)< z`vOirX2HK=(*;(7JpWe;oJ6Dr|AI;!ED`@#31p@i(_e6Wi!*9WH&_MMXf%DnGBCqz z+CngG0m=7&9iaLCuMe~$`wOc?|K6M4un4U7(ew!rO`o9Q^!FP$oR|gwaey7m^iK$4 z?>{lH1DOT?DS^|M)IZQLIu?ii(}K!_ibibmMNrHCl|e24*8{Z*Qdu(#{(~-K`gZ|b zQb`N`2bFlBJ^@iLHA9l#)|3%Pr_&Q1C#qvE zoE%IH2GeG9iZTl^xJ;h_R^c~YVJS#u5GcyTq!>WglVPT8A%>Fa1`9#zUVu$x7Gh+Y z-Y}n2oRJL_0AfsxT+<(bxO~$c7ITUvF{1VZVC8`j{P=%}ml5KiwRo7tpb#Ud$AVnm zLV`$$u?v)7#h4iTrY+IpOO39*1~w?Gz$h8n93)W@tAP^(yD zU?N%IkYddPhg1?PsI7x+0@P&i3HI2;akzvHv`hghftEn3C?Phh=@URP!xjJuLbe>J zJJ{MlVJXho1rAEK9pKa^EyM=ec!ilIgxFp{J;L?}tdd!XT>>h?ZUAG%K$1Lr0XWG^ zv4bvx#FE6>mq3y@`<3Yepm=;z#TYrJuRp*kZp4As{8j+9XF$qO$1fS+;?Q=T5JwZ(943w~uzgG%ebYA_;1pxx zm^R&DEvHyL2WUnR)Xs$DdKOoh!LX4zSmuI>Z$g=jMyLn1A3)}yt4EzaK{yc9PiAHi zh9Bn&cln>`0eoCyMw}oAfeZxE3=9lPpn{BnPlyu~+8}X=MF??7+mTs_6Y5jWNnjr` zaYEMy3UO|l-ms2SjEQsG^aDFV^bJTHa)R!s$L#A1aY=yt`piOH24ICoT%fKssGNm5 z2~-C#Fz^X+fm*8|aj28v;)|v`tmhPC;#xLcU=yd96c_0FN|5u>vL4qjNZfF9fn6-c z4Kg3py#>)A!$66iflr9rZ2E=uoMKYkATvNg0F_q&4L*b9?WPyZ0u{*I(0dJpxPu^G z<_-gUdHS_goC4GR)^l<&ac6!o_A1fpTOFfc%kJxuLv|t z^U6UK@G3zSXh00$1>Yek#>5){Qy2r40AKef#>5N0?N5|hh!@=Y6l3Crmf^gRQ6ys_ zUQizwlrW$X1&T{hg5d>?GK0j?5)7Xa*eOzc=n)K!1U@H-6ZzbrfyoCg^7z1)>xnV( zL7m12tzG!Kz#6>xKr0&FqE&y2pA|x;Yyb?r6U;{W!NC|+p4q|C@2;2b6 zGYNc{J^{4QNJ!up#3h1U5SIvwfjuB71@V9&+Nmrs4+z#xF911QuxYx$ZcZ^K!Aa8> zfcdkgE9?UCw@tqQ=I@%mVK1kck>Di;2Ji{W5RWkNgO=Sh@CgZmA{MdV2`(-q1a^iH z#2HLNN)T5HsX<&R1l@`(B;*DuP=vg|1qzc;4mg)d34w|rECDaH4B}3qbr5$79fR`E zLHW<1{C5z(FdKv~%m?MGLHT-6ei9@cgwr75Ae;w@Na3RC4!b$Uq=Z59cA(-ClCxHW zPrqT{6B4chC0KFBSy1B^fsKuOeL#|A_Q~{Uap;Dtn9oSV& zqD_!gBiaT|HB6$*z@f+_x(n zh~AoB0G9s+E*6+X|AAd;BnC<$NZCsToUQqU#6YeFi9_sRfQySkVpmKKoIRPultAtk zXHq zoUxENDD1J=ErC|y!19%Z0mKOs7GNjT3rV1s>~P;ofEKcVf*Z|d3D8&@l7+C)lmHbl zAobAbf!^aKBmo<%gC=3PIB125@boL49D>Y35|be5Sz_Asg58|rhMG`X zZjxl0J^_@@B|(J|NFUTL1!&V)5^@O{vyfy0WGqfdvI5-QFcy+TOI3=X)%^^7LXv1J zG2r48z~}2Q3rVhkRCJPOp!5?c{RcuznSeVsQc|D+aLfS_A*mG5_8u`NsS>a{CaH$$ z4WJrV>IhW-3lQxsBn`?cn0sG@q+zQVpy90u?T1Li1_hvD02fyQrx<1-X%nzTM$({M z3<@lm0npy3G%P{D41kG4)|E30N#{TfKo2@-XiK999ZVdu!QWU&8kVS`HY%vk){1#K0#cgEm{F2or~H-V%~g02`1b0~%Tb zS%hu?sLKu#hdBUd0NUi6A~>b<3CVy?^Fme+6Ze6}s!RmfLL*sFvH-PXAQm!7gT{Oq z_=IFZgOwn0h=mAoujv!caf(UFg1Tx*7AQex8HHrSrZ=4A6l0Q&n%-~*qz+arK+I=Q z1{JO#^RuQOI1N&l11_zTWMNB-q3V>t_VNkIg6eT(dtlKG8> z%ceg##wk`Wi`pG$0HuCV{Vt2z9cNI27O1kYSy-5PFmX`35aceHd!d7TvalitrXD5^ zS>I3(pT1LqR%5cD(L#_xFbz;~Iarc`TA&P>)DV&b&B-IFhl_*8KS1Iz^sUy9H@1$=w4R$Rzg&su7mypbk`m zCLOs~(>H*UmK-EV;R7Eqd3hG7!SY661Eu6)nFnf+GBi%)tsoZ3!!i-ng>d-*aN1;& zuY;O{R)8skR%kHr3CXuX%|R>3;PP{z=A43>gEkqa0*zYvOHgxQ)fv=1aQQc2bCML$ zl7`+)eH=9aZnxyi9`Lb2rWMqKzSS_4z&j^?l%3vIZiPq1+VD=S2@L` z6hOPju=L3kp|eIpN^r&`h)$(h(*w?Pib*MfS~^&CD!qfM`vkVZ2%IKC=>*#30=3jY zxl$Q)7cQtmgSdQk1vCvRyG?%pGG7_{?2(Xi!Sn>ssIM|)WIfqf?^g@cY*935>o#I717{<^zAi_AYrOu1`bmx4N#L0*}2gCrg3L_!VOT# zp~(YY_{J=x*#Pz-vykQ#7y~v2tqB{z*Mf~fYZXinxD3*+wFr_5wU&WXA(OTWG#IpD zy>#s!mG*b*F*CUYrrK+L~ENcN0{68$^5$*o1l^-9rovjG*!Zk~1M0mVr-5_ZU439Au#tZ3!>Q|6B zntDB^=?AWJib?5#5;iE*!7U_))fLcov7XTM4`6vv;fX8{jTJo^a7Zu<=_yP%xC#nX zJ)P+rK>K)w^h_8S7&S4ow4Mtjr|S7YbE;kfB&X_?fOD#}kRIrCX>2+VL1I+z7&u0y z^g*7%lKAwkAhD%y2Z}8*CVd}hV$_dfYQ zW+SwA4|KhnkWtcfgIgd2vZi0y$0;UdR0N%%0fjXK0|Q)t6=+?XD6^1J2e>*mG6EeO z(~BA1MxbT}7I9-1us$YZq3H>?IK`xlK`9L6P?$x~6lkmg4#IjNW3;X^ER2oO*3iSn zK}i&w#h@A%WDzVxK+L?H9)~mT3YT%QS(EWipvU77a@anSzYMk{wN5 zz*PXVkZH&C3s#`o(DV#=>4~(EDX44%xdIXwtLvd{K+{{(9qx0AF`3>0D`XZjeKx(| zKBt(JDJYyl8bEe2Fs!ZzE&XNS6Eb}RRwylG3M%M83ScIJT7wLHLS{_UFMtd%gRSa- z$xDEWXFee_w`mVJ#hA>zz`?_07Bt=90jF5K8EAzVl5us=Ubz{lmO{igiz_r<%|QMK zsfU)MaP_F!2%)|N_0mXLus%K^Gf1M=h7}kH4Y1ZXBmfZNEs#>xtOr`En#};0rp!WS z4xgFSRM&_WL4{{>J1bEDwgVr-(DGbf`KpQCLPo{6U2`b_(AWN~lg)Bm_PySng z5*L=xu|OTFfIHse54a+h7P8d9dR~l>r3-ifU0TQzl&nEv463g{F$czcLY4*KG-fPh z2?{t+s)EEXSQ=FGT7tq2Bo6U4LVN>c1i%tBu?*U>imngT{Q`-j>w7gl;5MfiljXbV z8^H7j&@NO_W+5x3=?RZH#iT$N1Tuhv862YwtLvddWL7C)zcLG1L9Q5*7P7*=I9$l; z4%pMoLRLS(o|6``2CdG-;(KezDiLELYf$$WCuEIYhQh=bKtsm{y7*Se2C~C|S;(ekx`PUrn32saXp;%e z2{xcRLqSa}G$+`KfCGhD$QH7|pIOLu86@OwLDQt5kca4ihrBJUlC)z0cXybD>>%OB zEMy0X6lo#566^`kZU!_i>>w)wrG@N3Uc(X>c2}V8vWJ{6BQ0bvfZa@cNDxR1*@ISY zVlm3z0c@19kUglI0g67fu(1c#0w8gSPvME$9y%&&zhnA`E1Y8W_Mj>Z)DS?+HTF0X zy*-XZZx1Sc5&4=y1=@wShqZ2??tqJfum|Fbg?A;$B+FK?i#`)FEd21XV6E zDF@K*spptY35N;ODnR9r1FTu@um#-ulooQh!@$4@+7XN9L5CO913(kSj$G3dUUG^t zIr2>dQ&Q6>fN8bq24GqXN;^T7`9YKgL6wC;rKdo%t|RoAAt6V|a#m&`$2;JtVis}| zgBal?1u{a)3FH+}qY=$vPM4s{u7Q*>IeSePc+DxsZU>E&p=)1`~=#gafWsLTwwXdB@AMQOBC1)DHqU5qgb5i3iXLA$S2~A za*(iaRf2?ts~W@lT0t_XLW@6F*hnZesldg-duPO$TpOlu zc*`lqVH zkLmJfImDQSJbq1gc*iNm(ame~Xr2qq;kSA=+78c~7 zF(QySTFYM*CJq{O!e$O=v>G{TpgjdoP}7bXwDlbp#xMy`+Q4Rz9@ycGp40i?af&l} z+D#Am%qb@232GpL%!e5Ro#ycLm_A`1rx=rG5Lg?NXBgPOMxL-mb1;8_!VlyxSce5> z4on;}G2<=di8c@giwRFqCj;5N&=~Rrt-3%Khc-sNd>}FI6#+>ZUO7;H8N{JpRp7MA z=;}e!tSk)EMgMXNGKKd|7x>O8#uS+{-QWz!nUPCi zjCa!o{(@wFP5yrznF5nVp13pMzS}1J>0|O&yTmh|;OS?ARARiQvX}6{aWO0Z}3#I+Qt}@*WsxsXQtddzM z9lR++Oe!7J;BUul3#6w_ZvX{wI;hK*#*8u9c&>36HFotWC$oZLoI+!p=E*EV94SihcNI7 zWq}Mt7KdiCY*2FsSsbc98VQJfa(85Ls6~aKN(EUQs=i1CoR*A)iahrSg-R2^Wm>&ZDUR|3RHuViLV_9_3=9m+(8fU- zDE>j#8G{HI<`XId+X>)Po`bNqsQ54&@Un14j@R^`L+T zmyA#^hk(7xCsYPXaoF4oYTh7O5C-Bi@CiZoE?}_$ltPizhr^-(Tvx)>gU-(aSq3r) z6y``8BEUZ76Dk8QGJt6SD+Zk|BvcNHOCVppom4%5Ct*-q#hi!SR4d$0J3^elz`NODqU>mXD~3-Bd5|RaM17xm4osqHVvQ< zL9!qklnOx>fQL1)I0zK?$m&531gQr{1z0^i{2@UKihE=Y(6(?ns93}1AW&_Iq&^0+ z?^pY*W8 z0S+k!1|bX|6imOM#UMKF18A(GrC=oO82~~m}hQ$Jq50TVoz#Ih1 z?jSdydte1xIg<%;5y%2?&|P$ek4W3vDh_eknNcQ=D7^GZ;5hp2~# zKe(K!1Z}n;vPvuDL8KVgsQ*= z8Wtab+P@)1^04fl$X#mANLIXoJC=MC;gsMSmK^V;g)u1Rs zQeO+=gVck{0}S=`d_vWrxJT9i3Sy83P(sAez$a7<3PL3HO&~rz02zSrFvxyBp=wavBWaie3IUJ> zIO+n>nkwW5(mb$F`GjgfK`!FLpCNtqhKSntgZ!>2iP=#;vUHY z@HH$9d_tgA10dz-jpjO#c}VKFf}@I0s18&ffHW8*!XKQ7>OgUiq+vVQ<$OYQpz;8$ z0YtzspHLmhKqU1$p;1r=Di1))(4wFY6!*yL>tPmvQ!8c^)PW2{(y#}n9#kG+vjD9w zH~>oJpb!E_1*Z8-bql69Sa6Be*MagsHUmL%jpP8(CO}YPtpn#4Oas9yk&x6MgC=6g zQW`AkK~as|4>%4EYCfSlaDKO^!Y5P@%KunAP!Ec0B=u*YAp%*^0W%+L zDo8h2NE*(8a|fSLJt+T!l%U0FJt(e`)q@?*CsYsiIm`l(MiAx`ss}|ilKKmv zCX08gvUlagC(m63juM{EtmND6WyzUk0gR;1j9`<$n+x-F)hV`HzM6%#IC?A6~fbu^U3mQOi zkEH%4G>#j<`oI=|bU`tnPycMf3q~Sg&h(Q*Bg9?ieKyi05~eJcmNdlQ1xK@U%)irs0$iFaSzo1vi~KB0EG}Zv0||R6!*yLp^2^$ zR33ozB0LPTpHHX}6!%CPKns?@J_eNss2afK1ZY(tazEe|$U+7_p(apyfK5Fp?vc!Y z4GLk9dR+a0CQ#fXYXGHMkOokBfXxC>+#{)f1JVyt4=N9^sRzY9NWCVs1@s;iCm;== zwjeeQ71I~kbBWbAfrAn=$eTcM4KfgF-bauHAoD=^ADelgs76x%4eU@pp(b!*#$rAw zs*$Vf?=TIZ{Ey87P+TKf@Dmmy;E=>(0Vt}G)PuG(fs#NIDEq_B2PGE}hk;M185GwD z4U7z+5CDmT@;^uoB9Vd9Ofx8vBdKQvsR5}6Wq%MGT|FqOk<@d891g0kn?d;>n+8yb zAZq~m2xI{$|6@}RifSbFJkSto1}9F;5Nd7!71zibzz*RPY6j(hY!-mx9!Wjuyk}65 zHiOd|77IXekE9-SUJO`0DEmXqhlf8TNI`Lrq(KC1FrQE}I6Gpo02G8s>czl54BDdP>>^QfM&B6Q2xhe0VwW~)k8xFGE{@b0#Jw`sfX>vZ-Ey5_2@mF z7Es(HX@G4#ZUN^8EEa$qfTZ3G6z8B20+k2YJOGM&g!+0$b8yh`3AKO<1Z)~WagWfz zXbDpfDi5%!2gNe;Ad_t|DG=rqx4#Wqk z2bBld90ZDcsCtn7j1J&BfKR9uOk=SCFbhEC0X7RjagU_l8JcTa!D$1< ze31QoLam^fyx7H>Omob zq&^iCC7>t+l?T|=gX;p2|Di#e3iSbKwHQb}ddb)hasaXgAPX7zgxW#n0Z0Ry2iie# zkEA{grXExtz|@262eCmx+760)Bn{~>2Z721kRo&oKyilyRG4&@W-0Ofyd8bDEvWI+Kamw_Av%Kq5YgQ6NqeGx2%z_|f(np@Aobwf zfJHqh?vd3)6MZL`2CIjMKR8!)g5n-YLlr1WKo;OA`a3~!kEFgDrXHMF!4`nM1R?l@ zIze%dq`n4JtbpSTl>b4h(4znp_sAMRamK(W1lqI#QjT8qcY)#_Nj+pLh)<{sl>I>( z(9G{bTlK>T8TRKB>H=pUOdoWC;vUHY@VFw#L7?o9%>q!|BdKo$M=hUF7r4X)73=6O z0x3Y!0PehkEC7`U*en3WJ(Bu1u)%ynUEsuu#RH(YN2m{C>;xGKvH(;dfY|5`0>wQ- z17jyRZux||K;;28_0!h}aEaGF1WCgbaKP~ib>k@cyFoFHq<$JmKga^G!(bMGTn55?LfxR4Mp8cm<~VoZcy&WX8sLOx<=A48|DLWTw}2S z6!%E#=YTR9$j6}EkHvx>P~0P_p9eOVPpAhR)nN1C;SVm?dO$&fq+v6N&%h_tgQMi{ z0mVI%`khb*^?+%x1t4cZF`rNmDDIKf!-gw*K-nLp3@r+JKyiiC3uK-nLg`Jkvq&bEg^K4#z(0v(9}QjcEJ_k!XY$%5nHkmD2T1?7K` z2DA|G1w}QodXNJ_=7X|7Ts=J5@Co&T;u=W{yAj~J!3yNwa^{1dw z+6zwnm?6{)axk)bkUCJd?FHq3keTQ{0L3-32AB^(`5&8lP*fwSKMmr8d<@F|*wpVp z%eI%mLBl813yy0nJ^;ljk_DGQxd3DVj-tO86!*yLK_LKA56b=!2f@Q1oNYl{Fp(Si zm!U!02g?5t4ImPV`GopFagSudWl$6{@Co&S^IcO=vIc0J^@9@=77IWIBC7}G3Xp?9Vkey+(R{hMj0PN6J0-8 z9~KKhagU__1t`Qo9srdGs2%{>&nMImihCptut`2}+C$XY8fOzgd!I)2IA}H>W)XO=5>VJ@nz;TDg0#Mu|X^;m68Av^-JOCMr7RM7o zagU@PdWWIVL~vAKG5-T-H~>k53dlzw3qa)o77HeU;vPvoY%lR79Cg7YPzWNc2S*j3 z&?HcK05%^H{@^H>1d4kk4eHQ*KM71@`d|{sKxFlx5M$sIngl8jz!rcA80Hh21d4kk z^%{^BWPC!Cz;TDg0#Mu|Yk(%ANucroWG-41OajF{l6p;W$nXhG0_(#xzkU)Z?vXWs z9l|Fx2~-|nvj7zLNb0p<7JzdPrUjEgagU^48yu2+LX$w{0XY4k`v4U8NE&pZ4w?*d z3<#sCpA2#UvU;#X_=F~d$^&fbL2(aPU(di~07@hbd_t4KsTM&OKN> z0E&Ag^=6K&mWGzGjU5Ss>2+#_oMWmAxY zz=;pp2O!OSLQ_C-kEGrS><~VoDWLKIqy*gq(7K==x=)J98RlcKMOZ8V#XXV*&M*r= zkX z1t6VZ^QVI19$7ueK8AWep{bw(0i+Bqh^B(#9!Y~ID2N&Ogrzfyx7r1~l`hX@LBXtN|2H}f+gVP!o^Fc9!G>pd-2=V~P!Jzz) z%>qzVBU=D+AV@vfVVD+72bqDS9(K6FbWrvO$$>!@wsr9Te9{8bV>>;M9-B z0#H;VtB3k{Iw<>t^nxt_F+iA4Xu8Mr3!o664o)gq%mYO&l6jF}d-;T>gR(ow2z2v6 zF^jAoY%ZVBba3XwVm>IQkwZKZ95sAG(?QuCn+2e#MzSCpnklA(ayvHlAoGya$G`#v zl-uFzK^X_c0fjgys*yE-qmoZ(IyiG+@c~F4Nqq_^20-S3ay!UOv=EvBifUx_pd1TkV8c98DfyxZ9&#{;v0BX1*YXAo&pU@0YcE{!e zP~0P{2Zs!w&dJ(Bt~Xd0Sd^vEIt4^7)gC0 zI3)RmW`MFkHV1*?9!Y)C1hD;lLNh@5ADae{50N#19l|Fx1C;%-sRzY9vU+Hg%>=0h zVYDRCGktIM50T~2Jtw`b)Aax*dP)H$($HFWIMIDkj!~#B{1E6e)Bwh-0 z5GY&LBT2w50M)`s;-w%1Ko)~?1Clu00#J5E61Rdm6l4*SINW?tT7im#(|-v}16pFy z1}Owt3@Y27U?#c)pdf@A1WG4x^&Jchj7Z`jIZzrpfR=`|H$WRs2S8~6NrMh3Zb24< zvKx{(+{d8007+aOl-NM(L5UGbJPH(5AaRg9lK6IzevtS9kpGb+3_w8!k^mJHNaEn0 z7)TtHHW1krk+?vK6iGdJ)()f|0P+z?11PAlX+TTWaEF2tC6fAR zXpkNRrD`N`Sd<+^OVr@5Dg$4#&_T3R4U4mbXsNmv<^xa^Az2UwDo{Wk03}u=aadFy zESUabE|+M%&_PftMpB>y(}^WH87Aw8T^huBQ2f4xyzDHBiWa)Po8zWOG1i1teYpDrk^g3QHV^(BmHDa*zg4 zK1DVNlr2HxptwX5XNRc=c?8LPO;B0`sRub2tR58p3=9lDAfJLH(Be!JWFbf#RFHr* zfNf;(2Jb536FP(zWtt#|Fz^W-1}Q^U4@x^AakMDYtcM2CVNetxYXI*|;S)NHmj5+D zi3em5C<>6(gYq#*97H4e7<6tZD2fk*f*e^r=y*xchS3KoNE>7?NIfWbAgc!*4GHRK903Ihk_JtXLXZYfYDLxn zjk6=55J6I}4RQ!bJ;(t_>fK;I1{FNW>S5-CM`)2XfNtjk83anj$QnTT7bFe}DP;Aa zQ#(Q8Xi=sON+Td~P;Nq24?5@`Bn}Eei20EGrwxlUP{XruaYrW7>v^drVB`T0XprA#z0K^B0qs1}U zV<2%*t%;=G1$6K#NE{U8NDk707Enh)xesZYkii9%T|gQ@L5{2eTIL@G#XXV*&M;DiKyi0L3-3253ltZgW7+$4<~7JqC(4@!g}^#-6y2w4L(h>n5c8d(D<5rQ;;f)-gl$Y78-DDIKe z>w*#?NE{ThNa`KIi&*%Cj)CGHtR58p3=9mqphO7L018@U4WKv#iG$)EtO1;;8FWF3 z5F`!?T4eRmlJpozAF_H-A_S=ig$S~GPMAwKOmC><7L^t{2FgcBDjcAZdhEpX4`p0p z^~caMwgbo}kjbDhMYa)?%0S|vxJ5P(bgDB*92BI;>OqN&fluf-C~lF}Lqp~`$f3-j z_=2|CbU~>MqyZEMNE+;+iR3s)BeDgc)CW=zid$s$FpEJ!iliQNyf&!%JPwLmxcYhq z27B-cQhY+kL1Bul0hIbc7Jwobu7QEU9+YT6;%NC=51N0EgW?uhJ+!Ppj+U?WK<0od zjpLvoN77&iiV~0opdd$f5GeJ5#L@D#9ki@J4)Qs&dQjp6sRxBDviZw_Eu5(k-wq}~SRAW&2ytJeS-0MY;oDkKfC z{hB90afz$}l&C=JK_P{#9_FAK(+_+Eb%jo#WlSq*wmSg|GGqfmi3nsMS~j(UiGzwl zWc8p#1X2%5BS;Q_bsA5Avn?o8q1j3wl!!nYKtYM5!5m~ENE|Ir^`Sv^5)_ok>OqG( zGw=zWM2k~>Xq=uz#3=)VDgy(988m;MM2k~>kV8NQ1x#0H0|nJdw0vg(vKgcR6j?|v zu!eg5Bq(T*g2Vu1Ge|v19!b3os2~A}gW?KVJt#4O#KBR76jYYb$UTV`M+P8=fHZ)D z49NluXv6*_S{xaG90F307Dpx^{UC9096<+rK=vCzo=oBafk$nt}Bk;mwB=e09Fff>b%EVJ>Wvc-+?oNS11W5yI=Y;Ia z8k9Y-sRxAs^YoILT!QsNr$O zW>AWQ2AdHyoKK_GKyVF^aE70eY6OaJ20o$FID+{!T26qifH{pE>b49F@S*3^Xu)m- z4ffMGg8dA~bcH2cqTWK_le@44$r(^#fEOnrkW{(C{Ae#tE z&L9)f!d@4YM?m5rc_j6)p`o*&I6)FO1|470hRMOc$u&601K8N(@LE;TEA~IJiYl-QU-13S<%5pFRkaUp4dTRdHV2bY+% z&^b^d!e&v$bb}XMqQ*k!K&c7I0JyXk4yc5JMJaO0avl`+ zNEX0Kmh+(0g(MEQ7?hEb#NigBB{nl?@;(nLpP@+P!2$aFkgMuE(d|1hH9+cRS`~Pr@(GnZnVzk6&22K6vK}8fci$Ot; zWU(p8Tn0WNkiCc!s-A%XX2Aut#AgOg6_kH2qNOrZP`(6dz>&%>qNOr(kdHv>aU`;f9@8(# zf@+s&qhQG)O%tN|1c03yMmRI9iDYHy@nXkZK*+MEXUv z)CP;Ai)g9M0u-bm3lOOa6!`E&b#VpEhai_AxeV?CP#hqM!+i)U(y)nx5*w1ZE-Z-A z5*w^Uy9iEfNQnwIOMDTOSda|@1s%vIprA(*hX*ZMVuOVU=wdrWk;cGa0g4(1KA}sX zD1qe)ko~X<{Sqj(Az1+P@g=mx2AiG+@At)~9+aVx#NiGCB{n2+3-CxI$VH$;26GWo zD!+uD$Ur^?sR#K4$slb|6oSM-A%!Fkw-_yvS%N$YQr`d?X~t$TT4I7*0Lu4B7Qn?p zg*=it++tATLlUiR;Ofy5oi<1v zNIf{wAzC7anJ^1LsTIi}xCXSu2=^ICACh`YP=00L69S(k4fYv0x52a9Wsd0z%eh3Q zg)W0qACg9xMVBSO3hITxo3^njz)`e;kD^9WZwd7(cr!OPmw@5`Nj+@!$7N6=WCq0t zw2+5Oprt}s5L`w}g;vlK=Q1d@VY3(%MA$4wF3~{t!!1Tng`hYBg)v$xggXc=6%9>7K^T+B{o=*c?DDeFoV_?z~UNYFvuVUXsvJs zEw#bc4uLn!Be?+PvMZplMiRFIWk8UDpwx!VW#H6?$cS+B!HEqt+YEIX+{tLE4Xz;r z=3-E?LvjJ!WoXIH8WbiVmx00>o6FEr7u*48smmHvD}c-a#R2p5E3({z^+H!bNe#&n za7AcI4emI!lm?q&xdKX2*c=B6RwVP`jsvAMW^BO*$}>nBtUmYMzX}Q?B!gh< z-N1+PBZQ zC<2#PNI`223o1|$V2dMgGD27kk0X#iBoDxS4vH!yak$Ts(-LUf3l)pm46Mb0D=cRTGD}sD>&&O!Vgy5UIP_ONUnja2c;-%;@}hox=|OJyW!49OH#I= z-~vSiD6M1j$q#UNGYeg3fH7cc27LDglHD-BUB{7TuA`+HnBT6Wr5Tu0ucM_I*hKzy zP?}*xszqTPiR+NwBeT%;0I*x@g{~u)HJ}^~(#pUmbR9kMfT9T`4hjtR!AiP+^;xN)pc;HLd3frsFVje2rYpbL#OtyqZLVZAcuq0gVGf&8bS8M z!v-y3!Lr45w1lM#iX@OhXbB4*Dd2>KI56Vvrd_p(TQW z0%-sx4kQgQ7vBVhC6Ys71<6fNhDQ?DhbFR{phSZt4)+*xq5%!*Ilwf4!VH_mXeAQd zVo;nQS)dQ{DaZq8i3V=*is=*1f`c3sl-Mi+B@!e99YFaIWFT51(FY}OkT_Z*fm?)@ zNMMK1-vpOTNJDz?parE8B#U9&B5tCUOfZXY;Yc&LIHo^f0S#K-LQ5nti*A8}8rdQc zpMg*47FyzgTLcOLB=s;K-U0xJ78G33kH7El^Q|&7uu3i$JLf z$v{}DxdpNiNgQqwT556x%gHjKY2AIXS(NdEmD4&1~0;L*k7K4f& zBy(UH`8Fsu!NfsT7~Eob#Rkd)ZFqa{AL#h|D_G6!w}DDfeQ!_5a}Y_K>e{23S+>|s7bON{Wi2g!pqfWw}_ z2~>hG@Cn_)k?8KAB|2E!=ng1Ekj&Ak2e}Yr5L%*hf`-H$v_uDU&>fHikPLDHWj~NP zAbnWU#2w^B$H2f~2Z};a6XFh9qJs^6-$6@s`XF^63qaWi$zoVH?+z$2B8!7U0Hhu* zF~Tgq14)e2ugY=@)C=7~OM!52qNPA*Pk z6z&XsLU%#hvH1KhC}fb-!+Z`t7ZbUdgIRnRJt;zceitnz!hC)gEyclneiu~yAz2Lb z`CX8CF!AZPWx2VMh3=xKLQu8>c?y)cU}_lF(@=a;%Mm%?od!U0#gsN-vtyzAPu1Oh0Ud)poeK-U|_HW z1vN-LTJ;KR_ud1gJ0$h6qW2yspCgO^04+0M;1jxsmcC$<4foK}7t9Cu&`LTNP>6xd z0i`c29=Hbz5hROY9=PX$)-Q$CyWkUFku<=40Lod&;-C-!Squt6WN}aq28pAUXmAg} z(;O)L85kH~mmJ*#B`$0}KucV3AAkxsB#U89uX~_Gha?X704Su8#p_`{Ku=sSAAm|f zBn@yMpd~t2P__j57?ilMc>rV{k~y&Dg7x=6i4I8uZUI`Na|QW`flmm0lr0tu?xPiI zuxj)^TB3u^z2AqVxq5iMhgp0dEz!AxdYI#B+EmYkqvM)%Q5IyX@E0{Iw}=&)Ig zmgwLXgQ5t@18^UMOFBe>1`lcQ)#6AR+@J*u_+DFV7K5S!Nxds5v4I?lR?@-7Fz$oo zk<{ygLJXuHkr*NQ5AGtg#OMafjvx)7sKDYNkU7W$WUv;|1GK~li-HGeiBbCpD6ui{ z2|a+MMvTPxKwTWI# z2WZI)mh2v&m36R4et=fgxkHot15oP17Rlh$1xhGr74-wO$K<0o_9kw6?r#hrbFOXkBt+0n^g`7L6XaE_s0Gb>h zq9;3;O*oR>L$qY)0SXe3fjE-gLvXS~l$x;A@(^SXaw{D+p7{_h*};PZ{E@B{L+8U_GKoGr$__g&v{Rk@}!y2C@+?HFJn)E@b1tbn~ zDY8YN$OnmowzO~1KP0#%TbSEb?0NWWCv@gJO()(rW2IcK{*WM6|`jM1j^zd zakN4V)`NeHo*Y3r7^EJY?2zWZ;Z6pZVu;cW)@ptXN{&blf?EJttYa+n7%lz5%7Dk{ z=?|oiflufOWUf3}=m}bSgT>|(kk^oG^nyD52`HIi$rw-2D@{0K~7wt`7F2uTIzBKDFj)JmbzeZ_yjF=!E*c)wAAGV ziffQLC%{F8x6l)CGDD;$ScZ9mmdao`{s|}qkbDAbn?8Z91bYIq0Z9SOz^BNi87OF= ziRCF;B7zzC6s-({#nn?#;zBYXt{$AYkm3-o0b~)923XuaMJv<1L5YchPv|Kqv0;hZ zryzMGb6`czQ{*xYWIrqppQ5EgSUvC*EfvD*fv4b9h#3`6(Gnrte6+I8I{~`&{3$4P zBD)lnXh1$gOP!7&AA!UnWnHq+Q&1{H(g^GIJw;26u*C2bE!DY!3JQ>cXsHe!6|hwI z6fM=kTEkD#QynNVfeb_|+h9`+Pa$Pnvd~jdnT6zXSdM=RG5|>&7WvQ6Qlk$j6*BM% zJp<8LBLA5Lw1|3!mi%B|dj?K^h{%Iwv}ZU{-!rt-=L7ON$N@M~-!o8LVOyj53_1BR zFfh17SmBB4WOJ%+wFN4&BQW-Xj(NY=QV&sM#$bML2c!rkh;1+|z9x0Ld!W;@J z>#$jjme^n!@)=rU^W4F}0Nxn*98#0k3q1!#4w6lvJ5b>^Ue1kt~M$3^|oCFfbT_5*H|hKs1tixW{gwjhMrIhE}#2fr1QV5GeH_8w83& zkT@tRkid3B3TNEpU{9!XLV*4W!`(TH=EF>;))9kSs6)84NNA zl<1JeVLp3-mgry}djWDVl6s@*^WSl?)eF5qOLMR&dx4hbU>*bCV1{IlA1H)D?g6Da zu*X1!IpQpZ7oY${Ru4)dAoZXC!B&L6KudFeAcuoAz?NXY0GWVnB1{36LKI(QTc-s0muSa*YhP>DuOEjg*B2*Fc-fB z8Gt124+<-gfuMo`n~TxvNmv2$5>%ogckf|St}j8!3&{dlf9fS#@`5`E6l6&113*Cm zauBHG!sZ}Ql)%)3vL-C!zeGz_a0j8KD!7Bt>P@(VKt(Og0tN<#08q$)90W>jXb$oN zCEJ&vAVk&xO|~!5QX8zkdx=(W2Ef!mfHpl|qNTO~P*{UpfR@_eE(Vn}$PNGn9Rr`x zD;%lt6?!TJr4^8RP|zdCDXd6(g_a6oE`9}aIg-UN2fac|lmVcS09gP^d}u)k3c**% zMHnbfVfpSADD06efIA2+Rl-8(6)2>T)WaQwmM8;3Ap>#{DDj~=2;B5|)i8a+JJ2-9 zD^OS>nFvc&uaJ`=Xq_*pFa(*1mI~o6Kud+NOG;jWQX85Jz(E2k^N`~LR#dzKB|{_! z!Gi=X6$XNW4&)$E*dwWjI|wZm27-bDq#l&`U=9Ms1#BVXE40)HD`{S#r9PO0UW2L^ zB#U9Ypk9N*9!VUo9xYV{%z#eTzXm5u)HVqyh+dH7I$)T)@D<01tAs)Co)GuR%eKq&^4~ zbPRk#Z$Li9;@~%EsSuX!-hdM!QjiCNd<-%OEfvCo_6=Iu2v-kEok$LXdEgCN>V$dV z4Jd?R>OuAgfr1WXF(~n2^8s4ogB_Xi1}*WyMjhUuRm`wKg*Tu?39}e<9SivCZIH!i zsS-An^ad2PNE%=b-8X2767Dm!L>UYUVvzZu#D~pe8yKcvl;sww7kUFO91$e~Y&h=? zC{B=E0FMi_R0vCLZ$Lqbq#o`vv{V=j3L=opK#33A-1HmBFdnne8`zGix3IqJTTntn zvIFMUw`d6s=GM2MP(W4>Qpdn2^cF`tdyAINV19cGPG_J5gH}eoMN4RK4af-%X`S0! zFX_8`huMs z@)k$>dJ8fSxpEHy!qu-*HZXqCtGw=z$1J$uueEAM7(ZSXnzXK&E zn1?}W1D5LEp`|*Q58i=-6Q%(vQM^M-bs?Y-067ShxUe}0EpdU?G=s+#-l3%~xPw5= z7bJ_}4g#e*Bym_ec!!+o7#J8p)5V~Q<{c>OVsjAsEfIR4paJ;+Edj#1_wUdWAZ()b z9a<>{+amA|lmL+&3LE@=2Z}ndI4JxK_QEz z9u{Tw@6i%nC@61&3<4!CEIxP-F47RW0~R&!K|V*a09IyzuS`c0hozzSkTeHf-u)ge zrNO-a9xbK8b)%&;n0MZT;t|QVP*AXfd;>~Q*n9&{P@qHrEuh^%5em|PR;1~JQVd8O zEky-`3t}!7lR#hZL3|`hb?AU?KDYEk(gX=mT151@qVkkVlX#)&rGB z417W#z^C*hNd$sYBuD}+MZpaMX+%=52TCI#^^g<=Urh%)JMRNp+Jc492Y4C+g+Efc z`T;Ewg@K|3WC19yv4s#g5h1b!JcMwhp%3V3s2*f6$O8041oA0J94!&Snz0{{6A`FY z05b>VU~D0To`yj6KWLA~2ONp$1CB)W0WA@QLmm1NR4QQ!p^rGy&__rbLM+FHC8Ccw z646KWLM^I41H6n!wS{jJ}1vvws&?iv9VF{5>IMT=`TxsMJjx_QK zM;iHrmPP_WQ2=rfjx_QKv=$1u0ws0|TsJ`Gg~ld_qej5uhLkIRKOm zkwU~2WG+Y?6vas9M}iy#5(lLbMh0zoNe3Gp`UGlBAZdU#k3OxKzTp{{XtK~Jv_t`` z6h5IPib!aY`UzBEAh`@~5n5V+Tl4^IQN7S7w8)2B1gd3_To?)R3Im_eXHeuLS>z6K z5J((U7a*$#IS3>Uic4(jK|zGvsE-6$2+{xwQzQ*ApL_=S6v+Y|X!iMx7KgCr%xAPX zj0B~Akoh2eFmpil39RAu85FrN3D8wvHTg_ zwL(;gQJ`1^`3;mRutfqWl8`Kd9YOOM)Tl)ghc(~7fKm%H()u!(m%e}k7fAyw625>O zfFusPiSP^L)GuS9FKA^3+(1w|L(&Kfqc0ZVFiIBs0#0xUufn=cU(gyOu=Mi(iiNO z$1mXY1xnG-7BbvoP=ZDBNi@jEAd5i`K(ZK?mA{~+rf5*c0I3HhA|&;&dvU*jau&>d zkp0mhmw+^YQVWs>m<3-!6$?xQ0|P@ev<&$QihLyXFblq-#d$O+)iUr2eFfDANa{gF z1-P616)mn|H*kIh`5f6|Xd(3#Ev{jy@he(f!$R~cTA2gdbqeY}e=Pt_zazN_?qg6K zBUu~+ayiHcppZgR5Ap%nAhamc1f>O#dbAP(c6-cMP*j4=2ZcWr0 z14A^-AhbA!`xq1=$m&6SkU5~ZM-qo+udkq}KoU2c{(mlL`u!_%nqXjnU*h@|RInha zhh5_O6_iwv#Ni>0RNYV!@7Up!Eu2oabd^pen)E#!fuKF4vHd}1)#fEp=s|sS`>lO1~{94N6Y51 zpv2C=C-fZ@gjjs`9h7*GEQkf^2dM}799bNiNxp-k7+D;|2dM{Vb7Tpa22fNWiGy4U z%Ff@>vVR;XWIzU?r3qN}{|<^GBy(awQ3z5GPb(mwFfcH{gASD4ku<<91|=dS@i?$P zKB4cRM1(DbU=4=vpu~iv5gykdmmrD9!GZ)WU&9tje@9D9Fo%JJktYk|pdt7Jl$Nlq z(f8tD1RU)GEnMf{F~Xpt{hwp8=iC|B04r zU_Sl{@(HpAkV8NYLQfnZbs%xHL;#z%{E40jK=y&u&tRCoumLoC_!AV_$X*16DM$q< zvXNYn07|YPaZsdUQxA?*L~W1&vKgcv6sOqKgOVw84w42?S;oL8^b4)(hqbYOAx9nq z149C+2m`4Hl?2EZK)v`26lBOAI50h+luJwscJ2Eww7AkeF}l83Em|Am$zqd!b5=Ms~G^)P;c zLJmp0e#UfzaxO71Sg-CED9VuJVe@6bKp}u64z~^*m57+s&X_&{WFM^O@*6EX8YE0V zP|hVT35qxdKB3=%i zW#b=EKp?5txiMX#noF!6?oqUegq59tFd`BfaA>(N86*s{9~1!CJPs-`k?e3)y{2DHCuOygt=ur)=XaAz*X;}C6FIp0Cxy^aHhA;;@5R z|Dh$26leDFzZMLetgixCEqNHQzt<6e2J^ zppHu{2^O~h(29ywXq5j06$vO&4hlm)p?{#HfaFTpx}JZaq5?@g>B964bzEXfusGx^7K zhk7nCBbb~1gCY`19#(Sw2ZaHWxJ$+Kf_g4-a8pKF=s#L=NCojhu7Hf&PG4HjC1{ia z%77q2v_y~!iVl!CS`}fCF#SS3m)P{YUtH|MLjOTgj^d$d4M_F$e~`bC+y@KG|DY6r zB<}NKx&cTZtW@|9aukw0EFu3#D-}`44`<&beAv#TCo5f z2p1M+KuZWo7p4a^A`-7K16s)d4RB!wgK2$SV$<6ixddQ|SC|3hStL(D9V^U$mJ-rH z83N>3?8SjF16pyA{A2oqMlP}Galg4Zv>4Fxei|s`K!%~E41_EQt6-+4Uz|? z0F;oK?$E>~W|RslsX_8+r9mtx#z5j|DIhLmdO;H+g$Of%QUa2v(?OmB=>zFUu@9U= zgc(4dM^+C?@F4XdcOZ#_vIW@vAa{f0K`8;nylKr`Vn*qZ1SAZSK^~)lIiC@fAdrlW z%b0G^jO2VqwD?a4d53{dm=P53AVZ-8m(cn}m=R`6D6zM+Ln ztR5atXvqK`P9S$8>4TmRD9ngfVL&TCVMeq90($O%FcT;hBAEjVM`0%Pgfe5gKr5)m zfCd~BC?6qdgq0vnpoD@X9(!WC14th%^E06(j0{l3Fz^X8ff58tz)ddz>4P>{gqcA3 z2+3Sn!NY`BIB5Tvz5uKbCC< z422dX+7G5Hv~!7ZLB|_}nZZYWhzT*HRUY~qrU$fhiFv{8M@tXTi3?$7wDbT=(99rz zBH8Q4F}g)% z3bGz#9H<;Xk%r_W7PR<=#VZS1d~45`ZqUgk#sw=tS-@w}iV3lx#jo~{=?R@&Vn)yt zo`qS^@;fZOvY^GMRm1cNAbp@^-3%c2g5nj~z0mT21ugotA51^c$t9))9d8q60i`=6 zeX#Vya$&jyE4P>v3n-dUq7fPnpm0Lc2W`O%vw-q1lDK}ubcHTZw1a}1flrtff|5NpakThOVwnB_WFFj|Xz}d|%^s|v?0{q*+p@DfY-lM0*1})|xdSOgwI573=;0Fc zg5^jyv=jkL>1=2z0+xc<&`Nmi8PgL$?tsgqr3hHgU_(n0ppkKqKIr`#!fa?U5BD}& z%xfD=KhOh>c_}uu7>7kJ8zjbs*g%nkn&$VS&w#7TIudw9?)F!}Ne&&;$!8PC@2@5(APuVS&kxmKJmbrZ@C*iB11E zmy3gm-2=4bO>FwMUM_*@_dpqe9ejqRm=il%oM(e7L69|Qr2_N>8DVy`Gys~X>EjY( z)ShnN$0hCs_XS$i!ZJHMdenk^1F{a3)RBDU;xK(dAD37XtWal1i&|LHV+T1GNgv#P zv`PRjj+P3vA581#5|e_ZaCT6nAsJ_oFx>zop96|~kTXG%jZ$|^Pw3|olT-ucCHHtGJRTu{-jUYK6YW{T9 z30#6k(D7Me4zzj#y0=r91LOxJ&3PB52Tb4+tA{%VEk)#m>;yRml>4zc1}*nP9V5(v zRzE;z-i0~Pk__~I_~}n4a0yD~f#MBh8K^UWyOEQUDIl1n}`xp3l0E}Wo1!*q-= zCt6Dpy177@GhlkdZ!WRv$0l(Jz+;3HtpG7dnEqiBmzWf&oB%cBI5CpPbcM-WVp33_ z3v;3+2jd;n1158cS-~n-PP7sOx+7Sa6D=jcnw6a33x33=Z=1{|kdzNf>kNFtoS=|E z@+qu_<^&}xByo61q9ua@P)LEy0Yx`j@|waWmINC--~>fGl6kPS&4m{2u*!!Et-OF0 zlU!&iz`SDmf+<{LUeHx%!dz$t26Q2kFc+veMY11Od2xYK0Ft=wgK1N_#FAiLJ1(>c zhdUb-d`Q~h&PFRLpyyx;bD^aL^NQ&SQ@O;L^j}P$Fcs7#1mz+IK4C6UE3&^&p3#r4zVEKpsW1rw|k{AoZYn1e-_D(hby{dSPymN0AKD04ZeP z6XpgL1xN-#7X=G*qa_SY5Fex-t!O9&IUFPoN*GAyz(yarK?$CDdd+k$uB1Ycqd{uX zQVDdEqcAsGDuFs)m>VsX6oLE#G6z&NAld1@W7-TZv3j^uL0&}iauFy^Gw=!Xfbs;A zHkg-rKtX}59^@R5dXU$V#X)fh636akZDAg;pAic(VE*Gl^Ear@nZ+gMRRnS<$Uso! zA~_5ehCFB$CM@^xfc%f-Fwl6wEYLa?P@(~uhn72BZ%kh>i%ZPN98`CKYR@UVUOm~>eB_>r23KWpJXtAk#VtT<`Ec8R-(@EJ@$Ajd7H#Rtl|NS-u?$%7&f$=p(o=>hY(#F#u8rZ>#z5|b*01`;1A zl92R!CQN?-l84o+d}xuRZ7^M60hgE*tW(AZ%5q5dSVl~D0Lz0?BFO)sKtYl(7MNbJ zfJ=_aj~$6&Nb-4=ruSAZ0O?81n~=>?0S@n|G~7LVr8a1sC&K1l9|wRZ); z8^*+@Ut7#2zy*tB0Rzb30NWBS0oXcDVF6GIMKYlbWFiBfumC6qQDSy_!V)equQE_d z0m-AqAS|Z{pcRv_7!p8>xnhCo2bO@wsz5OWG7l{VVU>^oNFK?3+CQd$Si&V%4;w=g zK#M_G4_^Qjg-H5fm6rfol$L`^9+3T@s6_EEBqa-=Rd&#nHNABym!MHOD0_f3gW?d$ zGPtMF%1rGC(;qAaWjjz{Fz^Wrg6u%j2TLG=Xwhx|VYf&OU$br6qq3MLCFNkQ?SubK~Ur(>8k+Q2T~7;JS6p=3DXUhbBRe+fQn&|JjmTh z`gAj@%gEQl5h&v2R(j3c@QKHqLJ)_^^=4^&P5W3 zB`P6M_#uf`fWnc1Pgn>PZkYa+78XK_I9PvB2%1I3R&oh2>2H|suo5(X1PV2fX`sRu z$rf0zP6#bFp(`|ng+P@cl6qK{5kk+p8>TN<2^z@+Wi^mJXoW9y|BbK^DAbV5gALOP zfhtcVaczTXtGLAK9YBczWE`kdhb#>(VT3^5LK24?hn5&%nMnvO5x~8VmIy*1iA`G= zd_z2v1+d&DgqA9-8m1pug)}%QgqA7{9HxH&$-^cth0$UgGy%IBRJno7W#AJQ1{Ent z_Bsem4_FNv*#*T1NFFWnD`5IS?QWFRGQD9nmzWo;*+U zl748BDJ%>=17FNZ7%f3mfN~p1A6iiki+EwQ1Yy-MeZd-}szVqpVZcTygwYa)&W-68 z)__aVX=_1)6wu@@401M-bK%|uISWZV1e7fp_=H7p6ape>$)XCR4x}EG98jVaB*8a* z>RK*ABUl`Yprr{|T!?@YGm;~8H%vdU7L?YYju%0zzGFP5e^`q&sV0J!HlWMIg+Yj#mTw+GBG$n#o7Qo6J5wtWB^I-ahbx4JT2wIwe zy9ce1fW@r{TAF~n57eMWavwa>(9#I3p(HGV-sFBTyZ#&5{f9uLL_;(MQ9POyJ336M$qmYP-X@>1TBJfZcN{>5mZTn z>;uVz)FGJ*bC4(~evrgrwT&oR{K68RC|d5I>;+5hE@dV{+Oc0n z%^6UPg8~yRhrXb)Pr(1O5ji5umzOmK50u4G?Q_@)D&j#|7bK5X#8(MSF969ySIY~Fqs6U3!t@1Oxy0&g zLH+>g2bqInKF9-n!s2K}0IUcVM=Jtgjc{?a=!H$(h@%w&P;;i6ZsQV!Z8H-V2c;3D zK#R?op0JHetR9v?#nB=k?m4u`hX*Do@Q}=_1LYWyXF-V!$+NJbLUFW2PzS1yKy40j zQ2s~K;F&O8VLO+YQ5`6if(!(u3M7j{Kn5}Jf!la!W0nD6eIN&ez3 zooJ~*+hBUZ4v>AIR0r}0TI|BgQwg*Ph3;k)mH>qtQh0%eBX@9#8P$XQ4Kfc@eq(bd zDB_Uxn6$o(LFpm0Z$hn__zEP)Y!&~OH&ekAqP52jDp$t9Ll0t#OSK4D3a zG9-CzQ0fMWgNk-6?vq5z)zAYmg(X4pjATyThv^?c_Q2u`yp0n{z8)IxlA!R#W)E8Y z!iISz(Q>(3#Po(;pi%O6G;tAw0w0N!qg%3y^Ew_XAf9~QEg9I-~ z9+Xi~%moD;pRgpzTx5SiGoU0|{KLZ)ErY|u2NWL2=77v);G15$8#H_jk_0&dlxUC? z)g73=U^i0YkVLEW8$g)>qz{xiusI%-XpqdSH<-2u)G^4IZm@?-%n(*6NrBP=k}{ZI zq|nlW#q{_+T;fu&Bq0S#>d4w=OrNj^v~~d$g$#VcQlOwhl6Si>{QyWFHn}T>mIQ(u zrhfp*!zvglknfQ6=Lbwz*bCZ12g*Vq^UO4w=!T?Dg){>G&i+fN@Yaggz0P;KopRhDq zzK82Wk9<)50a6dD<&o@xo;M*ZZ2&re8Mu|yO+eKA3MY)AO#yzl|hS8?HSWQ9739@lR?YZuzV>4idZB^ zf@X9MBl{h#2ycdkF{tQ9a-92)=?#au#Jrk8?f^L+6h}z%unw#YC}ASm2Td@-vLL@9 ziGv2O4kPs+WzpiUZozbcBV1xeuz>9dfSe&Gn0SUqfsi!3M+Ajvm_)PwYaax<22kp-nG zB=xWiDGN#jNaD?)3hOjJJZmwG}eZo;LF)4VUp+$b(g6Rj2 zA|)DGw8)1CDk$=i9A)4zUEvs)m=WBQXc-t**vq2T-_0wg2OL9c)XJhI4hxCt4Ip_~ zpvs{Y?phMlH-O|phf;!;3CV#X2iaW-(;pn;5@TwKm@aUfOUwwC2<6Zs9d15a4X(Xm zy2EiUF?c4E14SZ|`8pq_7l6!#O#{fGMLH}I$$=srNgt@IcbrSCz6Io820mdqP-7i4 zGKJ+pk&L9T8B~yh)Pph^k~pk^BZn5>u+cI(?3sVM=?N}DF1Y7+K&BbfPH+jp+eC68 z8)beV)_S=KDbLkK1VVama^p0ih=qW(-lr~iNPHy zF9305*hww{c-ulAE$_qfjyzhq-3kf@20meVjBihh(pn(lB4**>&9uH7)b03;8KK6$icP(Ne(f>X$W zvH%h&*G_Q>NWuzsd9=K(J^lYFE^)6`P&o>66I#}W`vEP&+dyFjQV*)DQT>o`noEoe zmL%n0K-@6xG?xH;NwPdzEVqHuCj+0b0>}|4hJiwgPgnsh|H2|f0WE@IsYn4Wf?=&2 zVFgf3A|N$pcATKV#ZCPznb*8)OYy zanQPBy1_Y6YaZqdw1fhSNJUV(Kr*&|#`J`9Tw>rY5<-fgz($e;l}+ck#Io9`k*tK49y&n!LFS;P zhc-|q1r69Lp_LGzgbH$aCp6xbKp6$e0q#4dJ6z@x^Xh~etPF}+BzahXD5FJeC&*z8 ze8S40+>hi@-3`+hT;>upf>i;^Xb}vn0+c}kf}~G-#n%4qQnD`1t;;#udz^n@#*^aV=(AbUW;f@B_OH~SUP>sdH_fs9u1)EjwIiFVtNBe9&SD; zdXeNoiyA=kFn6nfibEuM?S|4W^qz$dH%@;8z^ET5@>Z=V;_Qo)f7RM3;b ziRlj4kn)2HS~BPYg&)X1P%^-h+*Ht72(WTf1ub2`{H=nPE}&x~)309R5|o0~o+@aG zL4U)v>s(?k=SGE8FcZjx>s(@zumqrj zmO#3v@4wC^E(ME!6|{U`Z!rDCbx?W+xg8XqXz4@$#B_xlTw?WbKcc0NP7oiY50oE} z+zcx}RngK5%$cfa)k8NZEExENRk0Tz)3@H>5`;JWRnZa)C=uS^5=(;KydkWLmRMkp zS4C?fz#Oj%N<`QkkCuoG5~e%cSODCYZ^CnVjP8Af`NcI_k z0s~|oT0()l8x%N5>R|~*6+NMBn051{%{pfaGD`0w1t}B;R>ry25RwGF%O< zEP>@4HBcHs(FaOoe8OsIWed!oYG}!&e#Z2M+gxH+Fn_9{C6^v(*`fxDek{?e2HEo) zrG{2!z!n>+fszH1`(O=JHMC?A4GLcdK4CRbTMS9P?uO|OcaT=UtDz-}=nvBiP~_2) zLBfOS3qbPFGE7(vEgk3xOuul4OUwv5lPs);mJZqq;#H4zmjTCiILPPR-U&8bS_dzGi#d32v zsiQT(`#`bGz$dH$3SMMQpjZNlqqmS5rhjp{yTmvoj8BUnK;USlp6f6)lK<+|vPrt$R2M>{Qmj+tu>jxFWAp1b>#%3Sn zXbB+=wB%(WG2P)2mzY#P$e$qnXr&KmarPsSe?b0V;1kva6$)6)*F;Nh{RY!7JOa&5 z8cchP6nC0vDNILTy1`>EF|JIIvp~j!j}R1N(sY3IF4G<(t@_sll^n=n0`eaS~p5*m_xAE*Z{RTf0aza79+3H0UwoiSbDDX4-5 zWh4eZVJ%SHAj?DJR0}O_!|Vf(<|CLKS3zS!o^l8tS_KZtR3U*e77RVdO(gxEFo^gpK^@D;1WITE_g7_eD zw5-$zN)8}#wCIHmLusLv585-PPk6>9<^?@UTUZM%dSS^z3oUwKeI_lmXw`0*{sH8# zK9Kz&cYxfFWa>$Gw>T0NI_|py)+5_rY|57oaRIFx}w=mzdE6kUYqI zko%C-#e#||kT@t_ki?kjOb-Cb!%9INv|I^l$Gt*YgQJ5MopAqQM(2iCTw+X<0;WHB z#U+*mtLbz=r5BR@aQ|XNA1J{1gmpm41xY&X6 z_=I&qr6`g)uyEFethMmcMa!PBcD634=10;u8B|Mx%mc+Mmh7aP0G_MR0v}a@qz~3^ z)kTX}(Adixq?M$)pnQR(PkYAn18*St>cbl@F-h2*wk}%y>Q0w`%OwuFG9lnCmzdEc zP_hC!6I6*K8waYaK;obl0h0LSjOiQRf~*mk{@^W_m=`>F(4q$(ENES4aI27kPgoBW zT`0ja-QgXVSduy@d4c57q77!A9$K_b0l5#P9uzGo=0TD%_y%4i_iO){e&HR+{RY$C zgK{Ux86fRwy&c^X(+%E(lx0j$0ILH94@ez)s6UuK;XTsnDte&86Un+MAn$|pfnouh z^U!ix1I+tql^?9vskdXgLN2#hy&lLtNcO;boqA}w4<2lwU_w$q6&me&Aon4QgWSWw zC#(+&ek|?i`?)e^|ZAOk@mfFy4)W4gmfF0p#p zDt3Leek0Jj(vHAv!choU7F zxPw4R30eJ(=@&o&0N00>RCIq#`vlq@4{{gCeUKy1rkj02YWjo6ppeX*3QATW#h^e% zNiNeTd_pR$z+*s2`pOqfKk$i5%m~)zGyo+xBzah6V}O>brhb_I;S-mb5^STc0a_}8 z2BI)%El4i6n2-TVssUZYG+p5{mzdHtXlesz4-|JpN)3YyaN#^X>@$~u7xW@cVFR=j zQ3o>wEk(qDN^S-|VFR=jp;Iuu;WL+*7wjle@G3rJPlHk#CxS18%W}yr2yZ##JFJ9zEJ~Y zz~S0=E&(N25o!dAVI)o9QV8T}@a?~1)6IUsmcJUIWsw;U(-VGx8lNC%f^?u|kr|*Y z4H5^%A!?d9@PkV%sTvfAAbGT`FazWwkT_aa0GB5qaZq`PpoLe&@)ji~l0{Nxfd zf^94?MvF#R7BvP%BeFh$=>b2HCTGCM;33%u*9S@-NaBT{w9UXLY>XDIumzmPpge-4 zzJA8^4L?EW!GOXQqz@F1Nb)fM8ly$`Oi+;nQV$AWWOsw~gT&E_OjtM@qZOGmLE+B8 zH(m4>mmqvZ+ZYs>NRF5V@+8PmkR!2K2EOZAtlk(c^5LEa1qzaRu)}POL7qSohjq}6 zL5T%PycpzYko};##gS8$_K*Hun$pn;Lk@U?5 z1tiG*peh2%epp}G1g!?HelR`Y50{u1ESs8ust_de-~kRwVMyk|P9HNtOJSgF^#^HX zk_lRhD%mjo!5^ez%LI~w;QP8}gTjr0PuLU`JxKO>CQNtui&Sixq9qKN`%O_21_J}k z{idLFfn*+R1Dq*Zx&W>H`wN}3buvY(LST_)3d)v9fm8y@o*+kq5)G0#Xp`4pE-|Uu zpuhvkgFJ`i2+xFR|B%v@DOwsRv6yZEl85^Nl*W;?d(4=g@DFJm#T2ddfSulF3Q7w| z&MMh3eF8`ytcWuOIUh-W4k%1O&ILIe$v)47=^y?f#{np>AnAk00a~2H-47~7kj(?d zF~}aYGyqyn_#af0gVH`o9<9)bj+ox?AIaZlpfr!{4v>Es_=L^S(uhIA^bH_$=YYZy zBoFc@vU?JyKLE+Yifl8q=r6IDD!?t~1@n#>D7KNbdw|M3kg*sw4alE-!e(ei#Losf80wcGW6g+%EUO@J-#q@`_s@g*3ly!`+<_LY(=JReVCEKsFE%#^CG^?)tVvhCCl(-T;@5j|k=L?x1QVI2kw1@J)8 z^l2>I0+JP=Ovu0|Y=IV+`qTHbaD&GJKd^9%!B+xVfT9rD%!cU-tlWsDKo+1@9FjaN zsw~i=5SBzOFrpBYX8D9IKv@9Aoaqg$++tF&F+~edu0@gu6-}(%Vn*{o)j7yJps2(W z#TKBXh@`Lf#PkQO++tqyKt&lyA1DVS$-|Pg1*j-T5}yz94@f;I>!R2*-GPl;OllfP z93&6Q!bti+OXorIaQ~ylIjH&s$-~0U5)>Rr`av}!NPa#j2{Z5sTY{=<6#J*KgQ5#2 z4e}O}_P7_*4cNKG;0KIZqUBUr(y|1l3M74252jB5n+x&|$Xc`$|pz|F;^04e+g_g}1GE7eZ$-_!OE41uu_+k14E^e{u^EPpD2w9=! zU7Z`#4}dho4F@G&BtI>*nEnAI4>ugG7&iPcU4a{JI9d$re3%}<%`FB$m(U6=Mi+t# zAW(pSA`T@$rf=Xzs_U#kDI3XAFvnV>MchJA0mHy2Y>kmIK??bVt-GlB6-+fR`IFf@3`aGJ=!F%Pn98yROC>Ei1!Pur(+k zkqiUvp5Wyc^I8N7K#)g35sm2)VQaLk3~MY|qeXlY!}Jfl++tGjfCm*FNcMp?n(}dr zNhN`jI>9IU=$dH^3cWUGgk4JZ(iG{Zb+gO+_kx1IBGi+RFg$p(~4kn}AAWeo;C zVH;4njm2{|XsM%m`h7lbaVfZUXo&%If*L=!m=!F7Y|yfG5-6vEtOF$qBxk^e+-wrS z5hi4VkshWO@Pon*6xJa9XbA#T+JNL2fx-+V53&czJBA6<1h~bR7Dr4s5a1T8Hv})P z<`cF7MJbXq7K4lhX$PfUB<%*Eyb2OWi?YQaYe3?lyo#)T3MhK`gl$0-viYD|0<`wu z78DK08bYQA2y%ZYAjBA$1;qfedPsn13)_NX99aXXtY+X7wgUwKk_O#9 z(_+0qj5lg{&S_+JNjqOX*8N84)B7iU?%&pqOXio4!?qTd;m9gd=Q+7AtyJppF0; zjua?ML6(3F1;qxkp&;cTaZsQjtB1yt9eSukVxwNz4lUG|f*iuYCu|S$Es_P=DIgp8 zgzZ70jcftPLXdh;@VEA8&|kKQvi7fRY!IdJRbBG~HB^TTp5_$P$oc zpkfS3k@}PA6C}CCyq1H~G)Nv4TgdXzSaLv1Hp@Y!3P?R#ve9@kJwS?EOlmnanK+;& z6OA>~H-P0q_Au}XJA&MWWS>UNbOC9QerPIi1i1@IUR_{%fi%dyAag4thUp11++tEIK&cHR5Ar9nyw3CkV0n;vAbGUHN%g~Y1zB#f z`W2wW1d<1p0Z95)p{1=8DDIHm14>*Be8NtkNJ3T*O-xRp$VXNWN?aiIXl08kBv)t) zJAq;!NyAEzg&+-}HYJh;Dj%j_kmDAUS_!fMBoE5B$ns~V8_08u)vpAZ2a-pNVDQ!# zkT@uUknIB{ERZ-TVvx;i0Xc+E*a?(Pk<~*JfHPVGPyu<6fsa|(Sz!8tdE8<`&LD>( z8^|+#g95i${YsEU41B`QAPq?J%AgnmiGw_VWZ^21MIdod2qUY9R>;nvfI?OevKOQt z6tl?cK`D-b&sf+Ql&_IBfE)tS0E${<4d5eI_=KHzOrJ0xr&gOixha7V}yK zG7qF56jI3YOCTZW3`$za_JQnS;1hNMC2eH&8Ph)~af{Wj0@(wS2PJJ}dGO(`e8MiE z0twkXki8)FprnqZUU3e@eiu-{A*o*tEk|9@vXo*BSbe>)3n=7}HGnJxS%8+u6rnNW z0`d^DdXPgv>On~j$w3OBBnc7+c@SAW$Ucxb$RmuPRsggnP{^5Xpvo;)zZzsQ1D~)f z$mPfeLYg?juAt0_Y#_)2kb02Ak<`n>%mKwXvU*Sqfz*RS3R(RbaEJ&CyP~DBH44)M z)VRg!^kRh&%kzE6|0OTWN4Iqaw@Cm!2r8zlhHQ@#dS!DGfhk(?h731Jjgh1k;w8@MV zRck&>f1t)KmLvzweQu!KhGgJcki{U4ppZoJp)|DIcLNne$m&5BgVck3ilkol!}JB} z++tE|L8Syp9^^43d6}4L8r)*j-!10m5OM>Ry-0Er7p5m@aEp1Z1(^xb3koD8d1;VY z41B`wpfE&s3n;cg;-El6QZL&v{euR#Sp8a%Js^3sbaGNP#8+ZB%=J zJdb4FdXV`bdq9zcq+SYIih0bKuCR<-OvnQi8A$RH4$~WSxW&BIgUkcz2eqn@;>`!vU*T6A0!ScC6LvFtObdK{D7<;WFJTz5}4C#4Y)bIHo^o! z9zs$KK8hWr7%e0>f*b)7M+-^ef@y}_V)YwAc7mkQ!VP>vKS&&uF_7H45o9e$9OOqN z>xIBKHt`92fifVndXTjs^&meYtA~^h)4v*W3wmt?S<#i8vLaBxg2X{IvY{Z$ zLE>n+RdCDn1|x1Usf{4ZK=Po}g=C&!&GZdMAWuVcr#C2Ik>#Ngxx( zAoD<#F0y)-=^sFjvs=y0QSSqaF(gSoXxqgH6i`TpZ3d+nkYS)0Lsk#X%08fgLskz; zK_K;@2t!s6X)Ox-fC7%0VftQEZce4mpyUKn42mrz#k_AIvFNj4`hnHlV)Z_t(hy0W z589CP0fij0<)GvPG7l76Na}fOpyq)>5?MVc^?=lal0UL~Xm8F36q3vg%J7vgn?cD3 zqyZF#$QpR2UohhqtKSStJ`8-qzM%AvEbjtwfG;RCksSa^J|Oj=C`3}v1Fgk;L7|DP z9+ad&>OsjLSv{m#q%G_V3Q;5tTR>?FqyZGI$QpE}A28<@^V$MRQy_UzG$PAG8+yK= z5Jff*l%_!HLD7h$o_o*q01Ixh`YoVj1(F99P{{IMpaB31KxFek$qJ+%6mZDueW2<= zF^Q}ml&nDN(PE4n(*2z7YRN5FzXfDD1D~)T$P6SyxuDHyKTx0`8w#=>#TLSq@SU3JfIm9FWpbTi6d2JxCh1f*bOrXjB#xHPxFGgUSGDFA^aAgs2Ppz& zDkMWWVZH^060)J7qybV7l1EbS$uRwaHMf|O8ptvRK4E{fyZ~EO=PxmR!)|V|dVf%; zBby6~a*#eyAR?O!^_)M*Gsx;enG~cR6u3y@ut^qwP|`;dhs}fdgUmx-2e}oLsX+#T zLL13qPH1W45AraQLEAvl4^j^*MUd5lVg)1)3IJsFAP0iPQA#rw1_q8b(N&4We*iWQWDiIl6yiwouyuF=Xd$~D6w@H}Xvx?!VS0f*x0uv+ko_Qe zw15O1Lu3z{>x0>cmV9Arasto-bi2Yd2X3)?*vXv%Xk`m5q60wTjT8^tLEZ&915_Iz zc?;aMXW$dN36e)r&kb@eNE{U3$l{QAt{1xrN~y>aAoqhbfWi$~9OQnGI4B_?i-Q~p z5=RS9Zb*EJ-Gro6crC;YayUpmD4dz=5#4!iP*wy?X)3NaCOlIRi*N z$S26+kcbq!3GxUwaZrkfiG%FtfyAuXO^^>^5)2FsJfNTiSpX`Lk;OqF1`|8Rg?lv(WN zjp+&pxkc;6Zh`^}StZC*AeEr<1X&ywcpw^C92A%!^`KOXEDkCs8TiC*fdUc958!(> zLE@m?$uzy?Ah)2j*ey`NA!+6XIUl4*V|oJEKes?3h@^lIR2P91SWFK9d*c=;$dDB9 zf}#MV0F?NU#Q8wZ0f~bWACfruu2+yaTAC3A1p`PNEIAP!uyNy=UgDu2VaH+ z5=SaaraQdlWT^*VZv>J7nTV_d6ki~5kcr6Rpl}9>gW?TY98znD-2urXi$lZw4ybfO z5(i%x#K2cCb_dPR;2VG#_{8plT1UtlpkZ_ulu?kyL0$r>2W1IlacCUe1?fW;hbEZ2 zpdtXdm=pu~6l4%c0kQ^YNZbXL1jyo`$OWkf(a7SU5CDmTay+s)DAGaVppb%zgBAja zfdoJjprQmO!N9;E1_~JlKCye?*hds^V$dMHr!c+XD5!M12TE2*8o~GTfHVe7UvQLL z)LHBvC@hc_fWiu-0AwSm^9@N>s~bUHVc-+H4=NRq#eYn9IL7^tNodD(hvVFCOvP)a zcO2(7;}QX9RtCli8PiW3=hhP{1H~Bw0~3^HP}Z2vae~{Fn_~$$Y#A8b0;YSM;MU`s z2}-vN3`{dMCI*U6pMHW{UI-xsHiX4ZX8H-R-dEt@VPN#{n9gyMTbEnxKDgV&z;@qd zy2D9sQz( zA-CxhPH~G(mpjF+z+{!s?r@5`-Qg6^c862EexBRYB={t%w)4&4o2Ji_d?qgr001=) ACIA2c diff --git a/roms/SLOF b/roms/SLOF index 9546892a80..7c98b3b613 160000 --- a/roms/SLOF +++ b/roms/SLOF @@ -1 +1 @@ -Subproject commit 9546892a80d5a4c73deea6719de46372f007f4a6 +Subproject commit 7c98b3b613338a385722a953517349664aa4f532 From ad334d89a695460ca1387d96bb8ab7aef0909df4 Mon Sep 17 00:00:00 2001 From: Greg Kurz Date: Mon, 24 Feb 2020 20:23:43 +0100 Subject: [PATCH 02/45] spapr: Handle pending hot plug/unplug requests at CAS If a hot plug or unplug request is pending at CAS, we currently trigger a CAS reboot, which severely increases the guest boot time. This is because SLOF doesn't handle hot plug events and we had no way to fix the FDT that gets presented to the guest. We can do better thanks to recent changes in QEMU and SLOF: - we now return a full FDT to SLOF during CAS - SLOF was fixed to correctly detect any device that was either added or removed since boot time and to update its internal DT accordingly. The right solution is to process all pending hot plug/unplug requests during CAS: convert hot plugged devices to cold plugged devices and remove the hot unplugged ones, which is exactly what spapr_drc_reset() does. Also clear all hot plug events that are currently queued since they're no longer relevant. Note that SLOF cannot currently populate hot plugged PCI bridges or PHBs at CAS. Until this limitation is lifted, SLOF will reset the machine when this scenario occurs : this will allow the FDT to be fully processed when SLOF is started again (ie. the same effect as the CAS reboot that would occur anyway without this patch). Signed-off-by: Greg Kurz Message-Id: <158257222352.4102917.8984214333937947307.stgit@bahia.lan> Signed-off-by: David Gibson --- hw/ppc/spapr_events.c | 13 +++++++++++++ hw/ppc/spapr_hcall.c | 11 +++++------ include/hw/ppc/spapr.h | 1 + 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c index 8b32b7eea5..2afd1844e4 100644 --- a/hw/ppc/spapr_events.c +++ b/hw/ppc/spapr_events.c @@ -983,6 +983,19 @@ void spapr_clear_pending_events(SpaprMachineState *spapr) } } +void spapr_clear_pending_hotplug_events(SpaprMachineState *spapr) +{ + SpaprEventLogEntry *entry = NULL, *next_entry; + + QTAILQ_FOREACH_SAFE(entry, &spapr->pending_events, next, next_entry) { + if (spapr_event_log_entry_type(entry) == RTAS_LOG_TYPE_HOTPLUG) { + QTAILQ_REMOVE(&spapr->pending_events, entry, next); + g_free(entry->extended_log); + g_free(entry); + } + } +} + void spapr_events_init(SpaprMachineState *spapr) { int epow_irq = SPAPR_IRQ_EPOW; diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index 934eb12d27..c2b3286625 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -1640,7 +1640,7 @@ static uint32_t cas_check_pvr(SpaprMachineState *spapr, PowerPCCPU *cpu, return best_compat; } -static bool spapr_transient_dev_before_cas(void) +static void spapr_handle_transient_dev_before_cas(SpaprMachineState *spapr) { Object *drc_container; ObjectProperty *prop; @@ -1658,10 +1658,11 @@ static bool spapr_transient_dev_before_cas(void) prop->name, NULL)); if (spapr_drc_transient(drc)) { - return true; + spapr_drc_reset(drc); } } - return false; + + spapr_clear_pending_hotplug_events(spapr); } static target_ulong h_client_architecture_support(PowerPCCPU *cpu, @@ -1834,9 +1835,7 @@ static target_ulong h_client_architecture_support(PowerPCCPU *cpu, spapr_irq_update_active_intc(spapr); - if (spapr_transient_dev_before_cas()) { - spapr->cas_reboot = true; - } + spapr_handle_transient_dev_before_cas(spapr); if (!spapr->cas_reboot) { void *fdt; diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 09110961a5..a4216935a1 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -824,6 +824,7 @@ int spapr_hpt_shift_for_ramsize(uint64_t ramsize); void spapr_reallocate_hpt(SpaprMachineState *spapr, int shift, Error **errp); void spapr_clear_pending_events(SpaprMachineState *spapr); +void spapr_clear_pending_hotplug_events(SpaprMachineState *spapr); int spapr_max_server_number(SpaprMachineState *spapr); void spapr_store_hpte(PowerPCCPU *cpu, hwaddr ptex, uint64_t pte0, uint64_t pte1); From 22062e54bb68f5ced71fbdb3f5f2bedb09a8e8c1 Mon Sep 17 00:00:00 2001 From: Greg Kurz Date: Wed, 26 Feb 2020 19:59:38 +0100 Subject: [PATCH 03/45] ppc: Officially deprecate the CPU "compat" property Server class POWER CPUs have a "compat" property, which was obsoleted by commit 7843c0d60d and replaced by a "max-cpu-compat" property on the pseries machine type. A hack was introduced so that passing "compat" to -cpu would still produce the desired effect, for the sake of backward compatibility : it strips the "compat" option from the CPU properties and applies internally it to the pseries machine. The accessors of the "compat" property were updated to do nothing but warn the user about the deprecated status when doing something like: $ qemu-system-ppc64 -global POWER9-family-powerpc64-cpu.compat=power9 qemu-system-ppc64: warning: CPU 'compat' property is deprecated and has no effect; use max-cpu-compat machine property instead This was merged during the QEMU 2.10 timeframe, a few weeks before we formalized our deprecation process. As a consequence, the "compat" property fell through the cracks and was never listed in the officialy deprecated features. We are now eight QEMU versions later, it is largely time to mention it in qemu-deprecated.texi. Also, since -global XXX-powerpc64-cpu.compat= has been emitting warnings since QEMU 2.10 and the usual way of setting CPU properties is with -cpu, completely remove the "compat" property. Keep the hack so that -cpu XXX,compat= stays functional some more time, as required by our deprecation process. The now empty powerpc_servercpu_properties[] list which was introduced for "compat" and never had any other use is removed on the way. We can re-add it in the future if the need for a server class POWER CPU specific property arises again. Signed-off-by: Greg Kurz Message-Id: <158274357799.140275.12263135811731647490.stgit@bahia.lan> [dwg: Convert from .texi to .rst to match upstream change] Signed-off-by: David Gibson --- docs/system/deprecated.rst | 7 ++++++ target/ppc/translate_init.inc.c | 44 ++------------------------------- 2 files changed, 9 insertions(+), 42 deletions(-) diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst index 0838338d8f..412b1b166d 100644 --- a/docs/system/deprecated.rst +++ b/docs/system/deprecated.rst @@ -289,6 +289,13 @@ The RISC-V no MMU cpus have been depcreated. The two CPUs: ``rv32imacu-nommu`` a ``rv64imacu-nommu`` should no longer be used. Instead the MMU status can be specified via the CPU ``mmu`` option when using the ``rv32`` or ``rv64`` CPUs. +``compat`` property of server class POWER CPUs (since 5.0) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +The ``compat`` property used to set backwards compatibility modes for +the processor has been deprecated. The ``max-cpu-compat`` property of +the ``pseries`` machine type should be used instead. + System emulator devices ----------------------- diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c index 53995f62ea..2f7125c51f 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -8492,44 +8492,6 @@ POWERPC_FAMILY(POWER5P)(ObjectClass *oc, void *data) pcc->l1_icache_size = 0x10000; } -/* - * The CPU used to have a "compat" property which set the - * compatibility mode PVR. However, this was conceptually broken - it - * only makes sense on the pseries machine type (otherwise the guest - * owns the PCR and can control the compatibility mode itself). It's - * been replaced with the 'max-cpu-compat' property on the pseries - * machine type. For backwards compatibility, pseries specially - * parses the -cpu parameter and converts old compat= parameters into - * the appropriate machine parameters. This stub implementation of - * the parameter catches any uses on explicitly created CPUs. - */ -static void getset_compat_deprecated(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - QNull *null = NULL; - - if (!qtest_enabled()) { - warn_report("CPU 'compat' property is deprecated and has no effect; " - "use max-cpu-compat machine property instead"); - } - visit_type_null(v, name, &null, NULL); - qobject_unref(null); -} - -static const PropertyInfo ppc_compat_deprecated_propinfo = { - .name = "str", - .description = "compatibility mode (deprecated)", - .get = getset_compat_deprecated, - .set = getset_compat_deprecated, -}; -static Property powerpc_servercpu_properties[] = { - { - .name = "compat", - .info = &ppc_compat_deprecated_propinfo, - }, - DEFINE_PROP_END_OF_LIST(), -}; - static void init_proc_POWER7(CPUPPCState *env) { /* Common Registers */ @@ -8611,7 +8573,6 @@ POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data) dc->fw_name = "PowerPC,POWER7"; dc->desc = "POWER7"; - device_class_set_props(dc, powerpc_servercpu_properties); pcc->pvr_match = ppc_pvr_match_power7; pcc->pcr_mask = PCR_VEC_DIS | PCR_VSX_DIS | PCR_COMPAT_2_05; pcc->pcr_supported = PCR_COMPAT_2_06 | PCR_COMPAT_2_05; @@ -8776,7 +8737,6 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data) dc->fw_name = "PowerPC,POWER8"; dc->desc = "POWER8"; - device_class_set_props(dc, powerpc_servercpu_properties); pcc->pvr_match = ppc_pvr_match_power8; pcc->pcr_mask = PCR_TM_DIS | PCR_COMPAT_2_06 | PCR_COMPAT_2_05; pcc->pcr_supported = PCR_COMPAT_2_07 | PCR_COMPAT_2_06 | PCR_COMPAT_2_05; @@ -8988,7 +8948,6 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data) dc->fw_name = "PowerPC,POWER9"; dc->desc = "POWER9"; - device_class_set_props(dc, powerpc_servercpu_properties); pcc->pvr_match = ppc_pvr_match_power9; pcc->pcr_mask = PCR_COMPAT_2_05 | PCR_COMPAT_2_06 | PCR_COMPAT_2_07; pcc->pcr_supported = PCR_COMPAT_3_00 | PCR_COMPAT_2_07 | PCR_COMPAT_2_06 | @@ -9198,7 +9157,6 @@ POWERPC_FAMILY(POWER10)(ObjectClass *oc, void *data) dc->fw_name = "PowerPC,POWER10"; dc->desc = "POWER10"; - device_class_set_props(dc, powerpc_servercpu_properties); pcc->pvr_match = ppc_pvr_match_power10; pcc->pcr_mask = PCR_COMPAT_2_05 | PCR_COMPAT_2_06 | PCR_COMPAT_2_07 | PCR_COMPAT_3_00; @@ -10486,6 +10444,8 @@ static void ppc_cpu_parse_featurestr(const char *type, char *features, *s = '\0'; for (i = 0; inpieces[i]; i++) { if (g_str_has_prefix(inpieces[i], "compat=")) { + warn_report_once("CPU 'compat' property is deprecated; " + "use max-cpu-compat machine property instead"); compat_str = inpieces[i]; continue; } From af7084e72b66e4c3008f7a70d5f2a06e11af7fbe Mon Sep 17 00:00:00 2001 From: Shivaprasad G Bhat Date: Thu, 27 Feb 2020 07:42:49 -0600 Subject: [PATCH 04/45] spapr: Fix Coverity warning while validating nvdimm options Fixes Coverity issue, CID 1419883: Error handling issues (CHECKED_RETURN) Calling "qemu_uuid_parse" without checking return value nvdimm_set_uuid() already verifies if the user provided uuid is valid or not. So, need to check for the validity during pre-plug validation again. As this a false positive in this case, assert if not valid to be safe. Also, error_abort if QOM accessor encounters error while fetching the uuid property. Reported-by: Coverity (CID 1419883) Signed-off-by: Shivaprasad G Bhat Message-Id: <158281096564.89540.4507375445765515529.stgit@lep8c.aus.stglabs.ibm.com> Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr_nvdimm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr_nvdimm.c b/hw/ppc/spapr_nvdimm.c index 74eeb8bb74..25be8082d7 100644 --- a/hw/ppc/spapr_nvdimm.c +++ b/hw/ppc/spapr_nvdimm.c @@ -35,6 +35,7 @@ void spapr_nvdimm_validate_opts(NVDIMMDevice *nvdimm, uint64_t size, { char *uuidstr = NULL; QemuUUID uuid; + int ret; if (size % SPAPR_MINIMUM_SCM_BLOCK_SIZE) { error_setg(errp, "NVDIMM memory size excluding the label area" @@ -43,8 +44,10 @@ void spapr_nvdimm_validate_opts(NVDIMMDevice *nvdimm, uint64_t size, return; } - uuidstr = object_property_get_str(OBJECT(nvdimm), NVDIMM_UUID_PROP, NULL); - qemu_uuid_parse(uuidstr, &uuid); + uuidstr = object_property_get_str(OBJECT(nvdimm), NVDIMM_UUID_PROP, + &error_abort); + ret = qemu_uuid_parse(uuidstr, &uuid); + g_assert(!ret); g_free(uuidstr); if (qemu_uuid_is_null(&uuid)) { From f42274cff373e9bd1c2dc5873ba9f6d0a6384dc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Fri, 28 Feb 2020 13:33:03 +0100 Subject: [PATCH 05/45] hw/ppc/pnv: Fix typo in comment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200228123303.14540-1-philmd@redhat.com> Reviewed-by: Cédric Le Goater Signed-off-by: David Gibson --- hw/ppc/pnv_lpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ppc/pnv_lpc.c b/hw/ppc/pnv_lpc.c index f150deca34..b5ffa48dac 100644 --- a/hw/ppc/pnv_lpc.c +++ b/hw/ppc/pnv_lpc.c @@ -829,7 +829,7 @@ ISABus *pnv_lpc_isa_create(PnvLpcController *lpc, bool use_cpld, Error **errp) bool hostboot_mode = !!pnv->fw_load_addr; /* let isa_bus_new() create its own bridge on SysBus otherwise - * devices speficied on the command line won't find the bus and + * devices specified on the command line won't find the bus and * will fail to create. */ isa_bus = isa_bus_new(NULL, &lpc->isa_mem, &lpc->isa_io, &local_err); From 23513f818f2112cceadfc1cf4007a4f068ecd84b Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 11 Dec 2019 17:07:44 +1100 Subject: [PATCH 06/45] ppc: Remove stub support for 32-bit hypervisor mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit a4f30719a8cd, way back in 2007 noted that "PowerPC hypervisor mode is not fundamentally available only for PowerPC 64" and added a 32-bit version of the MSR[HV] bit. But nothing was ever really done with that; there is no meaningful support for 32-bit hypervisor mode 13 years later. Let's stop pretending and just remove the stubs. Signed-off-by: David Gibson Reviewed-by: Fabiano Rosas Reviewed-by: Greg Kurz Reviewed-by: Philippe Mathieu-Daudé --- target/ppc/cpu.h | 21 +++++++-------------- target/ppc/translate_init.inc.c | 6 +++--- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index b283042515..8077fdb068 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -24,8 +24,6 @@ #include "exec/cpu-defs.h" #include "cpu-qom.h" -/* #define PPC_EMULATE_32BITS_HYPV */ - #define TCG_GUEST_DEFAULT_MO 0 #define TARGET_PAGE_BITS_64K 16 @@ -300,13 +298,12 @@ typedef struct ppc_v3_pate_t { #define MSR_SF 63 /* Sixty-four-bit mode hflags */ #define MSR_TAG 62 /* Tag-active mode (POWERx ?) */ #define MSR_ISF 61 /* Sixty-four-bit interrupt mode on 630 */ -#define MSR_SHV 60 /* hypervisor state hflags */ +#define MSR_HV 60 /* hypervisor state hflags */ #define MSR_TS0 34 /* Transactional state, 2 bits (Book3s) */ #define MSR_TS1 33 #define MSR_TM 32 /* Transactional Memory Available (Book3s) */ #define MSR_CM 31 /* Computation mode for BookE hflags */ #define MSR_ICM 30 /* Interrupt computation mode for BookE */ -#define MSR_THV 29 /* hypervisor state for 32 bits PowerPC hflags */ #define MSR_GS 28 /* guest state for BookE */ #define MSR_UCLE 26 /* User-mode cache lock enable for BookE */ #define MSR_VR 25 /* altivec available x hflags */ @@ -401,10 +398,13 @@ typedef struct ppc_v3_pate_t { #define msr_sf ((env->msr >> MSR_SF) & 1) #define msr_isf ((env->msr >> MSR_ISF) & 1) -#define msr_shv ((env->msr >> MSR_SHV) & 1) +#if defined(TARGET_PPC64) +#define msr_hv ((env->msr >> MSR_HV) & 1) +#else +#define msr_hv (0) +#endif #define msr_cm ((env->msr >> MSR_CM) & 1) #define msr_icm ((env->msr >> MSR_ICM) & 1) -#define msr_thv ((env->msr >> MSR_THV) & 1) #define msr_gs ((env->msr >> MSR_GS) & 1) #define msr_ucle ((env->msr >> MSR_UCLE) & 1) #define msr_vr ((env->msr >> MSR_VR) & 1) @@ -449,16 +449,9 @@ typedef struct ppc_v3_pate_t { /* Hypervisor bit is more specific */ #if defined(TARGET_PPC64) -#define MSR_HVB (1ULL << MSR_SHV) -#define msr_hv msr_shv -#else -#if defined(PPC_EMULATE_32BITS_HYPV) -#define MSR_HVB (1ULL << MSR_THV) -#define msr_hv msr_thv +#define MSR_HVB (1ULL << MSR_HV) #else #define MSR_HVB (0ULL) -#define msr_hv (0) -#endif #endif /* DSISR */ diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c index 2f7125c51f..df3401cf06 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -8764,7 +8764,7 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data) PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 | PPC2_TM | PPC2_PM_ISA206; pcc->msr_mask = (1ull << MSR_SF) | - (1ull << MSR_SHV) | + (1ull << MSR_HV) | (1ull << MSR_TM) | (1ull << MSR_VR) | (1ull << MSR_VSX) | @@ -8976,7 +8976,7 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data) PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 | PPC2_TM | PPC2_ISA300 | PPC2_PRCNTL; pcc->msr_mask = (1ull << MSR_SF) | - (1ull << MSR_SHV) | + (1ull << MSR_HV) | (1ull << MSR_TM) | (1ull << MSR_VR) | (1ull << MSR_VSX) | @@ -9186,7 +9186,7 @@ POWERPC_FAMILY(POWER10)(ObjectClass *oc, void *data) PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 | PPC2_TM | PPC2_ISA300 | PPC2_PRCNTL; pcc->msr_mask = (1ull << MSR_SF) | - (1ull << MSR_SHV) | + (1ull << MSR_HV) | (1ull << MSR_TM) | (1ull << MSR_VR) | (1ull << MSR_VSX) | From 19acd4b610a2f6a8db2840faecaab813089a33b2 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 11 Dec 2019 21:55:05 +1100 Subject: [PATCH 07/45] ppc: Remove stub of PPC970 HID4 implementation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The PowerPC 970 CPU was a cut-down POWER4, which had hypervisor capability. However, it can be (and often was) strapped into "Apple mode", where the hypervisor capabilities were disabled (essentially putting it always in hypervisor mode). That's actually the only mode of the 970 we support in qemu, and we're unlikely to change that any time soon. However, we do have a partial implementation of the 970's HID4 register which affects things only relevant for hypervisor mode. That stub is also really ugly, since it attempts to duplicate the effects of HID4 by re-encoding it into the LPCR register used in newer CPUs, but in a really confusing way. Just get rid of it. Signed-off-by: David Gibson Reviewed-by: Cédric Le Goater Reviewed-by: Greg Kurz --- target/ppc/mmu-hash64.c | 29 +---------------------------- target/ppc/translate_init.inc.c | 20 ++++++++------------ 2 files changed, 9 insertions(+), 40 deletions(-) diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index da8966ccf5..3e0be4d55f 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -1091,33 +1091,6 @@ void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val) /* Filter out bits */ switch (env->mmu_model) { - case POWERPC_MMU_64B: /* 970 */ - if (val & 0x40) { - lpcr |= LPCR_LPES0; - } - if (val & 0x8000000000000000ull) { - lpcr |= LPCR_LPES1; - } - if (val & 0x20) { - lpcr |= (0x4ull << LPCR_RMLS_SHIFT); - } - if (val & 0x4000000000000000ull) { - lpcr |= (0x2ull << LPCR_RMLS_SHIFT); - } - if (val & 0x2000000000000000ull) { - lpcr |= (0x1ull << LPCR_RMLS_SHIFT); - } - env->spr[SPR_RMOR] = ((lpcr >> 41) & 0xffffull) << 26; - - /* - * XXX We could also write LPID from HID4 here - * but since we don't tag any translation on it - * it doesn't actually matter - * - * XXX For proper emulation of 970 we also need - * to dig HRMOR out of HID5 - */ - break; case POWERPC_MMU_2_03: /* P5p */ lpcr = val & (LPCR_RMLS | LPCR_ILE | LPCR_LPES0 | LPCR_LPES1 | @@ -1154,7 +1127,7 @@ void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val) } break; default: - ; + g_assert_not_reached(); } env->spr[SPR_LPCR] = lpcr; ppc_hash64_update_rmls(cpu); diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c index df3401cf06..aecad96db3 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -7895,25 +7895,21 @@ static void spr_write_lpcr(DisasContext *ctx, int sprn, int gprn) { gen_helper_store_lpcr(cpu_env, cpu_gpr[gprn]); } - -static void spr_write_970_hid4(DisasContext *ctx, int sprn, int gprn) -{ -#if defined(TARGET_PPC64) - spr_write_generic(ctx, sprn, gprn); - gen_helper_store_lpcr(cpu_env, cpu_gpr[gprn]); -#endif -} - #endif /* !defined(CONFIG_USER_ONLY) */ static void gen_spr_970_lpar(CPUPPCState *env) { #if !defined(CONFIG_USER_ONLY) - /* Logical partitionning */ - /* PPC970: HID4 is effectively the LPCR */ + /* + * PPC970: HID4 covers things later controlled by the LPCR and + * RMOR in later CPUs, but with a different encoding. We only + * support the 970 in "Apple mode" which has all hypervisor + * facilities disabled by strapping, so we can basically just + * ignore it + */ spr_register(env, SPR_970_HID4, "HID4", SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_970_hid4, + &spr_read_generic, &spr_write_generic, 0x00000000); #endif } From 682c1dfb86acb19f542d06375b97c604ee000730 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Fri, 3 Jan 2020 15:27:24 +1100 Subject: [PATCH 08/45] target/ppc: Correct handling of real mode accesses with vhyp on hash MMU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On ppc we have the concept of virtual hypervisor ("vhyp") mode, where we only model the non-hypervisor-privileged parts of the cpu. Essentially we model the hypervisor's behaviour from the point of view of a guest OS, but we don't model the hypervisor's execution. In particular, in this mode, qemu's notion of target physical address is a guest physical address from the vcpu's point of view. So accesses in guest real mode don't require translation. If we were modelling the hypervisor mode, we'd need to translate the guest physical address into a host physical address. Currently, we handle this sloppily: we rely on setting up the virtual LPCR and RMOR registers so that GPAs are simply HPAs plus an offset, which we set to zero. This is already conceptually dubious, since the LPCR and RMOR registers don't exist in the non-hypervisor portion of the CPU. It gets worse with POWER9, where RMOR and LPCR[VPM0] no longer exist at all. Clean this up by explicitly handling the vhyp case. While we're there, remove some unnecessary nesting of if statements that made the logic to select the correct real mode behaviour a bit less clear than it could be. Signed-off-by: David Gibson Reviewed-by: Cédric Le Goater Reviewed-by: Greg Kurz --- target/ppc/mmu-hash64.c | 60 ++++++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index 3e0be4d55f..392f90e0ae 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -789,27 +789,30 @@ int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr, */ raddr = eaddr & 0x0FFFFFFFFFFFFFFFULL; - /* In HV mode, add HRMOR if top EA bit is clear */ - if (msr_hv || !env->has_hv_mode) { + if (cpu->vhyp) { + /* + * In virtual hypervisor mode, there's nothing to do: + * EA == GPA == qemu guest address + */ + } else if (msr_hv || !env->has_hv_mode) { + /* In HV mode, add HRMOR if top EA bit is clear */ if (!(eaddr >> 63)) { raddr |= env->spr[SPR_HRMOR]; } - } else { - /* Otherwise, check VPM for RMA vs VRMA */ - if (env->spr[SPR_LPCR] & LPCR_VPM0) { - slb = &env->vrma_slb; - if (slb->sps) { - goto skip_slb_search; - } - /* Not much else to do here */ + } else if (env->spr[SPR_LPCR] & LPCR_VPM0) { + /* Emulated VRMA mode */ + slb = &env->vrma_slb; + if (!slb->sps) { + /* Invalid VRMA setup, machine check */ cs->exception_index = POWERPC_EXCP_MCHECK; env->error_code = 0; return 1; - } else if (raddr < env->rmls) { - /* RMA. Check bounds in RMLS */ - raddr |= env->spr[SPR_RMOR]; - } else { - /* The access failed, generate the approriate interrupt */ + } + + goto skip_slb_search; + } else { + /* Emulated old-style RMO mode, bounds check against RMLS */ + if (raddr >= env->rmls) { if (rwx == 2) { ppc_hash64_set_isi(cs, SRR1_PROTFAULT); } else { @@ -821,6 +824,8 @@ int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr, } return 1; } + + raddr |= env->spr[SPR_RMOR]; } tlb_set_page(cs, eaddr & TARGET_PAGE_MASK, raddr & TARGET_PAGE_MASK, PAGE_READ | PAGE_WRITE | PAGE_EXEC, mmu_idx, @@ -953,22 +958,27 @@ hwaddr ppc_hash64_get_phys_page_debug(PowerPCCPU *cpu, target_ulong addr) /* In real mode the top 4 effective address bits are ignored */ raddr = addr & 0x0FFFFFFFFFFFFFFFULL; - /* In HV mode, add HRMOR if top EA bit is clear */ - if ((msr_hv || !env->has_hv_mode) && !(addr >> 63)) { + if (cpu->vhyp) { + /* + * In virtual hypervisor mode, there's nothing to do: + * EA == GPA == qemu guest address + */ + return raddr; + } else if ((msr_hv || !env->has_hv_mode) && !(addr >> 63)) { + /* In HV mode, add HRMOR if top EA bit is clear */ return raddr | env->spr[SPR_HRMOR]; - } - - /* Otherwise, check VPM for RMA vs VRMA */ - if (env->spr[SPR_LPCR] & LPCR_VPM0) { + } else if (env->spr[SPR_LPCR] & LPCR_VPM0) { + /* Emulated VRMA mode */ slb = &env->vrma_slb; if (!slb->sps) { return -1; } - } else if (raddr < env->rmls) { - /* RMA. Check bounds in RMLS */ - return raddr | env->spr[SPR_RMOR]; } else { - return -1; + /* Emulated old-style RMO mode, bounds check against RMLS */ + if (raddr >= env->rmls) { + return -1; + } + return raddr | env->spr[SPR_RMOR]; } } else { slb = slb_lookup(cpu, addr); From 1b99e029c5e7bc99d45a9a9b74f2d4d4a3d5befb Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 11 Dec 2019 22:33:02 +1100 Subject: [PATCH 09/45] target/ppc: Introduce ppc_hash64_use_vrma() helper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When running guests under a hypervisor, the hypervisor obviously needs to be protected from guest accesses even if those are in what the guest considers real mode (translation off). The POWER hardware provides two ways of doing that: The old way has guest real mode accesses simply offset and bounds checked into host addresses. It works, but requires that a significant chunk of the guest's memory - the RMA - be physically contiguous in the host, which is pretty inconvenient. The new way, known as VRMA, has guest real mode accesses translated in roughly the normal way but with some special parameters. In POWER7 and POWER8 the LPCR[VPM0] bit selected between the two modes, but in POWER9 only VRMA mode is supported and LPCR[VPM0] no longer exists. We handle that difference in behaviour in ppc_hash64_set_isi().. but not in other places that we blindly check LPCR[VPM0]. Correct those instances with a new helper to tell if we should be in VRMA mode. Signed-off-by: David Gibson Reviewed-by: Cédric Le Goater Reviewed-by: Fabiano Rosas Reviewed-by: Greg Kurz Reviewed-by: Philippe Mathieu-Daudé --- target/ppc/mmu-hash64.c | 43 ++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index 392f90e0ae..e372c42add 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -668,6 +668,21 @@ unsigned ppc_hash64_hpte_page_shift_noslb(PowerPCCPU *cpu, return 0; } +static bool ppc_hash64_use_vrma(CPUPPCState *env) +{ + switch (env->mmu_model) { + case POWERPC_MMU_3_00: + /* + * ISAv3.0 (POWER9) always uses VRMA, the VPM0 field and RMOR + * register no longer exist + */ + return true; + + default: + return !!(env->spr[SPR_LPCR] & LPCR_VPM0); + } +} + static void ppc_hash64_set_isi(CPUState *cs, uint64_t error_code) { CPUPPCState *env = &POWERPC_CPU(cs)->env; @@ -676,15 +691,7 @@ static void ppc_hash64_set_isi(CPUState *cs, uint64_t error_code) if (msr_ir) { vpm = !!(env->spr[SPR_LPCR] & LPCR_VPM1); } else { - switch (env->mmu_model) { - case POWERPC_MMU_3_00: - /* Field deprecated in ISAv3.00 - interrupts always go to hyperv */ - vpm = true; - break; - default: - vpm = !!(env->spr[SPR_LPCR] & LPCR_VPM0); - break; - } + vpm = ppc_hash64_use_vrma(env); } if (vpm && !msr_hv) { cs->exception_index = POWERPC_EXCP_HISI; @@ -702,15 +709,7 @@ static void ppc_hash64_set_dsi(CPUState *cs, uint64_t dar, uint64_t dsisr) if (msr_dr) { vpm = !!(env->spr[SPR_LPCR] & LPCR_VPM1); } else { - switch (env->mmu_model) { - case POWERPC_MMU_3_00: - /* Field deprecated in ISAv3.00 - interrupts always go to hyperv */ - vpm = true; - break; - default: - vpm = !!(env->spr[SPR_LPCR] & LPCR_VPM0); - break; - } + vpm = ppc_hash64_use_vrma(env); } if (vpm && !msr_hv) { cs->exception_index = POWERPC_EXCP_HDSI; @@ -799,7 +798,7 @@ int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr, if (!(eaddr >> 63)) { raddr |= env->spr[SPR_HRMOR]; } - } else if (env->spr[SPR_LPCR] & LPCR_VPM0) { + } else if (ppc_hash64_use_vrma(env)) { /* Emulated VRMA mode */ slb = &env->vrma_slb; if (!slb->sps) { @@ -967,7 +966,7 @@ hwaddr ppc_hash64_get_phys_page_debug(PowerPCCPU *cpu, target_ulong addr) } else if ((msr_hv || !env->has_hv_mode) && !(addr >> 63)) { /* In HV mode, add HRMOR if top EA bit is clear */ return raddr | env->spr[SPR_HRMOR]; - } else if (env->spr[SPR_LPCR] & LPCR_VPM0) { + } else if (ppc_hash64_use_vrma(env)) { /* Emulated VRMA mode */ slb = &env->vrma_slb; if (!slb->sps) { @@ -1056,8 +1055,7 @@ static void ppc_hash64_update_vrma(PowerPCCPU *cpu) slb->sps = NULL; /* Is VRMA enabled ? */ - lpcr = env->spr[SPR_LPCR]; - if (!(lpcr & LPCR_VPM0)) { + if (!ppc_hash64_use_vrma(env)) { return; } @@ -1065,6 +1063,7 @@ static void ppc_hash64_update_vrma(PowerPCCPU *cpu) * Make one up. Mostly ignore the ESID which will not be needed * for translation */ + lpcr = env->spr[SPR_LPCR]; vsid = SLB_VSID_VRMA; vrmasd = (lpcr & LPCR_VRMASD) >> LPCR_VRMASD_SHIFT; vsid |= (vrmasd << 4) & (SLB_VSID_L | SLB_VSID_LP); From e8b1144e73544ea6e42f8948d61f6c23312a78c5 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Mon, 6 Jan 2020 13:12:34 +1100 Subject: [PATCH 10/45] spapr, ppc: Remove VPM0/RMLS hacks for POWER9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For the "pseries" machine, we use "virtual hypervisor" mode where we only model the CPU in non-hypervisor privileged mode. This means that we need guest physical addresses within the modelled cpu to be treated as absolute physical addresses. We used to do that by clearing LPCR[VPM0] and setting LPCR[RMLS] to a high limit so that the old offset based translation for guest mode applied, which does what we need. However, POWER9 has removed support for that translation mode, which meant we had some ugly hacks to keep it working. We now explicitly handle this sort of translation for virtual hypervisor mode, so the hacks aren't necessary. We don't need to set VPM0 and RMLS from the machine type code - they're now ignored in vhyp mode. On the cpu side we don't need to allow LPCR[RMLS] to be set on POWER9 in vhyp mode - that was only there to allow the hack on the machine side. Signed-off-by: David Gibson Reviewed-by: Cédric Le Goater Reviewed-by: Greg Kurz --- hw/ppc/spapr_cpu_core.c | 10 +--------- target/ppc/mmu-hash64.c | 8 -------- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index d09125d9af..36ed3a2b66 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -50,22 +50,14 @@ static void spapr_reset_vcpu(PowerPCCPU *cpu) * the settings below ensure proper operations with TCG in absence of * a real hypervisor. * - * Clearing VPM0 will also cause us to use RMOR in mmu-hash64.c for - * real mode accesses, which thankfully defaults to 0 and isn't - * accessible in guest mode. - * * Disable Power-saving mode Exit Cause exceptions for the CPU, so * we don't get spurious wakups before an RTAS start-cpu call. * For the same reason, set PSSCR_EC. */ - lpcr &= ~(LPCR_VPM0 | LPCR_VPM1 | LPCR_ISL | LPCR_KBV | pcc->lpcr_pm); + lpcr &= ~(LPCR_VPM1 | LPCR_ISL | LPCR_KBV | pcc->lpcr_pm); lpcr |= LPCR_LPES0 | LPCR_LPES1; env->spr[SPR_PSSCR] |= PSSCR_EC; - /* Set RMLS to the max (ie, 16G) */ - lpcr &= ~LPCR_RMLS; - lpcr |= 1ull << LPCR_RMLS_SHIFT; - ppc_store_lpcr(cpu, lpcr); /* Set a full AMOR so guest can use the AMR as it sees fit */ diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index e372c42add..caf47ad6fc 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -1126,14 +1126,6 @@ void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val) (LPCR_PECE_L_MASK & (LPCR_PDEE | LPCR_HDEE | LPCR_EEE | LPCR_DEE | LPCR_OEE)) | LPCR_MER | LPCR_GTSE | LPCR_TC | LPCR_HEIC | LPCR_LPES0 | LPCR_HVICE | LPCR_HDICE); - /* - * If we have a virtual hypervisor, we need to bring back RMLS. It - * doesn't exist on an actual P9 but that's all we know how to - * configure with softmmu at the moment - */ - if (cpu->vhyp) { - lpcr |= (val & LPCR_RMLS); - } break; default: g_assert_not_reached(); From 5167100975e7888de397456adc1678f65a3dbd59 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Mon, 6 Jan 2020 13:14:16 +1100 Subject: [PATCH 11/45] target/ppc: Remove RMOR register from POWER9 & POWER10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently we create the Real Mode Offset Register (RMOR) on all Book3S cpus from POWER7 onwards. However the translation mode which the RMOR controls is no longer supported in POWER9, and so the register has been removed from the architecture. Remove it from our model on POWER9 and POWER10. Signed-off-by: David Gibson Reviewed-by: Cédric Le Goater Reviewed-by: Greg Kurz --- target/ppc/translate_init.inc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c index aecad96db3..f7acd3d61d 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -8015,12 +8015,16 @@ static void gen_spr_book3s_ids(CPUPPCState *env) SPR_NOACCESS, SPR_NOACCESS, &spr_read_generic, &spr_write_generic, 0x00000000); - spr_register_hv(env, SPR_RMOR, "RMOR", + spr_register_hv(env, SPR_HRMOR, "HRMOR", SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, &spr_read_generic, &spr_write_generic, 0x00000000); - spr_register_hv(env, SPR_HRMOR, "HRMOR", +} + +static void gen_spr_rmor(CPUPPCState *env) +{ + spr_register_hv(env, SPR_RMOR, "RMOR", SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, &spr_read_generic, &spr_write_generic, @@ -8497,6 +8501,7 @@ static void init_proc_POWER7(CPUPPCState *env) /* POWER7 Specific Registers */ gen_spr_book3s_ids(env); + gen_spr_rmor(env); gen_spr_amr(env); gen_spr_book3s_purr(env); gen_spr_power5p_common(env); @@ -8637,6 +8642,7 @@ static void init_proc_POWER8(CPUPPCState *env) /* POWER8 Specific Registers */ gen_spr_book3s_ids(env); + gen_spr_rmor(env); gen_spr_amr(env); gen_spr_iamr(env); gen_spr_book3s_purr(env); From e232eccc754b7c61110a21fb029f2946cc968799 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Mon, 6 Jan 2020 16:35:10 +1100 Subject: [PATCH 12/45] target/ppc: Use class fields to simplify LPCR masking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When we store the Logical Partitioning Control Register (LPCR) we have a big switch statement to work out which are valid bits for the cpu model we're emulating. As well as being ugly, this isn't really conceptually correct, since it is based on the mmu_model variable, whereas the LPCR isn't (only) about the MMU, so mmu_model is basically just acting as a proxy for the cpu model. Handle this in a simpler way, by adding a suitable lpcr_mask to the QOM class. Signed-off-by: David Gibson Reviewed-by: Cédric Le Goater Reviewed-by: Greg Kurz Reviewed-by: Philippe Mathieu-Daudé --- target/ppc/cpu-qom.h | 1 + target/ppc/mmu-hash64.c | 36 ++------------------------------- target/ppc/translate_init.inc.c | 36 ++++++++++++++++++++++++++++----- 3 files changed, 34 insertions(+), 39 deletions(-) diff --git a/target/ppc/cpu-qom.h b/target/ppc/cpu-qom.h index e499575dc8..15d6b54a7d 100644 --- a/target/ppc/cpu-qom.h +++ b/target/ppc/cpu-qom.h @@ -177,6 +177,7 @@ typedef struct PowerPCCPUClass { uint64_t insns_flags; uint64_t insns_flags2; uint64_t msr_mask; + uint64_t lpcr_mask; /* Available bits in the LPCR */ uint64_t lpcr_pm; /* Power-saving mode Exit Cause Enable bits */ powerpc_mmu_t mmu_model; powerpc_excp_t excp_model; diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index caf47ad6fc..0ef330a614 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -1095,42 +1095,10 @@ static void ppc_hash64_update_vrma(PowerPCCPU *cpu) void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val) { + PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu); CPUPPCState *env = &cpu->env; - uint64_t lpcr = 0; - /* Filter out bits */ - switch (env->mmu_model) { - case POWERPC_MMU_2_03: /* P5p */ - lpcr = val & (LPCR_RMLS | LPCR_ILE | - LPCR_LPES0 | LPCR_LPES1 | - LPCR_RMI | LPCR_HDICE); - break; - case POWERPC_MMU_2_06: /* P7 */ - lpcr = val & (LPCR_VPM0 | LPCR_VPM1 | LPCR_ISL | LPCR_DPFD | - LPCR_VRMASD | LPCR_RMLS | LPCR_ILE | - LPCR_P7_PECE0 | LPCR_P7_PECE1 | LPCR_P7_PECE2 | - LPCR_MER | LPCR_TC | - LPCR_LPES0 | LPCR_LPES1 | LPCR_HDICE); - break; - case POWERPC_MMU_2_07: /* P8 */ - lpcr = val & (LPCR_VPM0 | LPCR_VPM1 | LPCR_ISL | LPCR_KBV | - LPCR_DPFD | LPCR_VRMASD | LPCR_RMLS | LPCR_ILE | - LPCR_AIL | LPCR_ONL | LPCR_P8_PECE0 | LPCR_P8_PECE1 | - LPCR_P8_PECE2 | LPCR_P8_PECE3 | LPCR_P8_PECE4 | - LPCR_MER | LPCR_TC | LPCR_LPES0 | LPCR_HDICE); - break; - case POWERPC_MMU_3_00: /* P9 */ - lpcr = val & (LPCR_VPM1 | LPCR_ISL | LPCR_KBV | LPCR_DPFD | - (LPCR_PECE_U_MASK & LPCR_HVEE) | LPCR_ILE | LPCR_AIL | - LPCR_UPRT | LPCR_EVIRT | LPCR_ONL | LPCR_HR | LPCR_LD | - (LPCR_PECE_L_MASK & (LPCR_PDEE | LPCR_HDEE | LPCR_EEE | - LPCR_DEE | LPCR_OEE)) | LPCR_MER | LPCR_GTSE | LPCR_TC | - LPCR_HEIC | LPCR_LPES0 | LPCR_HVICE | LPCR_HDICE); - break; - default: - g_assert_not_reached(); - } - env->spr[SPR_LPCR] = lpcr; + env->spr[SPR_LPCR] = val & pcc->lpcr_mask; ppc_hash64_update_rmls(cpu); ppc_hash64_update_vrma(cpu); } diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c index f7acd3d61d..0ae145e18d 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -8476,6 +8476,8 @@ POWERPC_FAMILY(POWER5P)(ObjectClass *oc, void *data) (1ull << MSR_DR) | (1ull << MSR_PMM) | (1ull << MSR_RI); + pcc->lpcr_mask = LPCR_RMLS | LPCR_ILE | LPCR_LPES0 | LPCR_LPES1 | + LPCR_RMI | LPCR_HDICE; pcc->mmu_model = POWERPC_MMU_2_03; #if defined(CONFIG_SOFTMMU) pcc->handle_mmu_fault = ppc_hash64_handle_mmu_fault; @@ -8614,6 +8616,12 @@ POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data) (1ull << MSR_PMM) | (1ull << MSR_RI) | (1ull << MSR_LE); + pcc->lpcr_mask = LPCR_VPM0 | LPCR_VPM1 | LPCR_ISL | LPCR_DPFD | + LPCR_VRMASD | LPCR_RMLS | LPCR_ILE | + LPCR_P7_PECE0 | LPCR_P7_PECE1 | LPCR_P7_PECE2 | + LPCR_MER | LPCR_TC | + LPCR_LPES0 | LPCR_LPES1 | LPCR_HDICE; + pcc->lpcr_pm = LPCR_P7_PECE0 | LPCR_P7_PECE1 | LPCR_P7_PECE2; pcc->mmu_model = POWERPC_MMU_2_06; #if defined(CONFIG_SOFTMMU) pcc->handle_mmu_fault = ppc_hash64_handle_mmu_fault; @@ -8630,7 +8638,6 @@ POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data) pcc->l1_dcache_size = 0x8000; pcc->l1_icache_size = 0x8000; pcc->interrupts_big_endian = ppc_cpu_interrupts_big_endian_lpcr; - pcc->lpcr_pm = LPCR_P7_PECE0 | LPCR_P7_PECE1 | LPCR_P7_PECE2; } static void init_proc_POWER8(CPUPPCState *env) @@ -8785,6 +8792,13 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data) (1ull << MSR_TS0) | (1ull << MSR_TS1) | (1ull << MSR_LE); + pcc->lpcr_mask = LPCR_VPM0 | LPCR_VPM1 | LPCR_ISL | LPCR_KBV | + LPCR_DPFD | LPCR_VRMASD | LPCR_RMLS | LPCR_ILE | + LPCR_AIL | LPCR_ONL | LPCR_P8_PECE0 | LPCR_P8_PECE1 | + LPCR_P8_PECE2 | LPCR_P8_PECE3 | LPCR_P8_PECE4 | + LPCR_MER | LPCR_TC | LPCR_LPES0 | LPCR_HDICE; + pcc->lpcr_pm = LPCR_P8_PECE0 | LPCR_P8_PECE1 | LPCR_P8_PECE2 | + LPCR_P8_PECE3 | LPCR_P8_PECE4; pcc->mmu_model = POWERPC_MMU_2_07; #if defined(CONFIG_SOFTMMU) pcc->handle_mmu_fault = ppc_hash64_handle_mmu_fault; @@ -8802,8 +8816,6 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data) pcc->l1_dcache_size = 0x8000; pcc->l1_icache_size = 0x8000; pcc->interrupts_big_endian = ppc_cpu_interrupts_big_endian_lpcr; - pcc->lpcr_pm = LPCR_P8_PECE0 | LPCR_P8_PECE1 | LPCR_P8_PECE2 | - LPCR_P8_PECE3 | LPCR_P8_PECE4; } #ifdef CONFIG_SOFTMMU @@ -8995,6 +9007,14 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data) (1ull << MSR_PMM) | (1ull << MSR_RI) | (1ull << MSR_LE); + pcc->lpcr_mask = LPCR_VPM1 | LPCR_ISL | LPCR_KBV | LPCR_DPFD | + (LPCR_PECE_U_MASK & LPCR_HVEE) | LPCR_ILE | LPCR_AIL | + LPCR_UPRT | LPCR_EVIRT | LPCR_ONL | LPCR_HR | LPCR_LD | + (LPCR_PECE_L_MASK & (LPCR_PDEE | LPCR_HDEE | LPCR_EEE | + LPCR_DEE | LPCR_OEE)) + | LPCR_MER | LPCR_GTSE | LPCR_TC | + LPCR_HEIC | LPCR_LPES0 | LPCR_HVICE | LPCR_HDICE; + pcc->lpcr_pm = LPCR_PDEE | LPCR_HDEE | LPCR_EEE | LPCR_DEE | LPCR_OEE; pcc->mmu_model = POWERPC_MMU_3_00; #if defined(CONFIG_SOFTMMU) pcc->handle_mmu_fault = ppc64_v3_handle_mmu_fault; @@ -9014,7 +9034,6 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data) pcc->l1_dcache_size = 0x8000; pcc->l1_icache_size = 0x8000; pcc->interrupts_big_endian = ppc_cpu_interrupts_big_endian_lpcr; - pcc->lpcr_pm = LPCR_PDEE | LPCR_HDEE | LPCR_EEE | LPCR_DEE | LPCR_OEE; } #ifdef CONFIG_SOFTMMU @@ -9205,6 +9224,14 @@ POWERPC_FAMILY(POWER10)(ObjectClass *oc, void *data) (1ull << MSR_PMM) | (1ull << MSR_RI) | (1ull << MSR_LE); + pcc->lpcr_mask = LPCR_VPM1 | LPCR_ISL | LPCR_KBV | LPCR_DPFD | + (LPCR_PECE_U_MASK & LPCR_HVEE) | LPCR_ILE | LPCR_AIL | + LPCR_UPRT | LPCR_EVIRT | LPCR_ONL | LPCR_HR | LPCR_LD | + (LPCR_PECE_L_MASK & (LPCR_PDEE | LPCR_HDEE | LPCR_EEE | + LPCR_DEE | LPCR_OEE)) + | LPCR_MER | LPCR_GTSE | LPCR_TC | + LPCR_HEIC | LPCR_LPES0 | LPCR_HVICE | LPCR_HDICE; + pcc->lpcr_pm = LPCR_PDEE | LPCR_HDEE | LPCR_EEE | LPCR_DEE | LPCR_OEE; pcc->mmu_model = POWERPC_MMU_3_00; #if defined(CONFIG_SOFTMMU) pcc->handle_mmu_fault = ppc64_v3_handle_mmu_fault; @@ -9223,7 +9250,6 @@ POWERPC_FAMILY(POWER10)(ObjectClass *oc, void *data) pcc->l1_dcache_size = 0x8000; pcc->l1_icache_size = 0x8000; pcc->interrupts_big_endian = ppc_cpu_interrupts_big_endian_lpcr; - pcc->lpcr_pm = LPCR_PDEE | LPCR_HDEE | LPCR_EEE | LPCR_DEE | LPCR_OEE; } #if !defined(CONFIG_USER_ONLY) From a864a6b382d52579210b86cde50bc949d48a3155 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Mon, 6 Jan 2020 16:52:26 +1100 Subject: [PATCH 13/45] target/ppc: Streamline calculation of RMA limit from LPCR[RMLS] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently we use a big switch statement in ppc_hash64_update_rmls() to work out what the right RMA limit is based on the LPCR[RMLS] field. There's no formula for this - it's just an arbitrary mapping defined by the existing CPU implementations - but we can make it a bit more readable by using a lookup table rather than a switch. In addition we can use the MiB/GiB symbols to make it a bit clearer. While there we add a bit of clarity and rationale to the comment about what happens if the LPCR[RMLS] doesn't contain a valid value. Signed-off-by: David Gibson Reviewed-by: Cédric Le Goater Reviewed-by: Greg Kurz Reviewed-by: Philippe Mathieu-Daudé --- target/ppc/mmu-hash64.c | 63 ++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 36 deletions(-) diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index 0ef330a614..934989e6d9 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -18,6 +18,7 @@ * License along with this library; if not, see . */ #include "qemu/osdep.h" +#include "qemu/units.h" #include "cpu.h" #include "exec/exec-all.h" #include "exec/helper-proto.h" @@ -757,6 +758,31 @@ static void ppc_hash64_set_c(PowerPCCPU *cpu, hwaddr ptex, uint64_t pte1) stb_phys(CPU(cpu)->as, base + offset, (pte1 & 0xff) | 0x80); } +static target_ulong rmls_limit(PowerPCCPU *cpu) +{ + CPUPPCState *env = &cpu->env; + /* + * This is the full 4 bits encoding of POWER8. Previous + * CPUs only support a subset of these but the filtering + * is done when writing LPCR. + * + * Unsupported values mean the OS has shot itself in the + * foot. Return a 0-sized RMA in this case, which we expect + * to trigger an immediate DSI or ISI + */ + static const target_ulong rma_sizes[16] = { + [1] = 16 * GiB, + [2] = 1 * GiB, + [3] = 64 * MiB, + [4] = 256 * MiB, + [7] = 128 * MiB, + [8] = 32 * MiB, + }; + target_ulong rmls = (env->spr[SPR_LPCR] & LPCR_RMLS) >> LPCR_RMLS_SHIFT; + + return rma_sizes[rmls]; +} + int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr, int rwx, int mmu_idx) { @@ -1006,41 +1032,6 @@ void ppc_hash64_tlb_flush_hpte(PowerPCCPU *cpu, target_ulong ptex, cpu->env.tlb_need_flush = TLB_NEED_GLOBAL_FLUSH | TLB_NEED_LOCAL_FLUSH; } -static void ppc_hash64_update_rmls(PowerPCCPU *cpu) -{ - CPUPPCState *env = &cpu->env; - uint64_t lpcr = env->spr[SPR_LPCR]; - - /* - * This is the full 4 bits encoding of POWER8. Previous - * CPUs only support a subset of these but the filtering - * is done when writing LPCR - */ - switch ((lpcr & LPCR_RMLS) >> LPCR_RMLS_SHIFT) { - case 0x8: /* 32MB */ - env->rmls = 0x2000000ull; - break; - case 0x3: /* 64MB */ - env->rmls = 0x4000000ull; - break; - case 0x7: /* 128MB */ - env->rmls = 0x8000000ull; - break; - case 0x4: /* 256MB */ - env->rmls = 0x10000000ull; - break; - case 0x2: /* 1GB */ - env->rmls = 0x40000000ull; - break; - case 0x1: /* 16GB */ - env->rmls = 0x400000000ull; - break; - default: - /* What to do here ??? */ - env->rmls = 0; - } -} - static void ppc_hash64_update_vrma(PowerPCCPU *cpu) { CPUPPCState *env = &cpu->env; @@ -1099,7 +1090,7 @@ void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val) CPUPPCState *env = &cpu->env; env->spr[SPR_LPCR] = val & pcc->lpcr_mask; - ppc_hash64_update_rmls(cpu); + env->rmls = rmls_limit(cpu); ppc_hash64_update_vrma(cpu); } From d37b40daf647aaf2f5e4c4dfcd62c9412ff05009 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Mon, 6 Jan 2020 17:18:54 +1100 Subject: [PATCH 14/45] target/ppc: Correct RMLS table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The table of RMA limits based on the LPCR[RMLS] field is slightly wrong. We're missing the RMLS == 0 => 256 GiB RMA option, which is available on POWER8, so add that. The comment that goes with the table is much more wrong. We *don't* filter invalid RMLS values when writing the LPCR, and there's not really a sensible way to do so. Furthermore, while in theory the set of RMLS values is implementation dependent, it seems in practice the same set has been available since around POWER4+ up until POWER8, the last model which supports RMLS at all. So, correct that as well. Signed-off-by: David Gibson Reviewed-by: Cédric Le Goater Reviewed-by: Greg Kurz --- target/ppc/mmu-hash64.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index 934989e6d9..fcccaabb88 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -762,15 +762,16 @@ static target_ulong rmls_limit(PowerPCCPU *cpu) { CPUPPCState *env = &cpu->env; /* - * This is the full 4 bits encoding of POWER8. Previous - * CPUs only support a subset of these but the filtering - * is done when writing LPCR. + * In theory the meanings of RMLS values are implementation + * dependent. In practice, this seems to have been the set from + * POWER4+..POWER8, and RMLS is no longer supported in POWER9. * * Unsupported values mean the OS has shot itself in the * foot. Return a 0-sized RMA in this case, which we expect * to trigger an immediate DSI or ISI */ static const target_ulong rma_sizes[16] = { + [0] = 256 * GiB, [1] = 16 * GiB, [2] = 1 * GiB, [3] = 64 * MiB, From 3a56a55ccb2e31e3a52d74db2ddd8ea603ea667b Mon Sep 17 00:00:00 2001 From: David Gibson Date: Mon, 6 Jan 2020 17:26:24 +1100 Subject: [PATCH 15/45] target/ppc: Only calculate RMLS derived RMA limit on demand MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the LPCR is written, we update the env->rmls field with the RMA limit it implies. Simplify things by just calculating the value directly from the LPCR value when we need it. It's possible this is a little slower, but it's unlikely to be significant, since this is only for real mode accesses in a translation configuration that's not used very often, and the whole thing is behind the qemu TLB anyway. Therefore, keeping the number of state variables down and not having to worry about making sure it's always in sync seems the better option. Signed-off-by: David Gibson Reviewed-by: Greg Kurz Reviewed-by: Philippe Mathieu-Daudé --- target/ppc/cpu.h | 1 - target/ppc/mmu-hash64.c | 9 ++++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 8077fdb068..f9871b1233 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -1046,7 +1046,6 @@ struct CPUPPCState { uint64_t insns_flags2; #if defined(TARGET_PPC64) ppc_slb_t vrma_slb; - target_ulong rmls; #endif int error_code; diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index fcccaabb88..4fd7b7ee74 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -837,8 +837,10 @@ int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr, goto skip_slb_search; } else { + target_ulong limit = rmls_limit(cpu); + /* Emulated old-style RMO mode, bounds check against RMLS */ - if (raddr >= env->rmls) { + if (raddr >= limit) { if (rwx == 2) { ppc_hash64_set_isi(cs, SRR1_PROTFAULT); } else { @@ -1000,8 +1002,10 @@ hwaddr ppc_hash64_get_phys_page_debug(PowerPCCPU *cpu, target_ulong addr) return -1; } } else { + target_ulong limit = rmls_limit(cpu); + /* Emulated old-style RMO mode, bounds check against RMLS */ - if (raddr >= env->rmls) { + if (raddr >= limit) { return -1; } return raddr | env->spr[SPR_RMOR]; @@ -1091,7 +1095,6 @@ void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val) CPUPPCState *env = &cpu->env; env->spr[SPR_LPCR] = val & pcc->lpcr_mask; - env->rmls = rmls_limit(cpu); ppc_hash64_update_vrma(cpu); } From 4c24a87f662a46264dd73f6dd05a4a0c30b2038b Mon Sep 17 00:00:00 2001 From: David Gibson Date: Thu, 27 Feb 2020 15:29:26 +1100 Subject: [PATCH 16/45] target/ppc: Don't store VRMA SLBE persistently MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently, we construct the SLBE used for VRMA translations when the LPCR is written (which controls some bits in the SLBE), then use it later for translations. This is a bit complex and confusing - simplify it by simply constructing the SLBE directly from the LPCR when we need it. Signed-off-by: David Gibson Reviewed-by: Greg Kurz Reviewed-by: Philippe Mathieu-Daudé --- target/ppc/cpu.h | 3 -- target/ppc/mmu-hash64.c | 92 ++++++++++++++++------------------------- 2 files changed, 35 insertions(+), 60 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index f9871b1233..5a55fb02bd 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -1044,9 +1044,6 @@ struct CPUPPCState { uint32_t flags; uint64_t insns_flags; uint64_t insns_flags2; -#if defined(TARGET_PPC64) - ppc_slb_t vrma_slb; -#endif int error_code; uint32_t pending_interrupts; diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index 4fd7b7ee74..34f6009b1e 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -784,11 +784,41 @@ static target_ulong rmls_limit(PowerPCCPU *cpu) return rma_sizes[rmls]; } +static int build_vrma_slbe(PowerPCCPU *cpu, ppc_slb_t *slb) +{ + CPUPPCState *env = &cpu->env; + target_ulong lpcr = env->spr[SPR_LPCR]; + uint32_t vrmasd = (lpcr & LPCR_VRMASD) >> LPCR_VRMASD_SHIFT; + target_ulong vsid = SLB_VSID_VRMA | ((vrmasd << 4) & SLB_VSID_LLP_MASK); + int i; + + for (i = 0; i < PPC_PAGE_SIZES_MAX_SZ; i++) { + const PPCHash64SegmentPageSizes *sps = &cpu->hash64_opts->sps[i]; + + if (!sps->page_shift) { + break; + } + + if ((vsid & SLB_VSID_LLP_MASK) == sps->slb_enc) { + slb->esid = SLB_ESID_V; + slb->vsid = vsid; + slb->sps = sps; + return 0; + } + } + + error_report("Bad page size encoding in LPCR[VRMASD]; LPCR=0x" + TARGET_FMT_lx"\n", lpcr); + + return -1; +} + int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr, int rwx, int mmu_idx) { CPUState *cs = CPU(cpu); CPUPPCState *env = &cpu->env; + ppc_slb_t vrma_slbe; ppc_slb_t *slb; unsigned apshift; hwaddr ptex; @@ -827,8 +857,8 @@ int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr, } } else if (ppc_hash64_use_vrma(env)) { /* Emulated VRMA mode */ - slb = &env->vrma_slb; - if (!slb->sps) { + slb = &vrma_slbe; + if (build_vrma_slbe(cpu, slb) != 0) { /* Invalid VRMA setup, machine check */ cs->exception_index = POWERPC_EXCP_MCHECK; env->error_code = 0; @@ -976,6 +1006,7 @@ skip_slb_search: hwaddr ppc_hash64_get_phys_page_debug(PowerPCCPU *cpu, target_ulong addr) { CPUPPCState *env = &cpu->env; + ppc_slb_t vrma_slbe; ppc_slb_t *slb; hwaddr ptex, raddr; ppc_hash_pte64_t pte; @@ -997,8 +1028,8 @@ hwaddr ppc_hash64_get_phys_page_debug(PowerPCCPU *cpu, target_ulong addr) return raddr | env->spr[SPR_HRMOR]; } else if (ppc_hash64_use_vrma(env)) { /* Emulated VRMA mode */ - slb = &env->vrma_slb; - if (!slb->sps) { + slb = &vrma_slbe; + if (build_vrma_slbe(cpu, slb) != 0) { return -1; } } else { @@ -1037,65 +1068,12 @@ void ppc_hash64_tlb_flush_hpte(PowerPCCPU *cpu, target_ulong ptex, cpu->env.tlb_need_flush = TLB_NEED_GLOBAL_FLUSH | TLB_NEED_LOCAL_FLUSH; } -static void ppc_hash64_update_vrma(PowerPCCPU *cpu) -{ - CPUPPCState *env = &cpu->env; - const PPCHash64SegmentPageSizes *sps = NULL; - target_ulong esid, vsid, lpcr; - ppc_slb_t *slb = &env->vrma_slb; - uint32_t vrmasd; - int i; - - /* First clear it */ - slb->esid = slb->vsid = 0; - slb->sps = NULL; - - /* Is VRMA enabled ? */ - if (!ppc_hash64_use_vrma(env)) { - return; - } - - /* - * Make one up. Mostly ignore the ESID which will not be needed - * for translation - */ - lpcr = env->spr[SPR_LPCR]; - vsid = SLB_VSID_VRMA; - vrmasd = (lpcr & LPCR_VRMASD) >> LPCR_VRMASD_SHIFT; - vsid |= (vrmasd << 4) & (SLB_VSID_L | SLB_VSID_LP); - esid = SLB_ESID_V; - - for (i = 0; i < PPC_PAGE_SIZES_MAX_SZ; i++) { - const PPCHash64SegmentPageSizes *sps1 = &cpu->hash64_opts->sps[i]; - - if (!sps1->page_shift) { - break; - } - - if ((vsid & SLB_VSID_LLP_MASK) == sps1->slb_enc) { - sps = sps1; - break; - } - } - - if (!sps) { - error_report("Bad page size encoding esid 0x"TARGET_FMT_lx - " vsid 0x"TARGET_FMT_lx, esid, vsid); - return; - } - - slb->vsid = vsid; - slb->esid = esid; - slb->sps = sps; -} - void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val) { PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu); CPUPPCState *env = &cpu->env; env->spr[SPR_LPCR] = val & pcc->lpcr_mask; - ppc_hash64_update_vrma(cpu); } void helper_store_lpcr(CPUPPCState *env, target_ulong val) From 9943266ec36fec54367085758cd3ee821696a791 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Tue, 10 Dec 2019 16:25:04 +1100 Subject: [PATCH 17/45] spapr: Don't use weird units for MIN_RMA_SLOF MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MIN_RMA_SLOF records the minimum about of RMA that the SLOF firmware requires. It lets us give a meaningful error if the RMA ends up too small, rather than just letting SLOF crash. It's currently stored as a number of megabytes, which is strange for global constants. Move that megabyte scaling into the definition of the constant like most other things use. Change from M to MiB in the associated message while we're at it. Signed-off-by: David Gibson Reviewed-by: Cédric Le Goater Reviewed-by: Greg Kurz Reviewed-by: Philippe Mathieu-Daudé --- hw/ppc/spapr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index cc10798be4..510494ad87 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -103,7 +103,7 @@ #define FW_OVERHEAD 0x2800000 #define KERNEL_LOAD_ADDR FW_MAX_SIZE -#define MIN_RMA_SLOF 128UL +#define MIN_RMA_SLOF (128 * MiB) #define PHANDLE_INTC 0x00001111 @@ -2956,10 +2956,10 @@ static void spapr_machine_init(MachineState *machine) } } - if (spapr->rma_size < (MIN_RMA_SLOF * MiB)) { + if (spapr->rma_size < MIN_RMA_SLOF) { error_report( - "pSeries SLOF firmware requires >= %ldM guest RMA (Real Mode Area memory)", - MIN_RMA_SLOF); + "pSeries SLOF firmware requires >= %ldMiB guest RMA (Real Mode Area memory)", + MIN_RMA_SLOF / MiB); exit(1); } From 6a84737c80b3febb093e066d451a44e61b54159a Mon Sep 17 00:00:00 2001 From: David Gibson Date: Thu, 28 Nov 2019 16:12:06 +1100 Subject: [PATCH 18/45] spapr,ppc: Simplify signature of kvmppc_rma_size() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This function calculates the maximum size of the RMA as implied by the host's page size of structure of the VRMA (there are a number of other constraints on the RMA size which will supersede this one in many circumstances). The current interface takes the current RMA size estimate, and clamps it to the VRMA derived size. The only current caller passes in an arguably wrong value (it will match the current RMA estimate in some but not all cases). We want to fix that, but for now just keep concerns separated by having the KVM helper function just return the VRMA derived limit, and let the caller combine it with other constraints. We call the new function kvmppc_vrma_limit() to more clearly indicate its limited responsibility. The helper should only ever be called in the KVM enabled case, so replace its !CONFIG_KVM stub with an assert() rather than a dummy value. Signed-off-by: David Gibson Reviewed-by: Cedric Le Goater Reviewed-by: Greg Kurz Reviewed-by: Alexey Kardashevskiy Reviewed-by: Philippe Mathieu-Daudé --- hw/ppc/spapr.c | 5 +++-- target/ppc/kvm.c | 5 ++--- target/ppc/kvm_ppc.h | 7 +++---- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 510494ad87..18bf4bc3de 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1586,8 +1586,9 @@ void spapr_setup_hpt_and_vrma(SpaprMachineState *spapr) spapr_reallocate_hpt(spapr, hpt_shift, &error_fatal); if (spapr->vrma_adjust) { - spapr->rma_size = kvmppc_rma_size(spapr_node0_size(MACHINE(spapr)), - spapr->htab_shift); + hwaddr vrma_limit = kvmppc_vrma_limit(spapr->htab_shift); + + spapr->rma_size = MIN(spapr_node0_size(MACHINE(spapr)), vrma_limit); } } diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index 7f44b1aa1a..597f72be1b 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -2113,7 +2113,7 @@ void kvmppc_error_append_smt_possible_hint(Error *const *errp) #ifdef TARGET_PPC64 -uint64_t kvmppc_rma_size(uint64_t current_size, unsigned int hash_shift) +uint64_t kvmppc_vrma_limit(unsigned int hash_shift) { struct kvm_ppc_smmu_info info; long rampagesize, best_page_shift; @@ -2140,8 +2140,7 @@ uint64_t kvmppc_rma_size(uint64_t current_size, unsigned int hash_shift) } } - return MIN(current_size, - 1ULL << (best_page_shift + hash_shift - 7)); + return 1ULL << (best_page_shift + hash_shift - 7); } #endif diff --git a/target/ppc/kvm_ppc.h b/target/ppc/kvm_ppc.h index 9e4f2357cc..332fa0aa1c 100644 --- a/target/ppc/kvm_ppc.h +++ b/target/ppc/kvm_ppc.h @@ -47,7 +47,7 @@ void *kvmppc_create_spapr_tce(uint32_t liobn, uint32_t page_shift, int *pfd, bool need_vfio); int kvmppc_remove_spapr_tce(void *table, int pfd, uint32_t window_size); int kvmppc_reset_htab(int shift_hint); -uint64_t kvmppc_rma_size(uint64_t current_size, unsigned int hash_shift); +uint64_t kvmppc_vrma_limit(unsigned int hash_shift); bool kvmppc_has_cap_spapr_vfio(void); #endif /* !CONFIG_USER_ONLY */ bool kvmppc_has_cap_epr(void); @@ -255,10 +255,9 @@ static inline int kvmppc_reset_htab(int shift_hint) return 0; } -static inline uint64_t kvmppc_rma_size(uint64_t current_size, - unsigned int hash_shift) +static inline uint64_t kvmppc_vrma_limit(unsigned int hash_shift) { - return ram_size; + g_assert_not_reached(); } static inline bool kvmppc_hpt_needs_host_contiguous_pages(void) From 8897ea5a9fc0aafa5ed7eee1e0c49893b91a2d87 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Thu, 28 Nov 2019 16:37:04 +1100 Subject: [PATCH 19/45] spapr: Don't attempt to clamp RMA to VRMA constraint The Real Mode Area (RMA) is the part of memory which a guest can access when in real (MMU off) mode. Of course, for a guest under KVM, the MMU isn't really turned off, it's just in a special translation mode - Virtual Real Mode Area (VRMA) - which looks like real mode in guest mode. The mechanics of how this works when using the hash MMU (HPT) put a constraint on the size of the RMA, which depends on the size of the HPT. So, the latter part of spapr_setup_hpt_and_vrma() clamps the RMA we advertise to the guest based on this VRMA limit. There are several things wrong with this: 1) spapr_setup_hpt_and_vrma() doesn't actually clamp, it takes the minimum of Node 0 memory size and the VRMA limit. That will *often* work the same as clamping, but there can be other constraints on RMA size which supersede Node 0 memory size. We have real bugs caused by this (currently worked around in the guest kernel) 2) Some callers of spapr_setup_hpt_and_vrma() are in a situation where we're past the point that we can actually advertise an RMA limit to the guest 3) But most fundamentally, the VRMA limit depends on host configuration (page size) which shouldn't be visible to the guest, but this partially exposes it. This can cause problems with migration in certain edge cases, although we will mostly get away with it. In practice, this clamping is almost never applied anyway. With 64kiB pages and the normal rules for sizing of the HPT, the theoretical VRMA limit will be 4x(guest memory size) and so never hit. It will hit with 4kiB pages, where it will be (guest memory size)/4. However all mainstream distro kernels for POWER have used a 64kiB page size for at least 10 years. So, simply replace this logic with a check that the RMA we've calculated based only on guest visible configuration will fit within the host implied VRMA limit. This can break if running HPT guests on a host kernel with 4kiB page size. As noted that's very rare. There also exist several possible workarounds: * Change the host kernel to use 64kiB pages * Use radix MMU (RPT) guests instead of HPT * Use 64kiB hugepages on the host to back guest memory * Increase the guest memory size so that the RMA hits one of the fixed limits before the RMA limit. This is relatively easy on POWER8 which has a 16GiB limit, harder on POWER9 which has a 1TiB limit. * Use a guest NUMA configuration which artificially constrains the RMA within the VRMA limit (the RMA must always fit within Node 0). Previously, on KVM, we also temporarily reduced the rma_size to 256M so that the we'd load the kernel and initrd safely, regardless of the VRMA limit. This was a) confusing, b) could significantly limit the size of images we could load and c) introduced a behavioural difference between KVM and TCG. So we remove that as well. Signed-off-by: David Gibson Reviewed-by: Alexey Kardashevskiy Reviewed-by: Greg Kurz --- hw/ppc/spapr.c | 28 ++++++++++------------------ hw/ppc/spapr_hcall.c | 4 ++-- include/hw/ppc/spapr.h | 3 +-- 3 files changed, 13 insertions(+), 22 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 18bf4bc3de..ef7667455c 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1569,7 +1569,7 @@ void spapr_reallocate_hpt(SpaprMachineState *spapr, int shift, spapr_set_all_lpcrs(0, LPCR_HR | LPCR_UPRT); } -void spapr_setup_hpt_and_vrma(SpaprMachineState *spapr) +void spapr_setup_hpt(SpaprMachineState *spapr) { int hpt_shift; @@ -1585,10 +1585,16 @@ void spapr_setup_hpt_and_vrma(SpaprMachineState *spapr) } spapr_reallocate_hpt(spapr, hpt_shift, &error_fatal); - if (spapr->vrma_adjust) { + if (kvm_enabled()) { hwaddr vrma_limit = kvmppc_vrma_limit(spapr->htab_shift); - spapr->rma_size = MIN(spapr_node0_size(MACHINE(spapr)), vrma_limit); + /* Check our RMA fits in the possible VRMA */ + if (vrma_limit < spapr->rma_size) { + error_report("Unable to create %" HWADDR_PRIu + "MiB RMA (VRMA only allows %" HWADDR_PRIu "MiB", + spapr->rma_size / MiB, vrma_limit / MiB); + exit(EXIT_FAILURE); + } } } @@ -1628,7 +1634,7 @@ static void spapr_machine_reset(MachineState *machine) spapr->patb_entry = PATE1_GR; spapr_set_all_lpcrs(LPCR_HR | LPCR_UPRT, LPCR_HR | LPCR_UPRT); } else { - spapr_setup_hpt_and_vrma(spapr); + spapr_setup_hpt(spapr); } qemu_devices_reset(); @@ -2695,20 +2701,6 @@ static void spapr_machine_init(MachineState *machine) spapr->rma_size = node0_size; - /* With KVM, we don't actually know whether KVM supports an - * unbounded RMA (PR KVM) or is limited by the hash table size - * (HV KVM using VRMA), so we always assume the latter - * - * In that case, we also limit the initial allocations for RTAS - * etc... to 256M since we have no way to know what the VRMA size - * is going to be as it depends on the size of the hash table - * which isn't determined yet. - */ - if (kvm_enabled()) { - spapr->vrma_adjust = 1; - spapr->rma_size = MIN(spapr->rma_size, 0x10000000); - } - /* Actually we don't support unbounded RMA anymore since we added * proper emulation of HV mode. The max we can get is 16G which * also happens to be what we configure for PAPR mode so make sure diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index c2b3286625..40c86e91eb 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -1458,7 +1458,7 @@ static void spapr_check_setup_free_hpt(SpaprMachineState *spapr, spapr_free_hpt(spapr); } else if (!(patbe_new & PATE1_GR)) { /* RADIX->HASH || NOTHING->HASH : Allocate HPT */ - spapr_setup_hpt_and_vrma(spapr); + spapr_setup_hpt(spapr); } return; } @@ -1845,7 +1845,7 @@ static target_ulong h_client_architecture_support(PowerPCCPU *cpu, * (because the guest isn't going to use radix) then set it up here. */ if ((spapr->patb_entry & PATE1_GR) && !guest_radix) { /* legacy hash or new hash: */ - spapr_setup_hpt_and_vrma(spapr); + spapr_setup_hpt(spapr); } if (fdt_bufsize < sizeof(hdr)) { diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index a4216935a1..90dbc55931 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -156,7 +156,6 @@ struct SpaprMachineState { SpaprPendingHpt *pending_hpt; /* in-progress resize */ hwaddr rma_size; - int vrma_adjust; uint32_t fdt_size; uint32_t fdt_initial_size; void *fdt_blob; @@ -795,7 +794,7 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space); void spapr_events_init(SpaprMachineState *sm); void spapr_dt_events(SpaprMachineState *sm, void *fdt); void close_htab_fd(SpaprMachineState *spapr); -void spapr_setup_hpt_and_vrma(SpaprMachineState *spapr); +void spapr_setup_hpt(SpaprMachineState *spapr); void spapr_free_hpt(SpaprMachineState *spapr); SpaprTceTable *spapr_tce_new_table(DeviceState *owner, uint32_t liobn); void spapr_tce_table_enable(SpaprTceTable *tcet, From 1052ab67f4c10ea8961bf1a523b764b19bff1997 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 19 Feb 2020 20:53:13 +1100 Subject: [PATCH 20/45] spapr: Don't clamp RMA to 16GiB on new machine types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In spapr_machine_init() we clamp the size of the RMA to 16GiB and the comment saying why doesn't make a whole lot of sense. In fact, this was done because the real mode handling code elsewhere limited the RMA in TCG mode to the maximum value configurable in LPCR[RMLS], 16GiB. But, * Actually LPCR[RMLS] has been able to encode a 256GiB size for a very long time, we just didn't implement it properly in the softmmu * LPCR[RMLS] shouldn't really be relevant anyway, it only was because we used to abuse the RMOR based translation mode in order to handle the fact that we're not modelling the hypervisor parts of the cpu We've now removed those limitations in the modelling so the 16GiB clamp no longer serves a function. However, we can't just remove the limit universally: that would break migration to earlier qemu versions, where the 16GiB RMLS limit still applies, no matter how bad the reasons for it are. So, we replace the 16GiB clamp, with a clamp to a limit defined in the machine type class. We set it to 16 GiB for machine types 4.2 and earlier, but set it to 0 meaning unlimited for the new 5.0 machine type. Signed-off-by: David Gibson Reviewed-by: Greg Kurz Reviewed-by: Philippe Mathieu-Daudé --- hw/ppc/spapr.c | 13 ++++++++----- include/hw/ppc/spapr.h | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index ef7667455c..95bda4a615 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2701,12 +2701,14 @@ static void spapr_machine_init(MachineState *machine) spapr->rma_size = node0_size; - /* Actually we don't support unbounded RMA anymore since we added - * proper emulation of HV mode. The max we can get is 16G which - * also happens to be what we configure for PAPR mode so make sure - * we don't do anything bigger than that + /* + * Clamp the RMA size based on machine type. This is for + * migration compatibility with older qemu versions, which limited + * the RMA size for complicated and mostly bad reasons. */ - spapr->rma_size = MIN(spapr->rma_size, 0x400000000ull); + if (smc->rma_limit) { + spapr->rma_size = MIN(spapr->rma_size, smc->rma_limit); + } if (spapr->rma_size > node0_size) { error_report("Numa node 0 has to span the RMA (%#08"HWADDR_PRIx")", @@ -4598,6 +4600,7 @@ static void spapr_machine_4_2_class_options(MachineClass *mc) compat_props_add(mc->compat_props, hw_compat_4_2, hw_compat_4_2_len); smc->default_caps.caps[SPAPR_CAP_CCF_ASSIST] = SPAPR_CAP_OFF; smc->default_caps.caps[SPAPR_CAP_FWNMI_MCE] = SPAPR_CAP_OFF; + smc->rma_limit = 16 * GiB; mc->nvdimm_supported = false; } diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 90dbc55931..2015e37ac5 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -126,6 +126,7 @@ struct SpaprMachineClass { bool pre_4_1_migration; /* don't migrate hpt-max-page-size */ bool linux_pci_probe; bool smp_threads_vsmt; /* set VSMT to smp_threads by default */ + hwaddr rma_limit; /* clamp the RMA to this size */ void (*phb_placement)(SpaprMachineState *spapr, uint32_t index, uint64_t *buid, hwaddr *pio, From 425f0b7adb8773d6989abcf3cb19bf0bcab9e07e Mon Sep 17 00:00:00 2001 From: David Gibson Date: Fri, 29 Nov 2019 11:49:04 +1100 Subject: [PATCH 21/45] spapr: Clean up RMA size calculation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move the calculation of the Real Mode Area (RMA) size into a helper function. While we're there clean it up and correct it in a few ways: * Add comments making it clearer where the various constraints come from * Remove a pointless check that the RMA fits within Node 0 (we've just clamped it so that it does) Signed-off-by: David Gibson Reviewed-by: Greg Kurz Reviewed-by: Philippe Mathieu-Daudé --- hw/ppc/spapr.c | 61 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 95bda4a615..1950fc303e 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2648,6 +2648,42 @@ static PCIHostState *spapr_create_default_phb(void) return PCI_HOST_BRIDGE(dev); } +static hwaddr spapr_rma_size(SpaprMachineState *spapr, Error **errp) +{ + MachineState *machine = MACHINE(spapr); + SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); + hwaddr rma_size = machine->ram_size; + hwaddr node0_size = spapr_node0_size(machine); + + /* RMA has to fit in the first NUMA node */ + rma_size = MIN(rma_size, node0_size); + + /* + * VRMA access is via a special 1TiB SLB mapping, so the RMA can + * never exceed that + */ + rma_size = MIN(rma_size, 1 * TiB); + + /* + * Clamp the RMA size based on machine type. This is for + * migration compatibility with older qemu versions, which limited + * the RMA size for complicated and mostly bad reasons. + */ + if (smc->rma_limit) { + rma_size = MIN(rma_size, smc->rma_limit); + } + + if (rma_size < MIN_RMA_SLOF) { + error_setg(errp, + "pSeries SLOF firmware requires >= %" HWADDR_PRIx + "ldMiB guest RMA (Real Mode Area memory)", + MIN_RMA_SLOF / MiB); + return 0; + } + + return rma_size; +} + /* pSeries LPAR / sPAPR hardware init */ static void spapr_machine_init(MachineState *machine) { @@ -2659,7 +2695,6 @@ static void spapr_machine_init(MachineState *machine) PCIHostState *phb; int i; MemoryRegion *sysmem = get_system_memory(); - hwaddr node0_size = spapr_node0_size(machine); long load_limit, fw_size; char *filename; Error *resize_hpt_err = NULL; @@ -2699,22 +2734,7 @@ static void spapr_machine_init(MachineState *machine) exit(1); } - spapr->rma_size = node0_size; - - /* - * Clamp the RMA size based on machine type. This is for - * migration compatibility with older qemu versions, which limited - * the RMA size for complicated and mostly bad reasons. - */ - if (smc->rma_limit) { - spapr->rma_size = MIN(spapr->rma_size, smc->rma_limit); - } - - if (spapr->rma_size > node0_size) { - error_report("Numa node 0 has to span the RMA (%#08"HWADDR_PRIx")", - spapr->rma_size); - exit(1); - } + spapr->rma_size = spapr_rma_size(spapr, &error_fatal); /* Setup a load limit for the ramdisk leaving room for SLOF and FDT */ load_limit = MIN(spapr->rma_size, RTAS_MAX_ADDR) - FW_OVERHEAD; @@ -2951,13 +2971,6 @@ static void spapr_machine_init(MachineState *machine) } } - if (spapr->rma_size < MIN_RMA_SLOF) { - error_report( - "pSeries SLOF firmware requires >= %ldMiB guest RMA (Real Mode Area memory)", - MIN_RMA_SLOF / MiB); - exit(1); - } - if (kernel_filename) { uint64_t lowaddr = 0; From 560f421ae9ed0d7f5acf29b1f06bed8adb3a5b51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Thu, 5 Mar 2020 13:12:47 +0100 Subject: [PATCH 22/45] hw/scsi/viosrp: Add missing 'hw/scsi/srp.h' include MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This header use the srp_* structures declared in "hw/scsi/srp.h". Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200305121253.19078-2-philmd@redhat.com> Reviewed-by: Paolo Bonzini Signed-off-by: David Gibson --- hw/scsi/viosrp.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/scsi/viosrp.h b/hw/scsi/viosrp.h index d8e365db1e..25676c2383 100644 --- a/hw/scsi/viosrp.h +++ b/hw/scsi/viosrp.h @@ -34,6 +34,8 @@ #ifndef PPC_VIOSRP_H #define PPC_VIOSRP_H +#include "hw/scsi/srp.h" + #define SRP_VERSION "16.a" #define SRP_MAX_IU_LEN 256 #define SRP_MAX_LOC_LEN 32 From 0dc556987dc01e06b6ff543a6752dbdc4c88f2fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Thu, 5 Mar 2020 13:12:48 +0100 Subject: [PATCH 23/45] hw/scsi/spapr_vscsi: Use SRP_MAX_IU_LEN instead of sizeof flexible array MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace sizeof() flexible arrays union srp_iu/viosrp_iu by the SRP_MAX_IU_LEN definition, which is what this code actually meant to use. Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200305121253.19078-3-philmd@redhat.com> Reviewed-by: Paolo Bonzini Signed-off-by: David Gibson --- hw/scsi/spapr_vscsi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index 7d584e7732..7e397ed797 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -671,8 +671,8 @@ static void vscsi_process_login(VSCSIState *s, vscsi_req *req) */ rsp->req_lim_delta = cpu_to_be32(VSCSI_REQ_LIMIT-2); rsp->tag = tag; - rsp->max_it_iu_len = cpu_to_be32(sizeof(union srp_iu)); - rsp->max_ti_iu_len = cpu_to_be32(sizeof(union srp_iu)); + rsp->max_it_iu_len = cpu_to_be32(SRP_MAX_IU_LEN); + rsp->max_ti_iu_len = cpu_to_be32(SRP_MAX_IU_LEN); /* direct and indirect */ rsp->buf_fmt = cpu_to_be16(SRP_BUF_FORMAT_DIRECT | SRP_BUF_FORMAT_INDIRECT); @@ -1088,7 +1088,7 @@ static void vscsi_got_payload(VSCSIState *s, vscsi_crq *crq) * in our 256 bytes IUs. If not we'll have to increase the size * of the structure. */ - if (crq->s.IU_length > sizeof(union viosrp_iu)) { + if (crq->s.IU_length > SRP_MAX_IU_LEN) { fprintf(stderr, "VSCSI: SRP IU too long (%d bytes) !\n", crq->s.IU_length); vscsi_put_req(req); From 06109ab34edd59a853efede87d0296aa0c9b1105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Thu, 5 Mar 2020 13:12:49 +0100 Subject: [PATCH 24/45] hw/scsi/spapr_vscsi: Simplify a bit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We already have a 'iu' pointer, use it (this simplifies the next commit). Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200305121253.19078-4-philmd@redhat.com> Reviewed-by: Paolo Bonzini Signed-off-by: David Gibson --- hw/scsi/spapr_vscsi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index 7e397ed797..3cb5a38181 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -261,9 +261,9 @@ static int vscsi_send_rsp(VSCSIState *s, vscsi_req *req, if (status) { iu->srp.rsp.sol_not = (sol_not & 0x04) >> 2; if (req->senselen) { - req->iu.srp.rsp.flags |= SRP_RSP_FLAG_SNSVALID; - req->iu.srp.rsp.sense_data_len = cpu_to_be32(req->senselen); - memcpy(req->iu.srp.rsp.data, req->sense, req->senselen); + iu->srp.rsp.flags |= SRP_RSP_FLAG_SNSVALID; + iu->srp.rsp.sense_data_len = cpu_to_be32(req->senselen); + memcpy(iu->srp.rsp.data, req->sense, req->senselen); total_len += req->senselen; } } else { From 81e705494f2915b7b6174bc5695d19ee4a083a85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Thu, 5 Mar 2020 13:12:50 +0100 Subject: [PATCH 25/45] hw/scsi/spapr_vscsi: Introduce req_iu() helper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce the req_iu() helper which returns a pointer to the viosrp_iu union held in the vscsi_req structure. This simplifies the next patch. Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200305121253.19078-5-philmd@redhat.com> Reviewed-by: Paolo Bonzini Signed-off-by: David Gibson --- hw/scsi/spapr_vscsi.c | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index 3cb5a38181..70547f98ac 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -97,6 +97,11 @@ typedef struct { vscsi_req reqs[VSCSI_REQ_LIMIT]; } VSCSIState; +static union viosrp_iu *req_iu(vscsi_req *req) +{ + return &req->iu; +} + static struct vscsi_req *vscsi_get_req(VSCSIState *s) { vscsi_req *req; @@ -121,7 +126,7 @@ static struct vscsi_req *vscsi_find_req(VSCSIState *s, uint64_t srp_tag) for (i = 0; i < VSCSI_REQ_LIMIT; i++) { req = &s->reqs[i]; - if (req->iu.srp.cmd.tag == srp_tag) { + if (req_iu(req)->srp.cmd.tag == srp_tag) { return req; } } @@ -188,7 +193,7 @@ static int vscsi_send_iu(VSCSIState *s, vscsi_req *req, req->crq.s.reserved = 0x00; req->crq.s.timeout = cpu_to_be16(0x0000); req->crq.s.IU_length = cpu_to_be16(length); - req->crq.s.IU_data_ptr = req->iu.srp.rsp.tag; /* right byte order */ + req->crq.s.IU_data_ptr = req_iu(req)->srp.rsp.tag; /* right byte order */ if (rc == 0) { req->crq.s.status = VIOSRP_OK; @@ -224,7 +229,7 @@ static void vscsi_makeup_sense(VSCSIState *s, vscsi_req *req, static int vscsi_send_rsp(VSCSIState *s, vscsi_req *req, uint8_t status, int32_t res_in, int32_t res_out) { - union viosrp_iu *iu = &req->iu; + union viosrp_iu *iu = req_iu(req); uint64_t tag = iu->srp.rsp.tag; int total_len = sizeof(iu->srp.rsp); uint8_t sol_not = iu->srp.cmd.sol_not; @@ -285,7 +290,7 @@ static int vscsi_fetch_desc(VSCSIState *s, struct vscsi_req *req, unsigned n, unsigned buf_offset, struct srp_direct_buf *ret) { - struct srp_cmd *cmd = &req->iu.srp.cmd; + struct srp_cmd *cmd = &req_iu(req)->srp.cmd; switch (req->dma_fmt) { case SRP_NO_DATA_DESC: { @@ -473,7 +478,7 @@ static int data_out_desc_size(struct srp_cmd *cmd) static int vscsi_preprocess_desc(vscsi_req *req) { - struct srp_cmd *cmd = &req->iu.srp.cmd; + struct srp_cmd *cmd = &req_iu(req)->srp.cmd; req->cdb_offset = cmd->add_cdb_len & ~3; @@ -655,7 +660,7 @@ static void *vscsi_load_request(QEMUFile *f, SCSIRequest *sreq) static void vscsi_process_login(VSCSIState *s, vscsi_req *req) { - union viosrp_iu *iu = &req->iu; + union viosrp_iu *iu = req_iu(req); struct srp_login_rsp *rsp = &iu->srp.login_rsp; uint64_t tag = iu->srp.rsp.tag; @@ -681,7 +686,7 @@ static void vscsi_process_login(VSCSIState *s, vscsi_req *req) static void vscsi_inquiry_no_target(VSCSIState *s, vscsi_req *req) { - uint8_t *cdb = req->iu.srp.cmd.cdb; + uint8_t *cdb = req_iu(req)->srp.cmd.cdb; uint8_t resp_data[36]; int rc, len, alen; @@ -770,7 +775,7 @@ static void vscsi_report_luns(VSCSIState *s, vscsi_req *req) static int vscsi_queue_cmd(VSCSIState *s, vscsi_req *req) { - union srp_iu *srp = &req->iu.srp; + union srp_iu *srp = &req_iu(req)->srp; SCSIDevice *sdev; int n, lun; @@ -821,7 +826,7 @@ static int vscsi_queue_cmd(VSCSIState *s, vscsi_req *req) static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req) { - union viosrp_iu *iu = &req->iu; + union viosrp_iu *iu = req_iu(req); vscsi_req *tmpreq; int i, lun = 0, resp = SRP_TSK_MGMT_COMPLETE; SCSIDevice *d; @@ -831,7 +836,8 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req) fprintf(stderr, "vscsi_process_tsk_mgmt %02x\n", iu->srp.tsk_mgmt.tsk_mgmt_func); - d = vscsi_device_find(&s->bus, be64_to_cpu(req->iu.srp.tsk_mgmt.lun), &lun); + d = vscsi_device_find(&s->bus, + be64_to_cpu(req_iu(req)->srp.tsk_mgmt.lun), &lun); if (!d) { resp = SRP_TSK_MGMT_FIELDS_INVALID; } else { @@ -842,7 +848,7 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req) break; } - tmpreq = vscsi_find_req(s, req->iu.srp.tsk_mgmt.task_tag); + tmpreq = vscsi_find_req(s, req_iu(req)->srp.tsk_mgmt.task_tag); if (tmpreq && tmpreq->sreq) { assert(tmpreq->sreq->hba_private); scsi_req_cancel(tmpreq->sreq); @@ -867,7 +873,8 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req) for (i = 0; i < VSCSI_REQ_LIMIT; i++) { tmpreq = &s->reqs[i]; - if (tmpreq->iu.srp.cmd.lun != req->iu.srp.tsk_mgmt.lun) { + if (req_iu(tmpreq)->srp.cmd.lun + != req_iu(req)->srp.tsk_mgmt.lun) { continue; } if (!tmpreq->active || !tmpreq->sreq) { @@ -911,7 +918,7 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req) static int vscsi_handle_srp_req(VSCSIState *s, vscsi_req *req) { - union srp_iu *srp = &req->iu.srp; + union srp_iu *srp = &req_iu(req)->srp; int done = 1; uint8_t opcode = srp->rsp.opcode; @@ -948,7 +955,7 @@ static int vscsi_send_adapter_info(VSCSIState *s, vscsi_req *req) struct mad_adapter_info_data info; int rc; - sinfo = &req->iu.mad.adapter_info; + sinfo = &req_iu(req)->mad.adapter_info; #if 0 /* What for ? */ rc = spapr_vio_dma_read(&s->vdev, be64_to_cpu(sinfo->buffer), @@ -984,7 +991,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi_req *req) uint64_t buffer; int rc; - vcap = &req->iu.mad.capabilities; + vcap = &req_iu(req)->mad.capabilities; req_len = len = be16_to_cpu(vcap->common.length); buffer = be64_to_cpu(vcap->buffer); if (len > sizeof(cap)) { @@ -1029,7 +1036,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi_req *req) static int vscsi_handle_mad_req(VSCSIState *s, vscsi_req *req) { - union mad_iu *mad = &req->iu.mad; + union mad_iu *mad = &req_iu(req)->mad; bool request_handled = false; uint64_t retlen = 0; From ff78b728f6c9d2c274dab20114bfe052322365a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Thu, 5 Mar 2020 13:12:51 +0100 Subject: [PATCH 26/45] hw/scsi/spapr_vscsi: Do not mix SRP IU size with DMA buffer size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'union srp_iu' is meant as a pointer to any SRP Information Unit type, it is not related to the size of a VIO DMA buffer. Use a plain buffer for the VIO DMA read/write calls. We can remove the reserved buffer from the 'union srp_iu'. This issue was noticed when replacing the zero-length arrays from hw/scsi/srp.h with flexible array member, 'clang -fsanitize=undefined' reported: hw/scsi/spapr_vscsi.c:69:29: error: field 'iu' with variable sized type 'union viosrp_iu' not at the end of a struct or class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end] union viosrp_iu iu; ^ Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200305121253.19078-6-philmd@redhat.com> Reviewed-by: Paolo Bonzini Signed-off-by: David Gibson --- hw/scsi/spapr_vscsi.c | 10 +++++----- hw/scsi/viosrp.h | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index 70547f98ac..acf9bb50bc 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -66,7 +66,7 @@ typedef union vscsi_crq { typedef struct vscsi_req { vscsi_crq crq; - union viosrp_iu iu; + uint8_t viosrp_iu_buf[SRP_MAX_IU_LEN]; /* SCSI request tracking */ SCSIRequest *sreq; @@ -99,7 +99,7 @@ typedef struct { static union viosrp_iu *req_iu(vscsi_req *req) { - return &req->iu; + return (union viosrp_iu *)req->viosrp_iu_buf; } static struct vscsi_req *vscsi_get_req(VSCSIState *s) @@ -183,7 +183,7 @@ static int vscsi_send_iu(VSCSIState *s, vscsi_req *req, /* First copy the SRP */ rc = spapr_vio_dma_write(&s->vdev, req->crq.s.IU_data_ptr, - &req->iu, length); + &req->viosrp_iu_buf, length); if (rc) { fprintf(stderr, "vscsi_send_iu: DMA write failure !\n"); } @@ -602,7 +602,7 @@ static const VMStateDescription vmstate_spapr_vscsi_req = { .minimum_version_id = 1, .fields = (VMStateField[]) { VMSTATE_BUFFER(crq.raw, vscsi_req), - VMSTATE_BUFFER(iu.srp.reserved, vscsi_req), + VMSTATE_BUFFER(viosrp_iu_buf, vscsi_req), VMSTATE_UINT32(qtag, vscsi_req), VMSTATE_BOOL(active, vscsi_req), VMSTATE_UINT32(data_len, vscsi_req), @@ -1103,7 +1103,7 @@ static void vscsi_got_payload(VSCSIState *s, vscsi_crq *crq) } /* XXX Handle failure differently ? */ - if (spapr_vio_dma_read(&s->vdev, crq->s.IU_data_ptr, &req->iu, + if (spapr_vio_dma_read(&s->vdev, crq->s.IU_data_ptr, &req->viosrp_iu_buf, crq->s.IU_length)) { fprintf(stderr, "vscsi_got_payload: DMA read failure !\n"); vscsi_put_req(req); diff --git a/hw/scsi/viosrp.h b/hw/scsi/viosrp.h index 25676c2383..e5f9768e8f 100644 --- a/hw/scsi/viosrp.h +++ b/hw/scsi/viosrp.h @@ -49,7 +49,6 @@ union srp_iu { struct srp_tsk_mgmt tsk_mgmt; struct srp_cmd cmd; struct srp_rsp rsp; - uint8_t reserved[SRP_MAX_IU_LEN]; }; enum viosrp_crq_formats { From 13a5490536c5c260ad158d5b9672daebcd1d85d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Thu, 5 Mar 2020 13:12:52 +0100 Subject: [PATCH 27/45] hw/scsi/spapr_vscsi: Prevent buffer overflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Depending on the length of sense data, vscsi_send_rsp() can overrun the buffer size. Do not copy more than SRP_MAX_IU_DATA_LEN bytes, and assert that vscsi_send_iu() is always called with a size in range. Reported-by: Paolo Bonzini Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200305121253.19078-7-philmd@redhat.com> Reviewed-by: Paolo Bonzini Signed-off-by: David Gibson --- hw/scsi/spapr_vscsi.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index acf9bb50bc..c4c4f31170 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -55,6 +55,8 @@ #define VSCSI_MAX_SECTORS 4096 #define VSCSI_REQ_LIMIT 24 +/* Maximum size of a IU payload */ +#define SRP_MAX_IU_DATA_LEN (SRP_MAX_IU_LEN - sizeof(union srp_iu)) #define SRP_RSP_SENSE_DATA_LEN 18 #define SRP_REPORT_LUNS_WLUN 0xc10100000000000ULL @@ -181,6 +183,8 @@ static int vscsi_send_iu(VSCSIState *s, vscsi_req *req, { long rc, rc1; + assert(length <= SRP_MAX_IU_LEN); + /* First copy the SRP */ rc = spapr_vio_dma_write(&s->vdev, req->crq.s.IU_data_ptr, &req->viosrp_iu_buf, length); @@ -266,10 +270,12 @@ static int vscsi_send_rsp(VSCSIState *s, vscsi_req *req, if (status) { iu->srp.rsp.sol_not = (sol_not & 0x04) >> 2; if (req->senselen) { + int sense_data_len = MIN(req->senselen, SRP_MAX_IU_DATA_LEN); + iu->srp.rsp.flags |= SRP_RSP_FLAG_SNSVALID; - iu->srp.rsp.sense_data_len = cpu_to_be32(req->senselen); - memcpy(iu->srp.rsp.data, req->sense, req->senselen); - total_len += req->senselen; + iu->srp.rsp.sense_data_len = cpu_to_be32(sense_data_len); + memcpy(iu->srp.rsp.data, req->sense, sense_data_len); + total_len += sense_data_len; } } else { iu->srp.rsp.sol_not = (sol_not & 0x02) >> 1; @@ -896,6 +902,7 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req) } /* Compose the response here as */ + QEMU_BUILD_BUG_ON(SRP_MAX_IU_DATA_LEN < 4); memset(iu, 0, sizeof(struct srp_rsp) + 4); iu->srp.rsp.opcode = SRP_RSP; iu->srp.rsp.req_lim_delta = cpu_to_be32(1); From a7017b203770fdc87e05a7f1b977ac30ce6adea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Thu, 5 Mar 2020 13:12:53 +0100 Subject: [PATCH 28/45] hw/scsi/spapr_vscsi: Convert debug fprintf() to trace event MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200305121253.19078-8-philmd@redhat.com> Reviewed-by: Paolo Bonzini Signed-off-by: David Gibson --- hw/scsi/spapr_vscsi.c | 4 +--- hw/scsi/trace-events | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index c4c4f31170..923488beb2 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -839,9 +839,7 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req) uint64_t tag = iu->srp.rsp.tag; uint8_t sol_not = iu->srp.cmd.sol_not; - fprintf(stderr, "vscsi_process_tsk_mgmt %02x\n", - iu->srp.tsk_mgmt.tsk_mgmt_func); - + trace_spapr_vscsi_process_tsk_mgmt(iu->srp.tsk_mgmt.tsk_mgmt_func); d = vscsi_device_find(&s->bus, be64_to_cpu(req_iu(req)->srp.tsk_mgmt.lun), &lun); if (!d) { diff --git a/hw/scsi/trace-events b/hw/scsi/trace-events index b0820052f8..9a4a60ca63 100644 --- a/hw/scsi/trace-events +++ b/hw/scsi/trace-events @@ -227,6 +227,7 @@ spapr_vscsi_command_complete_status(uint32_t status) "Command complete err=%"PRI spapr_vscsi_save_request(uint32_t qtag, unsigned desc, unsigned offset) "saving tag=%"PRIu32", current desc#%u, offset=0x%x" spapr_vscsi_load_request(uint32_t qtag, unsigned desc, unsigned offset) "restoring tag=%"PRIu32", current desc#%u, offset=0x%x" spapr_vscsi_process_login(void) "Got login, sending response !" +spapr_vscsi_process_tsk_mgmt(uint8_t func) "tsk_mgmt_func 0x%02x" spapr_vscsi_queue_cmd_no_drive(uint64_t lun) "Command for lun 0x%08" PRIx64 " with no drive" spapr_vscsi_queue_cmd(uint32_t qtag, unsigned cdb, const char *cmd, int lun, int ret) "Queued command tag 0x%"PRIx32" CMD 0x%x=%s LUN %d ret: %d" spapr_vscsi_do_crq(unsigned c0, unsigned c1) "crq: %02x %02x ..." From 52d3403d1e4dab51706f0ede70f88edae2b2ec04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Date: Fri, 6 Mar 2020 13:33:07 +0100 Subject: [PATCH 29/45] spapr/xive: use SPAPR_IRQ_IPI to define IPI ranges exposed to the guest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "ibm,xive-lisn-ranges" defines ranges of interrupt numbers that the guest can use to configure IPIs. It starts at 0 today but it could change to some other offset. Make clear which IRQ range we are exposing by using SPAPR_IRQ_IPI in the property definition. Signed-off-by: Cédric Le Goater Message-Id: <20200306123307.1348-1-clg@kaod.org> Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/intc/spapr_xive.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c index 20c8155557..6608d7220a 100644 --- a/hw/intc/spapr_xive.c +++ b/hw/intc/spapr_xive.c @@ -677,8 +677,8 @@ static void spapr_xive_dt(SpaprInterruptController *intc, uint32_t nr_servers, uint64_t timas[2 * 2]; /* Interrupt number ranges for the IPIs */ uint32_t lisn_ranges[] = { - cpu_to_be32(0), - cpu_to_be32(nr_servers), + cpu_to_be32(SPAPR_IRQ_IPI), + cpu_to_be32(SPAPR_IRQ_IPI + nr_servers), }; /* * EQ size - the sizes of pages supported by the system 4K, 64K, From 94f040aaecf4e41cc68991b80204b1b6886bbdd0 Mon Sep 17 00:00:00 2001 From: Vitaly Chikunov Date: Mon, 9 Mar 2020 23:45:57 +0300 Subject: [PATCH 30/45] target/ppc: Fix rlwinm on ppc64 rlwinm cannot just AND with Mask if shift value is zero on ppc64 when Mask Begin is greater than Mask End and high bits are set to 1. Note that PowerISA 3.0B says that for `rlwinm' ROTL32 is used, and ROTL32 is defined (in 3.3.14) so that rotated value should have two copies of lower word of the source value. This seems to be another incarnation of the fix from 820724d170 ("target-ppc: Fix rlwimi, rlwinm, rlwnm again"), except I leave optimization when Mask value is less than 32 bits. Fixes: 7b4d326f47 ("target-ppc: Use the new deposit and extract ops") Cc: qemu-stable@nongnu.org Signed-off-by: Vitaly Chikunov Message-Id: <20200309204557.14836-1-vt@altlinux.org> Reviewed-by: Richard Henderson Signed-off-by: David Gibson --- target/ppc/translate.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 36fa27367c..127c82a24e 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -1938,15 +1938,17 @@ static void gen_rlwinm(DisasContext *ctx) me += 32; #endif mask = MASK(mb, me); - if (sh == 0) { - tcg_gen_andi_tl(t_ra, t_rs, mask); - } else if (mask <= 0xffffffffu) { - TCGv_i32 t0 = tcg_temp_new_i32(); - tcg_gen_trunc_tl_i32(t0, t_rs); - tcg_gen_rotli_i32(t0, t0, sh); - tcg_gen_andi_i32(t0, t0, mask); - tcg_gen_extu_i32_tl(t_ra, t0); - tcg_temp_free_i32(t0); + if (mask <= 0xffffffffu) { + if (sh == 0) { + tcg_gen_andi_tl(t_ra, t_rs, mask); + } else { + TCGv_i32 t0 = tcg_temp_new_i32(); + tcg_gen_trunc_tl_i32(t0, t_rs); + tcg_gen_rotli_i32(t0, t0, sh); + tcg_gen_andi_i32(t0, t0, mask); + tcg_gen_extu_i32_tl(t_ra, t0); + tcg_temp_free_i32(t0); + } } else { #if defined(TARGET_PPC64) tcg_gen_deposit_i64(t_ra, t_rs, t_rs, 32, 32); From 395a20d3cc61fa99cf4ad58921050f8a44b369f9 Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Tue, 10 Mar 2020 16:07:31 +1100 Subject: [PATCH 31/45] ppc/spapr: Move GPRs setup to one place At the moment "pseries" starts in SLOF which only expects the FDT blob pointer in r3. As we are going to introduce a OpenFirmware support in QEMU, we will be booting OF clients directly and these expect a stack pointer in r1, Linux looks at r3/r4 for the initramdisk location (although vmlinux can find this from the device tree but zImage from distro kernels cannot). This extends spapr_cpu_set_entry_state() to take more registers. This should cause no behavioral change. Signed-off-by: Alexey Kardashevskiy Message-Id: <20200310050733.29805-2-aik@ozlabs.ru> Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr.c | 2 +- hw/ppc/spapr_cpu_core.c | 6 +++++- hw/ppc/spapr_rtas.c | 2 +- include/hw/ppc/spapr_cpu_core.h | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 1950fc303e..1038420c4a 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1698,7 +1698,7 @@ static void spapr_machine_reset(MachineState *machine) spapr->fdt_blob = fdt; /* Set up the entry state */ - spapr_cpu_set_entry_state(first_ppc_cpu, SPAPR_ENTRY_POINT, fdt_addr); + spapr_cpu_set_entry_state(first_ppc_cpu, SPAPR_ENTRY_POINT, 0, fdt_addr, 0); first_ppc_cpu->env.gpr[5] = 0; spapr->cas_reboot = false; diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 36ed3a2b66..ac1c109427 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -76,13 +76,17 @@ static void spapr_reset_vcpu(PowerPCCPU *cpu) spapr_irq_cpu_intc_reset(spapr, cpu); } -void spapr_cpu_set_entry_state(PowerPCCPU *cpu, target_ulong nip, target_ulong r3) +void spapr_cpu_set_entry_state(PowerPCCPU *cpu, target_ulong nip, + target_ulong r1, target_ulong r3, + target_ulong r4) { PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu); CPUPPCState *env = &cpu->env; env->nip = nip; + env->gpr[1] = r1; env->gpr[3] = r3; + env->gpr[4] = r4; kvmppc_set_reg_ppc_online(cpu, 1); CPU(cpu)->halted = 0; /* Enable Power-saving mode Exit Cause exceptions */ diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c index 656fdd2216..fe83b50c66 100644 --- a/hw/ppc/spapr_rtas.c +++ b/hw/ppc/spapr_rtas.c @@ -190,7 +190,7 @@ static void rtas_start_cpu(PowerPCCPU *callcpu, SpaprMachineState *spapr, */ newcpu->env.tb_env->tb_offset = callcpu->env.tb_env->tb_offset; - spapr_cpu_set_entry_state(newcpu, start, r3); + spapr_cpu_set_entry_state(newcpu, start, 0, r3, 0); qemu_cpu_kick(CPU(newcpu)); diff --git a/include/hw/ppc/spapr_cpu_core.h b/include/hw/ppc/spapr_cpu_core.h index 1c4cc6559c..7aed8f555b 100644 --- a/include/hw/ppc/spapr_cpu_core.h +++ b/include/hw/ppc/spapr_cpu_core.h @@ -40,7 +40,9 @@ typedef struct SpaprCpuCoreClass { } SpaprCpuCoreClass; const char *spapr_get_cpu_core_type(const char *cpu_type); -void spapr_cpu_set_entry_state(PowerPCCPU *cpu, target_ulong nip, target_ulong r3); +void spapr_cpu_set_entry_state(PowerPCCPU *cpu, target_ulong nip, + target_ulong r1, target_ulong r3, + target_ulong r4); typedef struct SpaprCpuState { uint64_t vpa_addr; From eeea9f9d13102c643319e51498c904010dee231d Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Thu, 12 Mar 2020 15:04:13 +1100 Subject: [PATCH 32/45] pseries: Update SLOF firmware image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This mainly fixes virtio-serial with and without enabled iommu-platform. The full list of changes is: Alexey Kardashevskiy (3): llfw: Fix debug printf warnings virtio-serial: Close device completely version: update to 20200312 Cédric Le Goater (1): virtio: Fix typo in virtio_serial_init() Greg Kurz (2): virtio-serial: Don't override some words virtio-serial: Rework shutdown sequence Signed-off-by: Alexey Kardashevskiy Signed-off-by: David Gibson --- pc-bios/README | 2 +- pc-bios/slof.bin | Bin 968616 -> 968848 bytes roms/SLOF | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pc-bios/README b/pc-bios/README index a71fb318b3..bab0e8ec1a 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -14,7 +14,7 @@ - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware implementation for certain IBM POWER hardware. The sources are at https://github.com/aik/SLOF, and the image currently in qemu is - built from git tag qemu-slof-20200221. + built from git tag qemu-slof-20200312. - sgabios (the Serial Graphics Adapter option ROM) provides a means for legacy x86 software to communicate with an attached serial console as diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin index 1c5948561639cfe244ad5d60506050ddb0c9b5b2..b87353befa2ec0de2ef405dd1fd89c616f4f054e 100644 GIT binary patch delta 151063 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 HGb--^zu7<` delta 150546 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

jLR9v4tQ z4k;|kLB$pWpRg;WCCKCo-4L3l!Y#n12kO^@Bq5{D(~qfe3n)RaLJ)REOX%gG)(A*3 zB%up|_rD<9bYQvyC=kJOYOatD#q=;$ZUL@xXp(k?j6Dmvf)WXmPQ4G)FQ{>gae;~n z&{8}%4e%hiq#MZXNa`v;O*95RVYlh_8r zom+sb0_r!n3W%!nU@aZsikZo60ysLE+-88o*vJjko=39D7F0QdYy$ZiNjwtTGjW6T z4W-;bJ#QrW3Q*{S^ql}(Dgp91vNWh^0+OD-UlZg3$ih!4H?;VygmwYlq3PG11C(IJ zr+)`|G_Qo4gUMZDdV(gmxCAIbkj$?HhajJ@`}BG(ZgDB_MigXeXh+070z6hHZnf1gXs<+$vSP2BR4?H zKTS}H2-;!beqj0mWo|J>_vz=gL4}|uC?kOUz`!T$ego{K>DM*6`MD~g;ph%&voX2< zm|mdG4Qjn7h;WMud7$-~D;`WY(Bc-8ssy=}flt^2)K)1WYTHNB(>$SN#pfgNT z;JW~j)RaTx#=`>Q>S?(+_BIi*Z$fW&}X4 zsF=P%i(6b0)R98g4)vSIg6Rf2+~SNYz)5m?n>MIf3aY`kfmooLpV4DFzaD5<3?wjb z1s8`9cxMWdSrrea3+Ql*bHMyPJztMooXO+E^ar}!;?wt6af?qc(}4~;F?vov4>D~T zOn}K#VLB){r(Xk!fP2$yy4(U>4xrFu;1l+A01t0YH`9fNgp?;*&#xM$5;{!j2?`lx z=Yg^Z$RtR6n8~vNIvWo%@t;07hZOh-H6$IdwZ5J+AYM4G%gqnk9m2`D0kZPLa|guD z-#|uyiW){waOY>bnjW_RS2ZYMfGoTL*?k(O2WsBva&t~^*W>1gv^YF}Ogqmd#^eQQ z`%T}b2W_2AKc~m-z+@{iT|l2(4?Ija-Ax}UIJ`W-?VIUk`mo^eia<^M)zBp51zC6_ z?yG5vx*H+1QQR|mLtDCGqzYLFB`&;1tmg6ut*Ze{>#lWTHwFnMi&49%q( za0^a9@5s&0YAUfOd9GpJ&Le0a|sJ;+mlJisZ^#Pz4UsjusZ6HJC=+VqEUfGQxWW#LnwR z-27a1P}h5(0Gm18+?bo63zmz$Arq2J-VY$hFQgfRBF%`Klko$%d<>)-)YfA1f$n+z22x%Jsu3CZgncZgFEHT-Efv2o8?qypSm@u>h?&*akpRRO7xrf)Oh7T`*Pmd`#j!1D~#pMkW2x?9u5 zOt}TP+@OK%vjZ|%;&TF`%*_;5a+HBspw@|y4=CP|LO6R?|; zlYq%L0-V2@d=sW8dgF)|PPez>7H9H3F#Uo#w>aYkP>N;p zg-pOre+E(p+IYz53pqJM%mUVabOWDNHUA( z6H9JRL9}YvjbVC%C1`L6R2fXO1Vt{WJ?Pf~(RUoCj}dwx&o__~P_JFc53RWZnxwVj z7K5i8KWLlU@5J;4R-mwgnAmQG?C%GV)aCa967haN!1VNIRv?F1b917f_0#}O1pW%s z6Rf$#r=Pdw78mkIYq}+Em|kEF>hsxgb1?ZkOg8|jTyD+H&(#RZ^9+2#{t4iP35@>J zEA#S z;4wJ=3*eTynk}~gct-$}{{u)=_(N9bF!}$0s5cAzm^d(aRVWO?c}kifmKTpUaR8$b<0vFU8~pm2G? z#laXbeZM29cLWju@1O~|05WuX8b|<~rKj0L>p7+X$Vf3`z;u5nZgHkSXwM)}VETi0 zP! z0J~lAsq5P0L-l`I%Y+rtfg!)|>vWotuL(c)Gqj zxA=56S5QOAgPVgXSYi4B7jQ~{;KwZ{6^xdVTcB|l4C(bt1)~*ut)OC^floL%0&EO= zAe4bhQ;>89cvOQaxBzqjxEND#1z7p?@2;Ri(T|%$Dj1Zskh}u77&?oh=Eg0+)e4GU zkZ~&@+QZ$r`KPb*1pDj02e}2?w}&$4Hw6BHxP>tRC$`V&D@F^?(ffm4TFjDrTlo$c&j3_y#Yem~00PCV_N7GQ#w0AYV%Gjg}ne5cT!=Xz9*6cJE4&m4ygmCe*+l~4zF+ta6gMFTme#d`h#l!U~Uef zaI^v;%42$fKeV;N6z%~oyO_cQAlW-SV)}t#ZZW2C=uqf3e{KOTeNfw!floNR0KB$v z`ZJK(pkYa-@P_FVz{;WfZo?-`KM=qzj=nan6I3*S41lanV+!8@S+H3a0Cyy)ltS`n zl*jZ10U$?$l0x_eu-B$v11kp|vK0OT>}HWc=!Y~jt)v3qL!5A@pe=xT=Qv}EK zfI!fkWguv9{4*B^Q-s9y2OyF3KyH4xhaxn<%Veid1L+4RhzL;fLUKnJH0eh`6T~-= z%6Ea_p)2rycC{do7eGhKMHGM=ywk%#BH&TVh=%C`LEPeukPS|Z5!3BML2iSr=wXbQ zo*xPtD*!2f2P()TAl-!NV!_a)%oK3~;%N6^&=kdckT-5X(oO_qBx-sYNUdEMHwRP1 zkLe8|;1QPskg?Z6TENCeLKf^!XA6ND8>uk;0!WQ{2+Y_>Xla-RQUeMIA@CLtq=4wI zm|hXWtp_fvg(A^v%B}~~4}@@wadm-0kAY7(61s}@TL`xRS2wiCkL-XraKiKjp4?(g zkux9}I1;*gBXR}UXVcq4L2(%h&Mu&HWTtNm1@&NOgEqW{atm;EL2JlJ@SP80)5XHL z1-N>k!w8WdAa?wiUJ%MH#uUW>ZVXN@3xifFQcOXX20*f+8|vVw z25>uFCDm$iv%V27?2id3o_aR5@OdtGN3^)sc5uOmLBM!Q#5oV z2U`>@HljhHj}%nBpi+Q=PdFMyxsRS1^(K8^0=`@fCcoH{y1;l~S+T<8WqAwQY zFi2Ix6n$YD$V=+cphOOu-ie0hnXqVX0j@r1Ngw@V`iB^9@#)~!!?tK{4ah2$XCPKy zJU7R5u^3RIgC^`4$nm6%G1Je-af>s>ctA9l$AAJ76e}?i;GmwqEQVWfI_NY5rkD&! zy1o_z@^w5nhg1w&0)ge47|0rTsTfdci4-b*(1G!o84%mdW8t=~n7$wy)VBwTfD#{5 z40L8G1{9J=X7oejAm#$ZjN>33;C5Hc^!fx)=PMSJRiQ~W2GZe>ib1P=`a#2q41B_| z&_(gFAXAZT0l6F`Z!kRoWa#~5ZgHkq2XN`l6zc&V;$w^jA6>u{3t0g;-7OvzE+X6< zpv@zoV-w3j0^mrGg^amOUj`BZM|v#e#2cpA8IUpGYakiOKxhJ}mIXy~><&mdYz7jk zi{s{GJTd)2GPf90>;;IXG?2u;1a3}Akav-t59*DBoc{sh{NoAS{L||~xjC5P7$8Q( zaX|bMCjhQ4r+)((1uA8w;y~?WB(qGR6?L4(^a)Aapo2fag_&9+x90ToN!%RM!xKSm zJy4#H1BEJ*)(N0o!N4aR2ic>}6qf-m&8BZl1eHn2Am>zooiY7cA}H^BaI-VTb$|!5 zri&$U3rwGv1nz@^=Rw^-0^rb$TLJaMhUo{AxW%WJCxJ4?doGUYeM#IJ(?O-aR2-E2-0n@lS86~D)NC)NhG*G$$jj$zXfD<88 zf&oNkI!Fe*9x1_L`hzrX@#)7wB6%6yoal#tPJ$+}gpBDEGPuPVp$Ez&RDg#8nGztw z{z3_${EXy*#2M2Y(m??WwjR32avNyPt=~T`4yFX?F*DE7x#71X2`4~Wz0<`qK)wX^ zMiNedMzO@EyMaW&<2?yCz{8N!%RnNaI)o|V#q@*>ZgKPjhbDnSlz~q;5z_o+N)(v> zAd_2sI(sIl7n%uP6#-fwKHV%6v>*Vq5ET(R_yR54 zN}O(=3+jDjaSJd_F_KbKpaDGAa8VM>B*hhj=v0d^Bp(uV0D^0>vOhvkAwT98YU zruXN8G(ZL+7?U8|Jd$33)iWkde-D<0uD@u@z*}mNd^;8D%VbEs&y)<=-@%j& zzAH>@x?3J-njf@$CV2y-*_C_%TmVTWgX%^klcqq6@Z<~A6H2(nn38XR`)iEJ)BhK6 zi%-7>G6>whNrrT+r?cgQhL=IfGKB#$6qX_|y`X?woDs6*YI<5eC`Lhxfl>^>oerTC zP-6hu&KuJwZ^@uP@-{kOVabk>sX;hH^k=uK>3!nNoIuJN`^52O!<6Z3UnKh5~T8 z1dgVZ2h$gT3==N|RcyuF984)6z~MCAtq@dw`g3zIr80mGn_dPI0S}C%N`M1q`ZAEn zK2R*A8ccU62G6H#sOA=%&Q=6USfDCAb$WaWw>VR31US^0QX!`;Pd5W809Vs#Mce{h z(?HDz20r1`hG~V|Voa%!{?YVlU^!^Hn+okJrfz`Fe}N=n^Ixe4!1hnCF9lh41I%H3 z0h&jc-c}5q3S&&2e!moy-9Q5OKz+ls>G%D(#hKCsAY+ctU=mDe3Sc{g(mUhZ4HpMfS^>Dh$COq9rl(&6 z$$)mHPk&d!t-&<|)KFmH6HbG8aJpG3cf@p1lAJ!R6zX)QvGW@^j#lyi$SRzP}FZsnjX1DYgC?|>AeWgrpI=pM- z9-l~u)&tkdxiy$(SWK$`tx#PCn!2h0HCaGo&gmb(NsloDG7&xvBmrucFlJ1DU&SrX zlmR(*fiYvcd^Ly*X^c<*R>3X6H4BtC82E%UpdIzFN>HN#bXY`2!Zgsd`ub|n=pslI zTt#LyfD^S4cwY)qoF`0}{-BZ@de%+`bX{)-s8m5xGz(PffGmTo1)AlH>kJ(>4qH^R}CAa%*+7y4;eG3gXS!z9|K8%x(HI4paEYb zBVgl!nH}H>`|006D!~~)a|UQSL2SBO4XD%ilZ%5XbH#MfMHWn%8^H6fOqtLUClh-7 zR~ty>InWqs<^{0I>DxdeprsH@nGe7d9M5Wy#vn7H>pL?cb&XUOS~WNu8mn25Wq(Xr z65uHhsVq>+MDhdl=4jz84M=I41zGMq-K~~efNM6inV97PnS3v+g(eNgtm*L$pk*x} z0Z>Ad$^y08k<6U~4c;us{3F%7h7*9;`^uYsFGC=1jyK+>AzFg>A; zTa3#HT1aQDfUfJVgN;ib1L=+X&c(r$bpo`uUu^ofI&J~3bWkIZfloLKdTLtM3y5S` zJ+!eelm)6&kgS@;FukE3v`3?fn}aDEx;Q#pVETt@F45^*LE6CM&ClvV`4+S~J{vL@ zFkP&HTYzg0$TS8%;cUnvBdKh(FqjMK6M*C!z)cXTY*3gW**+JhAACilm{c~Xb%G>6 z4-{7*{g6eCjM>xUo4LiAvL8$boz*%0SR<@mnEe6Vc$oeTB(e{*s4s^B+^Yd?B>^95 zAJzmaDnO^W=0MJxVam~%KA{=hy_x_zey$Cy0CZ(VjsrL~Gv#U$2T1V@$!H6B3n&{b49KfuX-`n6_I1>45W z!ITT#c%2I}2}$RCP^2;N3Fm4|H)sQghk-k{*z~j(P~duSb1>#kf8Pe08UqV}%A?!> za7i`&SPN*uA1LvHv?oA@S-v5Z6+mWRa-jp>YOUM?T=SvXGIs*lw(0lVL1img1{C=q zgCNWQrE)>NEhKj?0J$3^e*&zN@xt^E&7j^@8)%vYG>V%00JLySj42ngFH0yFG(mu5 zKxM>qhc-~v(az1u$N;T=+PF2i7C`e^9;A|B%F~#x(9SI`h&KAYAY%FjkbZEPoCiGy zo~@l*fNKHNQ+be<+Vr$`P}qU2DVTl$6n4|wx%sE-fdn8M(V6l(z%@Km-UKK;0~}V< zzkzgu%ac5`iemvN!WsC4^B@%mQ{Dkk1dB7CfY=b;!7VUdznz<7I)67PL_u7LLtlVx zn7$1pQrE}L!ITFnF{eN4;1=Lo2u;NK64MWKa*H!6fJ_ye?$!zNK^J&w_yf>|y7?C1 zSp}wihv@-b+~U)hcY?aIpyDh)04%~70rmk?KBS>O{aPo;bWnz8;1kYo0GmGDybILX zYUk!)%AYX(0mz(mun4FJn-2;^q$PI#pr8Up7swSGz^h@I@^^qOnSQJbl&V3E=6tk# zvJhINv#4q65=jqC3Ie_k< zFzW@iCAzseB|%vUDdjJQmZJq1AP$2Z+rd=u0Ak+pUT%J-#U9f?^n#Xj^mB7CGC)#+ zS|7~ig#zF#&saG9{seAurb3130)3!Ot9_u%cZQ2Yst_%+z-FThA@^4?6*_?Y0GdIc z&<`3Y>Eq_-S_~S^WZ)An%$R-vBK4Dc0ep#4pK6& zpPLhXo@g<&dtbN#Vix-ZP~UkHHwRPU0kBra6VpL9qu&v<1RAx4FTna3KY)GCR0wS? zPn!T*ItFT5Fz^W%K{rwyn*bf5o&F6Z4QnJ6X+RnYY7?Q21g0VjNK-BhB+^&P&B0XU z0d8eXZv%;ds#c~VNH2h?2z))Z*z|268F0=mf<*uHXJ8RfuoOW`jp<^OUU6frAV-0mS+)Ud2BMb08=f)^c$18^}zdpnTjE|?@U*l0~6GZpWc4t5r(k%#OoP{qT*CtM6^ zbxe1g3My>q=uPZ29g2A;`C)xxi!GMNTy!{vCd89=A6zx4dngl+@Pye zK=(p1l^8%O9kXd513{%%38>~lvU(Y)jn2R)ToN%|VH#+UG{^|h%2%e649K|cF@#=F z?m^ZIZETfvfb}v?fE?YeHXSqoGLxHwsRXhEetH;41YF0IfP9K%#Byl+vE%^6h!bEV zm`W~8-!PL~jHv{A!q+o|0cbsvd4 z{ZiTh-qcnK-3&hsEHR6VL#Py#_>oLb|1tf*Om4C1dez(1wk;t_QU%K(2?3fiaan0GAol+h)NueE`Q5Q|S+It5m2ARDK{?nPD(} z!z`GUWdhR!=737XS&$8$pyeQ-b!SXv8q+V#;uc5WtGfak5@in47tG=opYA>zRA_>{ zTowTG^7OLVpfYnVc%B(_N}^O5D4QW$58^ZM36~W>TBKza5EopZ&8;#0{~s>)>1=aA zCD<%(&IGi;S^>%`Ag!Q;gH(gTuAMDIt9VvIOV=_`+C)~r1QaBE!e!I_=W~k-m4QMO zSvq67!dz~#>3#FLIfTkV?LK5lk?9R{xy1rkf<~Ab_=Lf`UXbLCuRzQ$2NhUI-d+hR z8bRtoc??;74^;hh{sr9P_2r<-7+D&8@i3ooIVjB{8wX1IAmczmgrr^{8bshr>ygy2 zg66GqP!J)jmw;Li(#Ooe4Zr7hmBDm_`P^chuF*bUTn`FlWNDDAL8gLSi|l%6E3X2r z&1eAPgVclK8cF?Xf$0qkxW&Anx84g^Kmr>c)~i9j0qFx(dPw%`gX{%~gM5u_UchvL zh1_D91|ksWSAyJ$EDuUV41B_sp!APqp57g(dbHNkYEU8qsYgqjdeD4QIo*CSXtBy7 zZUHI17^oQ_w;|j4V!FX1ZZS?h@HK&a!j;qKFXk4PtOQl^NKViNWkrxx)6XyF7O$^F z%X+#~pr(UD7|HZCponAO6Rtu_FS;O~fW*<#%Nl6ztOC^tNY?9|ftX(fN+-+=TJR`X z15H3xpwbCRgElm1s;2iZ;TEs20;MNpX=rFvfs`S+cP+>okh{>bn-(+%s?buvT2M@Z z)T5;U9hko%DFET#wV2n|pSfW$#53RyiUuY<%vF@>xi>gXDfW0)E0;VEq$GzZjx zf)-f=NFm4|P!dD702*2~pcIO%-UaFbP*fnPUk{3MkU1zxiJO5z112%Oe>t~!J$On2 z$vpKx5c6t5v4CtID2f^Qglj?Ck=27@2_%k|l-7e{8zc@2C}j2E1<`!MwV))%%rISb z1-IbzXUn(+IMqQSARW{FSAZM_iUDMe&=RE<6kx~>g9c13C>bHCSAzy{EhuJ?)NcUA zG{_oIGD21lEpuu?`ao%R1-GDQEn1pVgSLCX`-hMX1w}gppKu*0)Q}B@R%CV4?N@S( zOV)t`2}xQNnwsjS=da`z_pAeDFJx(Gqo59CE3$3SFs}n;FJ$%5ilA=#d9ZDuC_s`{ zf#&+U>HopDflNV`1_e0C51@cSvTY+Yf7O8;i>w}$H9+d8$FJfRpRTr&TcBR~2_*H@ zgR&X286cN3@Cnz0%tA6lc@9)P$Sh>_pvVNN2l*UXJt*~o#6jVWtRCcM20kg_dXOiO zH9)gR{dD=&+~W21AajwVl|W$tG7l}0Y=S0|dXTxu>Y*(K@SYqb`!|8y4>AWWy(q!V zfs{drcGaeY=>@B}#Vln(4r1UFZa@pLO(1`O#L-fWBDCgcn9je3TfDvjlxL9KCkw5J z8bB!t*?mxdHh@YOB=z8X3_#X^ayPPiP+Wt=L75Fny)4u}4Up1l`qDMrf?5rrz(Z1` z2(kpE8B|mu8M;|vdctaMF-sX}I&6UCG zX=s{goF2cHTRf@}Es4p4Y+>LNZUjXUvTH!D28p93F*#@uHlii5%_pWetl<{VfTr+9 zNC+St4{|ifIFP52Tqg%@YBZvi&s$)w28A?|dTE$*r~9wt7ME;7D^R3C5yikK+%&y@ z9cZuZT5bU;X;6TG#L#@WWx@0XYq`bhWuW2Ogyy3ypu`Q*2TE&5PEY`O4I~bVe54TD z0`+1ODCCgT%YzadNIl5wNb0vj5=*^s6Ua}<8ooeseG{l|Le>CtD5ywBQZEIvkbzIQ z8KezaJv5;;gDgT;4-KSdP#81YFu)^eE7WJrppZh=07^3;3qTG)wqV2b1M9fOI3+<2 z0?AL;-@q+i-wZ0vkhDueb5}DcAd$600}MRWg{&SFupr|=nIB30HfTgPgVGAJdQc(& zsR!A^%rO1v25v#EW>DZEDUyIDv}RC(LN+vDdc%6qopK;YGw=z6>tAH~g6SL9bBl3G zK%0y$)BQJsmUXY^7LXK&n%RODF59N_Z{QY}6o&>Ucsmoak<;zL(xAc#WFuOzY@41B zmIlQpNE$5^wojiAk`^lg$@2+=x8WcezJ2=n4cy|KV$iT^nV!E1)G67>Ex;)XP0+2= z=Yzz|HgXF{ib5M;t>CnPNDAAh$8Y2omlREb*wTvT!|l`iH*$+}ih_h0_=H=h>u=^3 z_XO`XLJD(HkY1bxNZ7-ka2Bjb%ijrvT6gRZe-&??E(fq;WkkGAR7m5KD15u-@+{}*#^o* zNYX;kV!Lg6Jy;qPZAj80(DcRP{<)$05X7qPq-cAbz}>m7Po^eLQ*dX zayUr+^!Z!4#p~NaDH&NBoSFE9+d=jr8Mg}*FCcB8kVaMy?H9F!!VXzI%vm63AghPA zdD}thhM8fy={9b``gTw%M^YpJjhA*%YC<*?hFHLtrW4r^D6_GVSOOg(duaGT(78f08>6HHsD7g59JJ8bUt`*Y* zwsMPE^4CD+K^{Uj4^$j7@CkRI)!_VFpz5dBZ|4^G>_AJ${Lnz{068DoI8b5)83*zx zl6Ux_&5w@h_rb=2;tolg4;uU(puCP`+-^{s1Q`d4J7o3HCU3`d`yC+Hfnp6=8k(d# zKq(K|IA|r?0g5$b_0SG%$MpF-xWy$qL0(6a=G_Al;1lkgetrkHczq`*N|2?YHE}1% zvByZaqc7qZzNCPO*A!*=& zwr@M9_wVEu_v{445t1}7w20~iWkh8AL1`9b94Lt)spo+XJa$fhzZ2wrP#hskLo0_) zkn@p@+XG6WAmczO3`spVv~%1Eay_zoP%#5i4~jG-^*qpF+fGmxWM-J&x{F)TvlEog zkQ8x4dwHE8KOh?lO1BJr!d;-+A6fkoNR)O>zrTxHTnoIz3t1Z4E>Kh;sox87HK>c$ zg_eOhK*a~hpy}s#bBjxMq2(72P?7>m|KH6mUf+e5U$~$#+yx4HWa~iQ18GCcFI=Et z0f~cR0a-oB+YEfd-5_To1t%v+KS&%D3(O4G@bJlaj9-lP$FxA*$r80Db)=!8cBX1$W0)t zAWIXOx*-!phTUk%a~~+zgVce-2+64&pcDrZpMHNYw|IRwh>Il62~8>B^oeXOC?zoP z34`}VA*ts8WlE4ZC`6FegHi%W9F$9t)U!iVTn{LQK?8LAxCNbh&tyZd%49F_klbEk_VM!Nb;PZA^;>l{r^60ai*RP;1wm)r|sny;MxyO z8$FOYSE(M59Y}WW2YCRb_rdgrz1-rAFF*?dnR+0HPaE}uQVtf?y`We^5{I4l(F>W3 zlI3!@jRS!&maDZFPNEI!y@qoMoG7pqdk@WF^ z@&icx#&m~+++yG>%npL|gAzHiI#6l=sYA=4JfK=0B>rRi0+4<+1~4t9h8Dcspm1T} z6ITv3@NS-iWF?(puB)A4vH+0IiN^jX3&Ng)SKqPrFP%JR;iEDyF8(AD0s+yoAjw}xH3`o7h^bbe5 z#hlQ$rHMg3tqG!$^?^JE(g#YC$l?>G3moMZs}}>s21p*Q#1I2{4kV6NB8Y)v2_%kI z0*HasG4P3Nf&7JR57hr!pd5`X4oamAe9Yon2GbuL;}(&H90U4MuUEnyk zn3onP&mqf$0th4zDmswGp~*=Ll!uVTLFR+hADCWnoLfvv8>Ei~Uc{_!gg8iCd&Bkx z$GQ0!LEDNpoZxn2TJmQ4j}zQxTqz&}85kJ%y_jxsl3R~+Imo9B3{1r?}0yw85<}26pWy z(>I*rwqw$MGW`RH))AO)aGKkW$v?h~|Qdit{LdgtAjBVIq=jCHV^3sg=_k*YGJ!cTC_Dovtv8Pi4BoB0l!%ua@&I xV@=M Date: Mon, 16 Mar 2020 12:18:41 +1100 Subject: [PATCH 33/45] spapr/rtas: Reserve space for RTAS blob and log At the moment SLOF reserves space for RTAS and instantiates the RTAS blob which is 20 bytes binary blob calling an hypercall. The rest of the RTAS area is a log which SLOF has no idea about but QEMU does. This moves RTAS sizing to QEMU and this overrides the size from SLOF. The only remaining problem is that SLOF copies the number of bytes it reserved (2KB for now) so QEMU needs to reserve at least this much; SLOF will be fixed separately to check that rtas-size from QEMU is enough for those 20 bytes for the H_RTAS hcall. Signed-off-by: Alexey Kardashevskiy Message-Id: <20200316011841.99970-1-aik@ozlabs.ru> Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr.c | 1 + include/hw/ppc/spapr.h | 1 + 2 files changed, 2 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 1038420c4a..2f9a65b414 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -967,6 +967,7 @@ static void spapr_dt_rtas(SpaprMachineState *spapr, void *fdt) _FDT(fdt_setprop(fdt, rtas, "ibm,max-associativity-domains", maxdomains, sizeof(maxdomains))); + _FDT(fdt_setprop_cell(fdt, rtas, "rtas-size", RTAS_SIZE)); _FDT(fdt_setprop_cell(fdt, rtas, "rtas-error-log-max", RTAS_ERROR_LOG_MAX)); _FDT(fdt_setprop_cell(fdt, rtas, "rtas-event-scan-rate", diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 2015e37ac5..35b489a549 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -736,6 +736,7 @@ void spapr_load_rtas(SpaprMachineState *spapr, void *fdt, hwaddr addr); #define SPAPR_IS_PCI_LIOBN(liobn) (!!((liobn) & 0x80000000)) #define SPAPR_PCI_DMA_WINDOW_NUM(liobn) ((liobn) & 0xff) +#define RTAS_SIZE 2048 #define RTAS_ERROR_LOG_MAX 2048 /* Offset from rtas-base where error log is placed */ From fa523f0dd3c5abae3f57cc4d174e2a2c61204518 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 22 Jan 2020 15:46:35 +1100 Subject: [PATCH 34/45] spapr: Move creation of ibm,dynamic-reconfiguration-memory dt node Currently this node with information about hotpluggable memory is created from spapr_dt_cas_updates(). But that's just a hangover from when we created it only as a diff to the device tree at CAS time. Now that we fully rebuild the DT as CAS time, it makes more sense to create this along with the rest of the memory information in the device tree. So, move it to spapr_populate_memory(). The patch is huge, but it's nearly all just code motion. Signed-off-by: David Gibson Reviewed-by: Greg Kurz --- hw/ppc/spapr.c | 512 +++++++++++++++++++++++++------------------------ 1 file changed, 257 insertions(+), 255 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 2f9a65b414..5e938833f3 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -341,257 +341,6 @@ static int spapr_populate_memory_node(void *fdt, int nodeid, hwaddr start, return off; } -static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt) -{ - MachineState *machine = MACHINE(spapr); - hwaddr mem_start, node_size; - int i, nb_nodes = machine->numa_state->num_nodes; - NodeInfo *nodes = machine->numa_state->nodes; - - for (i = 0, mem_start = 0; i < nb_nodes; ++i) { - if (!nodes[i].node_mem) { - continue; - } - if (mem_start >= machine->ram_size) { - node_size = 0; - } else { - node_size = nodes[i].node_mem; - if (node_size > machine->ram_size - mem_start) { - node_size = machine->ram_size - mem_start; - } - } - if (!mem_start) { - /* spapr_machine_init() checks for rma_size <= node0_size - * already */ - spapr_populate_memory_node(fdt, i, 0, spapr->rma_size); - mem_start += spapr->rma_size; - node_size -= spapr->rma_size; - } - for ( ; node_size; ) { - hwaddr sizetmp = pow2floor(node_size); - - /* mem_start != 0 here */ - if (ctzl(mem_start) < ctzl(sizetmp)) { - sizetmp = 1ULL << ctzl(mem_start); - } - - spapr_populate_memory_node(fdt, i, mem_start, sizetmp); - node_size -= sizetmp; - mem_start += sizetmp; - } - } - - return 0; -} - -static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset, - SpaprMachineState *spapr) -{ - MachineState *ms = MACHINE(spapr); - PowerPCCPU *cpu = POWERPC_CPU(cs); - CPUPPCState *env = &cpu->env; - PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cs); - int index = spapr_get_vcpu_id(cpu); - uint32_t segs[] = {cpu_to_be32(28), cpu_to_be32(40), - 0xffffffff, 0xffffffff}; - uint32_t tbfreq = kvm_enabled() ? kvmppc_get_tbfreq() - : SPAPR_TIMEBASE_FREQ; - uint32_t cpufreq = kvm_enabled() ? kvmppc_get_clockfreq() : 1000000000; - uint32_t page_sizes_prop[64]; - size_t page_sizes_prop_size; - unsigned int smp_threads = ms->smp.threads; - uint32_t vcpus_per_socket = smp_threads * ms->smp.cores; - uint32_t pft_size_prop[] = {0, cpu_to_be32(spapr->htab_shift)}; - int compat_smt = MIN(smp_threads, ppc_compat_max_vthreads(cpu)); - SpaprDrc *drc; - int drc_index; - uint32_t radix_AP_encodings[PPC_PAGE_SIZES_MAX_SZ]; - int i; - - drc = spapr_drc_by_id(TYPE_SPAPR_DRC_CPU, index); - if (drc) { - drc_index = spapr_drc_index(drc); - _FDT((fdt_setprop_cell(fdt, offset, "ibm,my-drc-index", drc_index))); - } - - _FDT((fdt_setprop_cell(fdt, offset, "reg", index))); - _FDT((fdt_setprop_string(fdt, offset, "device_type", "cpu"))); - - _FDT((fdt_setprop_cell(fdt, offset, "cpu-version", env->spr[SPR_PVR]))); - _FDT((fdt_setprop_cell(fdt, offset, "d-cache-block-size", - env->dcache_line_size))); - _FDT((fdt_setprop_cell(fdt, offset, "d-cache-line-size", - env->dcache_line_size))); - _FDT((fdt_setprop_cell(fdt, offset, "i-cache-block-size", - env->icache_line_size))); - _FDT((fdt_setprop_cell(fdt, offset, "i-cache-line-size", - env->icache_line_size))); - - if (pcc->l1_dcache_size) { - _FDT((fdt_setprop_cell(fdt, offset, "d-cache-size", - pcc->l1_dcache_size))); - } else { - warn_report("Unknown L1 dcache size for cpu"); - } - if (pcc->l1_icache_size) { - _FDT((fdt_setprop_cell(fdt, offset, "i-cache-size", - pcc->l1_icache_size))); - } else { - warn_report("Unknown L1 icache size for cpu"); - } - - _FDT((fdt_setprop_cell(fdt, offset, "timebase-frequency", tbfreq))); - _FDT((fdt_setprop_cell(fdt, offset, "clock-frequency", cpufreq))); - _FDT((fdt_setprop_cell(fdt, offset, "slb-size", cpu->hash64_opts->slb_size))); - _FDT((fdt_setprop_cell(fdt, offset, "ibm,slb-size", cpu->hash64_opts->slb_size))); - _FDT((fdt_setprop_string(fdt, offset, "status", "okay"))); - _FDT((fdt_setprop(fdt, offset, "64-bit", NULL, 0))); - - if (env->spr_cb[SPR_PURR].oea_read) { - _FDT((fdt_setprop_cell(fdt, offset, "ibm,purr", 1))); - } - if (env->spr_cb[SPR_SPURR].oea_read) { - _FDT((fdt_setprop_cell(fdt, offset, "ibm,spurr", 1))); - } - - if (ppc_hash64_has(cpu, PPC_HASH64_1TSEG)) { - _FDT((fdt_setprop(fdt, offset, "ibm,processor-segment-sizes", - segs, sizeof(segs)))); - } - - /* Advertise VSX (vector extensions) if available - * 1 == VMX / Altivec available - * 2 == VSX available - * - * Only CPUs for which we create core types in spapr_cpu_core.c - * are possible, and all of those have VMX */ - if (spapr_get_cap(spapr, SPAPR_CAP_VSX) != 0) { - _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 2))); - } else { - _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 1))); - } - - /* Advertise DFP (Decimal Floating Point) if available - * 0 / no property == no DFP - * 1 == DFP available */ - if (spapr_get_cap(spapr, SPAPR_CAP_DFP) != 0) { - _FDT((fdt_setprop_cell(fdt, offset, "ibm,dfp", 1))); - } - - page_sizes_prop_size = ppc_create_page_sizes_prop(cpu, page_sizes_prop, - sizeof(page_sizes_prop)); - if (page_sizes_prop_size) { - _FDT((fdt_setprop(fdt, offset, "ibm,segment-page-sizes", - page_sizes_prop, page_sizes_prop_size))); - } - - spapr_populate_pa_features(spapr, cpu, fdt, offset); - - _FDT((fdt_setprop_cell(fdt, offset, "ibm,chip-id", - cs->cpu_index / vcpus_per_socket))); - - _FDT((fdt_setprop(fdt, offset, "ibm,pft-size", - pft_size_prop, sizeof(pft_size_prop)))); - - if (ms->numa_state->num_nodes > 1) { - _FDT(spapr_fixup_cpu_numa_dt(fdt, offset, cpu)); - } - - _FDT(spapr_fixup_cpu_smt_dt(fdt, offset, cpu, compat_smt)); - - if (pcc->radix_page_info) { - for (i = 0; i < pcc->radix_page_info->count; i++) { - radix_AP_encodings[i] = - cpu_to_be32(pcc->radix_page_info->entries[i]); - } - _FDT((fdt_setprop(fdt, offset, "ibm,processor-radix-AP-encodings", - radix_AP_encodings, - pcc->radix_page_info->count * - sizeof(radix_AP_encodings[0])))); - } - - /* - * We set this property to let the guest know that it can use the large - * decrementer and its width in bits. - */ - if (spapr_get_cap(spapr, SPAPR_CAP_LARGE_DECREMENTER) != SPAPR_CAP_OFF) - _FDT((fdt_setprop_u32(fdt, offset, "ibm,dec-bits", - pcc->lrg_decr_bits))); -} - -static void spapr_populate_cpus_dt_node(void *fdt, SpaprMachineState *spapr) -{ - CPUState **rev; - CPUState *cs; - int n_cpus; - int cpus_offset; - char *nodename; - int i; - - cpus_offset = fdt_add_subnode(fdt, 0, "cpus"); - _FDT(cpus_offset); - _FDT((fdt_setprop_cell(fdt, cpus_offset, "#address-cells", 0x1))); - _FDT((fdt_setprop_cell(fdt, cpus_offset, "#size-cells", 0x0))); - - /* - * We walk the CPUs in reverse order to ensure that CPU DT nodes - * created by fdt_add_subnode() end up in the right order in FDT - * for the guest kernel the enumerate the CPUs correctly. - * - * The CPU list cannot be traversed in reverse order, so we need - * to do extra work. - */ - n_cpus = 0; - rev = NULL; - CPU_FOREACH(cs) { - rev = g_renew(CPUState *, rev, n_cpus + 1); - rev[n_cpus++] = cs; - } - - for (i = n_cpus - 1; i >= 0; i--) { - CPUState *cs = rev[i]; - PowerPCCPU *cpu = POWERPC_CPU(cs); - int index = spapr_get_vcpu_id(cpu); - DeviceClass *dc = DEVICE_GET_CLASS(cs); - int offset; - - if (!spapr_is_thread0_in_vcore(spapr, cpu)) { - continue; - } - - nodename = g_strdup_printf("%s@%x", dc->fw_name, index); - offset = fdt_add_subnode(fdt, cpus_offset, nodename); - g_free(nodename); - _FDT(offset); - spapr_populate_cpu_dt(cs, fdt, offset, spapr); - } - - g_free(rev); -} - -static int spapr_rng_populate_dt(void *fdt) -{ - int node; - int ret; - - node = qemu_fdt_add_subnode(fdt, "/ibm,platform-facilities"); - if (node <= 0) { - return -1; - } - ret = fdt_setprop_string(fdt, node, "device_type", - "ibm,platform-facilities"); - ret |= fdt_setprop_cell(fdt, node, "#address-cells", 0x1); - ret |= fdt_setprop_cell(fdt, node, "#size-cells", 0x0); - - node = fdt_add_subnode(fdt, node, "ibm,random-v1"); - if (node <= 0) { - return -1; - } - ret |= fdt_setprop_string(fdt, node, "compatible", "ibm,random"); - - return ret ? -1 : 0; -} - static uint32_t spapr_pc_dimm_node(MemoryDeviceInfoList *list, ram_addr_t addr) { MemoryDeviceInfoList *info; @@ -877,14 +626,51 @@ static int spapr_populate_drconf_memory(SpaprMachineState *spapr, void *fdt) return ret; } -static int spapr_dt_cas_updates(SpaprMachineState *spapr, void *fdt, - SpaprOptionVector *ov5_updates) +static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt) { + MachineState *machine = MACHINE(spapr); SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); - int ret = 0, offset; + hwaddr mem_start, node_size; + int i, nb_nodes = machine->numa_state->num_nodes; + NodeInfo *nodes = machine->numa_state->nodes; + + for (i = 0, mem_start = 0; i < nb_nodes; ++i) { + if (!nodes[i].node_mem) { + continue; + } + if (mem_start >= machine->ram_size) { + node_size = 0; + } else { + node_size = nodes[i].node_mem; + if (node_size > machine->ram_size - mem_start) { + node_size = machine->ram_size - mem_start; + } + } + if (!mem_start) { + /* spapr_machine_init() checks for rma_size <= node0_size + * already */ + spapr_populate_memory_node(fdt, i, 0, spapr->rma_size); + mem_start += spapr->rma_size; + node_size -= spapr->rma_size; + } + for ( ; node_size; ) { + hwaddr sizetmp = pow2floor(node_size); + + /* mem_start != 0 here */ + if (ctzl(mem_start) < ctzl(sizetmp)) { + sizetmp = 1ULL << ctzl(mem_start); + } + + spapr_populate_memory_node(fdt, i, mem_start, sizetmp); + node_size -= sizetmp; + mem_start += sizetmp; + } + } /* Generate ibm,dynamic-reconfiguration-memory node if required */ - if (spapr_ovec_test(ov5_updates, OV5_DRCONF_MEMORY)) { + if (spapr_ovec_test(spapr->ov5_cas, OV5_DRCONF_MEMORY)) { + int ret; + g_assert(smc->dr_lmb_enabled); ret = spapr_populate_drconf_memory(spapr, fdt); if (ret) { @@ -892,6 +678,222 @@ static int spapr_dt_cas_updates(SpaprMachineState *spapr, void *fdt, } } + return 0; +} + +static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset, + SpaprMachineState *spapr) +{ + MachineState *ms = MACHINE(spapr); + PowerPCCPU *cpu = POWERPC_CPU(cs); + CPUPPCState *env = &cpu->env; + PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cs); + int index = spapr_get_vcpu_id(cpu); + uint32_t segs[] = {cpu_to_be32(28), cpu_to_be32(40), + 0xffffffff, 0xffffffff}; + uint32_t tbfreq = kvm_enabled() ? kvmppc_get_tbfreq() + : SPAPR_TIMEBASE_FREQ; + uint32_t cpufreq = kvm_enabled() ? kvmppc_get_clockfreq() : 1000000000; + uint32_t page_sizes_prop[64]; + size_t page_sizes_prop_size; + unsigned int smp_threads = ms->smp.threads; + uint32_t vcpus_per_socket = smp_threads * ms->smp.cores; + uint32_t pft_size_prop[] = {0, cpu_to_be32(spapr->htab_shift)}; + int compat_smt = MIN(smp_threads, ppc_compat_max_vthreads(cpu)); + SpaprDrc *drc; + int drc_index; + uint32_t radix_AP_encodings[PPC_PAGE_SIZES_MAX_SZ]; + int i; + + drc = spapr_drc_by_id(TYPE_SPAPR_DRC_CPU, index); + if (drc) { + drc_index = spapr_drc_index(drc); + _FDT((fdt_setprop_cell(fdt, offset, "ibm,my-drc-index", drc_index))); + } + + _FDT((fdt_setprop_cell(fdt, offset, "reg", index))); + _FDT((fdt_setprop_string(fdt, offset, "device_type", "cpu"))); + + _FDT((fdt_setprop_cell(fdt, offset, "cpu-version", env->spr[SPR_PVR]))); + _FDT((fdt_setprop_cell(fdt, offset, "d-cache-block-size", + env->dcache_line_size))); + _FDT((fdt_setprop_cell(fdt, offset, "d-cache-line-size", + env->dcache_line_size))); + _FDT((fdt_setprop_cell(fdt, offset, "i-cache-block-size", + env->icache_line_size))); + _FDT((fdt_setprop_cell(fdt, offset, "i-cache-line-size", + env->icache_line_size))); + + if (pcc->l1_dcache_size) { + _FDT((fdt_setprop_cell(fdt, offset, "d-cache-size", + pcc->l1_dcache_size))); + } else { + warn_report("Unknown L1 dcache size for cpu"); + } + if (pcc->l1_icache_size) { + _FDT((fdt_setprop_cell(fdt, offset, "i-cache-size", + pcc->l1_icache_size))); + } else { + warn_report("Unknown L1 icache size for cpu"); + } + + _FDT((fdt_setprop_cell(fdt, offset, "timebase-frequency", tbfreq))); + _FDT((fdt_setprop_cell(fdt, offset, "clock-frequency", cpufreq))); + _FDT((fdt_setprop_cell(fdt, offset, "slb-size", cpu->hash64_opts->slb_size))); + _FDT((fdt_setprop_cell(fdt, offset, "ibm,slb-size", cpu->hash64_opts->slb_size))); + _FDT((fdt_setprop_string(fdt, offset, "status", "okay"))); + _FDT((fdt_setprop(fdt, offset, "64-bit", NULL, 0))); + + if (env->spr_cb[SPR_PURR].oea_read) { + _FDT((fdt_setprop_cell(fdt, offset, "ibm,purr", 1))); + } + if (env->spr_cb[SPR_SPURR].oea_read) { + _FDT((fdt_setprop_cell(fdt, offset, "ibm,spurr", 1))); + } + + if (ppc_hash64_has(cpu, PPC_HASH64_1TSEG)) { + _FDT((fdt_setprop(fdt, offset, "ibm,processor-segment-sizes", + segs, sizeof(segs)))); + } + + /* Advertise VSX (vector extensions) if available + * 1 == VMX / Altivec available + * 2 == VSX available + * + * Only CPUs for which we create core types in spapr_cpu_core.c + * are possible, and all of those have VMX */ + if (spapr_get_cap(spapr, SPAPR_CAP_VSX) != 0) { + _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 2))); + } else { + _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 1))); + } + + /* Advertise DFP (Decimal Floating Point) if available + * 0 / no property == no DFP + * 1 == DFP available */ + if (spapr_get_cap(spapr, SPAPR_CAP_DFP) != 0) { + _FDT((fdt_setprop_cell(fdt, offset, "ibm,dfp", 1))); + } + + page_sizes_prop_size = ppc_create_page_sizes_prop(cpu, page_sizes_prop, + sizeof(page_sizes_prop)); + if (page_sizes_prop_size) { + _FDT((fdt_setprop(fdt, offset, "ibm,segment-page-sizes", + page_sizes_prop, page_sizes_prop_size))); + } + + spapr_populate_pa_features(spapr, cpu, fdt, offset); + + _FDT((fdt_setprop_cell(fdt, offset, "ibm,chip-id", + cs->cpu_index / vcpus_per_socket))); + + _FDT((fdt_setprop(fdt, offset, "ibm,pft-size", + pft_size_prop, sizeof(pft_size_prop)))); + + if (ms->numa_state->num_nodes > 1) { + _FDT(spapr_fixup_cpu_numa_dt(fdt, offset, cpu)); + } + + _FDT(spapr_fixup_cpu_smt_dt(fdt, offset, cpu, compat_smt)); + + if (pcc->radix_page_info) { + for (i = 0; i < pcc->radix_page_info->count; i++) { + radix_AP_encodings[i] = + cpu_to_be32(pcc->radix_page_info->entries[i]); + } + _FDT((fdt_setprop(fdt, offset, "ibm,processor-radix-AP-encodings", + radix_AP_encodings, + pcc->radix_page_info->count * + sizeof(radix_AP_encodings[0])))); + } + + /* + * We set this property to let the guest know that it can use the large + * decrementer and its width in bits. + */ + if (spapr_get_cap(spapr, SPAPR_CAP_LARGE_DECREMENTER) != SPAPR_CAP_OFF) + _FDT((fdt_setprop_u32(fdt, offset, "ibm,dec-bits", + pcc->lrg_decr_bits))); +} + +static void spapr_populate_cpus_dt_node(void *fdt, SpaprMachineState *spapr) +{ + CPUState **rev; + CPUState *cs; + int n_cpus; + int cpus_offset; + char *nodename; + int i; + + cpus_offset = fdt_add_subnode(fdt, 0, "cpus"); + _FDT(cpus_offset); + _FDT((fdt_setprop_cell(fdt, cpus_offset, "#address-cells", 0x1))); + _FDT((fdt_setprop_cell(fdt, cpus_offset, "#size-cells", 0x0))); + + /* + * We walk the CPUs in reverse order to ensure that CPU DT nodes + * created by fdt_add_subnode() end up in the right order in FDT + * for the guest kernel the enumerate the CPUs correctly. + * + * The CPU list cannot be traversed in reverse order, so we need + * to do extra work. + */ + n_cpus = 0; + rev = NULL; + CPU_FOREACH(cs) { + rev = g_renew(CPUState *, rev, n_cpus + 1); + rev[n_cpus++] = cs; + } + + for (i = n_cpus - 1; i >= 0; i--) { + CPUState *cs = rev[i]; + PowerPCCPU *cpu = POWERPC_CPU(cs); + int index = spapr_get_vcpu_id(cpu); + DeviceClass *dc = DEVICE_GET_CLASS(cs); + int offset; + + if (!spapr_is_thread0_in_vcore(spapr, cpu)) { + continue; + } + + nodename = g_strdup_printf("%s@%x", dc->fw_name, index); + offset = fdt_add_subnode(fdt, cpus_offset, nodename); + g_free(nodename); + _FDT(offset); + spapr_populate_cpu_dt(cs, fdt, offset, spapr); + } + + g_free(rev); +} + +static int spapr_rng_populate_dt(void *fdt) +{ + int node; + int ret; + + node = qemu_fdt_add_subnode(fdt, "/ibm,platform-facilities"); + if (node <= 0) { + return -1; + } + ret = fdt_setprop_string(fdt, node, "device_type", + "ibm,platform-facilities"); + ret |= fdt_setprop_cell(fdt, node, "#address-cells", 0x1); + ret |= fdt_setprop_cell(fdt, node, "#size-cells", 0x0); + + node = fdt_add_subnode(fdt, node, "ibm,random-v1"); + if (node <= 0) { + return -1; + } + ret |= fdt_setprop_string(fdt, node, "compatible", "ibm,random"); + + return ret ? -1 : 0; +} + +static int spapr_dt_cas_updates(SpaprMachineState *spapr, void *fdt, + SpaprOptionVector *ov5_updates) +{ + int offset; + offset = fdt_path_offset(fdt, "/chosen"); if (offset < 0) { offset = fdt_add_subnode(fdt, 0, "chosen"); From 1e0e11085a0d3e47cbbad8944f70b371d22b987d Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 22 Jan 2020 15:50:42 +1100 Subject: [PATCH 35/45] spapr: Move creation of ibm,architecture-vec-5 property This is currently called from spapr_dt_cas_updates() which is a hang over from when we created this only as a diff to the DT at CAS time. Now that we fully rebuild the DT at CAS time, just create it along with the rest of the properties in /chosen. Signed-off-by: David Gibson Reviewed-by: Greg Kurz --- hw/ppc/spapr.c | 150 ++++++++++++++++++++++--------------------------- 1 file changed, 68 insertions(+), 82 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 5e938833f3..aff8c87fad 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -889,22 +889,6 @@ static int spapr_rng_populate_dt(void *fdt) return ret ? -1 : 0; } -static int spapr_dt_cas_updates(SpaprMachineState *spapr, void *fdt, - SpaprOptionVector *ov5_updates) -{ - int offset; - - offset = fdt_path_offset(fdt, "/chosen"); - if (offset < 0) { - offset = fdt_add_subnode(fdt, 0, "chosen"); - if (offset < 0) { - return offset; - } - } - return spapr_ovec_populate_dt(fdt, offset, spapr->ov5_cas, - "ibm,architecture-vec-5"); -} - static void spapr_dt_rtas(SpaprMachineState *spapr, void *fdt) { MachineState *ms = MACHINE(spapr); @@ -1043,81 +1027,92 @@ static void spapr_dt_ov5_platform_support(SpaprMachineState *spapr, void *fdt, val, sizeof(val))); } -static void spapr_dt_chosen(SpaprMachineState *spapr, void *fdt) +static void spapr_dt_chosen(SpaprMachineState *spapr, void *fdt, bool reset) { MachineState *machine = MACHINE(spapr); SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(machine); int chosen; - const char *boot_device = machine->boot_order; - char *stdout_path = spapr_vio_stdout_path(spapr->vio_bus); - size_t cb = 0; - char *bootlist = get_boot_devices_list(&cb); _FDT(chosen = fdt_add_subnode(fdt, 0, "chosen")); - if (machine->kernel_cmdline && machine->kernel_cmdline[0]) { - _FDT(fdt_setprop_string(fdt, chosen, "bootargs", - machine->kernel_cmdline)); - } - if (spapr->initrd_size) { - _FDT(fdt_setprop_cell(fdt, chosen, "linux,initrd-start", - spapr->initrd_base)); - _FDT(fdt_setprop_cell(fdt, chosen, "linux,initrd-end", - spapr->initrd_base + spapr->initrd_size)); - } + if (reset) { + const char *boot_device = machine->boot_order; + char *stdout_path = spapr_vio_stdout_path(spapr->vio_bus); + size_t cb = 0; + char *bootlist = get_boot_devices_list(&cb); - if (spapr->kernel_size) { - uint64_t kprop[2] = { cpu_to_be64(spapr->kernel_addr), - cpu_to_be64(spapr->kernel_size) }; - - _FDT(fdt_setprop(fdt, chosen, "qemu,boot-kernel", - &kprop, sizeof(kprop))); - if (spapr->kernel_le) { - _FDT(fdt_setprop(fdt, chosen, "qemu,boot-kernel-le", NULL, 0)); + if (machine->kernel_cmdline && machine->kernel_cmdline[0]) { + _FDT(fdt_setprop_string(fdt, chosen, "bootargs", + machine->kernel_cmdline)); } - } - if (boot_menu) { - _FDT((fdt_setprop_cell(fdt, chosen, "qemu,boot-menu", boot_menu))); - } - _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-width", graphic_width)); - _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-height", graphic_height)); - _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-depth", graphic_depth)); - if (cb && bootlist) { - int i; + if (spapr->initrd_size) { + _FDT(fdt_setprop_cell(fdt, chosen, "linux,initrd-start", + spapr->initrd_base)); + _FDT(fdt_setprop_cell(fdt, chosen, "linux,initrd-end", + spapr->initrd_base + spapr->initrd_size)); + } - for (i = 0; i < cb; i++) { - if (bootlist[i] == '\n') { - bootlist[i] = ' '; + if (spapr->kernel_size) { + uint64_t kprop[2] = { cpu_to_be64(spapr->kernel_addr), + cpu_to_be64(spapr->kernel_size) }; + + _FDT(fdt_setprop(fdt, chosen, "qemu,boot-kernel", + &kprop, sizeof(kprop))); + if (spapr->kernel_le) { + _FDT(fdt_setprop(fdt, chosen, "qemu,boot-kernel-le", NULL, 0)); } } - _FDT(fdt_setprop_string(fdt, chosen, "qemu,boot-list", bootlist)); - } + if (boot_menu) { + _FDT((fdt_setprop_cell(fdt, chosen, "qemu,boot-menu", boot_menu))); + } + _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-width", graphic_width)); + _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-height", graphic_height)); + _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-depth", graphic_depth)); - if (boot_device && strlen(boot_device)) { - _FDT(fdt_setprop_string(fdt, chosen, "qemu,boot-device", boot_device)); - } + if (cb && bootlist) { + int i; + + for (i = 0; i < cb; i++) { + if (bootlist[i] == '\n') { + bootlist[i] = ' '; + } + } + _FDT(fdt_setprop_string(fdt, chosen, "qemu,boot-list", bootlist)); + } + + if (boot_device && strlen(boot_device)) { + _FDT(fdt_setprop_string(fdt, chosen, "qemu,boot-device", boot_device)); + } + + if (!spapr->has_graphics && stdout_path) { + /* + * "linux,stdout-path" and "stdout" properties are + * deprecated by linux kernel. New platforms should only + * use the "stdout-path" property. Set the new property + * and continue using older property to remain compatible + * with the existing firmware. + */ + _FDT(fdt_setprop_string(fdt, chosen, "linux,stdout-path", stdout_path)); + _FDT(fdt_setprop_string(fdt, chosen, "stdout-path", stdout_path)); + } - if (!spapr->has_graphics && stdout_path) { /* - * "linux,stdout-path" and "stdout" properties are deprecated by linux - * kernel. New platforms should only use the "stdout-path" property. Set - * the new property and continue using older property to remain - * compatible with the existing firmware. + * We can deal with BAR reallocation just fine, advertise it + * to the guest */ - _FDT(fdt_setprop_string(fdt, chosen, "linux,stdout-path", stdout_path)); - _FDT(fdt_setprop_string(fdt, chosen, "stdout-path", stdout_path)); + if (smc->linux_pci_probe) { + _FDT(fdt_setprop_cell(fdt, chosen, "linux,pci-probe-only", 0)); + } + + spapr_dt_ov5_platform_support(spapr, fdt, chosen); + + g_free(stdout_path); + g_free(bootlist); } - /* We can deal with BAR reallocation just fine, advertise it to the guest */ - if (smc->linux_pci_probe) { - _FDT(fdt_setprop_cell(fdt, chosen, "linux,pci-probe-only", 0)); - } - - spapr_dt_ov5_platform_support(spapr, fdt, chosen); - - g_free(stdout_path); - g_free(bootlist); + _FDT(spapr_ovec_populate_dt(fdt, chosen, spapr->ov5_cas, + "ibm,architecture-vec-5")); } static void spapr_dt_hypervisor(SpaprMachineState *spapr, void *fdt) @@ -1243,9 +1238,7 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space) spapr_dt_rtas(spapr, fdt); /* /chosen */ - if (reset) { - spapr_dt_chosen(spapr, fdt); - } + spapr_dt_chosen(spapr, fdt, reset); /* /hypervisor */ if (kvm_enabled()) { @@ -1264,13 +1257,6 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space) } } - /* ibm,client-architecture-support updates */ - ret = spapr_dt_cas_updates(spapr, fdt, spapr->ov5_cas); - if (ret < 0) { - error_report("couldn't setup CAS properties fdt"); - exit(1); - } - if (smc->dr_phb_enabled) { ret = spapr_dt_drc(fdt, 0, NULL, SPAPR_DR_CONNECTOR_TYPE_PHB); if (ret < 0) { From 91335a5e1585afea9cf84ac955a59edbcd9700ab Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 22 Jan 2020 16:15:43 +1100 Subject: [PATCH 36/45] spapr: Rename DT functions to newer naming convention MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the spapr code we've been gradually moving towards a convention that functions which create pieces of the device tree are called spapr_dt_*(). This patch speeds that along by renaming most of the things that don't yet match that so that they do. For now we leave the *_dt_populate() functions which are actual methods used in the DRCClass::dt_populate method. While we're there we remove a few comments that don't really say anything useful. Signed-off-by: David Gibson Reviewed-by: Cédric Le Goater --- hw/ppc/spapr.c | 62 +++++++++++++++++-------------------- hw/ppc/spapr_ovec.c | 4 +-- include/hw/ppc/spapr_ovec.h | 4 +-- 3 files changed, 33 insertions(+), 37 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index aff8c87fad..878ed3f719 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -217,10 +217,9 @@ static int spapr_fixup_cpu_numa_dt(void *fdt, int offset, PowerPCCPU *cpu) sizeof(associativity)); } -/* Populate the "ibm,pa-features" property */ -static void spapr_populate_pa_features(SpaprMachineState *spapr, - PowerPCCPU *cpu, - void *fdt, int offset) +static void spapr_dt_pa_features(SpaprMachineState *spapr, + PowerPCCPU *cpu, + void *fdt, int offset) { uint8_t pa_features_206[] = { 6, 0, 0xf6, 0x1f, 0xc7, 0x00, 0x80, 0xc0 }; @@ -315,8 +314,8 @@ static void add_str(GString *s, const gchar *s1) g_string_append_len(s, s1, strlen(s1) + 1); } -static int spapr_populate_memory_node(void *fdt, int nodeid, hwaddr start, - hwaddr size) +static int spapr_dt_memory_node(void *fdt, int nodeid, hwaddr start, + hwaddr size) { uint32_t associativity[] = { cpu_to_be32(0x4), /* length */ @@ -391,9 +390,8 @@ spapr_get_drconf_cell(uint32_t seq_lmbs, uint64_t base_addr, return elem; } -/* ibm,dynamic-memory-v2 */ -static int spapr_populate_drmem_v2(SpaprMachineState *spapr, void *fdt, - int offset, MemoryDeviceInfoList *dimms) +static int spapr_dt_dynamic_memory_v2(SpaprMachineState *spapr, void *fdt, + int offset, MemoryDeviceInfoList *dimms) { MachineState *machine = MACHINE(spapr); uint8_t *int_buf, *cur_index; @@ -484,8 +482,7 @@ static int spapr_populate_drmem_v2(SpaprMachineState *spapr, void *fdt, return 0; } -/* ibm,dynamic-memory */ -static int spapr_populate_drmem_v1(SpaprMachineState *spapr, void *fdt, +static int spapr_dt_dynamic_memory(SpaprMachineState *spapr, void *fdt, int offset, MemoryDeviceInfoList *dimms) { MachineState *machine = MACHINE(spapr); @@ -554,7 +551,8 @@ static int spapr_populate_drmem_v1(SpaprMachineState *spapr, void *fdt, * Refer to docs/specs/ppc-spapr-hotplug.txt for the documentation * of this device tree node. */ -static int spapr_populate_drconf_memory(SpaprMachineState *spapr, void *fdt) +static int spapr_dt_dynamic_reconfiguration_memory(SpaprMachineState *spapr, + void *fdt) { MachineState *machine = MACHINE(spapr); int nb_numa_nodes = machine->numa_state->num_nodes; @@ -593,9 +591,9 @@ static int spapr_populate_drconf_memory(SpaprMachineState *spapr, void *fdt) /* ibm,dynamic-memory or ibm,dynamic-memory-v2 */ dimms = qmp_memory_device_list(); if (spapr_ovec_test(spapr->ov5_cas, OV5_DRMEM_V2)) { - ret = spapr_populate_drmem_v2(spapr, fdt, offset, dimms); + ret = spapr_dt_dynamic_memory_v2(spapr, fdt, offset, dimms); } else { - ret = spapr_populate_drmem_v1(spapr, fdt, offset, dimms); + ret = spapr_dt_dynamic_memory(spapr, fdt, offset, dimms); } qapi_free_MemoryDeviceInfoList(dimms); @@ -626,7 +624,7 @@ static int spapr_populate_drconf_memory(SpaprMachineState *spapr, void *fdt) return ret; } -static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt) +static int spapr_dt_memory(SpaprMachineState *spapr, void *fdt) { MachineState *machine = MACHINE(spapr); SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); @@ -649,7 +647,7 @@ static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt) if (!mem_start) { /* spapr_machine_init() checks for rma_size <= node0_size * already */ - spapr_populate_memory_node(fdt, i, 0, spapr->rma_size); + spapr_dt_memory_node(fdt, i, 0, spapr->rma_size); mem_start += spapr->rma_size; node_size -= spapr->rma_size; } @@ -661,7 +659,7 @@ static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt) sizetmp = 1ULL << ctzl(mem_start); } - spapr_populate_memory_node(fdt, i, mem_start, sizetmp); + spapr_dt_memory_node(fdt, i, mem_start, sizetmp); node_size -= sizetmp; mem_start += sizetmp; } @@ -672,7 +670,7 @@ static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt) int ret; g_assert(smc->dr_lmb_enabled); - ret = spapr_populate_drconf_memory(spapr, fdt); + ret = spapr_dt_dynamic_reconfiguration_memory(spapr, fdt); if (ret) { return ret; } @@ -681,8 +679,8 @@ static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt) return 0; } -static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset, - SpaprMachineState *spapr) +static void spapr_dt_cpu(CPUState *cs, void *fdt, int offset, + SpaprMachineState *spapr) { MachineState *ms = MACHINE(spapr); PowerPCCPU *cpu = POWERPC_CPU(cs); @@ -782,7 +780,7 @@ static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset, page_sizes_prop, page_sizes_prop_size))); } - spapr_populate_pa_features(spapr, cpu, fdt, offset); + spapr_dt_pa_features(spapr, cpu, fdt, offset); _FDT((fdt_setprop_cell(fdt, offset, "ibm,chip-id", cs->cpu_index / vcpus_per_socket))); @@ -816,7 +814,7 @@ static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset, pcc->lrg_decr_bits))); } -static void spapr_populate_cpus_dt_node(void *fdt, SpaprMachineState *spapr) +static void spapr_dt_cpus(void *fdt, SpaprMachineState *spapr) { CPUState **rev; CPUState *cs; @@ -860,13 +858,13 @@ static void spapr_populate_cpus_dt_node(void *fdt, SpaprMachineState *spapr) offset = fdt_add_subnode(fdt, cpus_offset, nodename); g_free(nodename); _FDT(offset); - spapr_populate_cpu_dt(cs, fdt, offset, spapr); + spapr_dt_cpu(cs, fdt, offset, spapr); } g_free(rev); } -static int spapr_rng_populate_dt(void *fdt) +static int spapr_dt_rng(void *fdt) { int node; int ret; @@ -1111,8 +1109,7 @@ static void spapr_dt_chosen(SpaprMachineState *spapr, void *fdt, bool reset) g_free(bootlist); } - _FDT(spapr_ovec_populate_dt(fdt, chosen, spapr->ov5_cas, - "ibm,architecture-vec-5")); + _FDT(spapr_dt_ovec(fdt, chosen, spapr->ov5_cas, "ibm,architecture-vec-5")); } static void spapr_dt_hypervisor(SpaprMachineState *spapr, void *fdt) @@ -1190,7 +1187,7 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space) /* /interrupt controller */ spapr_irq_dt(spapr, spapr_max_server_number(spapr), fdt, PHANDLE_INTC); - ret = spapr_populate_memory(spapr, fdt); + ret = spapr_dt_memory(spapr, fdt); if (ret < 0) { error_report("couldn't setup memory nodes in fdt"); exit(1); @@ -1200,7 +1197,7 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space) spapr_dt_vdevice(spapr->vio_bus, fdt); if (object_resolve_path_type("", TYPE_SPAPR_RNG, NULL)) { - ret = spapr_rng_populate_dt(fdt); + ret = spapr_dt_rng(fdt); if (ret < 0) { error_report("could not set up rng device in the fdt"); exit(1); @@ -1215,8 +1212,7 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space) } } - /* cpus */ - spapr_populate_cpus_dt_node(fdt, spapr); + spapr_dt_cpus(fdt, spapr); if (smc->dr_lmb_enabled) { _FDT(spapr_dt_drc(fdt, 0, NULL, SPAPR_DR_CONNECTOR_TYPE_LMB)); @@ -3408,8 +3404,8 @@ int spapr_lmb_dt_populate(SpaprDrc *drc, SpaprMachineState *spapr, addr = spapr_drc_index(drc) * SPAPR_MEMORY_BLOCK_SIZE; node = object_property_get_uint(OBJECT(drc->dev), PC_DIMM_NODE_PROP, &error_abort); - *fdt_start_offset = spapr_populate_memory_node(fdt, node, addr, - SPAPR_MEMORY_BLOCK_SIZE); + *fdt_start_offset = spapr_dt_memory_node(fdt, node, addr, + SPAPR_MEMORY_BLOCK_SIZE); return 0; } @@ -3810,7 +3806,7 @@ int spapr_core_dt_populate(SpaprDrc *drc, SpaprMachineState *spapr, offset = fdt_add_subnode(fdt, 0, nodename); g_free(nodename); - spapr_populate_cpu_dt(cs, fdt, offset, spapr); + spapr_dt_cpu(cs, fdt, offset, spapr); *fdt_start_offset = offset; return 0; diff --git a/hw/ppc/spapr_ovec.c b/hw/ppc/spapr_ovec.c index 0ff6d1aeae..dd003f1763 100644 --- a/hw/ppc/spapr_ovec.c +++ b/hw/ppc/spapr_ovec.c @@ -200,8 +200,8 @@ SpaprOptionVector *spapr_ovec_parse_vector(target_ulong table_addr, int vector) return ov; } -int spapr_ovec_populate_dt(void *fdt, int fdt_offset, - SpaprOptionVector *ov, const char *name) +int spapr_dt_ovec(void *fdt, int fdt_offset, + SpaprOptionVector *ov, const char *name) { uint8_t vec[OV_MAXBYTES + 1]; uint16_t vec_len; diff --git a/include/hw/ppc/spapr_ovec.h b/include/hw/ppc/spapr_ovec.h index 2bed517a2b..d4dee9e06a 100644 --- a/include/hw/ppc/spapr_ovec.h +++ b/include/hw/ppc/spapr_ovec.h @@ -72,8 +72,8 @@ void spapr_ovec_set(SpaprOptionVector *ov, long bitnr); void spapr_ovec_clear(SpaprOptionVector *ov, long bitnr); bool spapr_ovec_test(SpaprOptionVector *ov, long bitnr); SpaprOptionVector *spapr_ovec_parse_vector(target_ulong table_addr, int vector); -int spapr_ovec_populate_dt(void *fdt, int fdt_offset, - SpaprOptionVector *ov, const char *name); +int spapr_dt_ovec(void *fdt, int fdt_offset, + SpaprOptionVector *ov, const char *name); /* migration */ extern const VMStateDescription vmstate_spapr_ovec; From bae9dc4f28016e1721058dd71392433baf7d36a9 Mon Sep 17 00:00:00 2001 From: Nicholas Piggin Date: Tue, 17 Mar 2020 00:26:06 +1000 Subject: [PATCH 37/45] ppc/spapr: Fix FWNMI machine check failure handling ppc_cpu_do_system_reset delivers a system rreset interrupt to the guest, which is certainly not what is intended here. Panic the guest like other failure cases here do. Signed-off-by: Nicholas Piggin Message-Id: <20200316142613.121089-2-npiggin@gmail.com> Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr_events.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c index 2afd1844e4..11303258d4 100644 --- a/hw/ppc/spapr_events.c +++ b/hw/ppc/spapr_events.c @@ -785,7 +785,6 @@ static uint32_t spapr_mce_get_elog_type(PowerPCCPU *cpu, bool recovered, static void spapr_mce_dispatch_elog(PowerPCCPU *cpu, bool recovered) { SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); - CPUState *cs = CPU(cpu); uint64_t rtas_addr; CPUPPCState *env = &cpu->env; PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu); @@ -823,8 +822,7 @@ static void spapr_mce_dispatch_elog(PowerPCCPU *cpu, bool recovered) /* get rtas addr from fdt */ rtas_addr = spapr_get_rtas_addr(); if (!rtas_addr) { - /* Unable to fetch rtas_addr. Hence reset the guest */ - ppc_cpu_do_system_reset(cs); + qemu_system_guest_panicked(NULL); g_free(ext_elog); return; } From 8af7e1fe6fa4bdd3c4561c13a4bd4ee525e6f02f Mon Sep 17 00:00:00 2001 From: Nicholas Piggin Date: Tue, 17 Mar 2020 00:26:07 +1000 Subject: [PATCH 38/45] ppc/spapr: Change FWNMI names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The option is called "FWNMI", and it involves more than just machine checks, also machine checks can be delivered without the FWNMI option, so re-name various things to reflect that. Signed-off-by: Nicholas Piggin Message-Id: <20200316142613.121089-3-npiggin@gmail.com> Reviewed-by: Greg Kurz Reviewed-by: Cédric Le Goater Signed-off-by: David Gibson --- hw/ppc/spapr.c | 28 ++++++++++++++-------------- hw/ppc/spapr_caps.c | 14 +++++++------- hw/ppc/spapr_events.c | 14 +++++++------- hw/ppc/spapr_rtas.c | 17 +++++++++-------- include/hw/ppc/spapr.h | 27 +++++++++++++++++---------- tests/qtest/libqos/libqos-spapr.h | 2 +- 6 files changed, 55 insertions(+), 47 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 878ed3f719..822dea8118 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1688,11 +1688,11 @@ static void spapr_machine_reset(MachineState *machine) spapr->cas_reboot = false; - spapr->mc_status = -1; - spapr->guest_machine_check_addr = -1; + spapr->fwnmi_machine_check_addr = -1; + spapr->fwnmi_machine_check_interlock = -1; /* Signal all vCPUs waiting on this condition */ - qemu_cond_broadcast(&spapr->mc_delivery_cond); + qemu_cond_broadcast(&spapr->fwnmi_machine_check_interlock_cond); migrate_del_blocker(spapr->fwnmi_migration_blocker); } @@ -1981,7 +1981,7 @@ static bool spapr_fwnmi_needed(void *opaque) { SpaprMachineState *spapr = (SpaprMachineState *)opaque; - return spapr->guest_machine_check_addr != -1; + return spapr->fwnmi_machine_check_addr != -1; } static int spapr_fwnmi_pre_save(void *opaque) @@ -1992,7 +1992,7 @@ static int spapr_fwnmi_pre_save(void *opaque) * Check if machine check handling is in progress and print a * warning message. */ - if (spapr->mc_status != -1) { + if (spapr->fwnmi_machine_check_interlock != -1) { warn_report("A machine check is being handled during migration. The" "handler may run and log hardware error on the destination"); } @@ -2000,15 +2000,15 @@ static int spapr_fwnmi_pre_save(void *opaque) return 0; } -static const VMStateDescription vmstate_spapr_machine_check = { - .name = "spapr_machine_check", +static const VMStateDescription vmstate_spapr_fwnmi = { + .name = "spapr_fwnmi", .version_id = 1, .minimum_version_id = 1, .needed = spapr_fwnmi_needed, .pre_save = spapr_fwnmi_pre_save, .fields = (VMStateField[]) { - VMSTATE_UINT64(guest_machine_check_addr, SpaprMachineState), - VMSTATE_INT32(mc_status, SpaprMachineState), + VMSTATE_UINT64(fwnmi_machine_check_addr, SpaprMachineState), + VMSTATE_INT32(fwnmi_machine_check_interlock, SpaprMachineState), VMSTATE_END_OF_LIST() }, }; @@ -2047,7 +2047,7 @@ static const VMStateDescription vmstate_spapr = { &vmstate_spapr_cap_large_decr, &vmstate_spapr_cap_ccf_assist, &vmstate_spapr_cap_fwnmi, - &vmstate_spapr_machine_check, + &vmstate_spapr_fwnmi, NULL } }; @@ -2869,7 +2869,7 @@ static void spapr_machine_init(MachineState *machine) spapr_create_lmb_dr_connectors(spapr); } - if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI_MCE) == SPAPR_CAP_ON) { + if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI) == SPAPR_CAP_ON) { /* Create the error string for live migration blocker */ error_setg(&spapr->fwnmi_migration_blocker, "A machine check is being handled during migration. The handler" @@ -3038,7 +3038,7 @@ static void spapr_machine_init(MachineState *machine) kvmppc_spapr_enable_inkernel_multitce(); } - qemu_cond_init(&spapr->mc_delivery_cond); + qemu_cond_init(&spapr->fwnmi_machine_check_interlock_cond); } static int spapr_kvm_type(MachineState *machine, const char *vm_type) @@ -4519,7 +4519,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data) smc->default_caps.caps[SPAPR_CAP_NESTED_KVM_HV] = SPAPR_CAP_OFF; smc->default_caps.caps[SPAPR_CAP_LARGE_DECREMENTER] = SPAPR_CAP_ON; smc->default_caps.caps[SPAPR_CAP_CCF_ASSIST] = SPAPR_CAP_ON; - smc->default_caps.caps[SPAPR_CAP_FWNMI_MCE] = SPAPR_CAP_ON; + smc->default_caps.caps[SPAPR_CAP_FWNMI] = SPAPR_CAP_ON; spapr_caps_add_properties(smc, &error_abort); smc->irq = &spapr_irq_dual; smc->dr_phb_enabled = true; @@ -4597,7 +4597,7 @@ static void spapr_machine_4_2_class_options(MachineClass *mc) spapr_machine_5_0_class_options(mc); compat_props_add(mc->compat_props, hw_compat_4_2, hw_compat_4_2_len); smc->default_caps.caps[SPAPR_CAP_CCF_ASSIST] = SPAPR_CAP_OFF; - smc->default_caps.caps[SPAPR_CAP_FWNMI_MCE] = SPAPR_CAP_OFF; + smc->default_caps.caps[SPAPR_CAP_FWNMI] = SPAPR_CAP_OFF; smc->rma_limit = 16 * GiB; mc->nvdimm_supported = false; } diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c index 8b27d3ac09..f626d769a0 100644 --- a/hw/ppc/spapr_caps.c +++ b/hw/ppc/spapr_caps.c @@ -509,7 +509,7 @@ static void cap_ccf_assist_apply(SpaprMachineState *spapr, uint8_t val, } } -static void cap_fwnmi_mce_apply(SpaprMachineState *spapr, uint8_t val, +static void cap_fwnmi_apply(SpaprMachineState *spapr, uint8_t val, Error **errp) { if (!val) { @@ -626,14 +626,14 @@ SpaprCapabilityInfo capability_table[SPAPR_CAP_NUM] = { .type = "bool", .apply = cap_ccf_assist_apply, }, - [SPAPR_CAP_FWNMI_MCE] = { - .name = "fwnmi-mce", - .description = "Handle fwnmi machine check exceptions", - .index = SPAPR_CAP_FWNMI_MCE, + [SPAPR_CAP_FWNMI] = { + .name = "fwnmi", + .description = "Implements PAPR FWNMI option", + .index = SPAPR_CAP_FWNMI, .get = spapr_cap_get_bool, .set = spapr_cap_set_bool, .type = "bool", - .apply = cap_fwnmi_mce_apply, + .apply = cap_fwnmi_apply, }, }; @@ -774,7 +774,7 @@ SPAPR_CAP_MIG_STATE(hpt_maxpagesize, SPAPR_CAP_HPT_MAXPAGESIZE); SPAPR_CAP_MIG_STATE(nested_kvm_hv, SPAPR_CAP_NESTED_KVM_HV); SPAPR_CAP_MIG_STATE(large_decr, SPAPR_CAP_LARGE_DECREMENTER); SPAPR_CAP_MIG_STATE(ccf_assist, SPAPR_CAP_CCF_ASSIST); -SPAPR_CAP_MIG_STATE(fwnmi, SPAPR_CAP_FWNMI_MCE); +SPAPR_CAP_MIG_STATE(fwnmi, SPAPR_CAP_FWNMI); void spapr_caps_init(SpaprMachineState *spapr) { diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c index 11303258d4..27ba8a2c19 100644 --- a/hw/ppc/spapr_events.c +++ b/hw/ppc/spapr_events.c @@ -837,7 +837,7 @@ static void spapr_mce_dispatch_elog(PowerPCCPU *cpu, bool recovered) env->gpr[3] = rtas_addr + RTAS_ERROR_LOG_OFFSET; env->msr = msr; - env->nip = spapr->guest_machine_check_addr; + env->nip = spapr->fwnmi_machine_check_addr; g_free(ext_elog); } @@ -849,7 +849,7 @@ void spapr_mce_req_event(PowerPCCPU *cpu, bool recovered) int ret; Error *local_err = NULL; - if (spapr->guest_machine_check_addr == -1) { + if (spapr->fwnmi_machine_check_addr == -1) { /* * This implies that we have hit a machine check either when the * guest has not registered FWNMI (i.e., "ibm,nmi-register" not @@ -861,19 +861,19 @@ void spapr_mce_req_event(PowerPCCPU *cpu, bool recovered) return; } - while (spapr->mc_status != -1) { + while (spapr->fwnmi_machine_check_interlock != -1) { /* * Check whether the same CPU got machine check error * while still handling the mc error (i.e., before * that CPU called "ibm,nmi-interlock") */ - if (spapr->mc_status == cpu->vcpu_id) { + if (spapr->fwnmi_machine_check_interlock == cpu->vcpu_id) { qemu_system_guest_panicked(NULL); return; } - qemu_cond_wait_iothread(&spapr->mc_delivery_cond); + qemu_cond_wait_iothread(&spapr->fwnmi_machine_check_interlock_cond); /* Meanwhile if the system is reset, then just return */ - if (spapr->guest_machine_check_addr == -1) { + if (spapr->fwnmi_machine_check_addr == -1) { return; } } @@ -889,7 +889,7 @@ void spapr_mce_req_event(PowerPCCPU *cpu, bool recovered) warn_report("Received a fwnmi while migration was in progress"); } - spapr->mc_status = cpu->vcpu_id; + spapr->fwnmi_machine_check_interlock = cpu->vcpu_id; spapr_mce_dispatch_elog(cpu, recovered); } diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c index fe83b50c66..0b8c481593 100644 --- a/hw/ppc/spapr_rtas.c +++ b/hw/ppc/spapr_rtas.c @@ -415,7 +415,7 @@ static void rtas_ibm_nmi_register(PowerPCCPU *cpu, { hwaddr rtas_addr; - if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI_MCE) == SPAPR_CAP_OFF) { + if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI) == SPAPR_CAP_OFF) { rtas_st(rets, 0, RTAS_OUT_NOT_SUPPORTED); return; } @@ -426,7 +426,8 @@ static void rtas_ibm_nmi_register(PowerPCCPU *cpu, return; } - spapr->guest_machine_check_addr = rtas_ld(args, 1); + spapr->fwnmi_machine_check_addr = rtas_ld(args, 1); + rtas_st(rets, 0, RTAS_OUT_SUCCESS); } @@ -436,18 +437,18 @@ static void rtas_ibm_nmi_interlock(PowerPCCPU *cpu, target_ulong args, uint32_t nret, target_ulong rets) { - if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI_MCE) == SPAPR_CAP_OFF) { + if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI) == SPAPR_CAP_OFF) { rtas_st(rets, 0, RTAS_OUT_NOT_SUPPORTED); return; } - if (spapr->guest_machine_check_addr == -1) { + if (spapr->fwnmi_machine_check_addr == -1) { /* NMI register not called */ rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR); return; } - if (spapr->mc_status != cpu->vcpu_id) { + if (spapr->fwnmi_machine_check_interlock != cpu->vcpu_id) { /* The vCPU that hit the NMI should invoke "ibm,nmi-interlock" */ rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR); return; @@ -455,10 +456,10 @@ static void rtas_ibm_nmi_interlock(PowerPCCPU *cpu, /* * vCPU issuing "ibm,nmi-interlock" is done with NMI handling, - * hence unset mc_status. + * hence unset fwnmi_machine_check_interlock. */ - spapr->mc_status = -1; - qemu_cond_signal(&spapr->mc_delivery_cond); + spapr->fwnmi_machine_check_interlock = -1; + qemu_cond_signal(&spapr->fwnmi_machine_check_interlock_cond); rtas_st(rets, 0, RTAS_OUT_SUCCESS); migrate_del_blocker(spapr->fwnmi_migration_blocker); } diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 35b489a549..64b83402cb 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -79,10 +79,10 @@ typedef enum { #define SPAPR_CAP_LARGE_DECREMENTER 0x08 /* Count Cache Flush Assist HW Instruction */ #define SPAPR_CAP_CCF_ASSIST 0x09 -/* FWNMI machine check handling */ -#define SPAPR_CAP_FWNMI_MCE 0x0A +/* Implements PAPR FWNMI option */ +#define SPAPR_CAP_FWNMI 0x0A /* Num Caps */ -#define SPAPR_CAP_NUM (SPAPR_CAP_FWNMI_MCE + 1) +#define SPAPR_CAP_NUM (SPAPR_CAP_FWNMI + 1) /* * Capability Values @@ -192,14 +192,21 @@ struct SpaprMachineState { * occurs during the unplug process. */ QTAILQ_HEAD(, SpaprDimmState) pending_dimm_unplugs; - /* State related to "ibm,nmi-register" and "ibm,nmi-interlock" calls */ - target_ulong guest_machine_check_addr; - /* - * mc_status is set to -1 if mc is not in progress, else is set to the CPU - * handling the mc. + /* State related to FWNMI option */ + + /* Machine Check Notification Routine address + * registered by "ibm,nmi-register" RTAS call. */ - int mc_status; - QemuCond mc_delivery_cond; + target_ulong fwnmi_machine_check_addr; + + /* Machine Check FWNMI synchronization, fwnmi_machine_check_interlock is + * set to -1 if a FWNMI machine check is not in progress, else is set to + * the CPU that was delivered the machine check, and is set back to -1 + * when that CPU makes an "ibm,nmi-interlock" RTAS call. The cond is used + * to synchronize other CPUs. + */ + int fwnmi_machine_check_interlock; + QemuCond fwnmi_machine_check_interlock_cond; /*< public >*/ char *kvm_type; diff --git a/tests/qtest/libqos/libqos-spapr.h b/tests/qtest/libqos/libqos-spapr.h index d9c4c22343..16174dbada 100644 --- a/tests/qtest/libqos/libqos-spapr.h +++ b/tests/qtest/libqos/libqos-spapr.h @@ -13,6 +13,6 @@ void qtest_spapr_shutdown(QOSState *qs); "cap-sbbc=broken," \ "cap-ibs=broken," \ "cap-ccf-assist=off," \ - "cap-fwnmi-mce=off" + "cap-fwnmi=off" #endif From edfdbf9c6baf6f8dc17842bd300cd2dd78d5f0d4 Mon Sep 17 00:00:00 2001 From: Nicholas Piggin Date: Tue, 17 Mar 2020 00:26:08 +1000 Subject: [PATCH 39/45] ppc/spapr: Add FWNMI System Reset state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The FWNMI option must deliver system reset interrupts to their registered address, and there are a few constraints on the handler addresses specified in PAPR. Add the system reset address state and checks. Signed-off-by: Nicholas Piggin Message-Id: <20200316142613.121089-4-npiggin@gmail.com> Reviewed-by: Greg Kurz Reviwed-by: Mahesh Salgaonkar Reviewed-by: Cédric Le Goater Signed-off-by: David Gibson --- hw/ppc/spapr.c | 2 ++ hw/ppc/spapr_rtas.c | 14 +++++++++++++- include/hw/ppc/spapr.h | 3 ++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 822dea8118..d22bf54baf 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1688,6 +1688,7 @@ static void spapr_machine_reset(MachineState *machine) spapr->cas_reboot = false; + spapr->fwnmi_system_reset_addr = -1; spapr->fwnmi_machine_check_addr = -1; spapr->fwnmi_machine_check_interlock = -1; @@ -2007,6 +2008,7 @@ static const VMStateDescription vmstate_spapr_fwnmi = { .needed = spapr_fwnmi_needed, .pre_save = spapr_fwnmi_pre_save, .fields = (VMStateField[]) { + VMSTATE_UINT64(fwnmi_system_reset_addr, SpaprMachineState), VMSTATE_UINT64(fwnmi_machine_check_addr, SpaprMachineState), VMSTATE_INT32(fwnmi_machine_check_interlock, SpaprMachineState), VMSTATE_END_OF_LIST() diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c index 0b8c481593..521e6b0b72 100644 --- a/hw/ppc/spapr_rtas.c +++ b/hw/ppc/spapr_rtas.c @@ -414,6 +414,7 @@ static void rtas_ibm_nmi_register(PowerPCCPU *cpu, uint32_t nret, target_ulong rets) { hwaddr rtas_addr; + target_ulong sreset_addr, mce_addr; if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI) == SPAPR_CAP_OFF) { rtas_st(rets, 0, RTAS_OUT_NOT_SUPPORTED); @@ -426,7 +427,18 @@ static void rtas_ibm_nmi_register(PowerPCCPU *cpu, return; } - spapr->fwnmi_machine_check_addr = rtas_ld(args, 1); + sreset_addr = rtas_ld(args, 0); + mce_addr = rtas_ld(args, 1); + + /* PAPR requires these are in the first 32M of memory and within RMA */ + if (sreset_addr >= 32 * MiB || sreset_addr >= spapr->rma_size || + mce_addr >= 32 * MiB || mce_addr >= spapr->rma_size) { + rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR); + return; + } + + spapr->fwnmi_system_reset_addr = sreset_addr; + spapr->fwnmi_machine_check_addr = mce_addr; rtas_st(rets, 0, RTAS_OUT_SUCCESS); } diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 64b83402cb..42d64a0368 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -194,9 +194,10 @@ struct SpaprMachineState { /* State related to FWNMI option */ - /* Machine Check Notification Routine address + /* System Reset and Machine Check Notification Routine addresses * registered by "ibm,nmi-register" RTAS call. */ + target_ulong fwnmi_system_reset_addr; target_ulong fwnmi_machine_check_addr; /* Machine Check FWNMI synchronization, fwnmi_machine_check_interlock is From ad77c6ca0c63e39eb6ded9c1a761eaa16b21b7f9 Mon Sep 17 00:00:00 2001 From: Nicholas Piggin Date: Tue, 17 Mar 2020 00:26:09 +1000 Subject: [PATCH 40/45] ppc/spapr: Fix FWNMI machine check interrupt delivery FWNMI machine check delivery misses a few things that will make it fail with TCG at least (which we would like to allow in future to improve testing). It's not nice to scatter interrupt delivery logic around the tree, so move it to excp_helper.c and share code where possible. Signed-off-by: Nicholas Piggin Message-Id: <20200316142613.121089-5-npiggin@gmail.com> Signed-off-by: David Gibson --- hw/ppc/spapr_events.c | 24 +++---------- target/ppc/cpu.h | 1 + target/ppc/excp_helper.c | 74 ++++++++++++++++++++++++++++------------ 3 files changed, 57 insertions(+), 42 deletions(-) diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c index 27ba8a2c19..323fcef4aa 100644 --- a/hw/ppc/spapr_events.c +++ b/hw/ppc/spapr_events.c @@ -785,28 +785,13 @@ static uint32_t spapr_mce_get_elog_type(PowerPCCPU *cpu, bool recovered, static void spapr_mce_dispatch_elog(PowerPCCPU *cpu, bool recovered) { SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); - uint64_t rtas_addr; + CPUState *cs = CPU(cpu); CPUPPCState *env = &cpu->env; - PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu); - target_ulong msr = 0; + uint64_t rtas_addr; struct rtas_error_log log; struct mc_extended_log *ext_elog; uint32_t summary; - /* - * Properly set bits in MSR before we invoke the handler. - * SRR0/1, DAR and DSISR are properly set by KVM - */ - if (!(*pcc->interrupts_big_endian)(cpu)) { - msr |= (1ULL << MSR_LE); - } - - if (env->msr & (1ULL << MSR_SF)) { - msr |= (1ULL << MSR_SF); - } - - msr |= (1ULL << MSR_ME); - ext_elog = g_malloc0(sizeof(*ext_elog)); summary = spapr_mce_get_elog_type(cpu, recovered, ext_elog); @@ -834,12 +819,11 @@ static void spapr_mce_dispatch_elog(PowerPCCPU *cpu, bool recovered) cpu_physical_memory_write(rtas_addr + RTAS_ERROR_LOG_OFFSET + sizeof(env->gpr[3]) + sizeof(log), ext_elog, sizeof(*ext_elog)); + g_free(ext_elog); env->gpr[3] = rtas_addr + RTAS_ERROR_LOG_OFFSET; - env->msr = msr; - env->nip = spapr->fwnmi_machine_check_addr; - g_free(ext_elog); + ppc_cpu_do_fwnmi_machine_check(cs, spapr->fwnmi_machine_check_addr); } void spapr_mce_req_event(PowerPCCPU *cpu, bool recovered) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 5a55fb02bd..3953680534 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -1221,6 +1221,7 @@ int ppc32_cpu_write_elf32_note(WriteCoreDumpFunction f, CPUState *cs, int cpuid, void *opaque); #ifndef CONFIG_USER_ONLY void ppc_cpu_do_system_reset(CPUState *cs); +void ppc_cpu_do_fwnmi_machine_check(CPUState *cs, target_ulong vector); extern const VMStateDescription vmstate_ppc_cpu; #endif diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c index 027f54c0ed..7f2b5899d3 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c @@ -128,6 +128,37 @@ static uint64_t ppc_excp_vector_offset(CPUState *cs, int ail) return offset; } +static inline void powerpc_set_excp_state(PowerPCCPU *cpu, + target_ulong vector, target_ulong msr) +{ + CPUState *cs = CPU(cpu); + CPUPPCState *env = &cpu->env; + + /* + * We don't use hreg_store_msr here as already have treated any + * special case that could occur. Just store MSR and update hflags + * + * Note: We *MUST* not use hreg_store_msr() as-is anyway because it + * will prevent setting of the HV bit which some exceptions might need + * to do. + */ + env->msr = msr & env->msr_mask; + hreg_compute_hflags(env); + env->nip = vector; + /* Reset exception state */ + cs->exception_index = POWERPC_EXCP_NONE; + env->error_code = 0; + + /* Reset the reservation */ + env->reserve_addr = -1; + + /* + * Any interrupt is context synchronizing, check if TCG TLB needs + * a delayed flush on ppc64 + */ + check_tlb_flush(env, false); +} + /* * Note that this function should be greatly optimized when called * with a constant excp, from ppc_hw_interrupt @@ -768,29 +799,8 @@ static inline void powerpc_excp(PowerPCCPU *cpu, int excp_model, int excp) } } #endif - /* - * We don't use hreg_store_msr here as already have treated any - * special case that could occur. Just store MSR and update hflags - * - * Note: We *MUST* not use hreg_store_msr() as-is anyway because it - * will prevent setting of the HV bit which some exceptions might need - * to do. - */ - env->msr = new_msr & env->msr_mask; - hreg_compute_hflags(env); - env->nip = vector; - /* Reset exception state */ - cs->exception_index = POWERPC_EXCP_NONE; - env->error_code = 0; - /* Reset the reservation */ - env->reserve_addr = -1; - - /* - * Any interrupt is context synchronizing, check if TCG TLB needs - * a delayed flush on ppc64 - */ - check_tlb_flush(env, false); + powerpc_set_excp_state(cpu, vector, new_msr); } void ppc_cpu_do_interrupt(CPUState *cs) @@ -958,6 +968,26 @@ void ppc_cpu_do_system_reset(CPUState *cs) powerpc_excp(cpu, env->excp_model, POWERPC_EXCP_RESET); } + +void ppc_cpu_do_fwnmi_machine_check(CPUState *cs, target_ulong vector) +{ + PowerPCCPU *cpu = POWERPC_CPU(cs); + CPUPPCState *env = &cpu->env; + PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu); + target_ulong msr = 0; + + /* + * Set MSR and NIP for the handler, SRR0/1, DAR and DSISR have already + * been set by KVM. + */ + msr = (1ULL << MSR_ME); + msr |= env->msr & (1ULL << MSR_SF); + if (!(*pcc->interrupts_big_endian)(cpu)) { + msr |= (1ULL << MSR_LE); + } + + powerpc_set_excp_state(cpu, vector, msr); +} #endif /* !CONFIG_USER_ONLY */ bool ppc_cpu_exec_interrupt(CPUState *cs, int interrupt_request) From 89ba45652b0ce41e96ebf7108cfca0906201a967 Mon Sep 17 00:00:00 2001 From: Nicholas Piggin Date: Tue, 17 Mar 2020 00:26:10 +1000 Subject: [PATCH 41/45] ppc/spapr: Allow FWNMI on TCG MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There should no longer be a reason to prevent TCG providing FWNMI. System Reset interrupts are generated to the guest with nmi monitor command and H_SIGNAL_SYS_RESET. Machine Checks can not be injected currently, but this could be implemented with the mce monitor cmd similarly to i386. Signed-off-by: Nicholas Piggin Message-Id: <20200316142613.121089-6-npiggin@gmail.com> Reviewed-by: Cédric Le Goater Reviewed-by: Greg Kurz [dwg: Re-enable FWNMI in qtests, since that now works] Signed-off-by: David Gibson --- hw/ppc/spapr_caps.c | 5 +---- tests/qtest/libqos/libqos-spapr.h | 3 +-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c index f626d769a0..679ae7959f 100644 --- a/hw/ppc/spapr_caps.c +++ b/hw/ppc/spapr_caps.c @@ -516,10 +516,7 @@ static void cap_fwnmi_apply(SpaprMachineState *spapr, uint8_t val, return; /* Disabled by default */ } - if (tcg_enabled()) { - warn_report("Firmware Assisted Non-Maskable Interrupts(FWNMI) not " - "supported in TCG"); - } else if (kvm_enabled()) { + if (kvm_enabled()) { if (kvmppc_set_fwnmi() < 0) { error_setg(errp, "Firmware Assisted Non-Maskable Interrupts(FWNMI) " "not supported by KVM"); diff --git a/tests/qtest/libqos/libqos-spapr.h b/tests/qtest/libqos/libqos-spapr.h index 16174dbada..49bd72d20b 100644 --- a/tests/qtest/libqos/libqos-spapr.h +++ b/tests/qtest/libqos/libqos-spapr.h @@ -12,7 +12,6 @@ void qtest_spapr_shutdown(QOSState *qs); "cap-cfpc=broken," \ "cap-sbbc=broken," \ "cap-ibs=broken," \ - "cap-ccf-assist=off," \ - "cap-fwnmi=off" + "cap-ccf-assist=off," #endif From 9aa25280708a066e4920e8348091318f542fd19d Mon Sep 17 00:00:00 2001 From: Nicholas Piggin Date: Tue, 17 Mar 2020 00:26:11 +1000 Subject: [PATCH 42/45] target/ppc: allow ppc_cpu_do_system_reset to take an alternate vector Provide for an alternate delivery location, -1 defaults to the architected address. Signed-off-by: Nicholas Piggin Message-Id: <20200316142613.121089-7-npiggin@gmail.com> Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr.c | 2 +- target/ppc/cpu.h | 2 +- target/ppc/excp_helper.c | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index d22bf54baf..6d65c0797b 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3385,7 +3385,7 @@ static void spapr_machine_finalizefn(Object *obj) void spapr_do_system_reset_on_cpu(CPUState *cs, run_on_cpu_data arg) { cpu_synchronize_state(cs); - ppc_cpu_do_system_reset(cs); + ppc_cpu_do_system_reset(cs, -1); } static void spapr_nmi(NMIState *n, int cpu_index, Error **errp) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 3953680534..f8c7d6f19c 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -1220,7 +1220,7 @@ int ppc64_cpu_write_elf64_note(WriteCoreDumpFunction f, CPUState *cs, int ppc32_cpu_write_elf32_note(WriteCoreDumpFunction f, CPUState *cs, int cpuid, void *opaque); #ifndef CONFIG_USER_ONLY -void ppc_cpu_do_system_reset(CPUState *cs); +void ppc_cpu_do_system_reset(CPUState *cs, target_ulong vector); void ppc_cpu_do_fwnmi_machine_check(CPUState *cs, target_ulong vector); extern const VMStateDescription vmstate_ppc_cpu; #endif diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c index 7f2b5899d3..08bc885ca6 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c @@ -961,12 +961,15 @@ static void ppc_hw_interrupt(CPUPPCState *env) } } -void ppc_cpu_do_system_reset(CPUState *cs) +void ppc_cpu_do_system_reset(CPUState *cs, target_ulong vector) { PowerPCCPU *cpu = POWERPC_CPU(cs); CPUPPCState *env = &cpu->env; powerpc_excp(cpu, env->excp_model, POWERPC_EXCP_RESET); + if (vector != -1) { + env->nip = vector; + } } void ppc_cpu_do_fwnmi_machine_check(CPUState *cs, target_ulong vector) From 0e236d347790b1d938909207d5db101ab705fdd4 Mon Sep 17 00:00:00 2001 From: Nicholas Piggin Date: Tue, 17 Mar 2020 00:26:12 +1000 Subject: [PATCH 43/45] ppc/spapr: Implement FWNMI System Reset delivery PAPR requires that if "ibm,nmi-register" succeeds, then the hypervisor delivers all system reset and machine check exceptions to the registered addresses. System Resets are delivered with registers set to the architected state, and with no interlock. Signed-off-by: Nicholas Piggin Message-Id: <20200316142613.121089-8-npiggin@gmail.com> Signed-off-by: David Gibson --- hw/ppc/spapr.c | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 6d65c0797b..8fcd21ac7b 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -951,7 +951,29 @@ static void spapr_dt_rtas(SpaprMachineState *spapr, void *fdt) _FDT(fdt_setprop(fdt, rtas, "ibm,max-associativity-domains", maxdomains, sizeof(maxdomains))); - _FDT(fdt_setprop_cell(fdt, rtas, "rtas-size", RTAS_SIZE)); + /* + * FWNMI reserves RTAS_ERROR_LOG_MAX for the machine check error log, + * and 16 bytes per CPU for system reset error log plus an extra 8 bytes. + * + * The system reset requirements are driven by existing Linux and PowerVM + * implementation which (contrary to PAPR) saves r3 in the error log + * structure like machine check, so Linux expects to find the saved r3 + * value at the address in r3 upon FWNMI-enabled sreset interrupt (and + * does not look at the error value). + * + * System reset interrupts are not subject to interlock like machine + * check, so this memory area could be corrupted if the sreset is + * interrupted by a machine check (or vice versa) if it was shared. To + * prevent this, system reset uses per-CPU areas for the sreset save + * area. A system reset that interrupts a system reset handler could + * still overwrite this area, but Linux doesn't try to recover in that + * case anyway. + * + * The extra 8 bytes is required because Linux's FWNMI error log check + * is off-by-one. + */ + _FDT(fdt_setprop_cell(fdt, rtas, "rtas-size", RTAS_ERROR_LOG_MAX + + ms->smp.max_cpus * sizeof(uint64_t)*2 + sizeof(uint64_t))); _FDT(fdt_setprop_cell(fdt, rtas, "rtas-error-log-max", RTAS_ERROR_LOG_MAX)); _FDT(fdt_setprop_cell(fdt, rtas, "rtas-event-scan-rate", @@ -3384,8 +3406,28 @@ static void spapr_machine_finalizefn(Object *obj) void spapr_do_system_reset_on_cpu(CPUState *cs, run_on_cpu_data arg) { + SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); + cpu_synchronize_state(cs); - ppc_cpu_do_system_reset(cs, -1); + /* If FWNMI is inactive, addr will be -1, which will deliver to 0x100 */ + if (spapr->fwnmi_system_reset_addr != -1) { + uint64_t rtas_addr, addr; + PowerPCCPU *cpu = POWERPC_CPU(cs); + CPUPPCState *env = &cpu->env; + + /* get rtas addr from fdt */ + rtas_addr = spapr_get_rtas_addr(); + if (!rtas_addr) { + qemu_system_guest_panicked(NULL); + return; + } + + addr = rtas_addr + RTAS_ERROR_LOG_MAX + cs->cpu_index * sizeof(uint64_t)*2; + stq_be_phys(&address_space_memory, addr, env->gpr[3]); + stq_be_phys(&address_space_memory, addr + sizeof(uint64_t), 0); + env->gpr[3] = addr; + } + ppc_cpu_do_system_reset(cs, spapr->fwnmi_system_reset_addr); } static void spapr_nmi(NMIState *n, int cpu_index, Error **errp) From 75aa803835a5e868292a476fd9b5099ffb619619 Mon Sep 17 00:00:00 2001 From: Nicholas Piggin Date: Tue, 17 Mar 2020 00:26:13 +1000 Subject: [PATCH 44/45] ppc/spapr: Ignore common "ibm,nmi-interlock" Linux bug Linux kernels call "ibm,nmi-interlock" in their system reset handlers contrary to PAPR. Returning an error because the CPU does not hold the interlock here causes Linux to print warning messages. PowerVM returns success in this case, so do the same for now. Signed-off-by: Nicholas Piggin Message-Id: <20200316142613.121089-9-npiggin@gmail.com> Signed-off-by: David Gibson --- hw/ppc/spapr_rtas.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c index 521e6b0b72..9fb8c8632a 100644 --- a/hw/ppc/spapr_rtas.c +++ b/hw/ppc/spapr_rtas.c @@ -461,8 +461,18 @@ static void rtas_ibm_nmi_interlock(PowerPCCPU *cpu, } if (spapr->fwnmi_machine_check_interlock != cpu->vcpu_id) { - /* The vCPU that hit the NMI should invoke "ibm,nmi-interlock" */ - rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR); + /* + * The vCPU that hit the NMI should invoke "ibm,nmi-interlock" + * This should be PARAM_ERROR, but Linux calls "ibm,nmi-interlock" + * for system reset interrupts, despite them not being interlocked. + * PowerVM silently ignores this and returns success here. Returning + * failure causes Linux to print the error "FWNMI: nmi-interlock + * failed: -3", although no other apparent ill effects, this is a + * regression for the user when enabling FWNMI. So for now, match + * PowerVM. When most Linux clients are fixed, this could be + * changed. + */ + rtas_st(rets, 0, RTAS_OUT_SUCCESS); return; } From 6961eae79f58385482775dc0a6c3d553f633662d Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Tue, 17 Mar 2020 10:27:15 +1100 Subject: [PATCH 45/45] pseries: Update SLOF firmware image The only change here is moving the decision about rtas-size to QEMU. Signed-off-by: Alexey Kardashevskiy Signed-off-by: David Gibson --- pc-bios/README | 2 +- pc-bios/slof.bin | Bin 968848 -> 965008 bytes roms/SLOF | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pc-bios/README b/pc-bios/README index bab0e8ec1a..f54c2743d0 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -14,7 +14,7 @@ - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware implementation for certain IBM POWER hardware. The sources are at https://github.com/aik/SLOF, and the image currently in qemu is - built from git tag qemu-slof-20200312. + built from git tag qemu-slof-20200317. - sgabios (the Serial Graphics Adapter option ROM) provides a means for legacy x86 software to communicate with an attached serial console as diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin index b87353befa2ec0de2ef405dd1fd89c616f4f054e..40499a1451f4f63f79f64f2457ae62b08d7d66eb 100644 GIT binary patch delta 150415 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

Iq!NB6| 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

AdSvUOy$ex@J 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


Em_6DEejz`lUfQ@?s zDKmF`fLObe0ZNO2X{ntm*ptIf18{O-+6m1RJ7d7kmD&kg1qiiI3c6Be=d9@$qB+Hw zcFuv=xAVxf7)~*%ooEdg=yf}SJ8w-lhyf|TGkpS>el|S;tR6NB1@;C5gEX|sw(|o- z-7XPG#kWgs`T>yoU9ib?n0ipL$G|7JOK18AusoY{f1pvAf@qcXc@5^T1M=)fW+o*4@e&0od6CNrrkAQajD&)_6BJ64_aQ|y#lK4 z0yx;2cHf#_5XUJdwHs}twls9v+U^IC+_d`#r0ujvZTba}`aPgv2l)r;Um0lQXb-eq zvj@_yVcL@csb%&wK&rYuebW=-ImM>4;d}+sguJ_3br*wEFfsOjp>#DatIk z*JFAESV07&8MrrZ`i2BfF{!<nD_D+CMb0Fz(?+r)*?)?G| zXr_HEkO71{-pMyEy9)owVN6E1o!=# z{sC+rbXn|vXqms?0OGCvZqoyjImM**gO>JyVgnjj($F5?{s4$O_CwMg)BYZ)z9o?0 z*bgn0_TPY%g8RQr7f9h018sFTm<^(praPo?ib)+n%Re&Ew)g=Zu=!F4(DIKAv;lj- zY5D@Nc`jgeOb5cIUjUnjHp?yzom)5non=3?0#dpiwwrE{$|)vw7|nms-Ccr*CrnRB z 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 diff --git a/roms/SLOF b/roms/SLOF index 8d4033d0d2..ab6984f5a6 160000 --- a/roms/SLOF +++ b/roms/SLOF @@ -1 +1 @@ -Subproject commit 8d4033d0d2e5b434fe14a81d5192cdb1911469e4 +Subproject commit ab6984f5a6d054e1f634dda855b32e5357111974