qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] ppc: Add MacOS VGA driver ROM


From: Benjamin Herrenschmidt
Subject: [Qemu-devel] [PATCH] ppc: Add MacOS VGA driver ROM
Date: Wed, 27 Jul 2016 18:27:33 +1000

The project is at https://github.com/ozbenh/QemuMacDrivers

This adds a native MacOS driver in ROM (which can be picked up
by MacOS once OpenBIOS has been updated if Mark accepts
the patches I sent him) which allows MacOS classic
(tested 9.2.1) and MacOS X (tested 10.1.4 and 10.4)
to properly use QEMU std VGA (10.1.x doesn't work at all
without it, the others get the ability to change resolution
and color depth).

Building the ROM is tricky and requires CodeWarrior for MacOS
so I include a pre-built binary.

Signed-off-by: Benjamin Herrenschmidt <address@hidden>
---
 hw/ppc/mac_newworld.c |   8 ++++++++
 pc-bios/qemu_vga.ndrv | Bin 0 -> 12808 bytes
 2 files changed, 8 insertions(+)
 create mode 100644 pc-bios/qemu_vga.ndrv

diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index 7d25106..5029345 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -511,6 +511,13 @@ static int core99_kvm_type(const char *arg)
     return 2;
 }
 
+#define MAC_CORE99_COMPAT                               \
+    {                                                   \
+        .driver   = "pci-vga",                          \
+        .property = "romfile",                          \
+        .value    = "qemu_vga.ndrv",                    \
+    },
+
 static void core99_machine_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
@@ -520,6 +527,7 @@ static void core99_machine_class_init(ObjectClass *oc, void 
*data)
     mc->max_cpus = MAX_CPUS;
     mc->default_boot_order = "cd";
     mc->kvm_type = core99_kvm_type;
+    SET_MACHINE_COMPAT(mc, MAC_CORE99_COMPAT);
 }
 
 static const TypeInfo core99_machine_info = {
diff --git a/pc-bios/qemu_vga.ndrv b/pc-bios/qemu_vga.ndrv
new file mode 100644
index 
0000000000000000000000000000000000000000..0b1549d1c5978f87aed2b6e496a23fbaf18dbea4
GIT binary patch
literal 12808
zcmcIq4RBl4mA;amWZ5{0p=Q^?KY3{!Mof&y6hj}_b>&0>89PD20;gS=wQRj4+L0xV
zBqz%95<NR9O=j7tGYM^grZ^3-VJ6FXrqIG9-~>W<nW0&j9d^hpKcNAdodrr4*ph_g
z?RW0GlAmOWm~N}lnRo8F=bn4+x#ym9-+lMC_~yk4b=|tero=E~%=Yhxe^QO-%+JB>
zR50)}iOt&address@hidden&<z_4g9%i#y>vAIPp8(S(v=cuYx=rNd=boq|hHn5+&(H?K
znEe$|<~jk-{m^gzcSRm!%n3YK_e~4k0eqe)UsFV{p)xwS8E^~WZvYX%7QlAELx4ko
z!+?JSd;mCSXSVr(s{uCxdI2GT2H4F<0K<address@hidden(=1WF4
zs>yyexiK=Vrurg7Y;|Zvy+d6eNu`sUsT^3*Lyx;6VKr{$TM>#4tI=R&L`||lJRa?i
zM&address@hidden&9UJP$#^XC_iE4WtmpO>@sW{GEZma<l8CBlmED=3=Bzs$_KhY(
z=}0^ljCT*E;?Yr5_N(chSXxacM-%CpUVLgu^uuyWu8cv`9^Z<1VskOg7fB`JDYcl~
z6N{wtv_LYRP?PD+x2h#+{ZOB+jD;hiSpTL_;<_7`qwUH}V%7TOig;{YWc?j#C_E5P
zh6{)T$w*q|)VuoogckYH2rDvFtyVXcBKzXAsKE`YIafY4HJpqj$XdR*NrHK~$4Z#(
address@hidden>qnC%Jpt<G%lg6DuG;1F*6<I`itClfa2-m}=4(zN=F_Om6KiTy00y>)#?
zGdeQLkew;x_RIXt_B~G{tLh%JNubpYOxE124YO7);&^<uF3H(#r!)E(OMq{U7Ov0u
z89SwisBC{<address@hidden&u8>w
z)Q`g^>NaFw1pPhG_Y+-m3VL968|SE~YcEmv15sCJ_U+8|?N)T-#K5VFd%feVr3E&|
zvs%G=!kFu*Z*6-;yPqw&T<>PJ+F(VyCOI<Nwj~+e#?~r}SwM3;9zP7buhyA7F~%BT
zZ+YSvYo2(Qd3M=Y%dW+&ZC5vIr+Pj|`;E`?bA<Wn_-*Bsm=|BKVH`Wy#Msm##z=>W
zMa;address@hidden<mnz~Zs>i4+M<mDXn~Bjj(0E?
zw8ebYWMBF;qa3C2HSM3sVoc%s%{1nYN#g|CCZNk&{dvZq%MEBJi*|LEb`i8|C~Bvm
z-F;@eix*5i7rm@)soxBpYEkz~(zVyP_%8aW_Orj<i8}JfHw67<YExiS*r}w=(2o4t
zVz*BqcW2ISI_#o1F&A`{Fm^Y}RVdF#xf<mf>W6#{ZAQ!WxBFe=%lsT=xt>@z4jbAm
z&YnI`cC=v}jmjVrj>QkQp<PaA(f%mLNNsC-jSKJl*}?~uA<address@hidden
address@hidden>0`zhc^%%qKC|ru)*xhgAnQSl_bLx#3%keIE6R|gGsp_purg@;9y&fHo`*<p
zKdX5Tv`G_}BEa{Uxa$evJ50QS=$gQZKVjmP`+$c{TzVS#S|K}N(rPe1<}>lCn}91O
address@hidden@D+xvOjJlbn~xkcD!8RA<F
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
address@hidden>8F!aO73WxFWP6ZMi=rt|s2
zJyyXU*Sf!<zV`9H{>AL;9L~rbFXLVOqu^HLG!uU}n9bv_4;=NjW{)address@hidden
zw+9D(tpR$s5c>nzDnHKLUPbw>+fDwjyUe^xdk1>ICOgm?hM(002XW3>!CG-f&pb{}
ztL3!yW*nFRjmDR=oi)DE-bec>#xsOChk3;LYCvm5+z|c1hYk%)!gWvMTllcO7JDRo
zAFo_O-=F!}?|rB7-SGV9kS}3f;address@hidden<m7v>zJ5Bzx
z)YfJ4oc%B06(-Nww}9hYG|4<m-!3Wz{t|HND+KzpyAQLz-47!Mn)8>B3x};|w?${%
address@hidden&Bq5No?O{#_m4adYSK;Cq66wn&b<
zI2Y#5=;{45w~j=d!aB8Y5q>{w%}sY3X9WKQ&0X*zoZTG8S^AsTXF5(n*YV14V-Jb<
zJ);u2%A%`{zVmyrPHQ!X<HwNU<=?T#D{rGcC*sCQ$fIx5Z^93KLH5b>;PHvva-_kD
zc0WUIZema33~3sCkM0O#p1tUw-etzw9(*gRrZE6-&?Q#mVH`(address@hidden<!C$
z{~|i>FR%vy8^qX&_7KWrfS{+|jMXG-0=TDvm*pMs^Pr>Rd5SscJD~A%w70wVqCSXw
z8`%r2742&&@1Z}h*`ML1JvPR<i^h%TPBAALocAaAc|UARYh*6D&5{!)`FAcIJ_);{
z-;address@hidden|0Mp`Q9wzzh1zg0CGq=KVGocgB!ECLl+zhSB<v%PY-$
address@hidden@_QW<(n8G1t*x>APTS%%(ThVCvyXJzQ#GW6y$^qMmC+A?&18G2nAx~~kq
zx)dEt;address@hidden@uKqtThs0G*<address@hidden)o
zmjR%w^eo^>Z2vw4oB;d^Z~(9q5CeQ4-~}vY%w+&h0;U0v0icI#3jjK}dI8M<C$0wm
address@hidden(XvkSC$v$|address@hidden>address@hidden@<=SlvSa
zETzha013bV;5NXwF%U$e+^_x&address@hidden@gqXf&jw53H-BF1B^Zm^
zl_=U`;pE1Rk#L+u29u#-^=5f#s)|`}vQe|WfI|R`--Z>>jsV^Oj=5uffI+}^Ktf!A
address@hidden>C>~0NZ&{9Og-JD)l9#qA(Y3N5t_md*YM3tdne-}?8+Qpyu!B0A
ze`PE*6jgC6a+Nv~Pj2o{U=VUrO^+sHYFJ(x#$foJN;v|hP>~vqrZLDo{SGw|MH5og
zWV{88dEHG?|address@hidden)V>#8vx}08ej+D
zcoFO=D(C7aL5J-*|1(0LbSOQVGP~wJ+zkIjpHB4YM4wLd=|rDS^yx&OP91<go#?{}
zc}~d7w|fR<^yPfjq&eRNeg^Ov%1rQKTsi*#*R$Hxzc&(%;sR>k<aB3qro=C6&J<Tf
zab<L-czZ&PQOWA9e1dOPQ|VAN?Z=(gDDJ>o>TgYk5*s4JxagWxagCKOs7BNjvyy$0
zq&l1~Q;DmnrP|yY!Ufu%*t&QhF6S0VyF;ZOHmaN>address@hidden
zxw(*0O%q?C{v@)P5nh{!C(|iEmfxmOQe82cOvRH0vLOE}YJJJjrmv_*pM|x=-w)TE
address@hidden|zH|k&qRYy~%(H0V3&c0!y7a6*A-YTrwMnY$aE}>_nO_(dSDlM{n;X~i
zP)Ze%s#pM|address@hidden)xBymf-R29*1<address@hidden|DUu%EFpCWN
ztJO>zSHbBncL|MnstJUWp^+4pJhSVF?Wd5UWZ-KNdqAUfg;dFLmlw||<X9a~#2o%a
z+5Gu>`U5?G+vEGr(zf=DeAlX#tG=@|EUy}>Vt2+;rcWX=_xR++RZI+9PO0fM21tQ9
z!~a!mbv!Mvi;u>_h}?1%OH5uYkEXyRht+i<address@hidden(QwHpu7IX}SY1r{i)e
zGBO&4JIZ%0?*sGdxNKIX%<J{C=k|Vit^D0<T8Kf8p}!=*Xs^OIz)yjPx-(-|Yb!{w
zxlGoz>KRI<BI}WBt__(94lA>}JJ8o6ifnoJ9ms9p%J2?y%ry3V#YhAq(2=#7oDlcm
S3pms9xI7eDPqe?>@BaW(s=rMD

literal 0
HcmV?d00001





reply via email to

[Prev in Thread] Current Thread [Next in Thread]