[libvirt PATCH v2 0/3] Add script to sync from QEMU i386 cpu models
by Tim Wiederhake
This hopefully makes synchronization with QEMU faster and less
error prone.
Patch #3 showcases the changes to the cpu models the script
suggests for qemu 8d90bfc5c31ad60f6049dd39be636b06bc00b652.
V1: https://www.redhat.com/archives/libvir-list/2020-October/msg01008.html
Changes since last version:
* Use apostrophes instead of quotation marks in XML.
Tim Wiederhake (3):
cpu_map: Unify apostrophe and quotation mark usage
cpu_map: Add script to sync from QEMU i386 cpu models
[DONTMERGE] Sample output of new sync script
src/cpu_map/arm_vendors.xml | 24 +-
src/cpu_map/index.xml | 140 +++----
src/cpu_map/sync_qemu_i386.py | 361 ++++++++++++++++++
src/cpu_map/x86_486.xml | 8 +
src/cpu_map/x86_Broadwell-IBRS.xml | 19 +-
src/cpu_map/x86_Broadwell-noTSX-IBRS.xml | 19 +-
src/cpu_map/x86_Broadwell-noTSX.xml | 19 +-
src/cpu_map/x86_Broadwell.xml | 18 +-
src/cpu_map/x86_Cascadelake-Server-noTSX.xml | 20 +-
src/cpu_map/x86_Cascadelake-Server.xml | 17 +-
src/cpu_map/x86_Conroe.xml | 10 +-
src/cpu_map/x86_Cooperlake.xml | 174 +++++----
src/cpu_map/x86_Denverton.xml | 74 ++++
src/cpu_map/x86_Dhyana.xml | 12 +-
src/cpu_map/x86_EPYC-IBPB.xml | 19 +-
src/cpu_map/x86_EPYC-Rome.xml | 9 +
src/cpu_map/x86_EPYC.xml | 14 +-
src/cpu_map/x86_Haswell-IBRS.xml | 20 +-
src/cpu_map/x86_Haswell-noTSX-IBRS.xml | 20 +-
src/cpu_map/x86_Haswell-noTSX.xml | 20 +-
src/cpu_map/x86_Haswell.xml | 18 +-
src/cpu_map/x86_Icelake-Client-noTSX.xml | 14 +-
src/cpu_map/x86_Icelake-Client.xml | 11 +-
src/cpu_map/x86_Icelake-Server-noTSX.xml | 29 +-
src/cpu_map/x86_Icelake-Server.xml | 11 +-
src/cpu_map/x86_IvyBridge-IBRS.xml | 13 +-
src/cpu_map/x86_IvyBridge.xml | 12 +-
src/cpu_map/x86_KnightsMill.xml | 77 ++++
src/cpu_map/x86_Nehalem-IBRS.xml | 14 +-
src/cpu_map/x86_Nehalem.xml | 13 +-
src/cpu_map/x86_Opteron_G1.xml | 9 +-
src/cpu_map/x86_Opteron_G2.xml | 10 +-
src/cpu_map/x86_Opteron_G3.xml | 10 +-
src/cpu_map/x86_Opteron_G4.xml | 11 +-
src/cpu_map/x86_Opteron_G5.xml | 11 +-
src/cpu_map/x86_Penryn.xml | 10 +-
src/cpu_map/x86_SandyBridge-IBRS.xml | 14 +-
src/cpu_map/x86_SandyBridge.xml | 13 +-
src/cpu_map/x86_Skylake-Client-IBRS.xml | 16 +-
src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml | 18 +-
src/cpu_map/x86_Skylake-Client.xml | 15 +-
src/cpu_map/x86_Skylake-Server-IBRS.xml | 12 +-
src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml | 15 +-
src/cpu_map/x86_Skylake-Server.xml | 12 +-
src/cpu_map/x86_Snowridge.xml | 79 ++++
src/cpu_map/x86_Westmere-IBRS.xml | 13 +-
src/cpu_map/x86_Westmere.xml | 14 +-
src/cpu_map/x86_athlon.xml | 8 +
src/cpu_map/x86_core2duo.xml | 12 +-
src/cpu_map/x86_coreduo.xml | 10 +-
src/cpu_map/x86_kvm32.xml | 9 +
src/cpu_map/x86_kvm64.xml | 9 +
src/cpu_map/x86_n270.xml | 12 +-
src/cpu_map/x86_pentium.xml | 9 +
src/cpu_map/x86_pentium2.xml | 9 +
src/cpu_map/x86_pentium3.xml | 9 +
src/cpu_map/x86_phenom.xml | 17 +-
src/cpu_map/x86_qemu32.xml | 8 +
src/cpu_map/x86_qemu64.xml | 17 +-
59 files changed, 1345 insertions(+), 295 deletions(-)
create mode 100755 src/cpu_map/sync_qemu_i386.py
create mode 100644 src/cpu_map/x86_Denverton.xml
create mode 100644 src/cpu_map/x86_KnightsMill.xml
create mode 100644 src/cpu_map/x86_Snowridge.xml
--
2.26.2
4 years
[PATCH] security: Use org namespace for xattrs on macOS
by Roman Bolshakov
There're no guidelines on what namespace should be used but it seems
thirdparty apps can select the one they like [1], i.e. freedekstop
xattrs are prefixed with xdg.
qemusecuritytest passes after that.
1. https://www.freedesktop.org/wiki/CommonExtendedAttributes/
Signed-off-by: Roman Bolshakov <r.bolshakov(a)yadro.com>
---
src/security/security_util.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/security/security_util.c b/src/security/security_util.c
index 7fa5163fe4..5d50acb574 100644
--- a/src/security/security_util.c
+++ b/src/security/security_util.c
@@ -56,6 +56,8 @@ VIR_LOG_INIT("security.security_util");
# define XATTR_NAMESPACE "trusted"
#elif defined(__FreeBSD__)
# define XATTR_NAMESPACE "system"
+#elif defined(__APPLE__)
+# define XATTR_NAMESPACE "org"
#endif
static char *
--
2.28.0
4 years
[PATCH-for-5.2 v3] hw/mips: Remove the 'r4k' machine
by Philippe Mathieu-Daudé
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.
Acked-by: Richard Henderson <richard.henderson(a)linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug(a)amsat.org>
---
v3: Move to "Recently removed features" section
---
docs/system/deprecated.rst | 12 +-
.../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, 6 insertions(+), 345 deletions(-)
delete mode 100644 hw/mips/r4k.c
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 0ebce37a191..e5b7cf274d3 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -327,12 +327,6 @@ The 'scsi-disk' device is deprecated. Users should use 'scsi-hd' or
System emulator machines
------------------------
-mips ``r4k`` platform (since 5.0)
-'''''''''''''''''''''''''''''''''
-
-This machine type is very old and unmaintained. Users should use the ``malta``
-machine type instead.
-
mips ``fulong2e`` machine (since 5.1)
'''''''''''''''''''''''''''''''''''''
@@ -575,6 +569,12 @@ The version specific Spike machines have been removed in favour of the
generic ``spike`` machine. If you need to specify an older version of the RISC-V
spec you can use the ``-cpu rv64gcsu,priv_spec=v1.10.0`` command line argument.
+mips ``r4k`` platform (removed in 5.2)
+''''''''''''''''''''''''''''''''''''''
+
+This machine type is very old and unmaintained. Users should use the ``malta``
+machine type instead.
+
Related binaries
----------------
diff --git a/default-configs/devices/mips-softmmu-common.mak b/default-configs/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=y
CONFIG_EMPTY_SLOT=y
CONFIG_MIPS_CPS=y
CONFIG_MIPS_ITU=y
-CONFIG_R4K=y
CONFIG_MALTA=y
CONFIG_PCNET_PCI=y
CONFIG_MIPSSIM=y
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] = { 0x1f0, 0x170 };
-static const int ide_iobase2[2] = { 0x3f6, 0x376 };
-static const int ide_irq[2] = { 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) == 0 && val == 42) {
- qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
- } else if ((addr & 0xffff) == 4 && val == 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 = {
- .read = mips_qemu_read,
- .write = mips_qemu_write,
- .endianness = DEVICE_NATIVE_ENDIAN,
-};
-
-typedef struct ResetData {
- MIPSCPU *cpu;
- uint64_t vector;
-} ResetData;
-
-static int64_t load_kernel(void)
-{
- const size_t params_size = 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 = 1;
-#else
- big_endian = 0;
-#endif
- kernel_size = 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 = 0;
- initrd_offset = 0;
- if (loaderparams.initrd_filename) {
- initrd_size = get_image_size(loaderparams.initrd_filename);
- if (initrd_size > 0) {
- initrd_offset = 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 = load_image_targphys(loaderparams.initrd_filename,
- initrd_offset,
- ram_size - initrd_offset);
- }
- if (initrd_size == (target_ulong) -1) {
- error_report("could not load initial ram disk '%s'",
- loaderparams.initrd_filename);
- exit(1);
- }
- }
-
- /* Store command line. */
- params_buf = g_malloc(params_size);
-
- params_buf[0] = tswap32(ram_size);
- params_buf[1] = tswap32(0x12345678);
-
- if (initrd_size > 0) {
- snprintf((char *)params_buf + 8, 256,
- "rd_start=0x%" PRIx64 " rd_size=%" 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 = (ResetData *)opaque;
- CPUMIPSState *env = &s->cpu->env;
-
- cpu_reset(CPU(s->cpu));
- env->active_tc.PC = s->vector;
-}
-
-static const int sector_len = 32 * KiB;
-static
-void mips_r4k_init(MachineState *machine)
-{
- const char *kernel_filename = machine->kernel_filename;
- const char *kernel_cmdline = machine->kernel_cmdline;
- const char *initrd_filename = machine->initrd_filename;
- char *filename;
- MemoryRegion *address_space_mem = get_system_memory();
- MemoryRegion *bios;
- MemoryRegion *iomem = g_new(MemoryRegion, 1);
- MemoryRegion *isa_io = g_new(MemoryRegion, 1);
- MemoryRegion *isa_mem = 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 = clock_new(OBJECT(machine), "cpu-refclk");
- clock_set_hz(cpuclk, 200000000); /* 200 MHz */
-
- /* init CPUs */
- cpu = mips_cpu_create_with_clock(machine->cpu_type, cpuclk);
- env = &cpu->env;
-
- reset_info = g_malloc0(sizeof(ResetData));
- reset_info->cpu = cpu;
- reset_info->vector = 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 == NULL) {
- bios_name = BIOS_FILENAME;
- }
- filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
- if (filename) {
- bios_size = get_image_size(filename);
- } else {
- bios_size = -1;
- }
-#ifdef TARGET_WORDS_BIGENDIAN
- be = 1;
-#else
- be = 0;
-#endif
- dinfo = drive_get(IF_PFLASH, 0, 0);
- if ((bios_size > 0) && (bios_size <= BIOS_SIZE)) {
- bios = 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 != NULL) {
- uint32_t mips_rom = 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 = machine->ram_size;
- loaderparams.kernel_filename = kernel_filename;
- loaderparams.kernel_cmdline = kernel_cmdline;
- loaderparams.initrd_filename = initrd_filename;
- reset_info->vector = 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 = isa_bus_new(NULL, isa_mem, get_system_io(), &error_abort);
-
- /* The PIC is attached to the MIPS CPU INT0 pin */
- i8259 = i8259_init(isa_bus, env->irq[2]);
- isa_bus_irqs(isa_bus, i8259);
-
- mc146818_rtc_init(isa_bus, 2000, NULL);
-
- pit = 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 = 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 = "use malta machine type instead";
- mc->desc = "mips r4k platform";
- mc->init = mips_r4k_init;
- mc->block_default_type = IF_IDE;
-#ifdef TARGET_MIPS64
- mc->default_cpu_type = MIPS_CPU_TYPE_NAME("R4000");
-#else
- mc->default_cpu_type = MIPS_CPU_TYPE_NAME("24Kf");
-#endif
- mc->default_ram_id = "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
-R4000
-R: Aurelien Jarno <aurelien(a)aurel32.net>
-R: Aleksandar Rikalo <aleksandar.rikalo(a)syrmia.com>
-S: Obsolete
-F: hw/mips/r4k.c
-
Fuloong 2E
M: Huacai Chen <chenhc(a)lemote.com>
M: Philippe Mathieu-Daudé <f4bug(a)amsat.org>
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'))
hw_arch += {'mips': mips_ss}
--
2.26.2
4 years
Release of libvirt-6.9.0
by Jiri Denemark
The 6.9.0 release of both libvirt and libvirt-python is tagged and
signed tarballs and source RPMs are available at
https://libvirt.org/sources/
https://libvirt.org/sources/python/
Thanks everybody who helped with this release by sending patches,
reviewing, testing, or providing any other feedback. Your work is
greatly appreciated.
* New features
* nodedev: Add support for channel subsystem (CSS) devices on S390
A CSS device is represented as a parent device of a CCW device.
This support allows to create vfio-ccw mediated devices with
``virNodeDeviceCreateXML()``.
* qemu: Implement memory failure event
New event is implemented that is emitted whenever a guest encounters a
memory failure.
* qemu: Implement support for ``<transient/>`` disks
VMs based on the QEMU hypervisor now can use ``<transient/>`` option for
local file-backed disks to configure a disk which discards changes made to
it while the VM was active.
* hyperv: implement new APIs
The ``virConnectGetCapabilities()``, ``virConnectGetMaxVcpus()``,
``virConnectGetVersion()``, ``virDomainGetAutostart()``,
``virDomainSetAutostart()``, ``virNodeGetFreeMemory()``,
``virDomainReboot()``, ``virDomainReset()``, ``virDomainShutdown()``, and
``virDomainShutdownFlags()`` APIs have been implemented in the Hyper-V
driver.
* bhyve: implement virtio-9p filesystem support
Implement virito-9p shared filesystem using the ``<filesystem/>`` element.
* qemu: Add support for vDPA network devices.
VMs using the QEMU hypervisor can now specify vDPA network devices
using ``<interface type='vdpa'>``. The node device APIs also now
list and provide XML descriptions for vDPA devices.
* Improvements
* Bug fixes
* hyperv: ensure WQL queries work in all locales
Relying on the "Description" field caused queries to fail on non-"en-US"
systems. The queries have been updated to avoid using localized strings.
* rpc: Fix ``virt-ssh-helper`` detection
libvirt 6.8.0 failed to correctly detect the availability of the new
``virt-ssh-helper`` command on the remote host, and thus always used the
fallback instead; this has now been fixed.
Enjoy.
Jirka
4 years
[PATCH 0/8] more Hyper-V code cleanup
by Matt Coleman
Here's a draft GitLab MR if you'd prefer to review the changes there:
https://gitlab.com/iammattcoleman/libvirt/-/merge_requests/5
Matt Coleman (8):
hyperv: g_autofree username and password in hypervConnectOpen()
hyperv: remove spaces after hypervObject* casts
hyperv: WMI class list function general cleanup
hyperv: move hypervGetWmiClass to hyperv_wmi.h
hyperv: move hypervGetProcSDByVSSDInstanceId to hyperv_wmi.c
hyperv: consistent names for SettingData functions
hyperv: minor formatting fix in hyperv_wmi.h
hyperv: call openwsman's ws_serializer_free_mem
src/hyperv/hyperv_driver.c | 87 ++++++++++----------------------------
src/hyperv/hyperv_wmi.c | 63 +++++++++++++++------------
src/hyperv/hyperv_wmi.h | 45 ++++++++++++++------
3 files changed, 89 insertions(+), 106 deletions(-)
--
2.27.0
4 years
Call for Volunteers: Summaries of a few KVMForum-2020 talks for an LWN article
by Kashyap Chamarthy
Hi, folks
Like last year[1], we're aiming to submit a KVM Forum 2020 "recap"
article for LWN.
This won't be a comprehensive summary of a lot of talks — LWN normally
aims for 1500 words; they say "fewer can sometimes work, and more is
generally OK too". Given that, the write-up can cover about four
topics, similar to previous year's recap.
So I'm looking for a couple of volunteers. Meanwhile, I'll write LWN
folks an email to see if they're amenable to this. If they can't accept
it for some reason, Plan-B is qemu.org blog articles.
- KVM Forum 2020 schedule: https://kvmforum2020.sched.com/
- And LWN.net's author guidelines: https://lwn.net/op/AuthorGuide.lwn
I volunteer to summarize Janosch Frank's "The Common Challenges of
Secure VMs" talk.
Let me know, on-list or off-list, on what topic you'd like to pick.
PS: Just like it was noted in the last year's call for volunteers, we
will not ask LWN.net for money.
[1] https://lwn.net/Articles/805097/ -- A recap of KVM Forum 2019
[2] https://lists.gnu.org/archive/html/qemu-devel/2019-09/msg03536.html
--
/kashyap
4 years
[PATCH-for-5.2] hw/mips: Remove the 'r4k' machine
by Philippe Mathieu-Daudé
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é <f4bug(a)amsat.org>
---
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
------------------------
-mips ``r4k`` platform (since 5.0)
+mips ``r4k`` platform (removed in 5.2)
'''''''''''''''''''''''''''''''''
This machine type is very old and unmaintained. Users should use the ``malta``
diff --git a/default-configs/devices/mips-softmmu-common.mak b/default-configs/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=y
CONFIG_EMPTY_SLOT=y
CONFIG_MIPS_CPS=y
CONFIG_MIPS_ITU=y
-CONFIG_R4K=y
CONFIG_MALTA=y
CONFIG_PCNET_PCI=y
CONFIG_MIPSSIM=y
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] = { 0x1f0, 0x170 };
-static const int ide_iobase2[2] = { 0x3f6, 0x376 };
-static const int ide_irq[2] = { 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) == 0 && val == 42) {
- qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
- } else if ((addr & 0xffff) == 4 && val == 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 = {
- .read = mips_qemu_read,
- .write = mips_qemu_write,
- .endianness = DEVICE_NATIVE_ENDIAN,
-};
-
-typedef struct ResetData {
- MIPSCPU *cpu;
- uint64_t vector;
-} ResetData;
-
-static int64_t load_kernel(void)
-{
- const size_t params_size = 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 = 1;
-#else
- big_endian = 0;
-#endif
- kernel_size = 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 = 0;
- initrd_offset = 0;
- if (loaderparams.initrd_filename) {
- initrd_size = get_image_size(loaderparams.initrd_filename);
- if (initrd_size > 0) {
- initrd_offset = 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 = load_image_targphys(loaderparams.initrd_filename,
- initrd_offset,
- ram_size - initrd_offset);
- }
- if (initrd_size == (target_ulong) -1) {
- error_report("could not load initial ram disk '%s'",
- loaderparams.initrd_filename);
- exit(1);
- }
- }
-
- /* Store command line. */
- params_buf = g_malloc(params_size);
-
- params_buf[0] = tswap32(ram_size);
- params_buf[1] = tswap32(0x12345678);
-
- if (initrd_size > 0) {
- snprintf((char *)params_buf + 8, 256,
- "rd_start=0x%" PRIx64 " rd_size=%" 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 = (ResetData *)opaque;
- CPUMIPSState *env = &s->cpu->env;
-
- cpu_reset(CPU(s->cpu));
- env->active_tc.PC = s->vector;
-}
-
-static const int sector_len = 32 * KiB;
-static
-void mips_r4k_init(MachineState *machine)
-{
- const char *kernel_filename = machine->kernel_filename;
- const char *kernel_cmdline = machine->kernel_cmdline;
- const char *initrd_filename = machine->initrd_filename;
- char *filename;
- MemoryRegion *address_space_mem = get_system_memory();
- MemoryRegion *bios;
- MemoryRegion *iomem = g_new(MemoryRegion, 1);
- MemoryRegion *isa_io = g_new(MemoryRegion, 1);
- MemoryRegion *isa_mem = 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 = clock_new(OBJECT(machine), "cpu-refclk");
- clock_set_hz(cpuclk, 200000000); /* 200 MHz */
-
- /* init CPUs */
- cpu = mips_cpu_create_with_clock(machine->cpu_type, cpuclk);
- env = &cpu->env;
-
- reset_info = g_malloc0(sizeof(ResetData));
- reset_info->cpu = cpu;
- reset_info->vector = 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 == NULL) {
- bios_name = BIOS_FILENAME;
- }
- filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
- if (filename) {
- bios_size = get_image_size(filename);
- } else {
- bios_size = -1;
- }
-#ifdef TARGET_WORDS_BIGENDIAN
- be = 1;
-#else
- be = 0;
-#endif
- dinfo = drive_get(IF_PFLASH, 0, 0);
- if ((bios_size > 0) && (bios_size <= BIOS_SIZE)) {
- bios = 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 != NULL) {
- uint32_t mips_rom = 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 = machine->ram_size;
- loaderparams.kernel_filename = kernel_filename;
- loaderparams.kernel_cmdline = kernel_cmdline;
- loaderparams.initrd_filename = initrd_filename;
- reset_info->vector = 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 = isa_bus_new(NULL, isa_mem, get_system_io(), &error_abort);
-
- /* The PIC is attached to the MIPS CPU INT0 pin */
- i8259 = i8259_init(isa_bus, env->irq[2]);
- isa_bus_irqs(isa_bus, i8259);
-
- mc146818_rtc_init(isa_bus, 2000, NULL);
-
- pit = 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 = 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 = "use malta machine type instead";
- mc->desc = "mips r4k platform";
- mc->init = mips_r4k_init;
- mc->block_default_type = IF_IDE;
-#ifdef TARGET_MIPS64
- mc->default_cpu_type = MIPS_CPU_TYPE_NAME("R4000");
-#else
- mc->default_cpu_type = MIPS_CPU_TYPE_NAME("24Kf");
-#endif
- mc->default_ram_id = "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
-R4000
-R: Aurelien Jarno <aurelien(a)aurel32.net>
-R: Aleksandar Rikalo <aleksandar.rikalo(a)syrmia.com>
-S: Obsolete
-F: hw/mips/r4k.c
-
Fuloong 2E
M: Huacai Chen <chenhc(a)lemote.com>
M: Philippe Mathieu-Daudé <f4bug(a)amsat.org>
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'))
hw_arch += {'mips': mips_ss}
--
2.26.2
4 years
[PATCH-for-5.2 v2] hw/mips: Remove the 'r4k' machine
by Philippe Mathieu-Daudé
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.
Acked-by: Richard Henderson <richard.henderson(a)linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug(a)amsat.org>
---
v2: Fixed Header underline length (Richard)
---
docs/system/deprecated.rst | 4 +-
.../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, 2 insertions(+), 341 deletions(-)
delete mode 100644 hw/mips/r4k.c
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 0ebce37a191..2a16078a09b 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -327,8 +327,8 @@ The 'scsi-disk' device is deprecated. Users should use 'scsi-hd' or
System emulator machines
------------------------
-mips ``r4k`` platform (since 5.0)
-'''''''''''''''''''''''''''''''''
+mips ``r4k`` platform (removed in 5.2)
+''''''''''''''''''''''''''''''''''''''
This machine type is very old and unmaintained. Users should use the ``malta``
machine type instead.
diff --git a/default-configs/devices/mips-softmmu-common.mak b/default-configs/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=y
CONFIG_EMPTY_SLOT=y
CONFIG_MIPS_CPS=y
CONFIG_MIPS_ITU=y
-CONFIG_R4K=y
CONFIG_MALTA=y
CONFIG_PCNET_PCI=y
CONFIG_MIPSSIM=y
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] = { 0x1f0, 0x170 };
-static const int ide_iobase2[2] = { 0x3f6, 0x376 };
-static const int ide_irq[2] = { 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) == 0 && val == 42) {
- qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
- } else if ((addr & 0xffff) == 4 && val == 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 = {
- .read = mips_qemu_read,
- .write = mips_qemu_write,
- .endianness = DEVICE_NATIVE_ENDIAN,
-};
-
-typedef struct ResetData {
- MIPSCPU *cpu;
- uint64_t vector;
-} ResetData;
-
-static int64_t load_kernel(void)
-{
- const size_t params_size = 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 = 1;
-#else
- big_endian = 0;
-#endif
- kernel_size = 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 = 0;
- initrd_offset = 0;
- if (loaderparams.initrd_filename) {
- initrd_size = get_image_size(loaderparams.initrd_filename);
- if (initrd_size > 0) {
- initrd_offset = 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 = load_image_targphys(loaderparams.initrd_filename,
- initrd_offset,
- ram_size - initrd_offset);
- }
- if (initrd_size == (target_ulong) -1) {
- error_report("could not load initial ram disk '%s'",
- loaderparams.initrd_filename);
- exit(1);
- }
- }
-
- /* Store command line. */
- params_buf = g_malloc(params_size);
-
- params_buf[0] = tswap32(ram_size);
- params_buf[1] = tswap32(0x12345678);
-
- if (initrd_size > 0) {
- snprintf((char *)params_buf + 8, 256,
- "rd_start=0x%" PRIx64 " rd_size=%" 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 = (ResetData *)opaque;
- CPUMIPSState *env = &s->cpu->env;
-
- cpu_reset(CPU(s->cpu));
- env->active_tc.PC = s->vector;
-}
-
-static const int sector_len = 32 * KiB;
-static
-void mips_r4k_init(MachineState *machine)
-{
- const char *kernel_filename = machine->kernel_filename;
- const char *kernel_cmdline = machine->kernel_cmdline;
- const char *initrd_filename = machine->initrd_filename;
- char *filename;
- MemoryRegion *address_space_mem = get_system_memory();
- MemoryRegion *bios;
- MemoryRegion *iomem = g_new(MemoryRegion, 1);
- MemoryRegion *isa_io = g_new(MemoryRegion, 1);
- MemoryRegion *isa_mem = 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 = clock_new(OBJECT(machine), "cpu-refclk");
- clock_set_hz(cpuclk, 200000000); /* 200 MHz */
-
- /* init CPUs */
- cpu = mips_cpu_create_with_clock(machine->cpu_type, cpuclk);
- env = &cpu->env;
-
- reset_info = g_malloc0(sizeof(ResetData));
- reset_info->cpu = cpu;
- reset_info->vector = 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 == NULL) {
- bios_name = BIOS_FILENAME;
- }
- filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
- if (filename) {
- bios_size = get_image_size(filename);
- } else {
- bios_size = -1;
- }
-#ifdef TARGET_WORDS_BIGENDIAN
- be = 1;
-#else
- be = 0;
-#endif
- dinfo = drive_get(IF_PFLASH, 0, 0);
- if ((bios_size > 0) && (bios_size <= BIOS_SIZE)) {
- bios = 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 != NULL) {
- uint32_t mips_rom = 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 = machine->ram_size;
- loaderparams.kernel_filename = kernel_filename;
- loaderparams.kernel_cmdline = kernel_cmdline;
- loaderparams.initrd_filename = initrd_filename;
- reset_info->vector = 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 = isa_bus_new(NULL, isa_mem, get_system_io(), &error_abort);
-
- /* The PIC is attached to the MIPS CPU INT0 pin */
- i8259 = i8259_init(isa_bus, env->irq[2]);
- isa_bus_irqs(isa_bus, i8259);
-
- mc146818_rtc_init(isa_bus, 2000, NULL);
-
- pit = 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 = 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 = "use malta machine type instead";
- mc->desc = "mips r4k platform";
- mc->init = mips_r4k_init;
- mc->block_default_type = IF_IDE;
-#ifdef TARGET_MIPS64
- mc->default_cpu_type = MIPS_CPU_TYPE_NAME("R4000");
-#else
- mc->default_cpu_type = MIPS_CPU_TYPE_NAME("24Kf");
-#endif
- mc->default_ram_id = "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
-R4000
-R: Aurelien Jarno <aurelien(a)aurel32.net>
-R: Aleksandar Rikalo <aleksandar.rikalo(a)syrmia.com>
-S: Obsolete
-F: hw/mips/r4k.c
-
Fuloong 2E
M: Huacai Chen <chenhc(a)lemote.com>
M: Philippe Mathieu-Daudé <f4bug(a)amsat.org>
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'))
hw_arch += {'mips': mips_ss}
--
2.26.2
4 years
[PATCH] virDomainNetDefParseXML: Fix error message for unknown value of //mac/@type
by Michal Privoznik
In v6.6.0-rc1~124 we've introduced a new mechanism for MAC
addresses for ESX: ignore all checks (type='static') that libvirt
or ESX would do (and possibly fail) for specified MAC address.
Accepted values for the @type attribute are "generated" and
"static". But the error message mentions a different attribute.
Fixes 454e5961abf40c14f8b6d7ee216229e68fd170bf
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1892130
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
Pushed as trivial.
src/conf/domain_conf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f4f017cf83..b47f43afd9 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -12248,7 +12248,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
int tmp;
if ((tmp = virDomainNetMacTypeTypeFromString(macaddr_type)) <= 0) {
virReportError(VIR_ERR_XML_ERROR,
- _("invalid mac address check value: '%s'. Valid "
+ _("invalid mac address type value: '%s'. Valid "
"values are \"generated\" and \"static\"."),
macaddr_type);
goto error;
--
2.26.2
4 years
[PATCH 0/6] Hyper-V code cleanup
by Matt Coleman
Here's a draft GitLab MR if you'd prefer to review the changes there:
https://gitlab.com/iammattcoleman/libvirt/-/merge_requests/3/diffs
Matt Coleman (6):
hyperv: reformat WQL query strings
hyperv: remove duplicate function hypervGetVSSDFromUUID()
hyperv: remove duplicate function hypervGetMemSDByVSSDInstanceId()
hyperv: remove unneeded braces in hypervDomainGetInfo() and
hypervDomainGetXMLDesc()
hyperv: reduce duplicate code for Msvm_ComputerSystem lookups
hyperv: do not overwrite errors from hypervInvokeMethod()
src/hyperv/hyperv_driver.c | 169 +++++++++----------------------------
src/hyperv/hyperv_wmi.c | 57 +++++++------
src/hyperv/hyperv_wmi.h | 4 +
3 files changed, 75 insertions(+), 155 deletions(-)
--
2.27.0
4 years