From nobody Sun May 5 10:11:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.68 as permitted sender) client-ip=209.85.128.68; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f68.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.68 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1604312796; cv=none; d=zohomail.com; s=zohoarc; b=k7S6whvkQIorJNe5DSF8Bi2OhthCYVdPEhaOKhTG8gmtORNJE0DZR71bfeo2zG/PSXu575gJhKg1dK7d/Ov4xNOPmsoN4o1T73xAy5H6t3O14jG3X7/MR3WcBbqMVI7r24yFwsxGiqIGpeUuVhKBsgfLGJJyxVnjmcOone15G+8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604312796; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:MIME-Version:Message-ID:Sender:Subject:To; bh=mJoj9rho1jQe5Vrszc6Y7uuMC97SlkiS0ofVPraPmqE=; b=czGok//S8MHqzh6wzT/B87XHXhbnfUqbmOj5ieeJu50gMlYNCDLwv8HpNDD0fHue9TJI4iajHTKHAwi8Yc8l1gEXHn2NS33lyUzfLd26SMT4bceSAzrcUO/Zu1x6sMWcINazZeMjaz44XTDSGamYcEicFasQmw0A9N83GOgMG70= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.68 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by mx.zohomail.com with SMTPS id 1604312796827804.5522768899865; Mon, 2 Nov 2020 02:26:36 -0800 (PST) Received: by mail-wm1-f68.google.com with SMTP id h62so4123686wme.3 for ; Mon, 02 Nov 2020 02:26:36 -0800 (PST) Return-Path: Return-Path: Received: from localhost.localdomain (234.red-83-42-66.dynamicip.rima-tde.net. [83.42.66.234]) by smtp.gmail.com with ESMTPSA id y201sm15982762wmd.27.2020.11.02.02.26.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Nov 2020 02:26:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=mJoj9rho1jQe5Vrszc6Y7uuMC97SlkiS0ofVPraPmqE=; b=p9D5uVKLArJvu4iD3lx2KoMh+m48zTsFUisrMtvDqTPfMAbCdNKlwje24ANTwRfDrg GCkc1WoRwEF1R6ONr0FpT8BIumprEqt/vt2sz2bB1yH1hiWydGBa6Qn3rAtZtk8dcJla NGevSUUKTyUvVrk2AGjCwKj3qTB356F1AoXbiizH+Z7kOiLf4qDx6l0+Xk9V2OtdtW2/ DTVtBgmbpSEmwR4zyTLNFjw8RDEiA3E/Ee3IpaG4ZihgtaxS9MJ4dBJcwRjyMYnUKNIR Sr+UN6+k8dvtoy5ivZib1Nq1kiIuAnVOAyksEsJpyI6nLpeAZAv+zu5x9Sk9Z3+c/lwS dGvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=mJoj9rho1jQe5Vrszc6Y7uuMC97SlkiS0ofVPraPmqE=; b=WNN5MHx/oUBKGKwJiD4oo6G9s90G62vLg/rUZUKS6RsN+5gf/cN1GVP+ZfMlOXkpQ4 oKvW7HnIxgLbLy8uZ8L0F7l1bsv38lwJ3Qi4653OqQidH1SmjNt1/WkhGIMOmEvR7Ksr OutNMxz+VL5f46NcsV3xdqBuRTlGnGUQAek6JXnH//fe62zyxIEbokF+Tnlkxq/ycoY1 GD+xSotT/tDmxmCt42OFCXUzQBEnd5eXZCgpcCFq0+Tw8CRio8ujrXpYRVGjngHYz+v5 WoLcjb0zzbYc+ba8KkNmKkCVjK9ctRU13iNTZCbmHMHGH2Frb+v8Jg9Q2NonnxIekREc ozfA== X-Gm-Message-State: AOAM533o3ePxBJhemWofJ83slOXMTZ5ww3f1xaEWvsHyUTQ5zP5169r1 0n9LUSlH52VO4IS7BI9Gwlc= X-Google-Smtp-Source: ABdhPJz8t2F9wOOHYN/4o1ujEug/eFNJNHxa7ZMV3woFlXA4sVsfPSC+En1uTKEbYn+kOFy4gqq5QQ== X-Received: by 2002:a1c:b0c8:: with SMTP id z191mr16120077wme.99.1604312794680; Mon, 02 Nov 2020 02:26:34 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: libvir-list@redhat.com, Aurelien Jarno , Jiaxun Yang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Thomas Huth , Aleksandar Rikalo Subject: [PATCH-for-5.2] hw/mips: Remove the 'r4k' machine Date: Mon, 2 Nov 2020 11:26:31 +0100 Message-Id: <20201102102631.2058219-1-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) We deprecated the support for the 'r4k' machine for the 5.0 release (commit d32dc61421), which means that our deprecation policy allows us to drop it in release 5.2. Remove the code. To repeat the rationale from the deprecation note: - this virtual machine has no specification - the Linux kernel dropped support for it 10 years ago Users are recommended to use the Malta board instead. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Richard Henderson --- docs/system/deprecated.rst | 2 +- .../devices/mips-softmmu-common.mak | 1 - hw/mips/r4k.c | 318 ------------------ MAINTAINERS | 6 - hw/mips/Kconfig | 13 - hw/mips/meson.build | 1 - 6 files changed, 1 insertion(+), 340 deletions(-) delete mode 100644 hw/mips/r4k.c diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst index 0ebce37a191..0e83ea2ca0a 100644 --- a/docs/system/deprecated.rst +++ b/docs/system/deprecated.rst @@ -327,7 +327,7 @@ The 'scsi-disk' device is deprecated. Users should use = 'scsi-hd' or System emulator machines ------------------------ =20 -mips ``r4k`` platform (since 5.0) +mips ``r4k`` platform (removed in 5.2) ''''''''''''''''''''''''''''''''' =20 This machine type is very old and unmaintained. Users should use the ``mal= ta`` diff --git a/default-configs/devices/mips-softmmu-common.mak b/default-conf= igs/devices/mips-softmmu-common.mak index da29c6c0b24..ea78fe72759 100644 --- a/default-configs/devices/mips-softmmu-common.mak +++ b/default-configs/devices/mips-softmmu-common.mak @@ -33,7 +33,6 @@ CONFIG_MC146818RTC=3Dy CONFIG_EMPTY_SLOT=3Dy CONFIG_MIPS_CPS=3Dy CONFIG_MIPS_ITU=3Dy -CONFIG_R4K=3Dy CONFIG_MALTA=3Dy CONFIG_PCNET_PCI=3Dy CONFIG_MIPSSIM=3Dy diff --git a/hw/mips/r4k.c b/hw/mips/r4k.c deleted file mode 100644 index 38308543421..00000000000 --- a/hw/mips/r4k.c +++ /dev/null @@ -1,318 +0,0 @@ -/* - * QEMU/MIPS pseudo-board - * - * emulates a simple machine with ISA-like bus. - * ISA IO space mapped to the 0x14000000 (PHYS) and - * ISA memory at the 0x10000000 (PHYS, 16Mb in size). - * All peripherial devices are attached to this "bus" with - * the standard PC ISA addresses. - */ - -#include "qemu/osdep.h" -#include "qemu/units.h" -#include "qapi/error.h" -#include "qemu-common.h" -#include "cpu.h" -#include "hw/clock.h" -#include "hw/mips/mips.h" -#include "hw/mips/cpudevs.h" -#include "hw/intc/i8259.h" -#include "hw/char/serial.h" -#include "hw/isa/isa.h" -#include "net/net.h" -#include "hw/net/ne2000-isa.h" -#include "sysemu/sysemu.h" -#include "hw/boards.h" -#include "hw/block/flash.h" -#include "qemu/log.h" -#include "hw/mips/bios.h" -#include "hw/ide.h" -#include "hw/ide/internal.h" -#include "hw/loader.h" -#include "elf.h" -#include "hw/rtc/mc146818rtc.h" -#include "hw/input/i8042.h" -#include "hw/timer/i8254.h" -#include "exec/address-spaces.h" -#include "sysemu/qtest.h" -#include "sysemu/reset.h" -#include "sysemu/runstate.h" -#include "qemu/error-report.h" - -#define MAX_IDE_BUS 2 - -static const int ide_iobase[2] =3D { 0x1f0, 0x170 }; -static const int ide_iobase2[2] =3D { 0x3f6, 0x376 }; -static const int ide_irq[2] =3D { 14, 15 }; - -static ISADevice *pit; /* PIT i8254 */ - -/* i8254 PIT is attached to the IRQ0 at PIC i8259 */ - -static struct _loaderparams { - int ram_size; - const char *kernel_filename; - const char *kernel_cmdline; - const char *initrd_filename; -} loaderparams; - -static void mips_qemu_write(void *opaque, hwaddr addr, - uint64_t val, unsigned size) -{ - if ((addr & 0xffff) =3D=3D 0 && val =3D=3D 42) { - qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET); - } else if ((addr & 0xffff) =3D=3D 4 && val =3D=3D 42) { - qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN); - } -} - -static uint64_t mips_qemu_read(void *opaque, hwaddr addr, - unsigned size) -{ - return 0; -} - -static const MemoryRegionOps mips_qemu_ops =3D { - .read =3D mips_qemu_read, - .write =3D mips_qemu_write, - .endianness =3D DEVICE_NATIVE_ENDIAN, -}; - -typedef struct ResetData { - MIPSCPU *cpu; - uint64_t vector; -} ResetData; - -static int64_t load_kernel(void) -{ - const size_t params_size =3D 264; - int64_t entry, kernel_high, initrd_size; - long kernel_size; - ram_addr_t initrd_offset; - uint32_t *params_buf; - int big_endian; - -#ifdef TARGET_WORDS_BIGENDIAN - big_endian =3D 1; -#else - big_endian =3D 0; -#endif - kernel_size =3D load_elf(loaderparams.kernel_filename, NULL, - cpu_mips_kseg0_to_phys, NULL, - (uint64_t *)&entry, NULL, - (uint64_t *)&kernel_high, NULL, big_endian, - EM_MIPS, 1, 0); - if (kernel_size < 0) { - error_report("could not load kernel '%s': %s", - loaderparams.kernel_filename, - load_elf_strerror(kernel_size)); - exit(1); - } - - /* load initrd */ - initrd_size =3D 0; - initrd_offset =3D 0; - if (loaderparams.initrd_filename) { - initrd_size =3D get_image_size(loaderparams.initrd_filename); - if (initrd_size > 0) { - initrd_offset =3D ROUND_UP(kernel_high, INITRD_PAGE_SIZE); - if (initrd_offset + initrd_size > ram_size) { - error_report("memory too small for initial ram disk '%s'", - loaderparams.initrd_filename); - exit(1); - } - initrd_size =3D load_image_targphys(loaderparams.initrd_filena= me, - initrd_offset, - ram_size - initrd_offset); - } - if (initrd_size =3D=3D (target_ulong) -1) { - error_report("could not load initial ram disk '%s'", - loaderparams.initrd_filename); - exit(1); - } - } - - /* Store command line. */ - params_buf =3D g_malloc(params_size); - - params_buf[0] =3D tswap32(ram_size); - params_buf[1] =3D tswap32(0x12345678); - - if (initrd_size > 0) { - snprintf((char *)params_buf + 8, 256, - "rd_start=3D0x%" PRIx64 " rd_size=3D%" PRId64 " %s", - cpu_mips_phys_to_kseg0(NULL, initrd_offset), - initrd_size, loaderparams.kernel_cmdline); - } else { - snprintf((char *)params_buf + 8, 256, - "%s", loaderparams.kernel_cmdline); - } - - rom_add_blob_fixed("params", params_buf, params_size, - 16 * MiB - params_size); - - g_free(params_buf); - return entry; -} - -static void main_cpu_reset(void *opaque) -{ - ResetData *s =3D (ResetData *)opaque; - CPUMIPSState *env =3D &s->cpu->env; - - cpu_reset(CPU(s->cpu)); - env->active_tc.PC =3D s->vector; -} - -static const int sector_len =3D 32 * KiB; -static -void mips_r4k_init(MachineState *machine) -{ - const char *kernel_filename =3D machine->kernel_filename; - const char *kernel_cmdline =3D machine->kernel_cmdline; - const char *initrd_filename =3D machine->initrd_filename; - char *filename; - MemoryRegion *address_space_mem =3D get_system_memory(); - MemoryRegion *bios; - MemoryRegion *iomem =3D g_new(MemoryRegion, 1); - MemoryRegion *isa_io =3D g_new(MemoryRegion, 1); - MemoryRegion *isa_mem =3D g_new(MemoryRegion, 1); - int bios_size; - Clock *cpuclk; - MIPSCPU *cpu; - CPUMIPSState *env; - ResetData *reset_info; - int i; - qemu_irq *i8259; - ISABus *isa_bus; - DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS]; - DriveInfo *dinfo; - int be; - - cpuclk =3D clock_new(OBJECT(machine), "cpu-refclk"); - clock_set_hz(cpuclk, 200000000); /* 200 MHz */ - - /* init CPUs */ - cpu =3D mips_cpu_create_with_clock(machine->cpu_type, cpuclk); - env =3D &cpu->env; - - reset_info =3D g_malloc0(sizeof(ResetData)); - reset_info->cpu =3D cpu; - reset_info->vector =3D env->active_tc.PC; - qemu_register_reset(main_cpu_reset, reset_info); - - /* allocate RAM */ - if (machine->ram_size > 256 * MiB) { - error_report("Too much memory for this machine: %" PRId64 "MB," - " maximum 256MB", ram_size / MiB); - exit(1); - } - memory_region_add_subregion(address_space_mem, 0, machine->ram); - - memory_region_init_io(iomem, NULL, &mips_qemu_ops, - NULL, "mips-qemu", 0x10000); - - memory_region_add_subregion(address_space_mem, 0x1fbf0000, iomem); - - /* - * Try to load a BIOS image. If this fails, we continue regardless, - * but initialize the hardware ourselves. When a kernel gets - * preloaded we also initialize the hardware, since the BIOS wasn't - * run. - */ - - if (bios_name =3D=3D NULL) { - bios_name =3D BIOS_FILENAME; - } - filename =3D qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); - if (filename) { - bios_size =3D get_image_size(filename); - } else { - bios_size =3D -1; - } -#ifdef TARGET_WORDS_BIGENDIAN - be =3D 1; -#else - be =3D 0; -#endif - dinfo =3D drive_get(IF_PFLASH, 0, 0); - if ((bios_size > 0) && (bios_size <=3D BIOS_SIZE)) { - bios =3D g_new(MemoryRegion, 1); - memory_region_init_rom(bios, NULL, "mips_r4k.bios", BIOS_SIZE, - &error_fatal); - memory_region_add_subregion(get_system_memory(), 0x1fc00000, bios); - - load_image_targphys(filename, 0x1fc00000, BIOS_SIZE); - } else if (dinfo !=3D NULL) { - uint32_t mips_rom =3D 0x00400000; - if (!pflash_cfi01_register(0x1fc00000, "mips_r4k.bios", mips_rom, - blk_by_legacy_dinfo(dinfo), - sector_len, 4, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); - } - } else if (!qtest_enabled()) { - /* not fatal */ - warn_report("could not load MIPS bios '%s'", bios_name); - } - g_free(filename); - - if (kernel_filename) { - loaderparams.ram_size =3D machine->ram_size; - loaderparams.kernel_filename =3D kernel_filename; - loaderparams.kernel_cmdline =3D kernel_cmdline; - loaderparams.initrd_filename =3D initrd_filename; - reset_info->vector =3D load_kernel(); - } - - /* Init CPU internal devices */ - cpu_mips_irq_init_cpu(cpu); - cpu_mips_clock_init(cpu); - - /* ISA bus: IO space at 0x14000000, mem space at 0x10000000 */ - memory_region_init_alias(isa_io, NULL, "isa-io", - get_system_io(), 0, 0x00010000); - memory_region_init(isa_mem, NULL, "isa-mem", 0x01000000); - memory_region_add_subregion(get_system_memory(), 0x14000000, isa_io); - memory_region_add_subregion(get_system_memory(), 0x10000000, isa_mem); - isa_bus =3D isa_bus_new(NULL, isa_mem, get_system_io(), &error_abort); - - /* The PIC is attached to the MIPS CPU INT0 pin */ - i8259 =3D i8259_init(isa_bus, env->irq[2]); - isa_bus_irqs(isa_bus, i8259); - - mc146818_rtc_init(isa_bus, 2000, NULL); - - pit =3D i8254_pit_init(isa_bus, 0x40, 0, NULL); - - serial_hds_isa_init(isa_bus, 0, MAX_ISA_SERIAL_PORTS); - - isa_vga_init(isa_bus); - - if (nd_table[0].used) { - isa_ne2000_init(isa_bus, 0x300, 9, &nd_table[0]); - } - - ide_drive_get(hd, ARRAY_SIZE(hd)); - for (i =3D 0; i < MAX_IDE_BUS; i++) - isa_ide_init(isa_bus, ide_iobase[i], ide_iobase2[i], ide_irq[i], - hd[MAX_IDE_DEVS * i], - hd[MAX_IDE_DEVS * i + 1]); - - isa_create_simple(isa_bus, TYPE_I8042); -} - -static void mips_machine_init(MachineClass *mc) -{ - mc->deprecation_reason =3D "use malta machine type instead"; - mc->desc =3D "mips r4k platform"; - mc->init =3D mips_r4k_init; - mc->block_default_type =3D IF_IDE; -#ifdef TARGET_MIPS64 - mc->default_cpu_type =3D MIPS_CPU_TYPE_NAME("R4000"); -#else - mc->default_cpu_type =3D MIPS_CPU_TYPE_NAME("24Kf"); -#endif - mc->default_ram_id =3D "mips_r4k.ram"; -} - -DEFINE_MACHINE("mips", mips_machine_init) diff --git a/MAINTAINERS b/MAINTAINERS index 8c744a9bdf4..77a67becc1f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1138,12 +1138,6 @@ S: Orphaned F: hw/mips/mipssim.c F: hw/net/mipsnet.c =20 -R4000 -R: Aurelien Jarno -R: Aleksandar Rikalo -S: Obsolete -F: hw/mips/r4k.c - Fuloong 2E M: Huacai Chen M: Philippe Mathieu-Daud=C3=A9 diff --git a/hw/mips/Kconfig b/hw/mips/Kconfig index 67d39c56a4e..8be70122f4c 100644 --- a/hw/mips/Kconfig +++ b/hw/mips/Kconfig @@ -1,16 +1,3 @@ -config R4K - bool - select ISA_BUS - select SERIAL_ISA - select I8259 - select I8254 - select MC146818RTC - imply VGA_ISA - imply NE2000_ISA - select IDE_ISA - select PCKBD - select PFLASH_CFI01 - config MALTA bool select ISA_SUPERIO diff --git a/hw/mips/meson.build b/hw/mips/meson.build index 46294b7382f..bcdf96be69f 100644 --- a/hw/mips/meson.build +++ b/hw/mips/meson.build @@ -6,6 +6,5 @@ mips_ss.add(when: 'CONFIG_MIPSSIM', if_true: files('mipssim.c')) mips_ss.add(when: 'CONFIG_MIPS_BOSTON', if_true: [files('boston.c'), fdt]) mips_ss.add(when: 'CONFIG_MIPS_CPS', if_true: files('cps.c')) -mips_ss.add(when: 'CONFIG_R4K', if_true: files('r4k.c')) =20 hw_arch +=3D {'mips': mips_ss} --=20 2.26.2