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 19792c9a11a..9c0501a4d4e 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 4ceb1ad8825..faffd447bf0 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 9a5a1e689c6..3b21c0ea48b 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 8ffb7856d2c..240f565397a 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 4c5fa293990..4a11fb1640f 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 862345c2ac5..111cc808678 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 4ea54360957..93e614cffd0 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 269d99afe02..d6d33d237f4 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 Hc-jL100001 literal 1048576 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%0D-R)(-W?5_<+i z>mz$&!;(T*S8HfvGBy}mBg=EmZ4s$gt2#Dr4)qNUhdvw|7zyo)4W~2{bxZ1(ESuxq zD&uq_op)xk^0W+($#Aa>qcUujAuPj%;=|89?|C!M%aHWES^px#E`4dazIVfu&J_A{OOUDDgOB@rI>FB&nXo@bYtVx=w^Mm_$}Qn zT^*rK?JaG~mWQUstq+%q8yy;qm71V8s)MXJnYLd(N8_oTfo0k-6zXVe4@HOLyX
*sibGS5JMZtK|4)7Jjpj@I^`P3@c8yNhH; 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 diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi index 3d2a8ff54ba..ea3e10bde39 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 2328e7ea476..b79f1c340bd 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 c559da7c8ee..00000000000 --- 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 a725bce7298..4a6218a516f 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 67635e387ae..833a0508a14 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 58527952a5f..2798802c631 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.39.5