aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2009-10-26 12:18:26 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2009-10-30 08:39:29 -0500
commit5245d57a7ac830fc015465981db729646a768993 (patch)
tree653b3ea6f40b313fffc4cb977d3fd2edc582e8ed
parentde2aff17a31c47e28757d426fb3384eed20eb2e5 (diff)
vga roms: move loading from pc.c to vga drivers.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--hw/cirrus_vga.c6
-rw-r--r--hw/pc.c12
-rw-r--r--hw/vga-isa.c3
-rw-r--r--hw/vga-pci.c4
-rw-r--r--hw/vga_int.h2
5 files changed, 14 insertions, 13 deletions
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 9dfe76a49b..f4c9cdf8a6 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -32,6 +32,7 @@
#include "console.h"
#include "vga_int.h"
#include "kvm.h"
+#include "loader.h"
/*
* TODO:
@@ -3162,6 +3163,7 @@ void isa_cirrus_vga_init(void)
s->vga.screen_dump, s->vga.text_update,
&s->vga);
vmstate_register(0, &vmstate_cirrus_vga, s);
+ rom_add_vga(VGABIOS_CIRRUS_FILENAME);
/* XXX ISA-LFB support */
}
@@ -3245,7 +3247,9 @@ static int pci_cirrus_vga_initfn(PCIDevice *dev)
PCI_ADDRESS_SPACE_MEM, cirrus_pci_mmio_map);
}
vmstate_register(0, &vmstate_pci_cirrus_vga, d);
- /* XXX: ROM BIOS */
+
+ /* ROM BIOS */
+ rom_add_vga(VGABIOS_CIRRUS_FILENAME);
return 0;
}
diff --git a/hw/pc.c b/hw/pc.c
index c7b8c50190..42f7de8c88 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -47,8 +47,6 @@
//#define DEBUG_MULTIBOOT
#define BIOS_FILENAME "bios.bin"
-#define VGABIOS_FILENAME "vgabios.bin"
-#define VGABIOS_CIRRUS_FILENAME "vgabios-cirrus.bin"
#define PC_MAX_BIOS_SIZE (4 * 1024 * 1024)
@@ -1050,7 +1048,6 @@ static void pc_init1(ram_addr_t ram_size,
IsaIrqState *isa_irq_state;
DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
DriveInfo *fd[MAX_FD];
- int using_vga = cirrus_vga_enabled || std_vga_enabled || vmsvga_enabled;
void *fw_cfg;
if (ram_size >= 0xe0000000 ) {
@@ -1141,15 +1138,6 @@ static void pc_init1(ram_addr_t ram_size,
option_rom_offset = qemu_ram_alloc(PC_ROM_SIZE);
cpu_register_physical_memory(PC_ROM_MIN_VGA, PC_ROM_SIZE, option_rom_offset);
- if (using_vga) {
- /* VGA BIOS load */
- if (cirrus_vga_enabled) {
- rom_add_vga(VGABIOS_CIRRUS_FILENAME);
- } else {
- rom_add_vga(VGABIOS_FILENAME);
- }
- }
-
/* map all the bios at the top of memory */
cpu_register_physical_memory((uint32_t)(-bios_size),
bios_size, bios_offset | IO_MEM_ROM);
diff --git a/hw/vga-isa.c b/hw/vga-isa.c
index 801121ae55..5f29904133 100644
--- a/hw/vga-isa.c
+++ b/hw/vga-isa.c
@@ -27,6 +27,7 @@
#include "vga_int.h"
#include "pixel_ops.h"
#include "qemu-timer.h"
+#include "loader.h"
int isa_vga_init(void)
{
@@ -46,5 +47,7 @@ int isa_vga_init(void)
cpu_register_physical_memory(VBE_DISPI_LFB_PHYSICAL_ADDRESS,
VGA_RAM_SIZE, s->vram_offset);
#endif
+ /* ROM BIOS */
+ rom_add_vga(VGABIOS_FILENAME);
return 0;
}
diff --git a/hw/vga-pci.c b/hw/vga-pci.c
index 1edfdeefed..a8ec729e71 100644
--- a/hw/vga-pci.c
+++ b/hw/vga-pci.c
@@ -28,6 +28,7 @@
#include "vga_int.h"
#include "pixel_ops.h"
#include "qemu-timer.h"
+#include "loader.h"
typedef struct PCIVGAState {
PCIDevice dev;
@@ -105,6 +106,9 @@ static int pci_vga_initfn(PCIDevice *dev)
pci_register_bar(&d->dev, PCI_ROM_SLOT, bios_total_size,
PCI_ADDRESS_SPACE_MEM_PREFETCH, vga_map);
}
+
+ /* ROM BIOS */
+ rom_add_vga(VGABIOS_FILENAME);
return 0;
}
diff --git a/hw/vga_int.h b/hw/vga_int.h
index e2b99893b1..e70032cf20 100644
--- a/hw/vga_int.h
+++ b/hw/vga_int.h
@@ -223,6 +223,8 @@ extern const uint8_t sr_mask[8];
extern const uint8_t gr_mask[16];
#define VGA_RAM_SIZE (8192 * 1024)
+#define VGABIOS_FILENAME "vgabios.bin"
+#define VGABIOS_CIRRUS_FILENAME "vgabios-cirrus.bin"
extern CPUReadMemoryFunc * const vga_mem_read[3];
extern CPUWriteMemoryFunc * const vga_mem_write[3];