From patchwork Tue Jan 14 11:46:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Huth X-Patchwork-Id: 11332045 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 245D013BD for ; Tue, 14 Jan 2020 12:11:43 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B30032465A for ; Tue, 14 Jan 2020 12:11:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="GKcj/AlG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B30032465A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:38270 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1irL2r-0003aJ-Pr for patchwork-qemu-devel@patchwork.kernel.org; Tue, 14 Jan 2020 07:11:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57167) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1irKed-0005ED-MP for qemu-devel@nongnu.org; Tue, 14 Jan 2020 06:47:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1irKeS-0004X2-Qw for qemu-devel@nongnu.org; Tue, 14 Jan 2020 06:46:39 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:28272 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1irKeS-0004Wq-HQ for qemu-devel@nongnu.org; Tue, 14 Jan 2020 06:46:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579002388; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XAzNY1+6OyD8U8fWQaTWBUR26q23JtVyQOqrmPQMqg8=; b=GKcj/AlGf6cp/EPUufOlfzFrMpmC0i4477vj14VEFVdz0O+xOoL8AFwHznDDThKBTSJpot 3tx9lL057dhnKl4wvkR/e3R97eC9dPezORACnQ5zNJw884D3aF+KHPIbEKUa6Ld6Bmex+V 41uqdwXdWNXbpNpZe370jGWfq0s3zuc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-188-Gg-e2Qn3Mi2N9eHCMaa4eA-1; Tue, 14 Jan 2020 06:46:24 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id F3519DB64; Tue, 14 Jan 2020 11:46:22 +0000 (UTC) Received: from thuth.com (unknown [10.36.118.98]) by smtp.corp.redhat.com (Postfix) with ESMTP id AE5D71081318; Tue, 14 Jan 2020 11:46:20 +0000 (UTC) From: Thomas Huth To: qemu-devel@nongnu.org, David Gibson Subject: [PATCH v2] hw/ppc/prep: Remove the deprecated "prep" machine and the OpenHackware BIOS Date: Tue, 14 Jan 2020 12:46:17 +0100 Message-Id: <20200114114617.28854-1-thuth@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-MC-Unique: Gg-e2Qn3Mi2N9eHCMaa4eA-1 X-Mimecast-Spam-Score: 0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 205.139.110.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Herv=C3=A9_Poussineau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" It's been deprecated since QEMU v3.1. The 40p machine should be used nowadays instead. Reviewed-by: Philippe Mathieu-Daudé Acked-by: Hervé Poussineau Signed-off-by: Thomas Huth --- v2: Rebase to master (qtests moved to a separate directory) .gitmodules | 3 - MAINTAINERS | 1 - Makefile | 2 +- docs/interop/firmware.json | 3 +- hw/ppc/ppc.c | 18 -- hw/ppc/prep.c | 384 +--------------------------------- include/hw/ppc/ppc.h | 1 - pc-bios/README | 3 - pc-bios/ppc_rom.bin | Bin 1048576 -> 0 bytes qemu-deprecated.texi | 6 - qemu-doc.texi | 15 +- roms/openhackware | 1 - tests/qtest/boot-order-test.c | 25 --- tests/qtest/cdrom-test.c | 2 +- tests/qtest/endianness-test.c | 2 +- 15 files changed, 10 insertions(+), 456 deletions(-) delete mode 100644 pc-bios/ppc_rom.bin delete mode 160000 roms/openhackware diff --git a/.gitmodules b/.gitmodules index 19792c9a11..9c0501a4d4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,9 +10,6 @@ [submodule "roms/openbios"] path = roms/openbios url = https://git.qemu.org/git/openbios.git -[submodule "roms/openhackware"] - path = roms/openhackware - url = https://git.qemu.org/git/openhackware.git [submodule "roms/qemu-palcode"] path = roms/qemu-palcode url = https://git.qemu.org/git/qemu-palcode.git diff --git a/MAINTAINERS b/MAINTAINERS index 483edfbc0b..c5b1cbbac5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1087,7 +1087,6 @@ F: hw/dma/i82374.c F: hw/rtc/m48t59-isa.c F: include/hw/isa/pc87312.h F: include/hw/rtc/m48t59.h -F: pc-bios/ppc_rom.bin F: tests/acceptance/ppc_prep_40p.py sPAPR diff --git a/Makefile b/Makefile index 32bd554480..195f5fbe27 100644 --- a/Makefile +++ b/Makefile @@ -768,7 +768,7 @@ ifdef INSTALL_BLOBS BLOBS=bios.bin bios-256k.bin bios-microvm.bin sgabios.bin vgabios.bin vgabios-cirrus.bin \ vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin vgabios-virtio.bin \ vgabios-ramfb.bin vgabios-bochs-display.bin vgabios-ati.bin \ -ppc_rom.bin openbios-sparc32 openbios-sparc64 openbios-ppc QEMU,tcx.bin QEMU,cgthree.bin \ +openbios-sparc32 openbios-sparc64 openbios-ppc QEMU,tcx.bin QEMU,cgthree.bin \ pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom \ pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom \ efi-e1000.rom efi-eepro100.rom efi-ne2k_pci.rom \ diff --git a/docs/interop/firmware.json b/docs/interop/firmware.json index 8ffb7856d2..240f565397 100644 --- a/docs/interop/firmware.json +++ b/docs/interop/firmware.json @@ -27,8 +27,7 @@ # # @openfirmware: The interface is defined by the (historical) IEEE # 1275-1994 standard. Examples for firmware projects that -# provide this interface are: OpenBIOS, OpenHackWare, -# SLOF. +# provide this interface are: OpenBIOS and SLOF. # # @uboot: Firmware interface defined by the U-Boot project. # diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c index 4c5fa29399..4a11fb1640 100644 --- a/hw/ppc/ppc.c +++ b/hw/ppc/ppc.c @@ -1490,24 +1490,6 @@ int ppc_dcr_init (CPUPPCState *env, int (*read_error)(int dcrn), } /*****************************************************************************/ -/* Debug port */ -void PPC_debug_write (void *opaque, uint32_t addr, uint32_t val) -{ - addr &= 0xF; - switch (addr) { - case 0: - printf("%c", val); - break; - case 1: - printf("\n"); - fflush(stdout); - break; - case 2: - printf("Set loglevel to %04" PRIx32 "\n", val); - qemu_set_log(val | 0x100); - break; - } -} int ppc_cpu_pir(PowerPCCPU *cpu) { diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c index 862345c2ac..111cc80867 100644 --- a/hw/ppc/prep.c +++ b/hw/ppc/prep.c @@ -42,7 +42,7 @@ #include "hw/loader.h" #include "hw/rtc/mc146818rtc.h" #include "hw/isa/pc87312.h" -#include "hw/net/ne2000-isa.h" +#include "hw/qdev-properties.h" #include "sysemu/arch_init.h" #include "sysemu/kvm.h" #include "sysemu/qtest.h" @@ -60,178 +60,9 @@ #define CFG_ADDR 0xf0000510 -#define BIOS_SIZE (1 * MiB) -#define BIOS_FILENAME "ppc_rom.bin" #define KERNEL_LOAD_ADDR 0x01000000 #define INITRD_LOAD_ADDR 0x01800000 -/* Constants for devices init */ -static const int ide_iobase[2] = { 0x1f0, 0x170 }; -static const int ide_iobase2[2] = { 0x3f6, 0x376 }; -static const int ide_irq[2] = { 13, 13 }; - -#define NE2000_NB_MAX 6 - -static uint32_t ne2000_io[NE2000_NB_MAX] = { 0x300, 0x320, 0x340, 0x360, 0x280, 0x380 }; -static int ne2000_irq[NE2000_NB_MAX] = { 9, 10, 11, 3, 4, 5 }; - -/* ISA IO ports bridge */ -#define PPC_IO_BASE 0x80000000 - -/* Fake super-io ports for PREP platform (Intel 82378ZB) */ -typedef struct sysctrl_t { - qemu_irq reset_irq; - Nvram *nvram; - uint8_t state; - uint8_t syscontrol; - int contiguous_map; - qemu_irq contiguous_map_irq; - int endian; -} sysctrl_t; - -enum { - STATE_HARDFILE = 0x01, -}; - -static sysctrl_t *sysctrl; - -static void PREP_io_800_writeb (void *opaque, uint32_t addr, uint32_t val) -{ - sysctrl_t *sysctrl = opaque; - - trace_prep_io_800_writeb(addr - PPC_IO_BASE, val); - switch (addr) { - case 0x0092: - /* Special port 92 */ - /* Check soft reset asked */ - if (val & 0x01) { - qemu_irq_raise(sysctrl->reset_irq); - } else { - qemu_irq_lower(sysctrl->reset_irq); - } - /* Check LE mode */ - if (val & 0x02) { - sysctrl->endian = 1; - } else { - sysctrl->endian = 0; - } - break; - case 0x0800: - /* Motorola CPU configuration register : read-only */ - break; - case 0x0802: - /* Motorola base module feature register : read-only */ - break; - case 0x0803: - /* Motorola base module status register : read-only */ - break; - case 0x0808: - /* Hardfile light register */ - if (val & 1) - sysctrl->state |= STATE_HARDFILE; - else - sysctrl->state &= ~STATE_HARDFILE; - break; - case 0x0810: - /* Password protect 1 register */ - if (sysctrl->nvram != NULL) { - NvramClass *k = NVRAM_GET_CLASS(sysctrl->nvram); - (k->toggle_lock)(sysctrl->nvram, 1); - } - break; - case 0x0812: - /* Password protect 2 register */ - if (sysctrl->nvram != NULL) { - NvramClass *k = NVRAM_GET_CLASS(sysctrl->nvram); - (k->toggle_lock)(sysctrl->nvram, 2); - } - break; - case 0x0814: - /* L2 invalidate register */ - // tlb_flush(first_cpu, 1); - break; - case 0x081C: - /* system control register */ - sysctrl->syscontrol = val & 0x0F; - break; - case 0x0850: - /* I/O map type register */ - sysctrl->contiguous_map = val & 0x01; - qemu_set_irq(sysctrl->contiguous_map_irq, sysctrl->contiguous_map); - break; - default: - printf("ERROR: unaffected IO port write: %04" PRIx32 - " => %02" PRIx32"\n", addr, val); - break; - } -} - -static uint32_t PREP_io_800_readb (void *opaque, uint32_t addr) -{ - sysctrl_t *sysctrl = opaque; - uint32_t retval = 0xFF; - - switch (addr) { - case 0x0092: - /* Special port 92 */ - retval = sysctrl->endian << 1; - break; - case 0x0800: - /* Motorola CPU configuration register */ - retval = 0xEF; /* MPC750 */ - break; - case 0x0802: - /* Motorola Base module feature register */ - retval = 0xAD; /* No ESCC, PMC slot neither ethernet */ - break; - case 0x0803: - /* Motorola base module status register */ - retval = 0xE0; /* Standard MPC750 */ - break; - case 0x080C: - /* Equipment present register: - * no L2 cache - * no upgrade processor - * no cards in PCI slots - * SCSI fuse is bad - */ - retval = 0x3C; - break; - case 0x0810: - /* Motorola base module extended feature register */ - retval = 0x39; /* No USB, CF and PCI bridge. NVRAM present */ - break; - case 0x0814: - /* L2 invalidate: don't care */ - break; - case 0x0818: - /* Keylock */ - retval = 0x00; - break; - case 0x081C: - /* system control register - * 7 - 6 / 1 - 0: L2 cache enable - */ - retval = sysctrl->syscontrol; - break; - case 0x0823: - /* */ - retval = 0x03; /* no L2 cache */ - break; - case 0x0850: - /* I/O map type register */ - retval = sysctrl->contiguous_map; - break; - default: - printf("ERROR: unaffected IO port: %04" PRIx32 " read\n", addr); - break; - } - trace_prep_io_800_readb(addr - PPC_IO_BASE, retval); - - return retval; -} - - #define NVRAM_SIZE 0x2000 static void fw_cfg_boot_set(void *opaque, const char *boot_device, @@ -247,17 +78,6 @@ static void ppc_prep_reset(void *opaque) cpu_reset(CPU(cpu)); } -static const MemoryRegionPortio prep_portio_list[] = { - /* System control ports */ - { 0x0092, 1, 1, .read = PREP_io_800_readb, .write = PREP_io_800_writeb, }, - { 0x0800, 0x52, 1, - .read = PREP_io_800_readb, .write = PREP_io_800_writeb, }, - /* Special port to get debug messages from Open-Firmware */ - { 0x0F00, 4, 1, .write = PPC_debug_write, }, - PORTIO_END_OF_LIST(), -}; - -static PortioList prep_port_list; /*****************************************************************************/ /* NVRAM helpers */ @@ -397,207 +217,6 @@ static int PPC_NVRAM_set_params (Nvram *nvram, uint16_t NVRAM_size, return 0; } -/* PowerPC PREP hardware initialisation */ -static void ppc_prep_init(MachineState *machine) -{ - ram_addr_t ram_size = machine->ram_size; - const char *kernel_filename = machine->kernel_filename; - const char *kernel_cmdline = machine->kernel_cmdline; - const char *initrd_filename = machine->initrd_filename; - const char *boot_device = machine->boot_order; - MemoryRegion *sysmem = get_system_memory(); - PowerPCCPU *cpu = NULL; - CPUPPCState *env = NULL; - Nvram *m48t59; -#if 0 - MemoryRegion *xcsr = g_new(MemoryRegion, 1); -#endif - int linux_boot, i, nb_nics1; - MemoryRegion *ram = g_new(MemoryRegion, 1); - uint32_t kernel_base, initrd_base; - long kernel_size, initrd_size; - DeviceState *dev; - PCIHostState *pcihost; - PCIBus *pci_bus; - PCIDevice *pci; - ISABus *isa_bus; - ISADevice *isa; - int ppc_boot_device; - DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS]; - - sysctrl = g_malloc0(sizeof(sysctrl_t)); - - linux_boot = (kernel_filename != NULL); - - /* init CPUs */ - for (i = 0; i < machine->smp.cpus; i++) { - cpu = POWERPC_CPU(cpu_create(machine->cpu_type)); - env = &cpu->env; - - if (env->flags & POWERPC_FLAG_RTC_CLK) { - /* POWER / PowerPC 601 RTC clock frequency is 7.8125 MHz */ - cpu_ppc_tb_init(env, 7812500UL); - } else { - /* Set time-base frequency to 100 Mhz */ - cpu_ppc_tb_init(env, 100UL * 1000UL * 1000UL); - } - qemu_register_reset(ppc_prep_reset, cpu); - } - - /* allocate RAM */ - memory_region_allocate_system_memory(ram, NULL, "ppc_prep.ram", ram_size); - memory_region_add_subregion(sysmem, 0, ram); - - if (linux_boot) { - kernel_base = KERNEL_LOAD_ADDR; - /* now we can load the kernel */ - kernel_size = load_image_targphys(kernel_filename, kernel_base, - ram_size - kernel_base); - if (kernel_size < 0) { - error_report("could not load kernel '%s'", kernel_filename); - exit(1); - } - /* load initrd */ - if (initrd_filename) { - initrd_base = INITRD_LOAD_ADDR; - initrd_size = load_image_targphys(initrd_filename, initrd_base, - ram_size - initrd_base); - if (initrd_size < 0) { - error_report("could not load initial ram disk '%s'", - initrd_filename); - exit(1); - } - } else { - initrd_base = 0; - initrd_size = 0; - } - ppc_boot_device = 'm'; - } else { - kernel_base = 0; - kernel_size = 0; - initrd_base = 0; - initrd_size = 0; - ppc_boot_device = '\0'; - /* For now, OHW cannot boot from the network. */ - for (i = 0; boot_device[i] != '\0'; i++) { - if (boot_device[i] >= 'a' && boot_device[i] <= 'f') { - ppc_boot_device = boot_device[i]; - break; - } - } - if (ppc_boot_device == '\0') { - error_report("No valid boot device for Mac99 machine"); - exit(1); - } - } - - if (PPC_INPUT(env) != PPC_FLAGS_INPUT_6xx) { - error_report("Only 6xx bus is supported on PREP machine"); - exit(1); - } - - dev = qdev_create(NULL, "raven-pcihost"); - if (bios_name == NULL) { - bios_name = BIOS_FILENAME; - } - qdev_prop_set_string(dev, "bios-name", bios_name); - qdev_prop_set_uint32(dev, "elf-machine", PPC_ELF_MACHINE); - qdev_prop_set_bit(dev, "is-legacy-prep", true); - pcihost = PCI_HOST_BRIDGE(dev); - object_property_add_child(qdev_get_machine(), "raven", OBJECT(dev), NULL); - qdev_init_nofail(dev); - pci_bus = (PCIBus *)qdev_get_child_bus(dev, "pci.0"); - if (pci_bus == NULL) { - error_report("Couldn't create PCI host controller"); - exit(1); - } - sysctrl->contiguous_map_irq = qdev_get_gpio_in(dev, 0); - - /* PCI -> ISA bridge */ - pci = pci_create_simple(pci_bus, PCI_DEVFN(1, 0), "i82378"); - cpu = POWERPC_CPU(first_cpu); - qdev_connect_gpio_out(&pci->qdev, 0, - cpu->env.irq_inputs[PPC6xx_INPUT_INT]); - sysbus_connect_irq(&pcihost->busdev, 0, qdev_get_gpio_in(&pci->qdev, 9)); - sysbus_connect_irq(&pcihost->busdev, 1, qdev_get_gpio_in(&pci->qdev, 11)); - sysbus_connect_irq(&pcihost->busdev, 2, qdev_get_gpio_in(&pci->qdev, 9)); - sysbus_connect_irq(&pcihost->busdev, 3, qdev_get_gpio_in(&pci->qdev, 11)); - isa_bus = ISA_BUS(qdev_get_child_bus(DEVICE(pci), "isa.0")); - - /* Super I/O (parallel + serial ports) */ - isa = isa_create(isa_bus, TYPE_PC87312_SUPERIO); - dev = DEVICE(isa); - qdev_prop_set_uint8(dev, "config", 13); /* fdc, ser0, ser1, par0 */ - qdev_init_nofail(dev); - - /* init basic PC hardware */ - pci_vga_init(pci_bus); - - nb_nics1 = nb_nics; - if (nb_nics1 > NE2000_NB_MAX) - nb_nics1 = NE2000_NB_MAX; - for(i = 0; i < nb_nics1; i++) { - if (nd_table[i].model == NULL) { - nd_table[i].model = g_strdup("ne2k_isa"); - } - if (strcmp(nd_table[i].model, "ne2k_isa") == 0) { - isa_ne2000_init(isa_bus, ne2000_io[i], ne2000_irq[i], - &nd_table[i]); - } else { - pci_nic_init_nofail(&nd_table[i], pci_bus, "ne2k_pci", NULL); - } - } - - ide_drive_get(hd, ARRAY_SIZE(hd)); - for(i = 0; i < MAX_IDE_BUS; i++) { - isa_ide_init(isa_bus, ide_iobase[i], ide_iobase2[i], ide_irq[i], - hd[2 * i], - hd[2 * i + 1]); - } - - cpu = POWERPC_CPU(first_cpu); - sysctrl->reset_irq = cpu->env.irq_inputs[PPC6xx_INPUT_HRESET]; - - portio_list_init(&prep_port_list, NULL, prep_portio_list, sysctrl, "prep"); - portio_list_add(&prep_port_list, isa_address_space_io(isa), 0x0); - - /* - * PowerPC control and status register group: unimplemented, - * would be at address 0xFEFF0000. - */ - - if (machine_usb(machine)) { - pci_create_simple(pci_bus, -1, "pci-ohci"); - } - - m48t59 = m48t59_init_isa(isa_bus, 0x0074, NVRAM_SIZE, 2000, 59); - if (m48t59 == NULL) - return; - sysctrl->nvram = m48t59; - - /* Initialise NVRAM */ - PPC_NVRAM_set_params(m48t59, NVRAM_SIZE, "PREP", ram_size, - ppc_boot_device, - kernel_base, kernel_size, - kernel_cmdline, - initrd_base, initrd_size, - /* XXX: need an option to load a NVRAM image */ - 0, - graphic_width, graphic_height, graphic_depth); -} - -static void prep_machine_init(MachineClass *mc) -{ - mc->deprecation_reason = "use 40p machine type instead"; - mc->desc = "PowerPC PREP platform"; - mc->init = ppc_prep_init; - mc->block_default_type = IF_IDE; - mc->max_cpus = MAX_CPUS; - mc->default_boot_order = "cad"; - mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("602"); - mc->default_display = "std"; -} - static int prep_set_cmos_checksum(DeviceState *dev, void *opaque) { uint16_t checksum = *(uint16_t *)opaque; @@ -821,4 +440,3 @@ static void ibm_40p_machine_init(MachineClass *mc) } DEFINE_MACHINE("40p", ibm_40p_machine_init) -DEFINE_MACHINE("prep", prep_machine_init) diff --git a/include/hw/ppc/ppc.h b/include/hw/ppc/ppc.h index 4ea5436095..93e614cffd 100644 --- a/include/hw/ppc/ppc.h +++ b/include/hw/ppc/ppc.h @@ -68,7 +68,6 @@ clk_setup_cb ppc_40x_timers_init (CPUPPCState *env, uint32_t freq, void ppc40x_core_reset(PowerPCCPU *cpu); void ppc40x_chip_reset(PowerPCCPU *cpu); void ppc40x_system_reset(PowerPCCPU *cpu); -void PPC_debug_write (void *opaque, uint32_t addr, uint32_t val); #if defined(CONFIG_USER_ONLY) static inline void ppc40x_irq_init(PowerPCCPU *cpu) {} diff --git a/pc-bios/README b/pc-bios/README index 269d99afe0..d6d33d237f 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -4,9 +4,6 @@ - The VGA BIOS and the Cirrus VGA BIOS come from the LGPL VGA bios project (http://www.nongnu.org/vgabios/). -- The PowerPC Open Hack'Ware Open Firmware Compatible BIOS is - available at https://repo.or.cz/openhackware.git. - - 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/ppc_rom.bin b/pc-bios/ppc_rom.bin deleted file mode 100644 index 174a24744b73fb2824f9b1e7c0078f4499e1e724..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1048576 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

QRKddRN2lI_B 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 z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CZ>iJ9LQCKo~_~^ui1phsU#kPC^kV5(th3Oh7cD23Ir57zCjS3Ihi92Qxc?wO|oV zhnjAn*yG>(a&rg}AV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5)`DlkdX&Gt)kzfSXhp}ho9<%U-L|g#9A9Lw O-*vaY{|j7>>w`a^> 8); - return qtest_readb(qts, addr + 3); -} - -static uint64_t read_boot_order_prep(QTestState *qts) -{ - return read_m48t59(qts, 0x80000000 + 0x74, 0x34); -} - -static const boot_order_test test_cases_prep[] = { - { "", 'c', 'c' }, - { "-boot c", 'c', 'c' }, - { "-boot d", 'd', 'd' }, - {} -}; - -static void test_prep_boot_order(void) -{ - test_boot_orders("prep", read_boot_order_prep, test_cases_prep); -} - static uint64_t read_boot_order_pmac(QTestState *qts) { QFWCFG *fw_cfg = mm_fw_cfg_init(qts, 0xf0000510); @@ -190,7 +166,6 @@ int main(int argc, char *argv[]) if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { qtest_add_func("boot-order/pc", test_pc_boot_order); } else if (strcmp(arch, "ppc") == 0 || strcmp(arch, "ppc64") == 0) { - qtest_add_func("boot-order/prep", test_prep_boot_order); qtest_add_func("boot-order/pmac_oldworld", test_pmac_oldworld_boot_order); qtest_add_func("boot-order/pmac_newworld", diff --git a/tests/qtest/cdrom-test.c b/tests/qtest/cdrom-test.c index 67635e387a..833a0508a1 100644 --- a/tests/qtest/cdrom-test.c +++ b/tests/qtest/cdrom-test.c @@ -189,7 +189,7 @@ int main(int argc, char **argv) add_s390x_tests(); } else if (g_str_equal(arch, "ppc64")) { const char *ppcmachines[] = { - "pseries", "mac99", "g3beige", "40p", "prep", NULL + "pseries", "mac99", "g3beige", "40p", NULL }; add_cdrom_param_tests(ppcmachines); } else if (g_str_equal(arch, "sparc")) { diff --git a/tests/qtest/endianness-test.c b/tests/qtest/endianness-test.c index 58527952a5..2798802c63 100644 --- a/tests/qtest/endianness-test.c +++ b/tests/qtest/endianness-test.c @@ -35,7 +35,7 @@ static const TestCase test_cases[] = { { "mips64", "malta", 0x10000000, .bswap = true }, { "mips64el", "fulong2e", 0x1fd00000 }, { "ppc", "g3beige", 0xfe000000, .bswap = true, .superio = "i82378" }, - { "ppc", "prep", 0x80000000, .bswap = true }, + { "ppc", "40p", 0x80000000, .bswap = true }, { "ppc", "bamboo", 0xe8000000, .bswap = true, .superio = "i82378" }, { "ppc64", "mac99", 0xf2000000, .bswap = true, .superio = "i82378" }, { "ppc64", "pseries", (1ULL << 45), .bswap = true, .superio = "i82378" },