From patchwork Sun Oct 16 21:21:34 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Blue Swirl X-Patchwork-Id: 120075 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id A60BBB70D6 for ; Mon, 17 Oct 2011 08:22:11 +1100 (EST) Received: from localhost ([::1]:57414 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFY9m-0004Pw-C6 for incoming@patchwork.ozlabs.org; Sun, 16 Oct 2011 17:22:06 -0400 Received: from eggs.gnu.org ([140.186.70.92]:44988) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFY9d-0004PD-V9 for qemu-devel@nongnu.org; Sun, 16 Oct 2011 17:22:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RFY9b-0008Ns-1d for qemu-devel@nongnu.org; Sun, 16 Oct 2011 17:21:57 -0400 Received: from mail-yw0-f45.google.com ([209.85.213.45]:34343) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFY9a-0008Nm-NW for qemu-devel@nongnu.org; Sun, 16 Oct 2011 17:21:55 -0400 Received: by ywp17 with SMTP id 17so514883ywp.4 for ; Sun, 16 Oct 2011 14:21:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; bh=5uc9qW+PAsJy7jI8FX/ZoDDDbIe8Z5zHnUmtAnMiQ+E=; b=VnSAYxqlCNeBHw80zDUyYRLHD+LKi4jftpHUHO5ocW7ajdme49sEcKuG4j1r0R5Fjl E4RFXbSK05/K1ZnVEhB0uUONwSHL+oH3p0JtNwB34v79MgsMynBdIZPMvZYnG8f+W43O t4qBBLmKoRdTd8fTv5vhj4nVLCVF/glgl5u+k= Received: by 10.182.8.10 with SMTP id n10mr9129781oba.36.1318800114078; Sun, 16 Oct 2011 14:21:54 -0700 (PDT) MIME-Version: 1.0 Received: by 10.182.121.8 with HTTP; Sun, 16 Oct 2011 14:21:34 -0700 (PDT) From: Blue Swirl Date: Sun, 16 Oct 2011 21:21:34 +0000 Message-ID: To: qemu-devel X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.213.45 Subject: [Qemu-devel] [PATCH v3 2/4] vga: make Cirrus ISA device optional X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: Blue Swirl --- Makefile.target | 13 +++------- default-configs/alpha-softmmu.mak | 2 + default-configs/arm-softmmu.mak | 1 + default-configs/i386-softmmu.mak | 2 + default-configs/mips-softmmu.mak | 2 + default-configs/mips64-softmmu.mak | 2 + default-configs/mips64el-softmmu.mak | 2 + default-configs/mipsel-softmmu.mak | 2 + default-configs/ppc-softmmu.mak | 1 + default-configs/ppc64-softmmu.mak | 1 + default-configs/ppcemb-softmmu.mak | 1 + default-configs/sparc64-softmmu.mak | 2 + default-configs/x86_64-softmmu.mak | 2 + hw/cirrus_vga.c | 40 ++++++++++++++++++++++++--------- hw/pc.c | 2 +- hw/pc.h | 12 +++++++++- 16 files changed, 65 insertions(+), 22 deletions(-) From 1ed8641190c46801046aa4936bcf7bd04484fc4b Mon Sep 17 00:00:00 2001 Message-Id: <1ed8641190c46801046aa4936bcf7bd04484fc4b.1318800015.git.blauwirbel@gmail.com> In-Reply-To: <1a6e4affe4f24367cd79cdf8ec690d7ddb464321.1318800015.git.blauwirbel@gmail.com> References: <1a6e4affe4f24367cd79cdf8ec690d7ddb464321.1318800015.git.blauwirbel@gmail.com> From: Blue Swirl Date: Sat, 1 Oct 2011 16:33:43 +0000 Subject: [PATCH 2/4] vga: make Cirrus ISA device optional Signed-off-by: Blue Swirl --- Makefile.target | 13 +++------- default-configs/alpha-softmmu.mak | 2 + default-configs/arm-softmmu.mak | 1 + default-configs/i386-softmmu.mak | 2 + default-configs/mips-softmmu.mak | 2 + default-configs/mips64-softmmu.mak | 2 + default-configs/mips64el-softmmu.mak | 2 + default-configs/mipsel-softmmu.mak | 2 + default-configs/ppc-softmmu.mak | 1 + default-configs/ppc64-softmmu.mak | 1 + default-configs/ppcemb-softmmu.mak | 1 + default-configs/sparc64-softmmu.mak | 2 + default-configs/x86_64-softmmu.mak | 2 + hw/cirrus_vga.c | 40 ++++++++++++++++++++++++--------- hw/pc.c | 2 +- hw/pc.h | 12 +++++++++- 16 files changed, 65 insertions(+), 22 deletions(-) diff --git a/Makefile.target b/Makefile.target index 417f23e..b948acf 100644 --- a/Makefile.target +++ b/Makefile.target @@ -194,6 +194,8 @@ obj-$(CONFIG_REALLY_VIRTFS) += 9pfs/virtio-9p-device.o obj-$(CONFIG_KVM) += kvm.o kvm-all.o obj-$(CONFIG_NO_KVM) += kvm-stub.o obj-y += memory.o +obj-$(CONFIG_VGA) += vga.o +obj-$(CONFIG_VGA_CIRRUS) += cirrus_vga.o LIBS+=-lz QEMU_CFLAGS += $(VNC_TLS_CFLAGS) @@ -218,9 +220,8 @@ endif obj-$(CONFIG_IVSHMEM) += ivshmem.o # Hardware support -obj-i386-y += vga.o obj-i386-y += mc146818rtc.o pc.o -obj-i386-y += cirrus_vga.o sga.o apic.o ioapic.o piix_pci.o +obj-i386-y += sga.o apic.o ioapic.o piix_pci.o obj-i386-y += vmport.o obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o obj-i386-y += debugcon.o multiboot.o @@ -230,7 +231,6 @@ obj-i386-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o # shared objects obj-ppc-y = ppc.o ppc_booke.o -obj-ppc-y += vga.o # PREP target obj-ppc-y += mc146818rtc.o obj-ppc-y += ppc_prep.o @@ -283,10 +283,8 @@ obj-lm32-y += framebuffer.o obj-mips-y = mips_r4k.o mips_jazz.o mips_malta.o mips_mipssim.o obj-mips-y += mips_addr.o mips_timer.o mips_int.o -obj-mips-y += vga.o obj-mips-y += jazz_led.o obj-mips-y += gt64xxx.o mc146818rtc.o -obj-mips-y += cirrus_vga.o obj-mips-$(CONFIG_FULONG) += bonito.o vt82c686.o mips_fulong2e.o obj-microblaze-y = petalogix_s3adsp1800_mmu.o @@ -316,9 +314,7 @@ obj-cris-y += etraxfs_ser.o ifeq ($(TARGET_ARCH), sparc64) obj-sparc-y = sun4u.o apb_pci.o -obj-sparc-y += vga.o obj-sparc-y += mc146818rtc.o -obj-sparc-y += cirrus_vga.o else obj-sparc-y = sun4m.o lance.o tcx.o sun4m_iommu.o slavio_intctl.o obj-sparc-y += slavio_timer.o slavio_misc.o sparc32_dma.o @@ -344,7 +340,7 @@ obj-arm-y += omap1.o omap_lcdc.o omap_dma.o omap_clk.o omap_mmc.o omap_i2c.o \ obj-arm-y += omap2.o omap_dss.o soc_dma.o omap_gptimer.o omap_synctimer.o \ omap_gpmc.o omap_sdrc.o omap_spi.o omap_tap.o omap_l4.o obj-arm-y += omap_sx1.o palm.o tsc210x.o -obj-arm-y += nseries.o blizzard.o onenand.o vga.o cbus.o tusb6010.o usb-musb.o +obj-arm-y += nseries.o blizzard.o onenand.o cbus.o tusb6010.o usb-musb.o obj-arm-y += mst_fpga.o mainstone.o obj-arm-y += z2.o obj-arm-y += musicpal.o bitbang_i2c.o marvell_88w8618_audio.o @@ -366,7 +362,6 @@ obj-m68k-y += m68k-semi.o dummy_m68k.o obj-s390x-y = s390-virtio-bus.o s390-virtio.o obj-alpha-y = mc146818rtc.o -obj-alpha-y += vga.o cirrus_vga.o obj-alpha-y += alpha_pci.o alpha_dp264.o alpha_typhoon.o obj-xtensa-y += xtensa_pic.o diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak index bd1dd95..501dd41 100644 --- a/default-configs/alpha-softmmu.mak +++ b/default-configs/alpha-softmmu.mak @@ -4,7 +4,9 @@ include pci.mak CONFIG_SERIAL=y CONFIG_I8254=y CONFIG_PCKBD=y +CONFIG_VGA=y CONFIG_VGA_PCI=y +CONFIG_VGA_CIRRUS=y CONFIG_IDE_CORE=y CONFIG_IDE_QDEV=y CONFIG_VMWARE_VGA=y diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak index 8d1174f1..e542b4f 100644 --- a/default-configs/arm-softmmu.mak +++ b/default-configs/arm-softmmu.mak @@ -2,6 +2,7 @@ include pci.mak CONFIG_GDBSTUB_XML=y +CONFIG_VGA=y CONFIG_ISA_MMIO=y CONFIG_NAND=y CONFIG_ECC=y diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index e67ebb3..662348e 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -1,8 +1,10 @@ # Default configuration for i386-softmmu include pci.mak +CONFIG_VGA=y CONFIG_VGA_PCI=y CONFIG_VGA_ISA=y +CONFIG_VGA_CIRRUS=y CONFIG_VMWARE_VGA=y CONFIG_VMMOUSE=y CONFIG_SERIAL=y diff --git a/default-configs/mips-softmmu.mak b/default-configs/mips-softmmu.mak index 94a3486..308d04a 100644 --- a/default-configs/mips-softmmu.mak +++ b/default-configs/mips-softmmu.mak @@ -3,9 +3,11 @@ include pci.mak CONFIG_ISA_MMIO=y CONFIG_ESP=y +CONFIG_VGA=y CONFIG_VGA_PCI=y CONFIG_VGA_ISA=y CONFIG_VGA_ISA_MM=y +CONFIG_VGA_CIRRUS=y CONFIG_VMWARE_VGA=y CONFIG_SERIAL=y CONFIG_PARALLEL=y diff --git a/default-configs/mips64-softmmu.mak b/default-configs/mips64-softmmu.mak index b5d3108..f1b92da 100644 --- a/default-configs/mips64-softmmu.mak +++ b/default-configs/mips64-softmmu.mak @@ -3,9 +3,11 @@ include pci.mak CONFIG_ISA_MMIO=y CONFIG_ESP=y +CONFIG_VGA=y CONFIG_VGA_PCI=y CONFIG_VGA_ISA=y CONFIG_VGA_ISA_MM=y +CONFIG_VGA_CIRRUS=y CONFIG_VMWARE_VGA=y CONFIG_SERIAL=y CONFIG_PARALLEL=y diff --git a/default-configs/mips64el-softmmu.mak b/default-configs/mips64el-softmmu.mak index 2831f44..567396c 100644 --- a/default-configs/mips64el-softmmu.mak +++ b/default-configs/mips64el-softmmu.mak @@ -3,9 +3,11 @@ include pci.mak CONFIG_ISA_MMIO=y CONFIG_ESP=y +CONFIG_VGA=y CONFIG_VGA_PCI=y CONFIG_VGA_ISA=y CONFIG_VGA_ISA_MM=y +CONFIG_VGA_CIRRUS=y CONFIG_VMWARE_VGA=y CONFIG_SERIAL=y CONFIG_PARALLEL=y diff --git a/default-configs/mipsel-softmmu.mak b/default-configs/mipsel-softmmu.mak index 14c949d..a8e421b 100644 --- a/default-configs/mipsel-softmmu.mak +++ b/default-configs/mipsel-softmmu.mak @@ -3,9 +3,11 @@ include pci.mak CONFIG_ISA_MMIO=y CONFIG_ESP=y +CONFIG_VGA=y CONFIG_VGA_PCI=y CONFIG_VGA_ISA=y CONFIG_VGA_ISA_MM=y +CONFIG_VGA_CIRRUS=y CONFIG_VMWARE_VGA=y CONFIG_SERIAL=y CONFIG_PARALLEL=y diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak index c85cdce..3277291 100644 --- a/default-configs/ppc-softmmu.mak +++ b/default-configs/ppc-softmmu.mak @@ -5,6 +5,7 @@ CONFIG_GDBSTUB_XML=y CONFIG_ISA_MMIO=y CONFIG_ESCC=y CONFIG_M48T59=y +CONFIG_VGA=y CONFIG_VGA_PCI=y CONFIG_SERIAL=y CONFIG_I8254=y diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak index 8874115..f490368 100644 --- a/default-configs/ppc64-softmmu.mak +++ b/default-configs/ppc64-softmmu.mak @@ -5,6 +5,7 @@ CONFIG_GDBSTUB_XML=y CONFIG_ISA_MMIO=y CONFIG_ESCC=y CONFIG_M48T59=y +CONFIG_VGA=y CONFIG_VGA_PCI=y CONFIG_SERIAL=y CONFIG_I8254=y diff --git a/default-configs/ppcemb-softmmu.mak b/default-configs/ppcemb-softmmu.mak index 5db7205..829f462 100644 --- a/default-configs/ppcemb-softmmu.mak +++ b/default-configs/ppcemb-softmmu.mak @@ -5,6 +5,7 @@ CONFIG_GDBSTUB_XML=y CONFIG_ISA_MMIO=y CONFIG_ESCC=y CONFIG_M48T59=y +CONFIG_VGA=y CONFIG_VGA_PCI=y CONFIG_SERIAL=y CONFIG_I8254=y diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak index d8f17e7..c9a36c1 100644 --- a/default-configs/sparc64-softmmu.mak +++ b/default-configs/sparc64-softmmu.mak @@ -4,7 +4,9 @@ include pci.mak CONFIG_ISA_MMIO=y CONFIG_M48T59=y CONFIG_PTIMER=y +CONFIG_VGA=y CONFIG_VGA_PCI=y +CONFIG_VGA_CIRRUS=y CONFIG_SERIAL=y CONFIG_PARALLEL=y CONFIG_PCKBD=y diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak index b75757e..b445be2 100644 --- a/default-configs/x86_64-softmmu.mak +++ b/default-configs/x86_64-softmmu.mak @@ -1,8 +1,10 @@ # Default configuration for x86_64-softmmu include pci.mak +CONFIG_VGA=y CONFIG_VGA_PCI=y CONFIG_VGA_ISA=y +CONFIG_VGA_CIRRUS=y CONFIG_VMWARE_VGA=y CONFIG_VMMOUSE=y CONFIG_SERIAL=y diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c index a11444c..aa8a0e6 100644 --- a/hw/cirrus_vga.c +++ b/hw/cirrus_vga.c @@ -250,6 +250,11 @@ typedef struct PCICirrusVGAState { CirrusVGAState cirrus_vga; } PCICirrusVGAState; +typedef struct ISACirrusVGAState { + ISADevice dev; + CirrusVGAState cirrus_vga; +} ISACirrusVGAState; + static uint8_t rop_to_index[256]; /*************************************** @@ -2899,21 +2904,34 @@ static void cirrus_init_common(CirrusVGAState * s, int device_id, int is_pci, * ***************************************/ -void isa_cirrus_vga_init(MemoryRegion *system_memory) +static int vga_initfn(ISADevice *dev) { - CirrusVGAState *s; - - s = g_malloc0(sizeof(CirrusVGAState)); - - vga_common_init(&s->vga, VGA_RAM_SIZE); - cirrus_init_common(s, CIRRUS_ID_CLGD5430, 0, system_memory); - s->vga.ds = graphic_console_init(s->vga.update, s->vga.invalidate, - s->vga.screen_dump, s->vga.text_update, - &s->vga); - vmstate_register(NULL, 0, &vmstate_cirrus_vga, s); + ISACirrusVGAState *d = DO_UPCAST(ISACirrusVGAState, dev, dev); + VGACommonState *s = &d->cirrus_vga.vga; + + vga_common_init(s, VGA_RAM_SIZE); + cirrus_init_common(&d->cirrus_vga, CIRRUS_ID_CLGD5430, 0, + isa_address_space(dev)); + s->ds = graphic_console_init(s->update, s->invalidate, + s->screen_dump, s->text_update, + s); rom_add_vga(VGABIOS_CIRRUS_FILENAME); /* XXX ISA-LFB support */ + return 0; +} + +static ISADeviceInfo isa_cirrus_vga_info = { + .qdev.name = "isa-cirrus-vga", + .qdev.size = sizeof(ISACirrusVGAState), + .qdev.vmsd = &vmstate_cirrus_vga, + .init = vga_initfn, +}; + +static void isa_cirrus_vga_register(void) +{ + isa_qdev_register(&isa_cirrus_vga_info); } +device_init(isa_cirrus_vga_register) /*************************************** * diff --git a/hw/pc.c b/hw/pc.c index 057eb9c..f873533 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -1076,7 +1076,7 @@ void pc_vga_init(PCIBus *pci_bus) if (pci_bus) { pci_cirrus_vga_init(pci_bus); } else { - isa_cirrus_vga_init(get_system_memory()); + isa_cirrus_vga_init(); } } else if (vmsvga_enabled) { if (pci_bus) { diff --git a/hw/pc.h b/hw/pc.h index 6c951e8..0b67363 100644 --- a/hw/pc.h +++ b/hw/pc.h @@ -244,7 +244,17 @@ static inline bool pci_cirrus_vga_init(PCIBus *bus) return true; } -void isa_cirrus_vga_init(MemoryRegion *address_space); +static inline bool isa_cirrus_vga_init(void) +{ + ISADevice *dev; + + dev = isa_try_create("isa-cirrus-vga"); + if (!dev) { + return false; + } + qdev_init_nofail(&dev->qdev); + return true; +} /* ne2000.c */ static inline bool isa_ne2000_init(int base, int irq, NICInfo *nd) -- 1.7.2.5