From b2ce76a0730e48e60633a698cd876d55917ac9bc Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Tue, 14 Jan 2020 12:46:17 +0100 Subject: [PATCH] hw/ppc/prep: Remove the deprecated "prep" machine and the OpenHackware BIOS MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Message-Id: <20200114114617.28854-1-thuth@redhat.com> Signed-off-by: David Gibson --- .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 4ceb1ad882..faffd447bf 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1103,7 +1103,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 9a5a1e689c..3b21c0ea48 100644 --- a/Makefile +++ b/Makefile @@ -784,7 +784,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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 zb#*MaOP$btX2;YH-7i<3*e?5&{k8XXOvQb3$6I&1KeMm#=S;i!xRgnEbsq6{Z^YZZ z^KQ43@wFc(JwG1+00000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000002^Ysx95F3sQb%Ha7mHTbJ)|D{iEe&x~?^~&*= z)E4`5|LY@{J~6*=>0fMq<&095<5!fjpZ)18m!8@D%DJj~_pz!{x$+0p;Iq-4<1Z;? ze@>}OpWXb*;OC+{AN{)8^6P)7wwzSan}ffq7LxrY`x?8VcAZw6uKYDm8*hVRw3hk5 DpX3uu diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi index 3d2a8ff54b..ea3e10bde3 100644 --- a/qemu-deprecated.texi +++ b/qemu-deprecated.texi @@ -270,12 +270,6 @@ machine type instead. These machine types are very old and likely can not be used for live migration from old QEMU versions anymore. A newer machine type should be used instead. -@subsection prep (PowerPC) (since 3.1) - -This machine type uses an unmaintained firmware, broken in lots of ways, -and unable to start post-2004 operating systems. 40p machine type should be -used instead. - @subsection spike_v1.9.1 and spike_v1.10 (since 4.1) The version specific Spike machines have been deprecated in favour of the diff --git a/qemu-doc.texi b/qemu-doc.texi index 2328e7ea47..b79f1c340b 100644 --- a/qemu-doc.texi +++ b/qemu-doc.texi @@ -1729,7 +1729,7 @@ differences are mentioned in the following sections. @section PowerPC System emulator @cindex system emulation (PowerPC) -Use the executable @file{qemu-system-ppc} to simulate a complete PREP +Use the executable @file{qemu-system-ppc} to simulate a complete 40P (PREP) or PowerMac PowerPC system. QEMU emulates the following PowerMac peripherals: @@ -1749,7 +1749,7 @@ Non Volatile RAM VIA-CUDA with ADB keyboard and mouse. @end itemize -QEMU emulates the following PREP peripherals: +QEMU emulates the following 40P (PREP) peripherals: @itemize @minus @item @@ -1761,7 +1761,7 @@ PCI VGA compatible card with VESA Bochs Extensions @item Floppy disk @item -NE2000 network adapters +PCnet network adapters @item Serial port @item @@ -1770,12 +1770,9 @@ PREP Non Volatile RAM PC compatible keyboard and mouse. @end itemize -QEMU uses the Open Hack'Ware Open Firmware Compatible BIOS available at -@url{http://perso.magic.fr/l_indien/OpenHackWare/index.htm}. - Since version 0.9.1, QEMU uses OpenBIOS @url{https://www.openbios.org/} -for the g3beige and mac99 PowerMac machines. OpenBIOS is a free (GPL -v2) portable firmware implementation. The goal is to implement a 100% +for the g3beige and mac99 PowerMac and the 40p machines. OpenBIOS 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. @c man begin OPTIONS @@ -1798,8 +1795,6 @@ qemu-system-ppc -prom-env 'auto-boot?=false' \ -prom-env 'boot-args=conf=hd:2,\yaboot.conf' @end example -These variables are not used by Open Hack'Ware. - @end table @c man end diff --git a/roms/openhackware b/roms/openhackware deleted file mode 160000 index c559da7c8e..0000000000 --- a/roms/openhackware +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c559da7c8eec5e45ef1f67978827af6f0b9546f5 diff --git a/tests/qtest/boot-order-test.c b/tests/qtest/boot-order-test.c index a725bce729..4a6218a516 100644 --- a/tests/qtest/boot-order-test.c +++ b/tests/qtest/boot-order-test.c @@ -108,30 +108,6 @@ static void test_pc_boot_order(void) test_boot_orders(NULL, read_boot_order_pc, test_cases_pc); } -static uint8_t read_m48t59(QTestState *qts, uint64_t addr, uint16_t reg) -{ - qtest_writeb(qts, addr, reg & 0xff); - qtest_writeb(qts, addr + 1, reg >> 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" }, -- 2.50.1