From ae0bfb79aa0ac411a433433af4d74f1f08255608 Mon Sep 17 00:00:00 2001 From: Blue Swirl Date: Wed, 13 Oct 2010 18:38:07 +0000 Subject: [PATCH] ppc: remove video.x Only Mac-on-Linux stuff used video.x, OpenBIOS does not need it. Remove video.x MoL hacks. Signed-off-by: Alexander Graf Signed-off-by: Blue Swirl --- Makefile | 3 +- configure | 2 +- hw/ppc_mac.h | 1 - hw/ppc_newworld.c | 41 ++--------------- hw/ppc_oldworld.c | 110 ++------------------------------------------ pc-bios/README | 4 -- pc-bios/video.x | Bin 12192 -> 0 bytes target-ppc/cpu.h | 3 -- target-ppc/helper.c | 11 ----- 9 files changed, 9 insertions(+), 166 deletions(-) delete mode 100644 pc-bios/video.x diff --git a/Makefile b/Makefile index d9971c33f3..252c817d27 100644 --- a/Makefile +++ b/Makefile @@ -176,7 +176,7 @@ common de-ch es fo fr-ca hu ja mk nl-be pt sl tr ifdef INSTALL_BLOBS BLOBS=bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \ -video.x openbios-sparc32 openbios-sparc64 openbios-ppc \ +openbios-sparc32 openbios-sparc64 openbios-ppc \ gpxe-eepro100-80861209.rom \ gpxe-eepro100-80861229.rom \ pxe-e1000.bin \ @@ -323,7 +323,6 @@ tarbin: $(datadir)/vgabios.bin \ $(datadir)/vgabios-cirrus.bin \ $(datadir)/ppc_rom.bin \ - $(datadir)/video.x \ $(datadir)/openbios-sparc32 \ $(datadir)/openbios-sparc64 \ $(datadir)/openbios-ppc \ diff --git a/configure b/configure index d30306195d..a079a494a4 100755 --- a/configure +++ b/configure @@ -3084,7 +3084,7 @@ if test "$source_path_used" = "yes" ; then FILES="Makefile tests/Makefile" FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit" FILES="$FILES tests/test-mmap.c" - FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps pc-bios/video.x" + FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps" FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile" for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.dtb $source_path/pc-bios/openbios-*; do FILES="$FILES pc-bios/`basename $bios_file`" diff --git a/hw/ppc_mac.h b/hw/ppc_mac.h index 89f96bbc34..ea8759324c 100644 --- a/hw/ppc_mac.h +++ b/hw/ppc_mac.h @@ -30,7 +30,6 @@ #define BIOS_SIZE (1024 * 1024) #define BIOS_FILENAME "ppc_rom.bin" -#define VGABIOS_FILENAME "video.x" #define NVRAM_SIZE 0x2000 #define PROM_FILENAME "openbios-ppc" #define PROM_ADDR 0xfff00000 diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c index fb07c8316f..9b20dc5c7c 100644 --- a/hw/ppc_newworld.c +++ b/hw/ppc_newworld.c @@ -69,7 +69,6 @@ #include "blockdev.h" #define MAX_IDE_BUS 2 -#define VGA_BIOS_SIZE 65536 #define CFG_ADDR 0xf0000510 /* debug UniNorth */ @@ -134,20 +133,19 @@ static void ppc_core99_init (ram_addr_t ram_size, qemu_irq *pic, **openpic_irqs; int unin_memory; int linux_boot, i; - ram_addr_t ram_offset, bios_offset, vga_bios_offset; + ram_addr_t ram_offset, bios_offset; uint32_t kernel_base, initrd_base; long kernel_size, initrd_size; PCIBus *pci_bus; MacIONVRAMState *nvr; int nvram_mem_index; - int vga_bios_size, bios_size; + int bios_size; int pic_mem_index, dbdma_mem_index, cuda_mem_index, escc_mem_index; int ide_mem_index[3]; int ppc_boot_device; DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS]; void *fw_cfg; void *dbdma; - uint8_t *vga_bios_ptr; int machine_arch; linux_boot = (kernel_filename != NULL); @@ -167,9 +165,6 @@ static void ppc_core99_init (ram_addr_t ram_size, } /* Set time-base frequency to 100 Mhz */ cpu_ppc_tb_init(env, 100UL * 1000UL * 1000UL); -#if 0 - env->osi_call = vga_osi_call; -#endif qemu_register_reset((QEMUResetHandler*)&cpu_reset, env); envs[i] = env; } @@ -199,36 +194,6 @@ static void ppc_core99_init (ram_addr_t ram_size, exit(1); } - /* allocate and load VGA BIOS */ - vga_bios_offset = qemu_ram_alloc(NULL, "ppc_core99.vbios", VGA_BIOS_SIZE); - vga_bios_ptr = qemu_get_ram_ptr(vga_bios_offset); - filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, VGABIOS_FILENAME); - if (filename) { - vga_bios_size = load_image(filename, vga_bios_ptr + 8); - qemu_free(filename); - } else { - vga_bios_size = -1; - } - if (vga_bios_size < 0) { - /* if no bios is present, we can still work */ - fprintf(stderr, "qemu: warning: could not load VGA bios '%s'\n", - VGABIOS_FILENAME); - vga_bios_size = 0; - } else { - /* set a specific header (XXX: find real Apple format for NDRV - drivers) */ - vga_bios_ptr[0] = 'N'; - vga_bios_ptr[1] = 'D'; - vga_bios_ptr[2] = 'R'; - vga_bios_ptr[3] = 'V'; - cpu_to_be32w((uint32_t *)(vga_bios_ptr + 4), vga_bios_size); - vga_bios_size += 8; - - /* Round to page boundary */ - vga_bios_size = (vga_bios_size + TARGET_PAGE_SIZE - 1) & - TARGET_PAGE_MASK; - } - if (linux_boot) { uint64_t lowaddr = 0; int bswap_needed; @@ -352,7 +317,7 @@ static void ppc_core99_init (ram_addr_t ram_size, machine_arch = ARCH_MAC99; } /* init basic PC hardware */ - pci_vga_init(pci_bus, vga_bios_offset, vga_bios_size); + pci_vga_init(pci_bus, 0, 0); escc_mem_index = escc_init(0x80013000, pic[0x25], pic[0x24], serial_hds[0], serial_hds[1], ESCC_CLOCK, 4); diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c index a12a812970..ff0b51d374 100644 --- a/hw/ppc_oldworld.c +++ b/hw/ppc_oldworld.c @@ -1,3 +1,4 @@ + /* * QEMU OldWorld PowerMac (currently ~G3 Beige) hardware System Emulator * @@ -44,79 +45,8 @@ #include "blockdev.h" #define MAX_IDE_BUS 2 -#define VGA_BIOS_SIZE 65536 #define CFG_ADDR 0xf0000510 -/* temporary frame buffer OSI calls for the video.x driver. The right - solution is to modify the driver to use VGA PCI I/Os */ -/* XXX: to be removed. This is no way related to emulation */ -static int vga_osi_call (CPUState *env) -{ - static int vga_vbl_enabled; - int linesize; - -#if 0 - printf("osi_call R5=%016" PRIx64 "\n", ppc_dump_gpr(env, 5)); -#endif - - /* same handler as PearPC, coming from the original MOL video - driver. */ - switch(env->gpr[5]) { - case 4: - break; - case 28: /* set_vmode */ - if (env->gpr[6] != 1 || env->gpr[7] != 0) - env->gpr[3] = 1; - else - env->gpr[3] = 0; - break; - case 29: /* get_vmode_info */ - if (env->gpr[6] != 0) { - if (env->gpr[6] != 1 || env->gpr[7] != 0) { - env->gpr[3] = 1; - break; - } - } - env->gpr[3] = 0; - env->gpr[4] = (1 << 16) | 1; /* num_vmodes, cur_vmode */ - env->gpr[5] = (1 << 16) | 0; /* num_depths, cur_depth_mode */ - env->gpr[6] = (graphic_width << 16) | graphic_height; /* w, h */ - env->gpr[7] = 85 << 16; /* refresh rate */ - env->gpr[8] = (graphic_depth + 7) & ~7; /* depth (round to byte) */ - linesize = ((graphic_depth + 7) >> 3) * graphic_width; - linesize = (linesize + 3) & ~3; - env->gpr[9] = (linesize << 16) | 0; /* row_bytes, offset */ - break; - case 31: /* set_video power */ - env->gpr[3] = 0; - break; - case 39: /* video_ctrl */ - if (env->gpr[6] == 0 || env->gpr[6] == 1) - vga_vbl_enabled = env->gpr[6]; - env->gpr[3] = 0; - break; - case 47: - break; - case 59: /* set_color */ - /* R6 = index, R7 = RGB */ - env->gpr[3] = 0; - break; - case 64: /* get color */ - /* R6 = index */ - env->gpr[3] = 0; - break; - case 116: /* set hwcursor */ - /* R6 = x, R7 = y, R8 = visible, R9 = data */ - break; - default: - fprintf(stderr, "unsupported OSI call R5=%016" PRIx64 "\n", - ppc_dump_gpr(env, 5)); - break; - } - - return 1; /* osi_call handled */ -} - static int fw_cfg_boot_set(void *opaque, const char *boot_device) { fw_cfg_add_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]); @@ -140,19 +70,18 @@ static void ppc_heathrow_init (ram_addr_t ram_size, char *filename; qemu_irq *pic, **heathrow_irqs; int linux_boot, i; - ram_addr_t ram_offset, bios_offset, vga_bios_offset; + ram_addr_t ram_offset, bios_offset; uint32_t kernel_base, initrd_base; int32_t kernel_size, initrd_size; PCIBus *pci_bus; MacIONVRAMState *nvr; - int vga_bios_size, bios_size; + int bios_size; int pic_mem_index, nvram_mem_index, dbdma_mem_index, cuda_mem_index; int escc_mem_index, ide_mem_index[2]; uint16_t ppc_boot_device; DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS]; void *fw_cfg; void *dbdma; - uint8_t *vga_bios_ptr; linux_boot = (kernel_filename != NULL); @@ -167,7 +96,6 @@ static void ppc_heathrow_init (ram_addr_t ram_size, } /* Set time-base frequency to 16.6 Mhz */ cpu_ppc_tb_init(env, 16600000UL); - env->osi_call = vga_osi_call; qemu_register_reset((QEMUResetHandler*)&cpu_reset, env); envs[i] = env; } @@ -203,36 +131,6 @@ static void ppc_heathrow_init (ram_addr_t ram_size, exit(1); } - /* allocate and load VGA BIOS */ - vga_bios_offset = qemu_ram_alloc(NULL, "ppc_heathrow.vbios", VGA_BIOS_SIZE); - vga_bios_ptr = qemu_get_ram_ptr(vga_bios_offset); - filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, VGABIOS_FILENAME); - if (filename) { - vga_bios_size = load_image(filename, vga_bios_ptr + 8); - qemu_free(filename); - } else { - vga_bios_size = -1; - } - if (vga_bios_size < 0) { - /* if no bios is present, we can still work */ - fprintf(stderr, "qemu: warning: could not load VGA bios '%s'\n", - VGABIOS_FILENAME); - vga_bios_size = 0; - } else { - /* set a specific header (XXX: find real Apple format for NDRV - drivers) */ - vga_bios_ptr[0] = 'N'; - vga_bios_ptr[1] = 'D'; - vga_bios_ptr[2] = 'R'; - vga_bios_ptr[3] = 'V'; - cpu_to_be32w((uint32_t *)(vga_bios_ptr + 4), vga_bios_size); - vga_bios_size += 8; - - /* Round to page boundary */ - vga_bios_size = (vga_bios_size + TARGET_PAGE_SIZE - 1) & - TARGET_PAGE_MASK; - } - if (linux_boot) { uint64_t lowaddr = 0; int bswap_needed; @@ -330,7 +228,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, } pic = heathrow_pic_init(&pic_mem_index, 1, heathrow_irqs); pci_bus = pci_grackle_init(0xfec00000, pic); - pci_vga_init(pci_bus, vga_bios_offset, vga_bios_size); + pci_vga_init(pci_bus, 0, 0); escc_mem_index = escc_init(0x80013000, pic[0x0f], pic[0x10], serial_hds[0], serial_hds[1], ESCC_CLOCK, 4); diff --git a/pc-bios/README b/pc-bios/README index ec5e2e1c8c..3172cf7896 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -7,10 +7,6 @@ - The PowerPC Open Hack'Ware Open Firmware Compatible BIOS is available at http://perso.magic.fr/l_indien/OpenHackWare/index.htm. -- video.x is a PowerMac NDRV compatible driver for a VGA frame - buffer. It comes from the Mac-on-Linux project - (http://www.maconlinux.org/). - - OpenBIOS (http://www.openbios.org/) is a free (GPL v2) portable firmware implementation. The goal is to implement a 100% IEEE 1275-1994 (referred to as Open Firmware) compliant firmware. diff --git a/pc-bios/video.x b/pc-bios/video.x deleted file mode 100644 index 761aa0c9d47fc3648a64ccfe9b9747b2a3af9572..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12192 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[3] == 0x113724fa && env->gpr[4] == 0x77810f9b && - env->osi_call) { - if (env->osi_call(env) != 0) { - env->exception_index = POWERPC_EXCP_NONE; - env->error_code = 0; - return; - } - } dump_syscall(env); lev = env->error_code; if (lev == 1 || (lpes0 == 0 && lpes1 == 0))