diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2009-10-26 12:18:26 +0100 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-10-30 08:39:29 -0500 |
commit | 5245d57a7ac830fc015465981db729646a768993 (patch) | |
tree | 653b3ea6f40b313fffc4cb977d3fd2edc582e8ed /hw | |
parent | de2aff17a31c47e28757d426fb3384eed20eb2e5 (diff) | |
download | qemu-5245d57a7ac830fc015465981db729646a768993.zip qemu-5245d57a7ac830fc015465981db729646a768993.tar.gz qemu-5245d57a7ac830fc015465981db729646a768993.tar.bz2 |
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>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/cirrus_vga.c | 6 | ||||
-rw-r--r-- | hw/pc.c | 12 | ||||
-rw-r--r-- | hw/vga-isa.c | 3 | ||||
-rw-r--r-- | hw/vga-pci.c | 4 | ||||
-rw-r--r-- | hw/vga_int.h | 2 |
5 files changed, 14 insertions, 13 deletions
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c index 9dfe76a..f4c9cdf 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; } @@ -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 801121a..5f29904 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 1edfdee..a8ec729 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 e2b9989..e70032c 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]; |