From de9258a87f8cf142b8d565a3c14d3db7a5a1c14b Mon Sep 17 00:00:00 2001 From: bellard Date: Sun, 6 Jun 2004 15:50:03 +0000 Subject: [PATCH] specific VGA BIOS for Cirrus VGA Card git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@905 c046a42c-6fe2-441c-8c8c-71466251a162 --- Makefile | 2 ++ hw/pc.c | 7 ++++++- pc-bios/README | 4 ++++ pc-bios/vgabios-cirrus.bin | Bin 0 -> 26784 bytes 4 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 pc-bios/vgabios-cirrus.bin diff --git a/Makefile b/Makefile index 4137e9b95b2..d4c4b0ffef8 100644 --- a/Makefile +++ b/Makefile @@ -50,6 +50,7 @@ ifndef CONFIG_WIN32 endif mkdir -p "$(datadir)" install -m 644 pc-bios/bios.bin pc-bios/vgabios.bin \ + pc-bios/vgabios-cirrus.bin \ pc-bios/linux_boot.bin "$(datadir)" mkdir -p "$(docdir)" install -m 644 qemu-doc.html qemu-tech.html "$(docdir)" @@ -97,6 +98,7 @@ tarbin: $(bindir)/qemu-mkcow $(bindir)/vmdk2raw \ $(datadir)/bios.bin \ $(datadir)/vgabios.bin \ + $(datadir)/vgabios-cirrus.bin \ $(datadir)/linux_boot.bin \ $(docdir)/qemu-doc.html \ $(docdir)/qemu-tech.html \ diff --git a/hw/pc.c b/hw/pc.c index 788854b2931..a40e1d03f26 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -28,6 +28,7 @@ #define BIOS_FILENAME "bios.bin" #define VGABIOS_FILENAME "vgabios.bin" +#define VGABIOS_CIRRUS_FILENAME "vgabios-cirrus.bin" #define LINUX_BOOT_FILENAME "linux_boot.bin" #define KERNEL_LOAD_ADDR 0x00100000 @@ -320,7 +321,11 @@ void pc_init(int ram_size, int vga_ram_size, int boot_device, } /* VGA BIOS load */ - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, VGABIOS_FILENAME); + if (cirrus_vga_enabled) { + snprintf(buf, sizeof(buf), "%s/%s", bios_dir, VGABIOS_CIRRUS_FILENAME); + } else { + snprintf(buf, sizeof(buf), "%s/%s", bios_dir, VGABIOS_FILENAME); + } ret = load_image(buf, phys_ram_base + 0x000c0000); /* setup basic memory access */ diff --git a/pc-bios/README b/pc-bios/README index b5f0bc9e267..b5e9bf709d3 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -3,3 +3,7 @@ - The VGA BIOS comes from the LGPL VGA bios project (http://www.nongnu.org/vgabios/). + +- The Cirrus VGA BIOS comes from the LGPL VGA bios project with + patches from http://ebisa.hp.infoseek.co.jp/bochs/index.shtml. + \ No newline at end of file diff --git a/pc-bios/vgabios-cirrus.bin b/pc-bios/vgabios-cirrus.bin new file mode 100644 index 0000000000000000000000000000000000000000..f393404b623a6e05e72923813c3c113c5fcf7eb9 GIT binary patch literal 26784 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 geGBF<^)Fm{*#cj8N7t4u8#+3DAMe@Xt1n~!7u