From: "Hervé Poussineau" <hpoussin@reactos.org>
To: qemu-devel@nongnu.org
Cc: "Hervé Poussineau" <hpoussin@reactos.org>
Subject: [Qemu-devel] [PATCH 11/20] [MIPS] qdev: convert vga-isa-mm to ISA device
Date: Sun, 1 Aug 2010 19:37:13 +0200 [thread overview]
Message-ID: <1280684242-19611-11-git-send-email-hpoussin@reactos.org> (raw)
In-Reply-To: <4C5579DA.8050508@reactos.org>
Use it in Jazz emulation
Remove isa_vga_mm_init() function, which is not used anymore
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
---
hw/mips_jazz.c | 2 +-
hw/pc.h | 2 -
hw/vga-isa-mm.c | 66 ++++++++++++++++++++++++++++++++----------------------
vl.c | 1 +
4 files changed, 41 insertions(+), 30 deletions(-)
diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c
index b737cf3..96946e8 100644
--- a/hw/mips_jazz.c
+++ b/hw/mips_jazz.c
@@ -209,7 +209,7 @@ void mips_jazz_init (ram_addr_t ram_size,
g364fb_mm_init(0x40000000, 0x60000000, 0, rc4030[3]);
break;
case JAZZ_PICA61:
- isa_vga_mm_init(0x40000000, 0x60000000, 0);
+ isa_create_simple("isa-vga-mm");
break;
default:
break;
diff --git a/hw/pc.h b/hw/pc.h
index f5a479a..acfed83 100644
--- a/hw/pc.h
+++ b/hw/pc.h
@@ -154,8 +154,6 @@ extern enum vga_retrace_method vga_retrace_method;
int isa_vga_init(void);
int pci_vga_init(PCIBus *bus,
unsigned long vga_bios_offset, int vga_bios_size);
-int isa_vga_mm_init(target_phys_addr_t vram_base,
- target_phys_addr_t ctrl_base, int it_shift);
/* cirrus_vga.c */
void pci_cirrus_vga_init(PCIBus *bus);
diff --git a/hw/vga-isa-mm.c b/hw/vga-isa-mm.c
index 680b557..82d2e81 100644
--- a/hw/vga-isa-mm.c
+++ b/hw/vga-isa-mm.c
@@ -23,14 +23,17 @@
*/
#include "hw.h"
#include "console.h"
-#include "pc.h"
#include "vga_int.h"
#include "pixel_ops.h"
#include "qemu-timer.h"
+#include "isa.h"
+#include "qdev-addr.h"
typedef struct ISAVGAMMState {
+ ISADevice dev;
+ target_phys_addr_t iobase;
+ target_phys_addr_t vram;
VGACommonState vga;
- int it_shift;
} ISAVGAMMState;
/* Memory mapped interface */
@@ -38,7 +41,7 @@ static uint32_t vga_mm_readb (void *opaque, target_phys_addr_t addr)
{
ISAVGAMMState *s = opaque;
- return vga_ioport_read(&s->vga, addr >> s->it_shift) & 0xff;
+ return vga_ioport_read(&s->vga, addr) & 0xff;
}
static void vga_mm_writeb (void *opaque,
@@ -46,14 +49,14 @@ static void vga_mm_writeb (void *opaque,
{
ISAVGAMMState *s = opaque;
- vga_ioport_write(&s->vga, addr >> s->it_shift, value & 0xff);
+ vga_ioport_write(&s->vga, addr, value & 0xff);
}
static uint32_t vga_mm_readw (void *opaque, target_phys_addr_t addr)
{
ISAVGAMMState *s = opaque;
- return vga_ioport_read(&s->vga, addr >> s->it_shift) & 0xffff;
+ return vga_ioport_read(&s->vga, addr) & 0xffff;
}
static void vga_mm_writew (void *opaque,
@@ -61,14 +64,14 @@ static void vga_mm_writew (void *opaque,
{
ISAVGAMMState *s = opaque;
- vga_ioport_write(&s->vga, addr >> s->it_shift, value & 0xffff);
+ vga_ioport_write(&s->vga, addr, value & 0xffff);
}
static uint32_t vga_mm_readl (void *opaque, target_phys_addr_t addr)
{
ISAVGAMMState *s = opaque;
- return vga_ioport_read(&s->vga, addr >> s->it_shift);
+ return vga_ioport_read(&s->vga, addr);
}
static void vga_mm_writel (void *opaque,
@@ -76,7 +79,7 @@ static void vga_mm_writel (void *opaque,
{
ISAVGAMMState *s = opaque;
- vga_ioport_write(&s->vga, addr >> s->it_shift, value);
+ vga_ioport_write(&s->vga, addr, value);
}
static CPUReadMemoryFunc * const vga_mm_read_ctrl[] = {
@@ -91,36 +94,45 @@ static CPUWriteMemoryFunc * const vga_mm_write_ctrl[] = {
&vga_mm_writel,
};
-static void vga_mm_init(ISAVGAMMState *s, target_phys_addr_t vram_base,
- target_phys_addr_t ctrl_base, int it_shift)
+static int isa_vga_mm_init(ISADevice *dev)
{
+ ISAVGAMMState *s = DO_UPCAST(ISAVGAMMState, dev, dev);
int s_ioport_ctrl, vga_io_memory;
- s->it_shift = it_shift;
+ vga_common_init(&s->vga, VGA_RAM_SIZE);
+
s_ioport_ctrl = cpu_register_io_memory(vga_mm_read_ctrl, vga_mm_write_ctrl, s);
- vga_io_memory = cpu_register_io_memory(vga_mem_read, vga_mem_write, s);
+ vga_io_memory = cpu_register_io_memory(vga_mem_read, vga_mem_write, &s->vga);
vmstate_register(NULL, 0, &vmstate_vga_common, s);
- cpu_register_physical_memory(ctrl_base, 0x100000, s_ioport_ctrl);
+ cpu_register_physical_memory(s->iobase, 0x100000, s_ioport_ctrl);
s->vga.bank_offset = 0;
- cpu_register_physical_memory(vram_base + 0x000a0000, 0x20000, vga_io_memory);
- qemu_register_coalesced_mmio(vram_base + 0x000a0000, 0x20000);
-}
-
-int isa_vga_mm_init(target_phys_addr_t vram_base,
- target_phys_addr_t ctrl_base, int it_shift)
-{
- ISAVGAMMState *s;
-
- s = qemu_mallocz(sizeof(*s));
-
- vga_common_init(&s->vga, VGA_RAM_SIZE);
- vga_mm_init(s, vram_base, ctrl_base, it_shift);
+ cpu_register_physical_memory(s->vram + 0x000a0000, 0x20000, vga_io_memory);
+ qemu_register_coalesced_mmio(s->vram + 0x000a0000, 0x20000);
s->vga.ds = graphic_console_init(s->vga.update, s->vga.invalidate,
- s->vga.screen_dump, s->vga.text_update, s);
+ s->vga.screen_dump, s->vga.text_update, &s->vga);
vga_init_vbe(&s->vga);
return 0;
}
+
+static ISADeviceInfo isa_vga_mm_device_info = {
+ .qdev.name = "isa-vga-mm",
+ .qdev.size = sizeof(ISAVGAMMState),
+ .qdev.vmsd = &vmstate_vga_common,
+ .init = isa_vga_mm_init,
+ .qdev.props = (Property[]) {
+ DEFINE_PROP_TADDR("iobase", ISAVGAMMState, iobase, 0x60000000),
+ DEFINE_PROP_TADDR("vram", ISAVGAMMState, vram, 0x40000000),
+ DEFINE_PROP_END_OF_LIST(),
+ },
+};
+
+static void isa_vga_mm_register_device(void)
+{
+ isa_qdev_register(&isa_vga_mm_device_info);
+}
+
+device_init(isa_vga_mm_register_device)
diff --git a/vl.c b/vl.c
index b3e3676..9815f8d 100644
--- a/vl.c
+++ b/vl.c
@@ -265,6 +265,7 @@ static struct {
{ .driver = "VGA", .flag = &default_vga },
{ .driver = "cirrus-vga", .flag = &default_vga },
{ .driver = "vmware-svga", .flag = &default_vga },
+ { .driver = "isa-vga-mm", .flag = &default_vga },
};
static int default_driver_check(QemuOpts *opts, void *opaque)
--
1.7.1.GIT
next prev parent reply other threads:[~2010-08-01 18:11 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-01 13:42 [Qemu-devel] [PATCH 00/20] MIPS Magnum conversion to qdev Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 01/20] [MIPS] cpu: add a init inplace method Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 02/20] [MIPS] cpu: convert to qdev Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 03/20] [MIPS] Jazz emulation: create a qdev cpu Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 04/20] [MIPS] rc4030: convert to qdev Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 05/20] Add a stub for some rc4030 functions, if rc4030 support is not compiled in Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 06/20] [MIPS] qdev: convert i8042 to rc4030 device Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 07/20] [MIPS] qdev: convert parallel port " Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 08/20] [MIPS] qdev: convert serial " Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 09/20] [MIPS] qdev: convert jazz-led to sysbus device Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 10/20] [MIPS] Jazz emulation: make video card optional Hervé Poussineau
2010-08-01 17:37 ` Hervé Poussineau [this message]
2010-08-01 17:37 ` [Qemu-devel] [PATCH 12/20] [MIPS] qdev: convert g364fb to rc4030 device Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 13/20] [MIPS] qdev: add a rtc forwarder device Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 14/20] [MIPS] qdev: add an isa bus device Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 15/20] [MIPS] qdev: convert dp83932 network card to rc4030 device Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 16/20] [MIPS] qdev: convert floppy disk controller " Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 17/20] [MIPS] qdev: convert esp scsi adapter " Hervé Poussineau
2010-08-02 14:51 ` Artyom Tarasenko
2010-08-01 17:37 ` [Qemu-devel] [PATCH 18/20] [MIPS] qdev: convert ds1225y nvram to sysbus device Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 19/20] [MIPS] qdev: add a mips board device, which initializes the ram and the rom Hervé Poussineau
2010-08-01 17:37 ` [Qemu-devel] [PATCH 20/20] [MIPS] qdev: Complete rc4030 conversion, by removing legacy stuff Hervé Poussineau
2010-08-02 16:06 ` [Qemu-devel] [PATCH 00/20] MIPS Magnum conversion to qdev Blue Swirl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1280684242-19611-11-git-send-email-hpoussin@reactos.org \
--to=hpoussin@reactos.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).