* [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
@ 2012-12-03 10:11 Gerd Hoffmann
2012-12-03 10:11 ` [Qemu-devel] [PATCH 1/3] seabios: update to 3d11108f45818d75140530a184c05680f1be51ad Gerd Hoffmann
` (3 more replies)
0 siblings, 4 replies; 17+ messages in thread
From: Gerd Hoffmann @ 2012-12-03 10:11 UTC (permalink / raw)
To: qemu-devel; +Cc: jbaron, Gerd Hoffmann
Hi,
Most q35 seabios patches just landed upstream. So here we go with a
last-minute pull to plumb the missing q35 bits. It obviously updates
seabios again. It also adds autoloading for the acpi dsdt table.
With this pull "qemu -M q35" JustWorks[tm].
please pull,
Gerd
The following changes since commit 01bbd8bf2caced5cb07939669f58d3a7bcc78092:
Update version for 1.3.0-rc2 (2012-11-30 15:04:16 -0600)
are available in the git repository at:
git://git.kraxel.org/qemu seabios-3d11108
Gerd Hoffmann (3):
seabios: update to 3d11108f45818d75140530a184c05680f1be51ad
configure: also symlink *.aml files
acpi: autoload dsdt
configure | 1 +
hw/pc.c | 23 +++++++++++++++++++++++
hw/pc.h | 1 +
hw/pc_piix.c | 1 +
hw/pc_q35.c | 1 +
pc-bios/acpi-dsdt.aml | Bin 4540 -> 4450 bytes
pc-bios/bios.bin | Bin 131072 -> 131072 bytes
pc-bios/q35-acpi-dsdt.aml | Bin 0 -> 8374 bytes
roms/seabios | 2 +-
9 files changed, 28 insertions(+), 1 deletions(-)
create mode 100644 pc-bios/q35-acpi-dsdt.aml
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Qemu-devel] [PATCH 1/3] seabios: update to 3d11108f45818d75140530a184c05680f1be51ad
2012-12-03 10:11 [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update Gerd Hoffmann
@ 2012-12-03 10:11 ` Gerd Hoffmann
2012-12-03 10:11 ` [Qemu-devel] [PATCH 2/3] configure: also symlink *.aml files Gerd Hoffmann
` (2 subsequent siblings)
3 siblings, 0 replies; 17+ messages in thread
From: Gerd Hoffmann @ 2012-12-03 10:11 UTC (permalink / raw)
To: qemu-devel; +Cc: jbaron, Gerd Hoffmann
Most q35 patches landed in seabios upstream. Some cleanups and the
mcfg table are still missing. So pci mmconfig will not work. Basic
functionality is there though.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
pc-bios/acpi-dsdt.aml | Bin 4540 -> 4450 bytes
pc-bios/bios.bin | Bin 131072 -> 131072 bytes
pc-bios/q35-acpi-dsdt.aml | Bin 0 -> 8374 bytes
roms/seabios | 2 +-
4 files changed, 1 insertions(+), 1 deletions(-)
create mode 100644 pc-bios/q35-acpi-dsdt.aml
diff --git a/pc-bios/acpi-dsdt.aml b/pc-bios/acpi-dsdt.aml
index bb3dd83a56f84131f9c9f968cbee9385931cecd3..dbc2114d36c1c57804a9a7e91f855a8445b3aafb 100644
GIT binary patch
delta 465
zcmdm^{78w*CD<h-Nsxho@$p2iR4%W|_+Y2_=q9Jijg=GFc?29}^*{mv&YlLFIXUh#
zIoRqm!vs8o9pj@L)#CI5A`FcK42_)`7(DbD*nI+A{TLZ67?_<MK@4VRCm_Y)<^m)I
zyrn0<;<A@B_jYoL=ZN?4bm4Klz|1Vd86O<t$gqTqpCjHmD0s3zw<L3PlltTWZV5ZE
zh#&_Ss}h4iB|~(R7mJ&VvjI#mJA;S>SZ@Ky{DcK;lM@)0Ff3$&8+D3XrarpK&L<!Q
zZXXL=56GpMdISZyc-<K*m@Ak$IFuR~K$g0)IQ#n=!YpNF<cJUTbYX;94e}>0V}3CI
yh-GHrP!d3xV}#QjU_jwChv^3s&=?M&F#@XaD2Z;8oGi~P%FMv^e{(LcKMMe(b##XS
delta 618
zcmaixK}!Nb7>2*u+0|(@T495vi)|4lVVWJf)$We2X42v+1RIW*prc2ngXS+t#Cw6)
z4&k*Q(LV_K30?HqPN^Fab$R(<zImT_-g(oXHz{*j^*IKB_WSgTo)5Wea<69(pW1if
z@hW+hBwHUGMvk|cTrwFayijCO;{{`FiMv$;Ms!8n<yOT7QY|}t(2vB)NK9TYJ9vz&
zb+mYJ8Y5KEL2biq!<O^RO3yvR@Xd4Y>y}x|r(^4M%|`F|9fNG637%j;`Uxau@QuWR
z*DEP!PIVDZ25sjvT(e&9)KktyCd(?W(YR?u0ifHs4-FbHf(KcI-}nYn>9UPlxP=MP
zyMenAvd+tyc}xWnUMn&bFct`Fh9Ci=^DASDrx=K?1`Ja$4t_AG^atd>cTA<J1f-*r
zIYcchDe=9IRrD)6QA96<8>|xb3k9$1WU`h-FX@(dn-wz_r6qhZg;+vzLh?dvAq62t
YA*TtI1@2nRv2v%V*+$pn<nodH0qK~T#Q*>R
diff --git a/pc-bios/bios.bin b/pc-bios/bios.bin
index dc9b57ddc9a39f3d8ea75a8f23e3869c26144795..202ba076ca393f782040ee09ee2158f628fa41ad 100644
GIT binary patch
delta 20272
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
Ip^NVS0jfY~q5uE@
delta 19445
zcmaic3tUvi+y9*9DlY6Q%N-PPxhW_pC@L5TDqczyLA+loI*}C_cu5NgD32?pj<s4=
z-b=G2F<Ge;L_tkW=^|c3Gds8{c)w)s|NESk)qd~q|Gs=a-?MX`d1mIBnP;AP=5i=3
zbS^A(uF$IY+kG>(Nhnwq#n?LF7hrfaV_Sg8UW~;6lL2EN#<l{wc*cBzUlSNR1vm_3
ztUd52U<OVkGIj^BO9CJ8E6{EbW1WFopal?97@Gx@0Pg|oQ&<5TIhe6;hcNa<Dr4J#
z<YA0GKZ3E#z}S(Dl|RE+-wei{2Brb81MdJUfi1vyz?)f&1&?Pe0hkJOoWNK&V9R92
zjsd5Epec+E1;zj?fFFSUQwkXSWGVyzUYw5F0;^}CaNriu?{&sD0$&2Vf&G9Cq~tMH
z4cwZ88qY=Mz}b0>T?bs=Kx+Y+z}fkXT>$O_(F+)hDr9VP5h?|!--e(CcytDWfv16S
zKu|GbJ%A5@av-jRvGG725LU|AzIV_CK>R|+UICIM2o7umt}bRw^FCvjmN51fXUuUq
z@&}#;ZUF5+U~DhY=|kiT6g+EW?8lWz@DXFvS24B#81pG(F9ZG7q6+}8b*Kr@uz|5g
zz;7dC^MDV5Z-GxfXUqh2|AMh1V9_SV)&e^>L$82)U!p~}Fy{6(`n(*i1gO7ZEaV&X
zzY&42fRqZxa<(&e=v&l$2WknN2i~n@>>4o9#Mmxi?oQMU_!L+Vlmk0}J-~k8B+vw0
z1TF*FRg8TP%>0hA2Y|y5jC}^|1iJ4+|I5{krPeUE3ity^+XGzy{sg+#A`U1A4ghC>
zl)a3N_>r*;ARqV*C^>{$151Dpfo(u7a1=NL`~}<s)Q2%TfB`_(5zq^Mf^q<PM^RHC
z^%!ajEC%iXE)9(J0+s?>fW5%qzaq2W7;`<28UVbJvH2$$b2^C(0o5tS+<|JK8PJ|#
ztPd~*SOP2uRsgGjg4KAiv*;fn^&EcBW0(PXz(QaZP!8+`8iC6I`vZKyv<r+q2Z+E-
zAQ#93<^l_VLg3IHv;y!8;ID#B0p<aB>>;!Rt2pi$D-`7QgrY^GPY8V&(<h<-0Ka6$
zo=RctYhVwcgRRH}-UL1Z_5d;vF$7~9m=4qexx>Ia0{Q{m2BwT;tO|Byz$nHNfv17_
zKy?=ELl%_q#qo@t17ap%oWmA$n+8n=-UIBWGqwhJa~6gY#(pS}3#<fw1H$tddj>cN
zIL|@1%!SecTY=<xjEx4~0UiJ&-auE*M;!1IU;(rXpo9Zp9G(Y;6@myHc$=}_#b{!n
z3g}P*tp`p5+EOSc#{Ce$Q-VOi2p|jieG%Rb5El3uxCR6)hW!8xKn3s%a2E(GV{8L(
zu;4wI*!R%|z+%7zn1L6TK(m*j-#D~*Ib$9$9GVXq8w6|tT#SrOSi#soAE8M<MlE4G
zP6Do<Kp%iPupz$z1)rg{R-+r%GIj(Qu^tuMz}R6Ra3d)p9=n0QFe0%qAP<2THlYyU
z6Bv-Qz_Bl3wYH!YzJgK$JAq$;n}GM%=mwx4@G9^naB3@KZ-0Z~x(!MQ+yI;_&>BD_
z@C+~;NZyYA|8zT=28QRO9nf%KaV3TsaIgwY-=Wq&K(T<>U9gTdm=l1#dobK;Q9wOo
z%Ye^;?}2*<F)Dt9Ab^E%2t)KRy7&l267b<qjM-zTcLbIK8;+v?pT}5#9ndwv{sTvV
z*yFH_z+T{2zzhhDFxMwhi&L2SfX=63AAoW|2Ce|PXOKQXU~lXZn6Wd4Ul(*m5Nraa
z18#Q|*aN`JU10rylma}415<z;;B{aw;29&ZAfPWW5Eubu0AB+Qz-8bLpo$e(dq4+t
z0+NAoz;xgRz^gCl!27@^U@Kt3AA9syp;pg#R;AqHlI~|!tA<bU@KasZ@cAC1U#mvL
z<P7jmD6P)RC|km`j7e$s(z&WI{?Mbls>FwP_Z;ERecYHdNpD}KbC<^Ioy$h*1EnUz
zSiQfz<qluw*|SGjhK3RH+l%iGK$eT|VZ794jLS?fzHBemW*ee3m33+2rxcfakGFWn
zxKq))FXLf$`R)RRn>4(SSAQ3x=fxCRAmJNcovg3wqQCLF)~mPm)me%C-K$&ME5*8d
zFQGba@SY!_)at<B7R&h3>ii)&Y$s~Psv__(fib~Hug<#V#>8@x=K5{^vd>6wB}oC2
zpds=*=4hpB#Ro0KeauJaoonNM<u+r*d)4ON_4a!1!~gN|R)yZ=UcP!&;T@jf+eh{B
zZJzHNtjfF1SNR61{BQGW-&|GZE#Av7BA^L1lTY5WishZtOI&En_rgs+-!C{^CXN;0
zn4m}tQ3A#ND$D@7+mGaxQuJ#1!<+no-*hM6cyNDqn@9V15fXX2zdl;2Ma^A{MXJdv
zJ&>=<(SGA^tp_+aDfG#pcgUG5>XjV%7yf^#>TmL;0dY<}D7*Ks^P>UXM$f#3xzFJ!
z#PRd^1<&I9Y(duohvK_zw!au}2Z>rq_6d}v?{&1vehW2=i=2)Z^Ou?()f1=GYPLEo
zKC5BT4bASi`G`(|9<QPGq<Ylqg@uh5pNl?a*2+_E^TJMHodXbK(CG&i-PeX<+CP`m
zRh&iwDg~^##_KypsiJT3d!2esn?q$rUPE6#M2Ak9YMw9##ifZ$i0%P81d%;&!eX`h
z+$XuaTjkc1jDJ7(R(BDGh>5wj?9a8@<k!gmv~ok|1eNX<KiD}#^@SJj5*V(EZ><;^
z_=(WrG%9ytT5|E<+I%@DMI3vZ-|rG3n0RPVc;I;yZ+@fB;R`P}78TtPeZZtmfIu%G
zbE#IYy2f*Zyi~upaw*8aM~bcNudi73={fl@LgvavDSB1>=Ddzdjlw8{#aH;xK@q-`
z?eyq|@|*Ja4=olnVS6!yqK91JK3${Lg-UOdKDWEVGrJC>VZNrTSKs9}`p1{8CHW4o
zv)8iHhWtB{x0LHF?J-^4>c->?*DRJH{T|NRY<7@WUgj-b(^T)Y@+5ugFdCck)>i1$
zK9S7BPI{11DG?u1M2g-yN4wJ>&1$2+MfAFVQF((tTrJxK$})4O;H@g%18xeARZVN*
zEy17kUxikX>ZId_WL;TG*jR)1_8x8CFu4}Ow{>TXwL2qohKX5s+Eip^Gp`HjtXk8|
z{|f2r?(!&?eqR<sru<mB?`0kx>g}nu@w+rzTf<2XZ{|}&163C^yeQO@epZHdQO6Ub
zVjfn?ye?E!#hH0jSZs)3ek_M<mE)Yao78EfE$d(Y;)bwlRp0~uba;J$(nxx<wUI;;
zXJ-l?)^_62-F&FXk=?omZfPsh{Int6+n_3LI$XS8C8<pJ!7hK?%-`?k(R+{lxP04i
z)CnkGNv@2R5B^lD*4!Ip`I|ra@ovXd5fAw0?%h={UaC0W{kWilr7e&2?4;PES$`?A
z=?o+FTFusxdjA|P2?v%7ks;c>ZQTX4ua*a&ukh`$MTj6XW7a&;xk^sc|0KIbS^)Lb
zh`A)z_S+TLdpZk!6o!EpP*gn%@~$~&-&PEiD}?ANdM#r7Nd%ZJs|XcQ(W2nAm-M{)
z4F9axM(cca;~W(f)>hC8Dk$(y#kAg9!B;70f79cF9CH#M)n`$RFV%cwOn3Fdw#Js<
zK2>ohCPeU5s?^ciL6aVJ5SV@XbW+c?G5eq7$$ef@ny-(y<57jqkMs!=#_?-?Ji5F(
z5Q2_5VQv1U$fPXO`3mM$S8)-=#GT-weK+<}Z1hWKtTRoA^tOox44EK~hux%UQ>vAI
zHQl5x?0%YC`Ua~8oq`Ix`(;sO!|t}}y$AdiGQ3W5Od}r~H^s9MQS~YMKvG^rOq?=x
za<lPx#s0W`s)D=dHY8_NS_dqbtFv2no`qc7I$Vae(d_c+*O;fScOWMEGq+1Bx_2J&
z`Ax+MC79ZoreqXS8xp)R{;S9cn2sWPkxPH)JSXuF1kJjHGx*Vz+_Hxgn`piu{*708
z<}XOQV}EqlhUjXulS=V168r6+b*rQS3AIll;b}1xKXTMByl4C$&W#X3@;I&Gz6tMI
zUt;mHDPg?ou7=wWT%_v%6kjqh()%>{EV0CGiS_<jgZ&T6WYIDH>%bf`fJsmJ7LbD>
z&plzW?2J04VO3FJGbyv|b3`jd7glMR8-u=sFAcOc6hf!D7__AgdG^v#^X+wUnIN6Y
z3oSFiLuArPtLX~@caAEDi3+hXx<MX(&qC8+{oq4Pt6@biAKKo*3q6IVVuq&=ks3lO
zbDLDXe}$ITPQhSt5wjtA^98scrtL@(nW%ANX(CA{Qcx_Vigi7Tb|+fVB_f)>aC1W!
zYYq8_%<T=%!qWYAc(1lkpvYNQrTjyg=_2JOZllzH!Y!5>BZ;tUDm|s&A=8cZRZ6nG
zT5~&ti*P~^iuc$T-B-IHix#Qw&e<voK8lN0;#Q;BSuIucgK}MjA|(S#MFP#b;;`r>
z|06NneNiGx9f?v6k>8_94GAU<@0_$)_?&M^ikqyAg0VkaeIXB+5*-?eT1e@z0f-<+
z%t!1&`o5g>T`|Xl;NX+KPm-dfxz19Sed(2ahaa}0C`nWsJgQO9&T91hpiu>T5iT1q
zNC6Zu>x%CR`R)eS{cThVz!eHIxW=G&i|@J5@lv?yO|n0{92zg_4zIw^M4KP`t5jze
zh7=BD`S-)?h8O}CBG#-g8(|;aApK<aSfti29I00=QhN=G8_6}vp`Ddlsv5`|WtCd;
zy>k*o_MojUE{AzWa&ix4hFE<J6|Sut6mzX^P;6`cptPo~jMWXAWM8Y8g5L~@VbDnj
zxsuOJ32^dGLeu6Ss#uZ|BD7nAiWqdamTUO#!98h&v<}WwfAM!)DIXl<xkEBFHiDF~
zSB^T!e;qPQN!d<GnKm?(QqCKCBPbksS1}CW@I7P7QXDO5W_7w40-{L7OnJ_ciuY2-
ztGe|17oQXHWr~q)eB<N?+<C+%z0v@Y2NnCSo{S##7xz(*&b-$qU(`PS>xc$bY*NLh
zk)`&^aCgUWujn&+r{GK@yuCxChTj<zrbHQBVF^Oh8*MQaPGc_%6O<8c-c93aYIae)
zK1-#kRO{!ctrH2wnq916rL}8_b00=to_*=5{Lq{Lajs3CeN{A0<TJa#BFn$=r!&`%
zet--#mG=6yjC3&(Rg~?(L_-gbkL(G~;=O@nX=`D&v2>`hj&$&Shd5e;(1PNGO}jVj
z;)&xvQAOS3zmMxiKkc)EpPNSc9x*BT+VWzsF0E)U*p_Q>`*P_0CcN(|&`8SDZA6-E
ztFTZYVm*k(d-V!)9x($%-};c3kAKSZ6(w3-tHfgysSue@c*q?lyyWyY$*{SSCyw_j
zP}i;@o0@>Mg>yXW9m3EC6s~uOu!dMI#Z}MI+2X37h_f#JoH334mL{&I*8P$)A5cl6
z)HFG3Dyvgz&X-QgfjdE~!KnV>t{U@Bs;2T@&0qY}i3!3HetKfx_DbsAl$!HSle%>M
znSwL1iy+BWl%i$ZgN2P($tt*}i#I896rV9E$kBBWf}woTB>(nN2x4eD%fb%+&7_1b
zBPi+ztOFJ~E`$)27A|*+-abvtrKq)BGucNd;^C7Mf+xZ%SLspJ(rSZRpWjt9kpf?C
zQy67I7E)oDd_hoC%gpkb<2)cC49n}O?+Z=5{j|`|Wt8Q-ZPc}4hID(&>)w_;y)(gJ
zCx3RgV)V2Z1(nCQ{QK#hbz%+bwFgU;(gsb*1(a$Ch~X{M{e(E)enuDJ0gs&FtvXx9
zhtAM<?N^QH*cccg&5mSMO;fwF5=V;@HoF;CdSz)^gKHdrZ$@y+bGBvX4Oo>&OEsr;
zlrS3WH0UiE8N<R7Do)9-ti;WhQE|1_;6bJP>2BxyiP$<~V$=P$;cMU_&n62CdCs%T
zf;S~=SWbtsnfk67@)z4l33X;+aN(P9!S9t#(z}PB8N6m;MVIIN1y3rwtfc+F3W<#4
z>CfwZTWxvw{0f?XiaN&$>bs|sFMa+s_o*N@H*7&YE{BO#C{bR;J+iyDPeG2NKy%K-
zisbC?98`&#WixdJN$3(o{8G)<_$AT;y|ZSA?#v(}MSv8sM4GAhCQ|ahxYR^S`4^YJ
zW=H&)!9>#S)NIw6;127EG~_XfUWY1)z!70W)>^}Y3O@526`9r{ulCMp_Z6+&=G_uc
zlh~f?Ff{kJLlqC0?hrx3cAZqBw}*O_t<o>V4?GQ*6vWIWPa#F`J+&@H?@!)!0AhS7
zX3DSp$g7<?E0gADpDSFsm`usdvzeQBKj-ap{o1Q-Q$it+&Yk5HM(Lf`^3AzDyDDaS
z+eW0XmFmf0MTpC&pC70Bw&FqV96Qytzxnk1uCCLN7b=)lwwwk2%{SzwP=q<p7LjX>
z@XJ>so=Bm!Ml8+$*;;1k8bxL;P4<4`>VKEnjlVnldB-@Cb2q;}d$juu3X0eX9hZ?Q
za(bD_Gv~bOcz}Wz`Hyp+cT#FH@iX3cZs-#=POW%xuA5dk#pf=pFR&jB?wJzyR?T|D
zVtq9VH7wUJrk@i11N_LX++wMB*pALbJ2F^#ojkG3VnHBK9%Bv6l!sXZQF0;z(9eF>
zceNZvff7BXm5(o@HZ4w|yjY%wGUdA@-)@^hS5(21gsEJJ-7+k^&G;=!u<fO_7-Hee
zs1`*PL=aatVhyv&Se4$+KbCBgVb|q8R6t#6^;@m|8VfFqo-_awz&N@1p^(@28LLZV
zBEQJ&P&P;_9el<xT$_JOa$Z9;2^7U?svqQxnu15BQ?LIa!#9hb3fXSNz}tZ`4Vm_<
zO=mPLUNhTAY(gq=fz7~t%smaSsUN?0ez$@fA_O6ZS1+E9XHZ#sKpZNQoxtqpoNlf`
z8)4NKNKI^5pjTH7<jcyU+>*foeUFkx>LcWH{Ak(bf}4=`zZH18n9Qo$ti>8e(v_y1
z)v$*S#0)77j`D?X(HFC|rMESuJ7CA78_0Mw`7p=`(}XG4AY8O}G3bgZ%n`)5sI`lc
zv3XpZV5+K(JmLKq$FC@=KcDkH*G&Hq1GENu+Z9`zatQZX5~FJRkdIoD8K<}-7vHh^
zu>RslXf(0O)<#!~NMx;2n!$B3WL=o*lq4a<&n$@uGFvO}FMkR?l<$u%nzs&+tFQPN
z%`NX#bYJQz6ew%5JQrEB*kWmJh1nN<hd{WjLYNhr7U4>;!j>x&lo>ovEB2$<{)o+L
z-UDu!l4n`jSpBon)$)=37K=EB;(ZY>|6sr}h$jDaH0eK{)C~cNaE>RNJ47FlP9~d7
zm;&X+B;-VLqs-zfl*5Sv9Osmv8xmit4wFysQ^vRdRJ4=7xCsp|E^nJT<*&IN*Q=LN
zsuH9^_7%PPUOV3=aA0<fBN#BZC3>WZ8;NT*?_ex<JVwEPc)fA6)msdJOE_=E1ivT<
zD|y7=X{Xk^W4BszjU!S(yoO(05u&De`m1+{(eS{P1F&a0X=P8R>y%yKJict@IPWDW
zdE0}lR6mnF<{>%j4aI-r!biTY+ZR|Y<}RY&Q1DAU?4y_v#n|+G6IHAqZ}LXg@bUdb
z4OB^ty3;m8_T+DWG}`egO4Z0ud=xVDi*9bDYRw&xP+98NNxvGrVYLI1gUxk(38i7x
zU?L*2^%t=t%f!=d`!VuMe8|U{P9kNinZwt89Md&vKH6}UF1osGw0(AqbTGRG6R>pO
z^lhk8-sI-M1^oWUg(_VMU$81xb*7kCtm>uORLuWcwZXdoZJCEMYqQXq8WD#ZOk97v
zV*MvW1ikw_=z3lAUi4qlLt6U3)mhv{40mnvtmAH<g<8#T=3E~C*_w`@&Zb1z%Ny)G
zV6c5&octqi`OL@LnOa8Ksrqyl>U)G%%;t7-6%SnPr}CG0!s;&84gAPCB+Ud<HMIbV
zG=bDdyi+lMb$7wLWDeyHwQ5&fpEv+hd;T9V!tVKe*P1B7%v;uE2p{mlYe%$yh-NlD
zhdf|OK3*H35?<$3YXjUWK{oHp5Z|X3JjDN8J3!dUyR3_F{F(?;c>20fVqLJVv#Qf9
z{>eITze1Wo6~V8)Vl_H}CTyf&Z)yQQy3W_}7$vOXt?L#D9V%X4?=HBH8Lrr|2zU#6
z*s?IW^UIuX=%XnEJts}>G8@LpBkloj+z_JL_1?0Lo{n9IA&(EZ|Hi&TH$HY_h~pPv
zm7{s##>kHK6nyv+yn`+JI+R;=mhay9sxXT8{5-$MIct_f@+ixAtTBuCdKWLy>)1Sd
z@>SBL6F9E%wpzTQt9Zlb!9#CQe&=!aBkeOMEgGVd&XiQ=`6@fl4-qBO1ePxIT=<d^
zb}(3C`w^hFBC4#I;=<*$3^^~C5B#E24^Ko%jYOf+<iV6E&jCW{3_3mbQFLR(0I-DL
zNY9kRa`~b!;wN{ZBu#P$2!OqnVd-L55XzS8ohj=*W75n$ifimgi`_s~M9Gv*uaZxx
z1-GA2_lUp5%HNunDX+9fBhQ{6@vfV?I`%?R`FTEaldlu`o3JnZ<xMf2Qi=T8PS`l2
zI{eEAg`>NBlU_A#9{+RGG#_e5%+f09s5lylV2F#TzrS0_r)(Z0Jj=h??C+P-#&dTJ
z;tMIh?@DqXQXX)5bFeU)xRf4Ia#FaITu!dwPkq@7bK<NoBL}`jGO1sHah}kOqYwsb
zKuZp?2Fhe|>?IltlTAd#Sn$aa#TB**<rjYD%cr#k$O1}LjaHEM8C(;2|1F(|EhVv=
z<hL;QjT2jG9{K<jw6gk9E6cGn!QUz$`B3rK4IYVY^*Nd$oj{Gi$K*LizIIE`ew&b1
zKKZ;NUc{5)ZOkF@&^IO`D+0bGp0=65&$-K2<2w{!T0tA=GRBE}DWe3Q_f?kTB?|t|
z8@}o>#b=~agG(<Xv-+|;y*FF~U6rCIt#S?a)*xrZ2agq8YweqHik!+^{wre3owA|o
zj#tN<HHKup{Dz2hjq>XvpYnCsvprD+av6=x&<Nyehwm}8m*bF5+GnGTGbB4Fris15
zJjSZf*I!ghH!N3L2`fRJex9F|Yq-KCAGLD4xSThC9fvcapsi`{XA6)j*&h20c_tTX
z$M&!B(yggpH5eX?26sqYIJm>YWFJhzxsdRc0)AoZc$Iqrf2us)YDn*8SF9}e7IcM}
zx#Uh5+L#d&#jz+*zRdT1Gu&|=1+o6ww$QDD<_mkhbO~8~zJPzZ?adHHbDn(;^x7;_
z)T53Ommna1Z|j?9`7;$UVdcmO2^Zkh1}4=7JIMaj@#c=AiHgung|TgvL!afFD}r54
z6Y2C6+<M^U-+J(?6^V|*(;&UcW46!kwebxUxX&DgPS7HakzVcf=D<hq@6tO~+UOlC
z!|XTs>Fo(lim<b0@W5|%?Ne?0eY5ye-wq6lLGIFBx#%iMrz!azqTw}uI=q&6D%gE8
z|Lohfj*}>y!-wuzt9fCr#j-B7N!iJLO?-{t-I1ZQBicwS%~doIa~hvs>DMuRs>QNf
zscw7tTWUFZDu1uCyUKGa|E@AW^pTzVyv1V4%n;Wi8T7<9d}d5TbsFWr7ja>)&awD%
zAX%B$Oz&HL1H%-=ViHfK#<$=wHxtE(t8I;s)$`6Ar>!K4-*|4^In*g35?)8_6#nPV
zYA0PV!mmu`TdJlzHWJUL74F|@gn-KwmNMaIY3<PxCu+{ME4*;6T}`&+s<r1+zxQ(w
zhp^Jg;`5q37wZ7_ZsBF$herH09=8#Xl2fFd>RKH-4A&@SS7|40HC4GmR``T<yy<%n
z_j1~yooMz@JfiimIPg21f9L_%sqYWrqm(`yF#%=O8r-rm!>MT<=P3@NiJI9uaaaa4
zNiT<^sW4)@ibMY$-3`%b!a?Kt)*o_ocF&-4+r~l=IH~0Sddv5D<gRf+inA3u9);Cq
zVFBa?6PW@I+cH-@o^RY09P-?Ja105nq8ZAhtii@8l!zxNiSzljU0vFH+a%o119p#a
zvfGdP{g}mH-5nB0p03%wXukTUub|DR{fFQyusn*V+iZwU<lpWNb?F6Jq04I7%rEZF
z(A7i1;LMPX8<#FVLlt?OkE#yREA7;O9JSK~Qw-^X)r4QRDMG>+{z3Iq0h8{4r=}{O
z@@<rp|DaV0okie<W%6s)VI6<VfE2UsX+iS=Hu6Z4?lt{q)EtE`DK!>1Ii*RB*)_6V
zaZ~3s&5qyG#Uc`8<Y+YUrQ$uh^2Dprv@e6kBZFX@U)pDqa5gL9FVb>Y%(695`_a6<
zX7J!G$Sg-IKcrs3Vi;O+AJ)|EHc5@)90)mY<8V&egMJHyC*UuCGnU%K-|7WWGp-)X
zNAK~00=={+HNBRE^G-u&Ly@V<Gk!v92&yhu{dYlsM1E53_%?IqFRmp)XW9h)kvrB7
z8T^-3&Rtnxek|van|N)La|fLfK9=*f^#71^S~_1^>kT<K*G9G3fB+m+!UjA<?oZl)
zMv|#feyspD;JNrdV^9-vdo!Fdf2qq-T*3?t9aDVQE>ACKq9-1mWNY4Ej)AbC9WGU9
z-jxuP$MZFN{e<874|_Wa5Bcf6J`r(LF~#RR_B5_K<>>=0ug8emQE0Ym5R|<<?`Ab6
zKEb=}i&br#!L#=DSIwTmm+z|$^u^BmBDG$#>%izt%?=#lj!C2Ru}BYBVO0j7Q#ZtE
z8s+9TlJBkS;Ztw`i{XnFv}vZoS!(5U&fx9q;|ly<M@411_JJ~xdl)ie41@Ku1E_|<
zVe)&U=r=-sNBNDC-@>mX(=xaDbp)RnugZ7`Oha_-&JNV^_0rWF8<6t|N}3)+^Y+$R
z2quTgaYRavkfTOf#vl+Shk>A+MeJly8q(k<4Jyz8vXmUAxQe#@FD1sL#6<j;m`_J>
z-TpNH&C~!d3`b^r{fp<vF++NyAvr$Z)8HEafEVu9!9|B3*Z@E9ApB?(yeK9wna?-v
zAEC+`$8YbCZGRGdp-dg#<9MF~Zzh!Dz1+p>hgf~?W(+V*Wi7PPS*pR-Lm_42Gzq4l
zdTv4C0=)yv%P=u)mC9Rq>j7P_3D&3#>Ez}3^1Nty-w5c<U7t&Iq2+}2=0QWwtD-Zl
zzZCuWnD;ptsw$btrylh4O~A4nGiB)olmhocS5~6ek&e8W&X*tT<#HGmE;*3zu)B^Q
zJ=k5C%^w`}_4viw)i<eIa8)acb~-ll?mvd8utG`yu~*+o6G&Rk!tt=IJ1_r7&K`TM
zCB`H2$r6*s@b7=zP@qM$bV;-8Qby(??89qz92gDrlpL0ZuEql2DNVd>E&g5Vth(a8
zfsZ8UGXyP5JR`z1JJOsCiE7yuM$)>*89&wP0cJk-0AI$UF)JI}Z#XDqO1tK(gQxSR
zLrV)3lTI_)b<=hXEBP9-hH+IZ<~0AW<^VNjj6CX>=U~Wjl9RYI5pSen%BhiMn6jah
z*RG1lFyVU94Yd_@whfJcFd@NpA|DvKq;B4VU)yyXe&ujbL0xi$P?sEu(<Db6g1E**
z#<nvII)%@cl6%xAN8zY|)hEZXa{5WMSAIr1<EJh;%f2poys9pFqJ4IK@-&ME&lwgC
z>VMsInJQ%&OlfjA6rzu)E>%O4k})O7Z(y>JCh@2veS7sq6G{6pQTvFONd7>Z{8y8)
z#TNtphILzk#HP?RD8ZQ7eC3f;mAxDP<4B6CaW)VC$xk)cjSu;0sAeD-(xVSl^&`f0
zv-zr@f>i@&^V*+c-8SY^H-%}i@N$jNaL1#a(&)txFPPoZv{I_h;6ZybIDu6t-cqVR
zmct4q9?#-Emf~X;DJ@V+)jvt^uB7rqDxP;VRh5h-|Ir?*2X6f8(Lqr`5Jak9B=lG1
zbrFA|>P1lXl8KDvu-rLG=^6}HXR}+;{a`-rSii3Mh|LMy32s)EOEuwn7E8E{nK(T?
zWi0H{rThH*V<CRull`MThc4nk$~w;0a<B7$j+N3re@VkP!mGT`&xwIyFkn)xDGr&^
zbT2-O0Vt-}Qk>);{@h!2>MsBB=Lx}zZxftM31A^2Xa~kqTucelYzad6@L!&ZaC{9+
z@Xk?z7_9I8S$+?3<-ZxXW5*9YekiG8?=Quw@X5E(4=LDu82FSD@TXZxN?9C-6Y=5`
z7V_F~$dUlrbC0L_oW<fxQ4K9E7EjyeRU<!fJiL1?V$H5?86;6!2%*-YdIA6DPv()0
z`jOwmy3487EM3H4ur$Ae_SlsQgSzuom~W{bc3+u=6*k%fE{pg<4<59-1_{w1GFn3|
zM)OY^yY)D8Lzzg3!REW<4YXJ$KRThy?;s9%EC|2VILtK#o?LpG_y+ZBFduOu@c9(@
zv4#%Vm9UeB+b0&^b;!SDqD?JaYQe3I`?#&b=D3&xQ|k&T2pf@q6PMoTSRAj`^>};|
zZjaC{ilSz^Zc(LN$e_C!vM+j3Y0aZ2vg4F~)g@Rrg6WpSsz-t=2R47lTP(0(SQd;S
zZCYYGpi%KxPEOL?eidSR&>aKGOG;Q+apL4_f|se}Fr7tLyCS33b#w7loLv6Q>7gAL
zV6|aNg;0_B7KE)E>E&iTqZfktq0<)~*HQI1aMPKmy9Yrf$w8@Dgj<-o7hWr=p64%*
z=xg&!3fvaZMb9}-awd;DTkq0#{iigQNBtfi*9qEIcs@{5;(>s22UDui^a6Isg?|c~
zl82~E=@m`MZTu?tAT8jNcMs-Ee;=!Qk$!xZHTBZ^4<_dpXJ6wf+HEi&)HGgIk-|S|
znpN;r3YO=|0!7Qc5gt-ptLk@k!8vpQYeEu6Nqi9@-HWb{Zn#|&s99dE`C!k_O+TM6
zuC^36Ky8ZtAZF=U;ZM%k%oQkwjIOD2gq24YicrTvka;<En6jIm-$hvwg|SBq9)`A;
zm-QkQ$aAv#{(l)_i532LNh{;gzq|9@O%A;7T;~X7j+hsVHD)=C7cGQb#I4loE28kx
zi})J_-$2mdQLf<~&i55c_^|V#D!j}(ALR2lMPKSk#z|XlqHg&@$aAT8NaSCgf31Kv
zWuye!j*?=@8Ib~L+bOES)NwSD)nFkk)zZos_wBL0P1kME_{^*>yzi3lXi*4>i?k&T
z`Bx3D6kBsnm80CTQxx>C-VoXZ@)TNa;66m8xZXDKFZE!|2j)ZtCTrHnnPxZh@HHk4
z-|<Ih6@HHYG1}3eWXa?`E_~kkI5cpLKTZ(()#qQA0+b6<vGx!ux>^|<H!qBK98B!}
z_=rCb`YVmEDLI5rGI(e)60vj$6JH^QbRK;%Ekbb^&qSe``?7H3$34ei+;1B#e|ASz
z{c$y8AtgA@zq&ZRmy#e&NkAja6PK-ju_eet0;)g?TwMEfaUCT~;fa6s7gG5Azg{R%
z5-;dUrP1vy_nc?M3%0~1-Key*ba5Xgn~gWAMLG+U=zU|o6iLPgSr;eJl@X>XU5mDY
z`hAMtrHgW!(xo6ItifxZ{h&m%87f|_(%HcXY4h)(fAY)HwXUWWkJ$5HNLa;Rk-H`+
z5*_YA64B|bdrr1^(<afc;g2M`ND|fK4c?LiNktMp(C{Pj<bg^@_f~Qs)uh!kE3_I>
z#TI!hQCZggyDMlgUvZLc>ha?*HuqF%$MBDuZ(&8W<WjkiSdnBNE6|K*ynMH_BHvHp
zkPqv1WQ{I-Y@aK``PWyx20YGgJIpuC`=KypJ_?j;5rBq$k00umsh9<H(p8#ePytz9
zAGYl3pyvX{pmOm@i2))Xf~AwI&tf4kjL5+tD_3GLuxAjVGz9w`i!n~ysBaMURiZ9=
zg1VHb<B1xNep?gAH(u4Fem`EF;k+0F0Q3Jw9@`Qje9dRHbQ8AovX(?dA88q?UJSom
za*fAk(waoxrL|DC_%>hHIyz=MCVjJW=_yU=Z~wr)9Z<?Q?WA(rA?p9P<Lp~dlt7!&
z_<~J2B~FDn6qbwNh{%m~$kag|+U4ITv+}!@h+K?wjKTyu@nm@~%ICV%^gVYP`T%Y6
zxDWOOTj!vFoOxoL?aby-pt99-L2uzT*HUoB#PNF1P?AI16MoR_0N2$;xhbAzQEr8Z
zd#D~gkZ6sp;ghb1(%t3K>*1XjrCKcM;zf!**qM4rXNld86JpUJ9i&Qr_<C@BHw26C
z+vW9{qceplVIi-ZDL@IS%s!^xO2{G4)6^58SsGKkLa^jHn38yp8(xmX@J{yPMqkIB
zU181F@P#*m9G9S<s&aVwjX+N&_&T_nS7N){;6d-Ex%}dd&W?qYb{=nkGeCzAkkD4j
z!VteSEKrI5H>Y^{E^}ilDDKi^EVS{5=3}Xy-IfX-6?<=PQ8{`gYM56dpM9qfSF3gW
zmpg%We+;2$9(Z@Vo!cY|w)+MJnSkxQ-M#JwsT17TJB9e7?6oJdY@_AED#A)rQLz)P
zd>z2|B#q+euZ?yJX>|~B2+4*6dy1Qmv_w+`eu9Q_<Cyys1xsLj35;Hp7`3Cs`HyHp
z|E5u$!|uljK?87f_&l%?C<u3B8-V3N$|r8D0tkuZZ~g7*NN%3clYjL0^Dd)4n3_Il
z>cqE)eo)cw!4jv+4R*rsD%H>+<6cMMsgM-=5ra~uI!{d<mZDBNYG<cwH#L215?k-0
z(S=V<9+S?T$3C4l)!4;J@Nr&G!HIA8HYPX;-UT|J$MGGUT^xd#b{>1gGSq%ZN^(?N
zu1@TUTqCTh24xJ1>fq<%Jyf`EcioQJ4;Aj%-LYdrP$KJQ&yW!@OniHU!^pI;Hu3D4
zE=&<GcgmE4DLvA%qI;)|Nl%(Ke;Ql}Ryb|7BcI0Bvo-c4ewQZ-(z>_~73SK_wR3h3
zDtw%Kl4J6yr=#1%bP$}UW(-Ra9+zP&BKc7f&X0>I_^)N$wYzJ_oP)HF%NRsu^!kr7
zTvY!{A^%rB?yBypm~%mpb6X+WryY7wAEzY`Lz5*sP`fx!O-dP~MuW16g=x{flT|L0
zT=Wx*dQ;er8Z8iyLG(zb$6$I4p~p~qq|##;J%$HrQy%B8>yVZ_c({-|PY^4soP{|1
z%A0CofzW>1IyZdd=*G^kbK@P<`Nmc^p+qP&=4*tfgv*uRYJ@jcc<tR$7#kW7V<tDj
z6xZULHD_#5+MD8tbok#S<JTR9P6f&bY<j6Ff#u?}L>KWKeNVF+!z8-;yQ0Z3IoG~{
z$4guW=YIS1+(ciUhGj_8><!cHC)Z-5t2X`d&6zyMiOnmK_CK=AwPtq-15jRz>?YQx
zXV)hNvDR$KIKo|U?PQ@s;g?#zdzp%S*~(LVdE~;Mixc82XS)ku3c^BTkcY6i>k|0-
z2G`|ymN#5XzL2=E_Cg|d5$Jm5j#KR#4FM~>jK@5Lz@!z#IQX(5qjepnkvu4kd1$u5
zV;OF0WMe7R+u*tiv@4h=ENp<oYJ^{>ODRNLx7w?+m!}{IJyOQPs4Lq|X)v+Yn}n!A
zoBJGLJy3Y$Jy#p2dkH$>RpV?gVVL7gC8=?rmyqT-%^LRe7P<)^8i#lbYaAC_Nmsmu
z7aSK@!xMZ2UniM9{?Oes?)DM9jLUq45LMv7$|@gWjLI>~%GS{z#NdI({{8}2B@V3o
z$zK>C6wsw~+$+_x@S0uw?H=M3=EizB7qlB`z0UpUn}*UdjOFMCR7D=9Y-8`HyE8vL
zz{8xasXQT_t-0tdwYt)Xm+rSnm##>AYA$KBi|+UBnBPA;;hn<#7({11-pKjq@)z3t
z0&NwJTCfb?S<(qDdd%GI(Yvx8dhj8weWd;Jajea8hv>k(55>>vQ;8#3-r@_8HW@GD
znrxJ&o#Hh}_WCvS9fD!5wzx%G^cUUnB+;%H9aLn4YJbNP)odqr>DUhiR0|x_S6eLo
z{PnY4$~a5J_q)gEg!Qx6&mP|I_t`_F{lO2w+8$?d)-9;wb9QA*sp93)SIwbML`#=&
zo22->U3Sr)2kP<;SCfirSs|wRd(-k){YTx)wYZ4uJaLK#s-S%QsS{H$Uc^)M3Bq;b
zt<J);!cF7&Kq1mkp$nK)X-`xha~)gjqBmaUq1TOT0tJum1L<WT=#sMJYE!cIVlG8=
zM8p(%4aTwDDZqFxPzZ4RhUkA7?YjsAIw-^FTYS`J9Y(*eGp2PBo-Vi#%Iy?=h=4Co
z4uIXPE4`iPon4gh@J;;3fz9|-=N4t60oz2gt7gZ~Cbj^hup{~qmv<k1n?s+p?t7%_
z?%6maf)Y66*R5|y>?T@|h?;*y+iEHYGuq~}X-6>bDqlfQZbGC=Q~HI%V@E8oIECBp
zwrqP?KK!b&sf*wl6{*E$L^JI>?4pNs{KoqKkzb3!UQep2+V-Hu=oTdCdpxbAqO`l{
zp`>c3skD{xXt(iUxeGeV-Z-kO;P3Jq?kCe$jw~DVy9$%M6}z{x1r6V7ZM`4Ypbb84
zF*bJ<5|ZxFZRTji!V#y9BXYBuW_hhy6@5x-oM`R#2&q<#rc15PV4P6&_d}{_=}`DP
zYf_9a=mpVf5XCOMYWz(v^swG#d$jug*W&vel0UKdE>0l#o#l01Lmo0BeC2YCB?NFM
zO}Xc;M92?FExv<>RKdAtxO?mfU)EjmWi!R`RPx0usNVIOOZGMAwZ+EbU_n<v)o!L0
zwA5&=w!>=d%H$LGW^l{>acRKx-|Wi7=u^8O1$GhiKa+Ic_jkUJR8>sE>5G6%HTGAN
z%(riv|B=r@uT0oa!08P_QtQR%tZ&=!X7mgZ0%P7oXklaVen*^`UA0Ee2kDTwg5>an
z9BE=BZO#948LOW^D0IV^6CwntR<|0Z5FtFO0!<d)=yRP;3IeSs1wJ`pVw_?v=^I%I
zDcdfA%Ns5m&xZ)Xszt4p?Lq~EpsK%W{4h-T1fw)2T<8^R0dw1zmm${NI*Xs82I4AP
zh7HYa88$Dbx|xk1hYPW)Z<~z`;X=Hs_=-{6O&F$f9$PuFn=oBa4Qn;->MnFw`L`O)
z-31?&&}wvy5QaFl&;_dYe;LywgvkLJsK%5ka!kt>>;0fO=wuJkITb8RFB%U=2%S{E
zEygPm!czq&a4!JgmgMQhSVWuOGsNo+qnvS8q^X>PZyJ9agD)Ju1rO~6xS5{F((EA)
zLyBe`XIhkdPg5xUfYdsB0Xmg`2j@>YK~;rRr+lQxW<Z{c*qKs<BE_N-MXq>_-J@Gm
z^ARJj|Fg0xQrPR*VH2)a;b7}m+^mYX<VVWKjqk?@KA~IMn$7GZA3KYM-J$r%yhtcX
zI7yHxuBJ@hKWqFcM%d!9g$`5k2?f43hY$=`>%HaQj7wrMtyUX1#0qaYH4=Nw8DqCT
zLP&?d>E-5W=vY)fWZvIooZd&scTz5u6`eMo=_5=K1{&k~3eP7MU|z>5i54q{b-4&<
z8)gS(<5=BcS2fPvv!&QKh*<A17e8dkQuN)j*Dat#xRWcn=6M;<_7%pd3cZYd<Ak7R
z3W+Vd821nG|8ffNtMaskSnGKrgLe=^cJ@)QBR(d36x37xC5TR=z}pC@n0Z*81M>Vl
zPUsq<q}*|!rb(3@%<Rfi1R;AJv1@khNz7hH{B;g*c^O;dgz3ZSt1Zo96GW|=c1hXb
zn?yJ1o=02YUeaAlzN`2u5ssdKIWl|hq`TA64R@}ki6und3G(DD>_K!nW&F6G5bEZ2
z5<PQT+(wb}PZ*E(6QVjPW-$kxR_pMo0Ud&`r^p?&zqQ=hslO0fu!|B{8fp2NhzNY}
zs1tu9ni(|fW<Vi?lqch>TeE1GU@u;y*u#iL>388&k&<cB#CCK!ZwJV@eUX%HaHa0h
z?C_v=miE^)*%zH-tql8k+Td2WlI`}(pIk(aIxosHfzr-LTKE`^a;dSgzYx-21Hp^;
zj#QirlME%4Q_QrZM?2T_7hT=l1xCztlcK^AwT5C6*ClEy;|2)r94n_L2{|2yb?bm5
z96$~Hg9+v;@H=o6__Ujb`NuwnXAcc~8z9<C-8F1&1isFT!cJH(4g1sRF;@84?nGw|
z7MsSXLxPj>kFi1*yAOhhkVH;4{aJt2jHb0Wb=GaoS<lamjPB95M|5ONOymnQqMz*@
zo82q2S5$Pb=;+>2Q=|Jt_wL=-_*#Y_FV#9%j?Wb4x~g0}jXystM5>%TD^<@4ZoP$f
zD?1p4=$<MsUt>z0U{QS(XdGNGysH~QlfWDQL|4CeH2Zs62V_@eS2ooP%e=u-nb#zw
YYuayB1*<yxS!UkWI9E2b2tBm_525=UFaQ7m
diff --git a/pc-bios/q35-acpi-dsdt.aml b/pc-bios/q35-acpi-dsdt.aml
new file mode 100644
index 0000000000000000000000000000000000000000..8cdd84791af9956b6cf6389cc6bb07b050d4dcbc
GIT binary patch
literal 8374
zcmbtZ&2JmW9i8Qev|3WqQle#9{!&#SfZe1eB}Z)!1;qUzDVvhlBps)qkzLA3p~65x
zqzMqm2q39N?da0RYJy%0Pyx@$t=Hz*V{Se4(*6r68tWAG{bqLPnU$bGG7rn&n|bfI
z`*z8F+@aU<+JBp8%(&;g8Mur&Z+aMEEX5dGU2iw0$EN1()y#d?+47uPXyj5EqqCjk
zH8ze}eARRA){MVwMxRB|dru;x+hZG_+n;W9d%t@cZ7?FeztOWSD(q`v%LzMMf!k^u
zIrfE>=e1+x@?TI}j5{lVyXu%`u<BM>F(2aH=xq|R8{cyEj`uAnB{QtAdil!NmT88r
zsM2Ow@tVvG@2+}=*}5A9%yiq$1}l1F;q8{2*?q`d?_RlI9o^e3Oj~wm?O#jJuU=aD
z?B08ouYU2*U+q4$G9WDC-NgG+j{x<dVu@Nkrj2!(wtf5A-mi_1FjMC2a)0L8p5%#P
zn<jfirt$r}7^Pj52M^7l*$$>|{dQ|Am&qL-vc~!?pNZN)U1d{w8n;paH3`xHbv8Ag
z$sZmXj5OfIh*Tg>h&iqURYFptKj-4=3T})@DXA&Om7sDZASvZu(p)KzAk9cAscE4E
zl`8>Bi6i2B$#A7Sf(%zmYDOsK!2_y3vzpH=S4wJDDCNNesy;_FpCeo;sUx~iK-K4{
z=5ti@IjZ{vRDGJ7PgC=0>OKKgpJSTOG0o?g?h{b;X=y$!&8MaN1XO+IG@m)mXHNGC
zsQS!nKJ%K-yzUcF^*OHj9M^n~>plThpA(wT3C-t(?h{b;IjQ-a)O=3rJ^@vqw&v5;
zeA>ECK-FhK^I6b*7IdG0s?RCS=alAiO7{t<`kdB$PHR4=b)SH$&!XnDsQE1FJ^@vq
z=QN+^G@s{mpMa{*8O`U6=5t2(38?x!ulYQ$`8==t1XO*_YCdN*pR>A8K-K33uB^oO
zvkP45#5cPOLg~JMr1WC$oTi-9lykZgP*q;klovJSMO_J~DlciuOPcbMt^`z-mo?>O
zO?g>Y0;<X@Tq*DISGZE%<F5#%ym14PQYOh&ZJ$@QeO}e~2`KhS0a{T4wANb1u6dXm
zsIlWXKmo8@0nz|+rwCBNlL0D-GBHzvDj_MQH3X>O$^ccU6rh4S3{XHE4d)_21vf@?
zr06OWla%s|QGf#C&^Z?YD!4I<J#r-lsGv%y`b2<=wp@t-Rj3r8fHD;+Kmnys1gPM0
zB?45TQh*97-zNnqp!A6V6<n@FfGSi9P(kHN3Q$1l69Fo?T!{cxs1%@r%9RwLfbx1G
zKn0g85ugf{0#s1Bk^&S^`b2;VE>|Kz6)FX&pmHSzD4_I-02N%WM1U$(3Q$4iN(xXw
z=@S7exLk<<Rj3r8g36T?pn%dR0#tCh5&^1EDL@64D=9z$rB4K?;BqAbRH0IU3MyAp
zfC5UN2vEW0N(87vr2rLFuA~43ls*xlg3FZ%P=!hXDyUpZ0SYL6B0vR~D-oayl>$^y
zxsn1DQ2IoG3NBY7Kou$lsGxEs1t_5Oi2xN`u0((;R0>c*<w^=rK<N_!D!5#U09B|I
zpn}Sk6rh08CjwM(xe@`YP$@tKl`APg0i{m_sNixX0#u<=fC?&CQh)+Vp9oOF<w^vo
zLZtu|RIa1|1(ZG!pn}Vl2vCJe0V=3mNdXEdeIh`ClmG=%0~AmVP(UR>6(s^xQBr^^
zN(xX#i2zlU2v9{y0jek|KoundR8b;86(t3zqND&-ln78oi2zlU6rhTd0#s2VK!N1d
zMSud~it&?40SbuAAR#H`xkZ2i$#aVU1(N5M0u)f5TMAG>j}_-aL@4X$_xRKHfF4Nq
zN9e6$uU!5yJ#F(RZMW&S3eKqYo2TO}h1(WhhqN(j#zFodZ<rW2@<=wuo@4qTKg8pB
zu4U}MPw;6I^Nd;S@DMjm{z@@EgB<3se;*$H{X0>9b>$H=-RAO*!je_m{m~1#nBKzM
zA-x0~ZfX1xE4qcyZMIlv`?}**+L@r#3Rkf8`L;pZG9M}Pkur^Rw%rVo(;zqIv8iL@
zQ{_|DpsInYOtWR0Ez@k7X3I2N#_TSgDeHdFT3Qrk6!@~-3>r&|J?c)=DEtOZqG&W|
zsz3dwJ?hSATW14mwSP17M>+}CM9^BkA<CJ+m*p!#WBEo8^pK`e_#sWAXoNKNd+I^@
zXb{;eV`BBBZq@_8EmuzrteIf71j{@1puNU$^}hZt$8a`m!qac~>)w3O^uqb#a@cBD
zSdT`c9u0Lrj4V6q=Rett*j|K{iUI3Se6rVNf9~elfBu&puz@v+wV7tCP_zmQ8RHMg
zXX?-JOXd-?S6&-_!a6(G->6kWzI=m2Fj&zHTV;<8c(EvpB`P{QwQG&Q9g?r&*n`#P
zos<<}Icd8@wGlM$RPgigjzb%lHlE2~<c?2ul{Pin)XmNont3T}%Sv^&=c#7y?X?P4
zHt^=q0!PsHQY=;Vz~W>-W$h4o4rHIX6@T4u9c*wp*Nv)&O=st|W}A*stWf2!B1LCm
z);d=+daTFn)B=5X-evEy)W{<^@-nv^Z^%!li?~)e**Jg2Yy6XJw%3ACG>BNl45;5`
zZ{vL-g;P18+0M?=+U>i;CX>@jlM6}{)5<O|dnl@A;cU2=Hp+^#;yRO&s6T>hJ7D`6
zI+9mK6X$NVRJdr(){Jk`-=tZlW;{<n$9Y;<Vb?QsFhuC=+{)m@4UZ->>`P}!@B0I#
zuWgOjj1STuq)l^S>qWCl78j!|&u7*UD}3@$=@NWT%Y*bmnwbmsi<S<xTuijIQp29O
zqTkmub&x_&Q}(pIzlv|z+5{eKDzbGR-vRoDnYh=s3NzO9#}jNUji2PW6Ea43Lfo)k
z5hvZsMg0qpt*y7-`bnDZy!1K8r?k@TS!4JP<HO*sw%A9>>7#<8pAly@Xf{iQ2`l&U
z2pco#KKqF6(wLQ{&&=Z^ohGARL^BA1W~unYu+?lCyPJaDqlu)Vv%~E=3A?yNXSVB{
zY}Ywr*EyqI$2zTDr?az8SJzG0wNfwP*FD*<d&IAMM!)W<{kpMVFX<Ptapvpmo$S{;
z;@3N)U+>g@z1Xjx^qYAJzy8U7{Ud(;Gy3&U?bna}R+E0SFX6X(vft_vztuDPt)AL%
zHTGLe`W<-*zqOP7){gkCozZXY)P8HR-+I#T=u7ympX|4O#BcqKe(R_9Tkq`DGxQvk
z@EfPE3_>hPQ0mU`j2sN}F&-Y_sTX%j23w*NmMD(v6c1~il9`d{ge8mPI>p0Ur{vu@
z(Fsc!$90N_wNA<VT%r?}G>+>O4{M#0caTIUEO8vyDIV53CBK`APFV6du2Vd$bxMBf
z6P@r-dR(V?Sah;$6ZE65__`acRSf*4?FP5kH(Asx<Sdh6sghpZ-saP;m16uY&3X|~
zh7G#KIXA!`-7i%AY=mFZ`)NGaSZ?6oOm!Blf8g<@$^Q=j(wgsV=Q+S8T(OHcM^Ly7
zk6W$q9sIA}W6|f;?5EKaI*Pb$#JYX!ab%6M4>ydB{XB->!IK%D#y5J8Hw^Zmzwm6Y
z`=IxLA9}?4*4_hSy<PofWbB*#-Acb7*=tr<3&h7^yy6C{rBZ2`p1vBT5*rvr8%3Gj
y7f)<BCO)%BGelXE#SK}!E{kPZ{8Sb{lf}<vfhQf&$B~6A3q0|ODPI;<6#obK<-TeF
literal 0
HcmV?d00001
diff --git a/roms/seabios b/roms/seabios
index b1c35f2..3d11108 160000
--- a/roms/seabios
+++ b/roms/seabios
@@ -1 +1 @@
-Subproject commit b1c35f2b28cc0c94ebed8176ff61ac0e0b377798
+Subproject commit 3d11108f45818d75140530a184c05680f1be51ad
--
1.7.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PATCH 2/3] configure: also symlink *.aml files
2012-12-03 10:11 [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update Gerd Hoffmann
2012-12-03 10:11 ` [Qemu-devel] [PATCH 1/3] seabios: update to 3d11108f45818d75140530a184c05680f1be51ad Gerd Hoffmann
@ 2012-12-03 10:11 ` Gerd Hoffmann
2012-12-03 10:11 ` [Qemu-devel] [PATCH 3/3] acpi: autoload dsdt Gerd Hoffmann
2012-12-03 18:47 ` [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update Jason Baron
3 siblings, 0 replies; 17+ messages in thread
From: Gerd Hoffmann @ 2012-12-03 10:11 UTC (permalink / raw)
To: qemu-devel; +Cc: jbaron, Gerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
configure | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/configure b/configure
index 994f731..8483388 100755
--- a/configure
+++ b/configure
@@ -4190,6 +4190,7 @@ FILES="$FILES pc-bios/spapr-rtas/Makefile"
FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
for bios_file in \
$source_path/pc-bios/*.bin \
+ $source_path/pc-bios/*.aml \
$source_path/pc-bios/*.rom \
$source_path/pc-bios/*.dtb \
$source_path/pc-bios/openbios-* \
--
1.7.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PATCH 3/3] acpi: autoload dsdt
2012-12-03 10:11 [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update Gerd Hoffmann
2012-12-03 10:11 ` [Qemu-devel] [PATCH 1/3] seabios: update to 3d11108f45818d75140530a184c05680f1be51ad Gerd Hoffmann
2012-12-03 10:11 ` [Qemu-devel] [PATCH 2/3] configure: also symlink *.aml files Gerd Hoffmann
@ 2012-12-03 10:11 ` Gerd Hoffmann
2012-12-03 18:47 ` [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update Jason Baron
3 siblings, 0 replies; 17+ messages in thread
From: Gerd Hoffmann @ 2012-12-03 10:11 UTC (permalink / raw)
To: qemu-devel; +Cc: jbaron, Gerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
hw/pc.c | 23 +++++++++++++++++++++++
hw/pc.h | 1 +
hw/pc_piix.c | 1 +
hw/pc_q35.c | 1 +
4 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/hw/pc.c b/hw/pc.c
index 2b5bbbf..2547c26 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -877,6 +877,29 @@ void pc_cpus_init(const char *cpu_model)
}
}
+void pc_acpi_init(const char *default_dsdt)
+{
+ char *filename = NULL, *arg = NULL;
+
+ if (acpi_tables != NULL) {
+ /* manually set via -acpitable, leave it alone */
+ return;
+ }
+
+ filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, default_dsdt);
+ if (filename == NULL) {
+ fprintf(stderr, "WARNING: failed to find %s\n", default_dsdt);
+ return;
+ }
+
+ arg = g_strdup_printf("file=%s", filename);
+ if (acpi_table_add(arg) != 0) {
+ fprintf(stderr, "WARNING: failed to load %s\n", filename);
+ }
+ g_free(arg);
+ g_free(filename);
+}
+
void *pc_memory_init(MemoryRegion *system_memory,
const char *kernel_filename,
const char *kernel_cmdline,
diff --git a/hw/pc.h b/hw/pc.h
index 2237e86..9ecccbb 100644
--- a/hw/pc.h
+++ b/hw/pc.h
@@ -79,6 +79,7 @@ void pc_register_ferr_irq(qemu_irq irq);
void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
void pc_cpus_init(const char *cpu_model);
+void pc_acpi_init(const char *default_dsdt);
void *pc_memory_init(MemoryRegion *system_memory,
const char *kernel_filename,
const char *kernel_cmdline,
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index aa3e7f4..dbf5663 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -87,6 +87,7 @@ static void pc_init1(MemoryRegion *system_memory,
void *fw_cfg = NULL;
pc_cpus_init(cpu_model);
+ pc_acpi_init("acpi-dsdt.aml");
if (kvmclock_enabled) {
kvmclock_create();
diff --git a/hw/pc_q35.c b/hw/pc_q35.c
index 3429a9a..7a8d6fe 100644
--- a/hw/pc_q35.c
+++ b/hw/pc_q35.c
@@ -87,6 +87,7 @@ static void pc_q35_init(QEMUMachineInitArgs *args)
qemu_irq *cmos_s3;
pc_cpus_init(cpu_model);
+ pc_acpi_init("q35-acpi-dsdt.aml");
kvmclock_create();
--
1.7.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-03 10:11 [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update Gerd Hoffmann
` (2 preceding siblings ...)
2012-12-03 10:11 ` [Qemu-devel] [PATCH 3/3] acpi: autoload dsdt Gerd Hoffmann
@ 2012-12-03 18:47 ` Jason Baron
2012-12-04 7:40 ` Gerd Hoffmann
3 siblings, 1 reply; 17+ messages in thread
From: Jason Baron @ 2012-12-03 18:47 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: qemu-devel
On Mon, Dec 03, 2012 at 11:11:55AM +0100, Gerd Hoffmann wrote:
> Hi,
>
> Most q35 seabios patches just landed upstream. So here we go with a
> last-minute pull to plumb the missing q35 bits. It obviously updates
> seabios again. It also adds autoloading for the acpi dsdt table.
>
> With this pull "qemu -M q35" JustWorks[tm].
>
> please pull,
> Gerd
>
Hi,
Feel free to add my Acked-by: Jason Baron <jbaron@redhat.com>
to the series.
I've just been looking at WindowsXP support and there are a few issues
that need to be resolved to make it work with the current q35 code.
1) legacy ide mode
I can currently create a ide controller on the command-line using
'-device'. However, on the real h/w there is an IDE compatibility mode
which essentially advertises an ide controller at the same location that
the ahci lives at. In fact, it changes the PCI device id. To deal with
the fact that AHCI has 6 ports and thus 6 possible devices, it then adds
a second controller for the remaining 2 disks. This shouldn't be too
hard to emulate. But I'm wondering what we want the qemu interface
to look like? A -machine options such as:
'-machine q35,diskmode=ahci,ide,raid'?
2) HPET ACPI error
This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the
folloing ACPI message (removing it makes it go away):
"
A problem has been detected and windows has been shut down to prevent damage
to your computer.
If this is the first time you've seen this Stop error screen,
restart your computer. If this screen appears again, follow
these steps:
Check To be sure you have adequate disk space. If a driver is
identified in The stop message, disable the driver or check
with the manufacturer for driver updates. Try changing video
adapters.
Check with your hardware vendor for any BIOS updates. Disable
BIOS memory options such as caching or shadowing. If you need
to use safe mode to remove or disable components, restart your
computer, press F8 To select Advanced startup opTions, and then
select safe mode.
Technical information:
*** STOP: Ox0000007E (OxFFFFFFFFC0000005,OxFFFFFADF8FCEDA83,OxFFFFFADF90631540,O
xFFFFFADF90630F50)
*** acpi.sys - Address FFFFFADF8FCEDA83 base at FFFFFADF8FCDA000, DateStamp
42435eae
"
3) irq table
The irq table commit that makes windows 7 work, upsets Windows XP. If
I back out seabios commit: 2114f50148c42e374586359d23b522483ca10e8d
I do not get the following error:
"
A problem has been detected and windows has been shut down To prevent damage
to your computer.
If this is The first time you've seen this stop error screen,
restart your computer. If this screen appears again, follow
these steps:
The BIOS in this sysTem is not fully ACPI compliant. Please contact your
system vendor for an updated BIOS. If you are unable to obtain an
updated BIOS or the latest BIOS supplied by your vendor is not ACPI
compliant, you can turn off ACPI mode during textmode setup. To do this,
press The F7 key when you are prompted To install storage drivers. The
system will not notify you that the F7 key was pressed - it will silently
disable ACPI and allow you to continue your installation.
Technical informaTion:
*** STOP: 0x000000A5 (Ox0000000000010006,OxFFFFFADF9C461108,0x0000000000000000,0
x0000000000000000)
"
Thanks,
-Jason
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-03 18:47 ` [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update Jason Baron
@ 2012-12-04 7:40 ` Gerd Hoffmann
2012-12-04 7:46 ` Jan Kiszka
` (2 more replies)
0 siblings, 3 replies; 17+ messages in thread
From: Gerd Hoffmann @ 2012-12-04 7:40 UTC (permalink / raw)
To: Jason Baron; +Cc: Jan Kiszka, qemu-devel
Hi,
> 1) legacy ide mode
>
> I can currently create a ide controller on the command-line using
> '-device'. However, on the real h/w there is an IDE compatibility mode
> which essentially advertises an ide controller at the same location that
> the ahci lives at. In fact, it changes the PCI device id. To deal with
> the fact that AHCI has 6 ports and thus 6 possible devices, it then adds
> a second controller for the remaining 2 disks. This shouldn't be too
> hard to emulate. But I'm wondering what we want the qemu interface
> to look like? A -machine options such as:
> '-machine q35,diskmode=ahci,ide,raid'?
I'm wondering whenever we want to deal with that at all?
"If your guest is too old to handle ahci natively, just stick to piix."
is a sensible policy IMHO.
> 2) HPET ACPI error
>
> This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the
> folloing ACPI message (removing it makes it go away):
Hmm. That was added to make macos x happy and is also present on real
hardware, so I'm wondering what is going on here.
> 3) irq table
>
> The irq table commit that makes windows 7 work, upsets Windows XP. If
> I back out seabios commit: 2114f50148c42e374586359d23b522483ca10e8d
> I do not get the following error:
>
> "
> A problem has been detected and windows has been shut down To prevent damage
> to your computer.
>
> If this is The first time you've seen this stop error screen,
> restart your computer. If this screen appears again, follow
> these steps:
>
> The BIOS in this sysTem is not fully ACPI compliant. Please contact your
> system vendor for an updated BIOS. If you are unable to obtain an
> updated BIOS or the latest BIOS supplied by your vendor is not ACPI
> compliant, you can turn off ACPI mode during textmode setup. To do this,
> press The F7 key when you are prompted To install storage drivers. The
> system will not notify you that the F7 key was pressed - it will silently
> disable ACPI and allow you to continue your installation.
>
> Technical informaTion:
>
> *** STOP: 0x000000A5 (Ox0000000000010006,OxFFFFFADF9C461108,0x0000000000000000,0
> x0000000000000000)
> "
Jan, this is your commit, any idea?
cheers,
Gerd
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-04 7:40 ` Gerd Hoffmann
@ 2012-12-04 7:46 ` Jan Kiszka
2012-12-04 14:37 ` Jason Baron
2012-12-04 14:42 ` Gabriel L. Somlo
2 siblings, 0 replies; 17+ messages in thread
From: Jan Kiszka @ 2012-12-04 7:46 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: Jason Baron, qemu-devel@nongnu.org
On 2012-12-04 08:40, Gerd Hoffmann wrote:
> Hi,
>
>> 1) legacy ide mode
>>
>> I can currently create a ide controller on the command-line using
>> '-device'. However, on the real h/w there is an IDE compatibility mode
>> which essentially advertises an ide controller at the same location that
>> the ahci lives at. In fact, it changes the PCI device id. To deal with
>> the fact that AHCI has 6 ports and thus 6 possible devices, it then adds
>> a second controller for the remaining 2 disks. This shouldn't be too
>> hard to emulate. But I'm wondering what we want the qemu interface
>> to look like? A -machine options such as:
>> '-machine q35,diskmode=ahci,ide,raid'?
>
> I'm wondering whenever we want to deal with that at all?
>
> "If your guest is too old to handle ahci natively, just stick to piix."
> is a sensible policy IMHO.
>
>> 2) HPET ACPI error
>>
>> This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the
>> folloing ACPI message (removing it makes it go away):
>
> Hmm. That was added to make macos x happy and is also present on real
> hardware, so I'm wondering what is going on here.
>
>> 3) irq table
>>
>> The irq table commit that makes windows 7 work, upsets Windows XP. If
>> I back out seabios commit: 2114f50148c42e374586359d23b522483ca10e8d
>> I do not get the following error:
>>
>> "
>> A problem has been detected and windows has been shut down To prevent damage
>> to your computer.
>>
>> If this is The first time you've seen this stop error screen,
>> restart your computer. If this screen appears again, follow
>> these steps:
>>
>> The BIOS in this sysTem is not fully ACPI compliant. Please contact your
>> system vendor for an updated BIOS. If you are unable to obtain an
>> updated BIOS or the latest BIOS supplied by your vendor is not ACPI
>> compliant, you can turn off ACPI mode during textmode setup. To do this,
>> press The F7 key when you are prompted To install storage drivers. The
>> system will not notify you that the F7 key was pressed - it will silently
>> disable ACPI and allow you to continue your installation.
>>
>> Technical informaTion:
>>
>> *** STOP: 0x000000A5 (Ox0000000000010006,OxFFFFFADF9C461108,0x0000000000000000,0
>> x0000000000000000)
>> "
>
> Jan, this is your commit, any idea?
Not really. This is looong ago. I hacked it in to make Win7 happy, but I
may not have tested WinXP by that time.
Jan
--
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-04 7:40 ` Gerd Hoffmann
2012-12-04 7:46 ` Jan Kiszka
@ 2012-12-04 14:37 ` Jason Baron
2012-12-04 15:37 ` Gerd Hoffmann
2012-12-04 14:42 ` Gabriel L. Somlo
2 siblings, 1 reply; 17+ messages in thread
From: Jason Baron @ 2012-12-04 14:37 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: Jan Kiszka, somlo, qemu-devel, anthony
On Tue, Dec 04, 2012 at 08:40:27AM +0100, Gerd Hoffmann wrote:
> Hi,
>
> > 1) legacy ide mode
> >
> > I can currently create a ide controller on the command-line using
> > '-device'. However, on the real h/w there is an IDE compatibility mode
> > which essentially advertises an ide controller at the same location that
> > the ahci lives at. In fact, it changes the PCI device id. To deal with
> > the fact that AHCI has 6 ports and thus 6 possible devices, it then adds
> > a second controller for the remaining 2 disks. This shouldn't be too
> > hard to emulate. But I'm wondering what we want the qemu interface
> > to look like? A -machine options such as:
> > '-machine q35,diskmode=ahci,ide,raid'?
>
> I'm wondering whenever we want to deal with that at all?
>
> "If your guest is too old to handle ahci natively, just stick to piix."
> is a sensible policy IMHO.
>
There was some discussion of trying to make q35 the default for 1.4, in
which case it may be important to support older OS's such as WinXP.
Anthony, do you have any opinion on this?
> > 2) HPET ACPI error
> >
> > This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the
> > folloing ACPI message (removing it makes it go away):
>
> Hmm. That was added to make macos x happy and is also present on real
> hardware, so I'm wondering what is going on here.
>
I also noticed that on Windows 7, the 'IRQNoFlags' line above makes the RTC
clock complain that it does not have resources available. While removing the
above line, removes that error.
thanks,
-Jason
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-04 7:40 ` Gerd Hoffmann
2012-12-04 7:46 ` Jan Kiszka
2012-12-04 14:37 ` Jason Baron
@ 2012-12-04 14:42 ` Gabriel L. Somlo
2012-12-04 15:11 ` jbaron
2 siblings, 1 reply; 17+ messages in thread
From: Gabriel L. Somlo @ 2012-12-04 14:42 UTC (permalink / raw)
To: qemu-devel; +Cc: rene, jan.kiszka, jbaron, agraf, kraxel, anthony
On Tue, 04 Dec 2012 08:40:27 +0100 Gerd Hoffmann wrote:
>On Mon, 3 Dec 2012 13:47:04 -0500, Jason Baron wrote:
>> 2) HPET ACPI error
>>
>> This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the
>> folloing ACPI message (removing it makes it go away):
>
> Hmm. That was added to make macos x happy and is also present on real
> hardware, so I'm wondering what is going on here.
Without that line, OS X only works as a single-core, non-SMP guest.
This is the "legacy replacement irq mapping" option for HPET (section
2.4.2, page 24 of the IA-PC HPET Specification).
The options are 'IRQNoFlags () {2, 8}' for "APIC mapping" or
'IRQNoFlags () {0, 8}' for "8259 mapping". Either one works for SMP + OS X.
I don't have an XP install image anymore, but does replacing 2,8 with
0,8 help ?
On a few of my machines, this is actually coded as
IRQNoFlags ()
{0} /* or 2 */
IRQNoFlags ()
{8}
Based on my reading of the ACPI manual, this should be syntactically
equivalent to the the comma-separated single-line format we're currently
using, but could it be that WinXP is picky about the specifics ?
Also, as far as I can tell, this change never made it into the
"q35-acpi-dsdt.dsl" file, just the "classic" acpi-dsdt.dsl (or, lately,
acpi-dsdt-hpet.dsl). I was about to submit another patch for that, but
now I guess I won't press it until we sort this out :)
--Gabriel
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-04 14:42 ` Gabriel L. Somlo
@ 2012-12-04 15:11 ` jbaron
2012-12-04 15:39 ` Gabriel L. Somlo
0 siblings, 1 reply; 17+ messages in thread
From: jbaron @ 2012-12-04 15:11 UTC (permalink / raw)
To: Gabriel L. Somlo; +Cc: rene, jan.kiszka, agraf, qemu-devel, kraxel, anthony
On Tue, Dec 04, 2012 at 09:42:44AM -0500, Gabriel L. Somlo wrote:
> On Tue, 04 Dec 2012 08:40:27 +0100 Gerd Hoffmann wrote:
> >On Mon, 3 Dec 2012 13:47:04 -0500, Jason Baron wrote:
> >> 2) HPET ACPI error
> >>
> >> This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the
> >> folloing ACPI message (removing it makes it go away):
> >
> > Hmm. That was added to make macos x happy and is also present on real
> > hardware, so I'm wondering what is going on here.
>
> Without that line, OS X only works as a single-core, non-SMP guest.
> This is the "legacy replacement irq mapping" option for HPET (section
> 2.4.2, page 24 of the IA-PC HPET Specification).
>
> The options are 'IRQNoFlags () {2, 8}' for "APIC mapping" or
> 'IRQNoFlags () {0, 8}' for "8259 mapping". Either one works for SMP + OS X.
>
> I don't have an XP install image anymore, but does replacing 2,8 with
> 0,8 help ?
>
no.
> On a few of my machines, this is actually coded as
>
> IRQNoFlags ()
> {0} /* or 2 */
> IRQNoFlags ()
> {8}
>
> Based on my reading of the ACPI manual, this should be syntactically
> equivalent to the the comma-separated single-line format we're currently
> using, but could it be that WinXP is picky about the specifics ?
>
Didn't seem to help either. I also tried having just a single irq from
0,2,8, and that didn't work either. The only thing that seems to make XP
happy is completely removing that line. So I'm not sure what is wrong.
> Also, as far as I can tell, this change never made it into the
> "q35-acpi-dsdt.dsl" file, just the "classic" acpi-dsdt.dsl (or, lately,
> acpi-dsdt-hpet.dsl). I was about to submit another patch for that, but
> now I guess I won't press it until we sort this out :)
>
q35-acpi-dsdt.dsl is the current sebios tree does:
#include "acpi-dsdt-hpet.dsl"
Thanks,
-Jason
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-04 14:37 ` Jason Baron
@ 2012-12-04 15:37 ` Gerd Hoffmann
2012-12-04 15:57 ` Gerd Hoffmann
0 siblings, 1 reply; 17+ messages in thread
From: Gerd Hoffmann @ 2012-12-04 15:37 UTC (permalink / raw)
To: Jason Baron; +Cc: Jan Kiszka, somlo, qemu-devel, anthony
Hi,
>>> '-machine q35,diskmode=ahci,ide,raid'?
>>
>> I'm wondering whenever we want to deal with that at all?
>>
>> "If your guest is too old to handle ahci natively, just stick to piix."
>> is a sensible policy IMHO.
>>
>
> There was some discussion of trying to make q35 the default for 1.4, in
> which case it may be important to support older OS's such as WinXP.
>
> Anthony, do you have any opinion on this?
The fundamental issue is that you have either good compatibility (makes
old guests happy) or good performance (makes modern guests happy) by
default. Picking a default which makes everybody happy is impossible.
That problem doesn't change no matter whenever the choice is piix vs.
q35 or q35+ide vs. q35+ahci.
management apps (using libosinfo) can tackle this in a sensible manner
by picking virtual hardware depending on the guest capabilities. So I
wouldn't worry too much on qemu level.
>>> 2) HPET ACPI error
>>>
>>> This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the
>>> folloing ACPI message (removing it makes it go away):
>>
>> Hmm. That was added to make macos x happy and is also present on real
>> hardware, so I'm wondering what is going on here.
>>
>
> I also noticed that on Windows 7, the 'IRQNoFlags' line above makes the RTC
> clock complain that it does not have resources available. While removing the
> above line, removes that error.
Hmm. The IRQNoFlags for the RTC isn't new though, but I can see that
with win7 on piix too.
cheers,
Gerd
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-04 15:11 ` jbaron
@ 2012-12-04 15:39 ` Gabriel L. Somlo
2012-12-04 16:56 ` Gerd Hoffmann
0 siblings, 1 reply; 17+ messages in thread
From: Gabriel L. Somlo @ 2012-12-04 15:39 UTC (permalink / raw)
To: jbaron; +Cc: rene, jan.kiszka, agraf, qemu-devel, kraxel, anthony
On Tue, Dec 04, 2012 at 10:11:38AM -0500, jbaron@redhat.com wrote:
> > I don't have an XP install image anymore, but does replacing 2,8 with
> > 0,8 help ?
> >
>
> no.
>
> > On a few of my machines, this is actually coded as
> >
> > IRQNoFlags ()
> > {0} /* or 2 */
> > IRQNoFlags ()
> > {8}
> >
> > Based on my reading of the ACPI manual, this should be syntactically
> > equivalent to the the comma-separated single-line format we're currently
> > using, but could it be that WinXP is picky about the specifics ?
> >
>
> Didn't seem to help either. I also tried having just a single irq from
> 0,2,8, and that didn't work either. The only thing that seems to make XP
> happy is completely removing that line. So I'm not sure what is wrong.
I got one more thing to try:
diff --git a/src/acpi-dsdt-hpet.dsl b/src/acpi-dsdt-hpet.dsl
index d5aa3f1..8385ce4 100644
--- a/src/acpi-dsdt-hpet.dsl
+++ b/src/acpi-dsdt-hpet.dsl
@@ -23,12 +23,17 @@ Scope(\_SB) {
}
Return (0x0F)
}
- Name(_CRS, ResourceTemplate() {
+ Name(BUF0, ResourceTemplate() {
IRQNoFlags() {2, 8}
Memory32Fixed(ReadOnly,
0xFED00000, // Address Base
0x00000400, // Address Length
- )
+ _Y09)
})
+ Method(_CRS, 0, Serialized) {
+ CreateDWordField (BUF0, \_SB.HPET._Y09._BAS, HPT0)
+ Store(0xFED00000, HPT0)
+ Return (BUF0)
+ }
}
}
The complete definition for the HPET on my MacPro5,1 is below; along
with the 0xFED00000 value gleaned from the previous SeaBIOS version of
_CRS, I came up with the above. Hopefully it works for WinXP too...
Thanks,
--Gabriel
Device (HPET) {
Name (_HID, EisaId ("PNP0103"))
Name (BUF0, ResourceTemplate () {
IRQNoFlags ()
{0}
IRQNoFlags ()
{8}
Memory32Fixed (ReadOnly,
0xFED00000, // Address Base
0x00100000, // Address Length
_Y09)
})
Method (_STA, 0, NotSerialized) {
If (LGreaterEqual (OSYS, 0x07D1)) {
If (HPAE) {
Return (0x0F)
}
} Else {
If (HPAE) {
Return (0x0B)
}
}
Return (0x00)
}
Method (_CRS, 0, Serialized) {
If (HPAE) {
CreateDWordField (BUF0, \_SB.PCI0.LPCB.HPET._Y09._BAS, HPT0)
If (LEqual (HPAS, 0x01)) {
Store (0xFED10000, HPT0)
}
If (LEqual (HPAS, 0x02)) {
Store (0xFED20000, HPT0)
}
If (LEqual (HPAS, 0x03)) {
Store (0xFED30000, HPT0)
}
}
Return (BUF0)
}
}
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-04 15:37 ` Gerd Hoffmann
@ 2012-12-04 15:57 ` Gerd Hoffmann
0 siblings, 0 replies; 17+ messages in thread
From: Gerd Hoffmann @ 2012-12-04 15:57 UTC (permalink / raw)
To: Jason Baron; +Cc: Jan Kiszka, somlo, qemu-devel, anthony
On 12/04/12 16:37, Gerd Hoffmann wrote:
>> > I also noticed that on Windows 7, the 'IRQNoFlags' line above makes the RTC
>> > clock complain that it does not have resources available. While removing the
>> > above line, removes that error.
> Hmm. The IRQNoFlags for the RTC isn't new though, but I can see that
> with win7 on piix too.
Works fine with 1.7.1 though. /me goes bisecting.
cheers,
Gerd
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-04 15:39 ` Gabriel L. Somlo
@ 2012-12-04 16:56 ` Gerd Hoffmann
2012-12-04 17:14 ` Gabriel L. Somlo
0 siblings, 1 reply; 17+ messages in thread
From: Gerd Hoffmann @ 2012-12-04 16:56 UTC (permalink / raw)
To: Gabriel L. Somlo; +Cc: rene, jan.kiszka, jbaron, qemu-devel, agraf, anthony
Hi,
> The complete definition for the HPET on my MacPro5,1 is below; along
> with the 0xFED00000 value gleaned from the previous SeaBIOS version of
> _CRS, I came up with the above. Hopefully it works for WinXP too...
> Device (HPET) {
> Name (_HID, EisaId ("PNP0103"))
> Name (BUF0, ResourceTemplate () {
> IRQNoFlags ()
> {0}
> IRQNoFlags ()
> {8}
> Memory32Fixed (ReadOnly,
> 0xFED00000, // Address Base
> 0x00100000, // Address Length
> _Y09)
> })
> Method (_STA, 0, NotSerialized) {
> If (LGreaterEqual (OSYS, 0x07D1)) {
> If (HPAE) {
> Return (0x0F)
> }
> } Else {
> If (HPAE) {
> Return (0x0B)
> }
> }
> Return (0x00)
> }
> Method (_CRS, 0, Serialized) {
> If (HPAE) {
> CreateDWordField (BUF0, \_SB.PCI0.LPCB.HPET._Y09._BAS, HPT0)
> If (LEqual (HPAS, 0x01)) {
> Store (0xFED10000, HPT0)
> }
> If (LEqual (HPAS, 0x02)) {
> Store (0xFED20000, HPT0)
> }
> If (LEqual (HPAS, 0x03)) {
> Store (0xFED30000, HPT0)
> }
> }
> Return (BUF0)
> }
> }
Ok, and how does the RTC look like on your MacPro?
thanks,
Gerd
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-04 16:56 ` Gerd Hoffmann
@ 2012-12-04 17:14 ` Gabriel L. Somlo
2012-12-05 6:50 ` Gerd Hoffmann
0 siblings, 1 reply; 17+ messages in thread
From: Gabriel L. Somlo @ 2012-12-04 17:14 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: rene, jan.kiszka, jbaron, qemu-devel, agraf, anthony
On Tue, Dec 04, 2012 at 05:56:55PM +0100, Gerd Hoffmann wrote:
> Ok, and how does the RTC look like on your MacPro?
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x08, // Length
)
})
}
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-04 17:14 ` Gabriel L. Somlo
@ 2012-12-05 6:50 ` Gerd Hoffmann
2012-12-05 14:49 ` Gabriel L. Somlo
0 siblings, 1 reply; 17+ messages in thread
From: Gerd Hoffmann @ 2012-12-05 6:50 UTC (permalink / raw)
To: Gabriel L. Somlo; +Cc: rene, jan.kiszka, jbaron, qemu-devel, agraf, anthony
On 12/04/12 18:14, Gabriel L. Somlo wrote:
> On Tue, Dec 04, 2012 at 05:56:55PM +0100, Gerd Hoffmann wrote:
>> Ok, and how does the RTC look like on your MacPro?
>
> Device (RTC)
> {
> Name (_HID, EisaId ("PNP0B00"))
> Name (_CRS, ResourceTemplate ()
> {
> IO (Decode16,
> 0x0070, // Range Minimum
> 0x0070, // Range Maximum
> 0x01, // Alignment
> 0x08, // Length
> )
> })
> }
Ok, so no IRQ declared for the RTC. We have IRQ 8 for both rtc and
hpet, which most likely is the root cause for the issue. You can try
simply dropping the line for testing. I'll try to come up with
something more clever as the hpet can be disabled in which case we
should keep irq8 assigned to rtc.
cheers,
Gerd
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
2012-12-05 6:50 ` Gerd Hoffmann
@ 2012-12-05 14:49 ` Gabriel L. Somlo
0 siblings, 0 replies; 17+ messages in thread
From: Gabriel L. Somlo @ 2012-12-05 14:49 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: rene, jan.kiszka, jbaron, qemu-devel, agraf, anthony
On Wed, Dec 05, 2012 at 07:50:17AM +0100, Gerd Hoffmann wrote:
> Ok, so no IRQ declared for the RTC. We have IRQ 8 for both rtc and
> hpet, which most likely is the root cause for the issue. You can try
> simply dropping the line for testing. I'll try to come up with
> something more clever as the hpet can be disabled in which case we
> should keep irq8 assigned to rtc.
Yeah, with SnowLeopard, simply leaving out the IRQ on RTC in SeaBIOS
got me all the way to a blue screen with a moving mouse pointer, but
no further :)
However, the acpi-dsdt-isa.dsl RTC patch you just sent to SeaBIOS
has no (negative) impact on my ability to boot SnowLeopard.
Thanks much,
--Gabriel
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2012-12-05 14:49 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-03 10:11 [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update Gerd Hoffmann
2012-12-03 10:11 ` [Qemu-devel] [PATCH 1/3] seabios: update to 3d11108f45818d75140530a184c05680f1be51ad Gerd Hoffmann
2012-12-03 10:11 ` [Qemu-devel] [PATCH 2/3] configure: also symlink *.aml files Gerd Hoffmann
2012-12-03 10:11 ` [Qemu-devel] [PATCH 3/3] acpi: autoload dsdt Gerd Hoffmann
2012-12-03 18:47 ` [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update Jason Baron
2012-12-04 7:40 ` Gerd Hoffmann
2012-12-04 7:46 ` Jan Kiszka
2012-12-04 14:37 ` Jason Baron
2012-12-04 15:37 ` Gerd Hoffmann
2012-12-04 15:57 ` Gerd Hoffmann
2012-12-04 14:42 ` Gabriel L. Somlo
2012-12-04 15:11 ` jbaron
2012-12-04 15:39 ` Gabriel L. Somlo
2012-12-04 16:56 ` Gerd Hoffmann
2012-12-04 17:14 ` Gabriel L. Somlo
2012-12-05 6:50 ` Gerd Hoffmann
2012-12-05 14:49 ` Gabriel L. Somlo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).