From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59534) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bSKCR-0007Fa-2c for qemu-devel@nongnu.org; Wed, 27 Jul 2016 04:28:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bSKCL-0003aK-Oe for qemu-devel@nongnu.org; Wed, 27 Jul 2016 04:28:17 -0400 Message-ID: <1469608053.5978.132.camel@kernel.crashing.org> From: Benjamin Herrenschmidt Date: Wed, 27 Jul 2016 18:27:33 +1000 Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH] ppc: Add MacOS VGA driver ROM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-ppc@nongnu.org, David Gibson Cc: qemu-devel@nongnu.org, Mark Cave-Ayland , Alexander Graf 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 --- 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%95W zR50)}iOt&?%Yh@oB*{`&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<^n+pbuCtM0hPrvJoSrT@{pP+#C(=1WF4 zs>yyexiK=Vrurg7Y;|Zvy+d6eNu`sUsT^3*Lyx;6VKr{$TM>#4tI=R&L`||lJRa?i zM&rYwG}@-X8cVbO&9UJP$#^XC_iE4WtmpO>@sW{GEZmaqnC%Jpt)#? zGdeQLkew;x_RIXt_B~G{tLh%JNubpYOxE124YO7);&^w z)Q`g^>NaFw1pPhG_Y+-m3VL968|SE~YcEmv15sCJ_U+8|?N)T-#K5VFd%feVr3E&| zvs%G=!kFu*Z*6-;yPqw&T<>PJ+F(VyCOIW zMa;8z5o-ptc1$xVd*Ht@7xL?*i?Ws3vybxfTU2gAi4+MW6#{ZAQ!WxBFe=%lsT=xt>@z4jbAm z&YnI`cC=v}jmjVrj>QkQp0`zhc^%%qKC|ru)*xhgAnQSl_bLx#3%keIE6R|gGsp_purg@;9y&fHo`*

lCn}91O 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 S3pms9xI7eDPqe?>@BaW(s=rMD literal 0 HcmV?d00001