]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
Merge tag 'exec-20241220' of https://github.com/philmd/qemu into staging
authorStefan Hajnoczi <stefanha@redhat.com>
Sat, 21 Dec 2024 16:07:00 +0000 (11:07 -0500)
committerStefan Hajnoczi <stefanha@redhat.com>
Sat, 21 Dec 2024 16:07:00 +0000 (11:07 -0500)
Accel & Exec patch queue

- Ignore writes to CNTP_CTL_EL0 on HVF ARM (Alexander)
- Add '-d invalid_mem' logging option (Zoltan)
- Create QOM containers explicitly (Peter)
- Rename sysemu/ -> system/ (Philippe)
- Re-orderning of include/exec/ headers (Philippe)
  Move a lot of declarations from these legacy mixed bag headers:
    . "exec/cpu-all.h"
    . "exec/cpu-common.h"
    . "exec/cpu-defs.h"
    . "exec/exec-all.h"
    . "exec/translate-all"
  to these more specific ones:
    . "exec/page-protection.h"
    . "exec/translation-block.h"
    . "user/cpu_loop.h"
    . "user/guest-host.h"
    . "user/page-protection.h"

 # -----BEGIN PGP SIGNATURE-----
 #
 # iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmdlnyAACgkQ4+MsLN6t
 # wN6mBw//QFWi7CrU+bb8KMM53kOU9C507tjn99LLGFb5or73/umDsw6eo/b8DHBt
 # KIwGLgATel42oojKfNKavtAzLK5rOrywpboPDpa3SNeF1onW+99NGJ52LQUqIX6K
 # A6bS0fPdGG9ZzEuPpbjDXlp++0yhDcdSgZsS42fEsT7Dyj5gzJYlqpqhiXGqpsn8
 # 4Y0UMxSL21K3HEexlzw2hsoOBFA3tUm2ujNDhNkt8QASr85yQVLCypABJnuoe///
 # 5Ojl5wTBeDwhANET0rhwHK8eIYaNboiM9fHopJYhvyw1bz6yAu9jQwzF/MrL3s/r
 # xa4OBHBy5mq2hQV9Shcl3UfCQdk/vDaYaWpgzJGX8stgMGYfnfej1SIl8haJIfcl
 # VMX8/jEFdYbjhO4AeGRYcBzWjEJymkDJZoiSWp2NuEDi6jqIW+7yW1q0Rnlg9lay
 # ShAqLK5Pv4zUw3t0Jy3qv9KSW8sbs6PQxtzXjk8p97rTf76BJ2pF8sv1tVzmsidP
 # 9L92Hv5O34IqzBu2oATOUZYJk89YGmTIUSLkpT7asJZpBLwNM2qLp5jO00WVU0Sd
 # +kAn324guYPkko/TVnjC/AY7CMu55EOtD9NU35k3mUAnxXT9oDUeL4NlYtfgrJx6
 # x1Nzr2FkS68+wlPAFKNSSU5lTjsjNaFM0bIJ4LCNtenJVP+SnRo=
 # =cjz8
 # -----END PGP SIGNATURE-----
 # gpg: Signature made Fri 20 Dec 2024 11:45:20 EST
 # gpg:                using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE
 # gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.org>" [unknown]
 # gpg: WARNING: This key is not certified with a trusted signature!
 # gpg:          There is no indication that the signature belongs to the owner.
 # Primary key fingerprint: FAAB E75E 1291 7221 DCFD  6BB2 E3E3 2C2C DEAD C0DE

* tag 'exec-20241220' of https://github.com/philmd/qemu: (59 commits)
  util/qemu-timer: fix indentation
  meson: Do not define CONFIG_DEVICES on user emulation
  system/accel-ops: Remove unnecessary 'exec/cpu-common.h' header
  system/numa: Remove unnecessary 'exec/cpu-common.h' header
  hw/xen: Remove unnecessary 'exec/cpu-common.h' header
  target/mips: Drop left-over comment about Jazz machine
  target/mips: Remove tswap() calls in semihosting uhi_fstat_cb()
  target/xtensa: Remove tswap() calls in semihosting simcall() helper
  accel/tcg: Un-inline translator_is_same_page()
  accel/tcg: Include missing 'exec/translation-block.h' header
  accel/tcg: Move tcg_cflags_has/set() to 'exec/translation-block.h'
  accel/tcg: Restrict curr_cflags() declaration to 'internal-common.h'
  qemu/coroutine: Include missing 'qemu/atomic.h' header
  exec/translation-block: Include missing 'qemu/atomic.h' header
  accel/tcg: Declare cpu_loop_exit_requested() in 'exec/cpu-common.h'
  exec/cpu-all: Include 'cpu.h' earlier so MMU_USER_IDX is always defined
  target/sparc: Move sparc_restore_state_to_opc() to cpu.c
  target/sparc: Uninline cpu_get_tb_cpu_state()
  target/loongarch: Declare loongarch_cpu_dump_state() locally
  user: Move various declarations out of 'exec/exec-all.h'
  ...

Conflicts:
hw/char/riscv_htif.c
hw/intc/riscv_aplic.c
target/s390x/cpu.c

Apply sysemu header path changes to not in the pull request.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
251 files changed:
1  2 
MAINTAINERS
accel/kvm/kvm-all.c
backends/tpm/tpm_util.c
cpu-target.c
hw/9pfs/virtio-9p-device.c
hw/acpi/aml-build.c
hw/acpi/erst.c
hw/acpi/generic_event_device.c
hw/acpi/piix4.c
hw/acpi/vmgenid.c
hw/arm/armv7m.c
hw/arm/fsl-imx25.c
hw/arm/fsl-imx6.c
hw/arm/fsl-imx6ul.c
hw/arm/fsl-imx7.c
hw/arm/integratorcp.c
hw/arm/msf2-soc.c
hw/arm/npcm7xx.c
hw/arm/stellaris.c
hw/arm/strongarm.c
hw/arm/virt-acpi-build.c
hw/arm/xlnx-versal.c
hw/arm/xlnx-zynqmp.c
hw/audio/ac97.c
hw/audio/es1370.c
hw/audio/intel-hda.c
hw/audio/virtio-snd.c
hw/avr/atmega.c
hw/block/fdc-isa.c
hw/block/fdc.c
hw/block/m25p80.c
hw/block/nand.c
hw/block/pflash_cfi01.c
hw/block/pflash_cfi02.c
hw/block/swim.c
hw/block/vhost-user-blk.c
hw/block/virtio-blk.c
hw/block/xen-block.c
hw/char/goldfish_tty.c
hw/char/parallel.c
hw/char/riscv_htif.c
hw/char/serial-isa.c
hw/char/serial.c
hw/char/xen_console.c
hw/core/generic-loader.c
hw/core/guest-loader.c
hw/core/qdev-properties-system.c
hw/cpu/a15mpcore.c
hw/display/cirrus_vga.c
hw/display/qxl.c
hw/display/virtio-gpu-gl.c
hw/display/virtio-gpu.c
hw/dma/pl330.c
hw/dma/xilinx_axidma.c
hw/dma/xlnx_csu_dma.c
hw/hyperv/hv-balloon.c
hw/i386/intel_iommu.c
hw/i386/kvm/clock.c
hw/i386/kvm/i8254.c
hw/i386/kvm/ioapic.c
hw/i386/vmport.c
hw/i386/x86-iommu.c
hw/ide/cmd646.c
hw/ide/ide-dev.c
hw/ide/isa.c
hw/ide/macio.c
hw/ide/mmio.c
hw/input/pckbd.c
hw/intc/apic_common.c
hw/intc/arm_gic_common.c
hw/intc/arm_gicv2m.c
hw/intc/arm_gicv3_common.c
hw/intc/arm_gicv3_its_kvm.c
hw/intc/armv7m_nvic.c
hw/intc/ioapic.c
hw/intc/mips_gic.c
hw/intc/openpic_kvm.c
hw/intc/pnv_xive.c
hw/intc/pnv_xive2.c
hw/intc/riscv_aplic.c
hw/intc/riscv_imsic.c
hw/intc/sifive_plic.c
hw/intc/spapr_xive.c
hw/intc/xics.c
hw/intc/xive.c
hw/intc/xive2.c
hw/ipmi/ipmi.c
hw/ipmi/ipmi_bmc_sim.c
hw/isa/lpc_ich9.c
hw/isa/piix.c
hw/loongarch/acpi-build.c
hw/m68k/mcf5206.c
hw/m68k/next-cube.c
hw/mem/cxl_type3.c
hw/mem/nvdimm.c
hw/mem/pc-dimm.c
hw/mem/sparse-mem.c
hw/mips/cps.c
hw/misc/arm_sysctl.c
hw/misc/bcm2835_property.c
hw/misc/debugexit.c
hw/misc/iotkit-sysctl.c
hw/misc/ivshmem.c
hw/misc/mac_via.c
hw/misc/macio/cuda.c
hw/misc/macio/pmu.c
hw/misc/pci-testdev.c
hw/misc/pvpanic-isa.c
hw/misc/pvpanic-pci.c
hw/misc/sifive_e_aon.c
hw/misc/sifive_u_otp.c
hw/misc/zynq_slcr.c
hw/net/allwinner-sun8i-emac.c
hw/net/cadence_gem.c
hw/net/e1000.c
hw/net/e1000e.c
hw/net/eepro100.c
hw/net/ftgmac100.c
hw/net/igb.c
hw/net/imx_fec.c
hw/net/lance.c
hw/net/lasi_i82596.c
hw/net/mv88w8618_eth.c
hw/net/ne2000-isa.c
hw/net/ne2000-pci.c
hw/net/npcm7xx_emc.c
hw/net/npcm_gmac.c
hw/net/pcnet-pci.c
hw/net/rtl8139.c
hw/net/spapr_llan.c
hw/net/sungem.c
hw/net/sunhme.c
hw/net/tulip.c
hw/net/virtio-net.c
hw/net/vmxnet3.c
hw/nvme/ctrl.c
hw/nvme/ns.c
hw/nvram/eeprom_at24c.c
hw/nvram/fw_cfg.c
hw/nvram/mac_nvram.c
hw/nvram/spapr_nvram.c
hw/nvram/xlnx-bbram.c
hw/nvram/xlnx-efuse.c
hw/pci-bridge/pci_expander_bridge.c
hw/pci-host/pnv_phb.c
hw/pci-host/pnv_phb3.c
hw/pci-host/pnv_phb4_pec.c
hw/pci-host/ppce500.c
hw/pci-host/sabre.c
hw/pci/pci.c
hw/ppc/pnv.c
hw/ppc/pnv_chiptod.c
hw/ppc/pnv_core.c
hw/ppc/pnv_homer.c
hw/ppc/pnv_i2c.c
hw/ppc/pnv_pnor.c
hw/ppc/pnv_psi.c
hw/ppc/ppc405_uc.c
hw/ppc/ppc440_uc.c
hw/ppc/prep_systemio.c
hw/ppc/spapr_cpu_core.c
hw/ppc/spapr_pci.c
hw/ppc/spapr_rng.c
hw/ppc/spapr_tpm_proxy.c
hw/remote/proxy.c
hw/riscv/boot.c
hw/riscv/microblaze-v-generic.c
hw/riscv/microchip_pfsoc.c
hw/riscv/opentitan.c
hw/riscv/riscv_hart.c
hw/riscv/sifive_e.c
hw/riscv/sifive_u.c
hw/riscv/spike.c
hw/riscv/virt-acpi-build.c
hw/riscv/virt.c
hw/rtc/allwinner-rtc.c
hw/rtc/goldfish_rtc.c
hw/rtc/m48t59.c
hw/rtc/mc146818rtc.c
hw/rtc/pl031.c
hw/rx/rx62n.c
hw/s390x/ipl.c
hw/s390x/s390-pci-bus.c
hw/s390x/s390-skeys.c
hw/scsi/megasas.c
hw/scsi/mptsas.c
hw/scsi/scsi-bus.c
hw/scsi/scsi-disk.c
hw/scsi/scsi-generic.c
hw/scsi/vhost-scsi.c
hw/scsi/vhost-user-scsi.c
hw/scsi/virtio-scsi.c
hw/sd/allwinner-sdhost.c
hw/sd/sd.c
hw/sd/sdhci.c
hw/sparc/sun4m.c
hw/sparc64/sun4u.c
hw/ssi/xilinx_spips.c
hw/timer/a9gtimer.c
hw/timer/pxa2xx_timer.c
hw/tpm/tpm_crb.c
hw/tpm/tpm_spapr.c
hw/ufs/lu.c
hw/usb/bus.c
hw/usb/dev-network.c
hw/usb/dev-storage-classic.c
hw/usb/hcd-uhci.c
hw/usb/host-libusb.c
hw/usb/redirect.c
hw/vfio/ap.c
hw/vfio/ccw.c
hw/vfio/pci.c
hw/vfio/platform.c
hw/virtio/vdpa-dev.c
hw/virtio/vhost-user-fs.c
hw/virtio/vhost-user-scsi-pci.c
hw/virtio/virtio-balloon.c
hw/virtio/virtio-crypto.c
hw/virtio/virtio-iommu.c
hw/virtio/virtio-mem.c
hw/virtio/virtio-mmio.c
hw/virtio/virtio-pci.c
hw/virtio/virtio-pmem.c
hw/virtio/virtio-rng.c
hw/virtio/virtio.c
hw/watchdog/sbsa_gwdt.c
hw/watchdog/wdt_aspeed.c
hw/watchdog/wdt_imx2.c
hw/xen/xen-bus.c
include/qemu/main-loop.h
include/system/kvm.h
migration/migration.c
migration/options.c
system/cpus.c
system/qdev-monitor.c
target/arm/cpu.c
target/avr/cpu.c
target/hexagon/cpu.c
target/i386/cpu.c
target/i386/kvm/kvm.c
target/microblaze/cpu.c
target/mips/cpu.c
target/ppc/cpu_init.c
target/riscv/cpu.c
target/riscv/cpu_helper.c
target/riscv/csr.c
target/riscv/kvm/kvm-cpu.c
target/riscv/tcg/tcg-cpu.c
target/s390x/cpu.c
target/sparc/cpu.c
tests/unit/test-qdev-global-props.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
diff --cc cpu-target.c
Simple merge
Simple merge
Simple merge
diff --cc hw/acpi/erst.c
Simple merge
Simple merge
diff --cc hw/acpi/piix4.c
Simple merge
Simple merge
diff --cc hw/arm/armv7m.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/audio/ac97.c
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/avr/atmega.c
Simple merge
Simple merge
diff --cc hw/block/fdc.c
Simple merge
Simple merge
diff --cc hw/block/nand.c
Simple merge
Simple merge
Simple merge
diff --cc hw/block/swim.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/dma/pl330.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/ide/cmd646.c
Simple merge
Simple merge
diff --cc hw/ide/isa.c
Simple merge
diff --cc hw/ide/macio.c
Simple merge
diff --cc hw/ide/mmio.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 2e2f2a44f677ad7521a68e2d6931dfc764ec3c6d,b56edecb500a40165e47a38fd43e8381b6d86940..486664911580154120d275cfc35596ad30fa8bca
@@@ -30,9 -30,8 +30,9 @@@
  #include "hw/intc/riscv_aplic.h"
  #include "hw/irq.h"
  #include "target/riscv/cpu.h"
- #include "sysemu/sysemu.h"
- #include "sysemu/kvm.h"
- #include "sysemu/tcg.h"
+ #include "system/system.h"
+ #include "system/kvm.h"
++#include "system/tcg.h"
  #include "kvm/kvm_riscv.h"
  #include "migration/vmstate.h"
  
Simple merge
Simple merge
Simple merge
diff --cc hw/intc/xics.c
Simple merge
diff --cc hw/intc/xive.c
Simple merge
diff --cc hw/intc/xive2.c
Simple merge
diff --cc hw/ipmi/ipmi.c
Simple merge
Simple merge
Simple merge
diff --cc hw/isa/piix.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/mem/nvdimm.c
Simple merge
Simple merge
Simple merge
diff --cc hw/mips/cps.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/net/e1000.c
Simple merge
diff --cc hw/net/e1000e.c
Simple merge
Simple merge
Simple merge
diff --cc hw/net/igb.c
Simple merge
Simple merge
diff --cc hw/net/lance.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/net/sungem.c
Simple merge
diff --cc hw/net/sunhme.c
Simple merge
diff --cc hw/net/tulip.c
Simple merge
Simple merge
Simple merge
diff --cc hw/nvme/ctrl.c
Simple merge
diff --cc hw/nvme/ns.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/pci/pci.c
Simple merge
diff --cc hw/ppc/pnv.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/riscv/boot.c
Simple merge
index 427e3baca7b5729ba0798b5b2841dfbbcd68f55b,0000000000000000000000000000000000000000..26788a1824aa9f03f7c29983fad7e43e070e618c
mode 100644,000000..100644
--- /dev/null
@@@ -1,184 -1,0 +1,184 @@@
- #include "sysemu/sysemu.h"
 +/*
 + * QEMU model of Microblaze V generic board.
 + *
 + * based on hw/microblaze/petalogix_ml605_mmu.c
 + *
 + * Copyright (c) 2011 Michal Simek <monstr@monstr.eu>
 + * Copyright (c) 2011 PetaLogix
 + * Copyright (c) 2009 Edgar E. Iglesias.
 + * Copyright (C) 2024, Advanced Micro Devices, Inc.
 + * SPDX-License-Identifier: GPL-2.0-or-later
 + *
 + * Written by Sai Pavan Boddu <sai.pavan.boddu@amd.com
 + *     and by Michal Simek <michal.simek@amd.com>.
 + */
 +
 +#include "qemu/osdep.h"
 +#include "qemu/units.h"
 +#include "qapi/error.h"
 +#include "cpu.h"
 +#include "hw/sysbus.h"
++#include "system/system.h"
 +#include "net/net.h"
 +#include "hw/boards.h"
 +#include "hw/char/serial-mm.h"
 +#include "exec/address-spaces.h"
 +#include "hw/char/xilinx_uartlite.h"
 +#include "hw/misc/unimp.h"
 +
 +#define LMB_BRAM_SIZE (128 * KiB)
 +#define MEMORY_BASEADDR 0x80000000
 +#define INTC_BASEADDR 0x41200000
 +#define TIMER_BASEADDR 0x41c00000
 +#define TIMER_BASEADDR2 0x41c10000
 +#define UARTLITE_BASEADDR 0x40600000
 +#define ETHLITE_BASEADDR 0x40e00000
 +#define UART16550_BASEADDR 0x44a10000
 +#define AXIENET_BASEADDR 0x40c00000
 +#define AXIDMA_BASEADDR 0x41e00000
 +#define GPIO_BASEADDR 0x40000000
 +#define GPIO_BASEADDR2 0x40010000
 +#define GPIO_BASEADDR3 0x40020000
 +#define I2C_BASEADDR 0x40800000
 +#define QSPI_BASEADDR 0x44a00000
 +
 +#define TIMER_IRQ           0
 +#define UARTLITE_IRQ        1
 +#define UART16550_IRQ       4
 +#define ETHLITE_IRQ         5
 +#define TIMER_IRQ2          6
 +#define AXIENET_IRQ         7
 +#define AXIDMA_IRQ1         8
 +#define AXIDMA_IRQ0         9
 +
 +static void mb_v_generic_init(MachineState *machine)
 +{
 +    ram_addr_t ram_size = machine->ram_size;
 +    DeviceState *dev, *dma, *eth0;
 +    Object *ds, *cs;
 +    int i;
 +    RISCVCPU *cpu;
 +    hwaddr ddr_base = MEMORY_BASEADDR;
 +    MemoryRegion *phys_lmb_bram = g_new(MemoryRegion, 1);
 +    MemoryRegion *phys_ram = g_new(MemoryRegion, 1);
 +    qemu_irq irq[32];
 +    MemoryRegion *sysmem = get_system_memory();
 +
 +    cpu = RISCV_CPU(object_new(machine->cpu_type));
 +    object_property_set_bool(OBJECT(cpu), "h", false, NULL);
 +    object_property_set_bool(OBJECT(cpu), "d", false, NULL);
 +    qdev_realize(DEVICE(cpu), NULL, &error_abort);
 +    /* Attach emulated BRAM through the LMB.  */
 +    memory_region_init_ram(phys_lmb_bram, NULL,
 +                           "mb_v.lmb_bram", LMB_BRAM_SIZE,
 +                           &error_fatal);
 +    memory_region_add_subregion(sysmem, 0x00000000, phys_lmb_bram);
 +
 +    memory_region_init_ram(phys_ram, NULL, "mb_v.ram",
 +                           ram_size, &error_fatal);
 +    memory_region_add_subregion(sysmem, ddr_base, phys_ram);
 +
 +    dev = qdev_new("xlnx.xps-intc");
 +    qdev_prop_set_uint32(dev, "kind-of-intr",
 +                         1 << UARTLITE_IRQ);
 +    sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
 +    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR);
 +    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0,
 +                       qdev_get_gpio_in(DEVICE(cpu), 11));
 +    for (i = 0; i < 32; i++) {
 +        irq[i] = qdev_get_gpio_in(dev, i);
 +    }
 +
 +    /* Uartlite */
 +    dev = qdev_new(TYPE_XILINX_UARTLITE);
 +    qdev_prop_set_chr(dev, "chardev", serial_hd(0));
 +    sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
 +    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, UARTLITE_BASEADDR);
 +    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[UARTLITE_IRQ]);
 +
 +    /* Full uart */
 +    serial_mm_init(sysmem, UART16550_BASEADDR + 0x1000, 2,
 +                   irq[UART16550_IRQ], 115200, serial_hd(1),
 +                   DEVICE_LITTLE_ENDIAN);
 +
 +    /* 2 timers at irq 0 @ 100 Mhz.  */
 +    dev = qdev_new("xlnx.xps-timer");
 +    qdev_prop_set_uint32(dev, "one-timer-only", 0);
 +    qdev_prop_set_uint32(dev, "clock-frequency", 100000000);
 +    sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
 +    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, TIMER_BASEADDR);
 +    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[TIMER_IRQ]);
 +
 +    /* 2 timers at irq 3 @ 100 Mhz.  */
 +    dev = qdev_new("xlnx.xps-timer");
 +    qdev_prop_set_uint32(dev, "one-timer-only", 0);
 +    qdev_prop_set_uint32(dev, "clock-frequency", 100000000);
 +    sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
 +    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, TIMER_BASEADDR2);
 +    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[TIMER_IRQ2]);
 +
 +    /* Emaclite */
 +    dev = qdev_new("xlnx.xps-ethernetlite");
 +    qemu_configure_nic_device(dev, true, NULL);
 +    qdev_prop_set_uint32(dev, "tx-ping-pong", 0);
 +    qdev_prop_set_uint32(dev, "rx-ping-pong", 0);
 +    sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
 +    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, ETHLITE_BASEADDR);
 +    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[ETHLITE_IRQ]);
 +
 +    /* axi ethernet and dma initialization. */
 +    eth0 = qdev_new("xlnx.axi-ethernet");
 +    dma = qdev_new("xlnx.axi-dma");
 +
 +    /* FIXME: attach to the sysbus instead */
 +    object_property_add_child(qdev_get_machine(), "xilinx-eth", OBJECT(eth0));
 +    object_property_add_child(qdev_get_machine(), "xilinx-dma", OBJECT(dma));
 +
 +    ds = object_property_get_link(OBJECT(dma),
 +                                  "axistream-connected-target", NULL);
 +    cs = object_property_get_link(OBJECT(dma),
 +                                  "axistream-control-connected-target", NULL);
 +    qemu_configure_nic_device(eth0, true, NULL);
 +    qdev_prop_set_uint32(eth0, "rxmem", 0x1000);
 +    qdev_prop_set_uint32(eth0, "txmem", 0x1000);
 +    object_property_set_link(OBJECT(eth0), "axistream-connected", ds,
 +                             &error_abort);
 +    object_property_set_link(OBJECT(eth0), "axistream-control-connected", cs,
 +                             &error_abort);
 +    sysbus_realize_and_unref(SYS_BUS_DEVICE(eth0), &error_fatal);
 +    sysbus_mmio_map(SYS_BUS_DEVICE(eth0), 0, AXIENET_BASEADDR);
 +    sysbus_connect_irq(SYS_BUS_DEVICE(eth0), 0, irq[AXIENET_IRQ]);
 +
 +    ds = object_property_get_link(OBJECT(eth0),
 +                                  "axistream-connected-target", NULL);
 +    cs = object_property_get_link(OBJECT(eth0),
 +                                  "axistream-control-connected-target", NULL);
 +    qdev_prop_set_uint32(dma, "freqhz", 100000000);
 +    object_property_set_link(OBJECT(dma), "axistream-connected", ds,
 +                             &error_abort);
 +    object_property_set_link(OBJECT(dma), "axistream-control-connected", cs,
 +                             &error_abort);
 +    sysbus_realize_and_unref(SYS_BUS_DEVICE(dma), &error_fatal);
 +    sysbus_mmio_map(SYS_BUS_DEVICE(dma), 0, AXIDMA_BASEADDR);
 +    sysbus_connect_irq(SYS_BUS_DEVICE(dma), 0, irq[AXIDMA_IRQ0]);
 +    sysbus_connect_irq(SYS_BUS_DEVICE(dma), 1, irq[AXIDMA_IRQ1]);
 +
 +    /* unimplemented devices */
 +    create_unimplemented_device("gpio", GPIO_BASEADDR, 0x10000);
 +    create_unimplemented_device("gpio2", GPIO_BASEADDR2, 0x10000);
 +    create_unimplemented_device("gpio3", GPIO_BASEADDR3, 0x10000);
 +    create_unimplemented_device("i2c", I2C_BASEADDR, 0x10000);
 +    create_unimplemented_device("qspi", QSPI_BASEADDR, 0x10000);
 +}
 +
 +static void mb_v_generic_machine_init(MachineClass *mc)
 +{
 +    mc->desc = "AMD Microblaze-V generic platform";
 +    mc->init = mb_v_generic_init;
 +    mc->min_cpus = 1;
 +    mc->max_cpus = 1;
 +    mc->default_cpu_type = TYPE_RISCV_CPU_BASE;
 +    mc->default_cpus = 1;
 +}
 +
 +DEFINE_MACHINE("amd-microblaze-v-generic", mb_v_generic_machine_init)
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/riscv/virt.c
Simple merge
Simple merge
Simple merge
diff --cc hw/rtc/m48t59.c
Simple merge
Simple merge
diff --cc hw/rtc/pl031.c
Simple merge
diff --cc hw/rx/rx62n.c
Simple merge
diff --cc hw/s390x/ipl.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/sd/sd.c
Simple merge
diff --cc hw/sd/sdhci.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/ufs/lu.c
Simple merge
diff --cc hw/usb/bus.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc hw/vfio/ap.c
Simple merge
diff --cc hw/vfio/ccw.c
Simple merge
diff --cc hw/vfio/pci.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc system/cpus.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 9b367ed2d556662634e2813ca5a6a82d33227634,a149dbd848e4d7b631bf3bb37c4680e82669c0b8..0a6847b02711f00a9e44a4a1fa5ab466aaf4fb48
@@@ -402,8 -404,7 +402,8 @@@ static void s390_cpu_class_init(ObjectC
      cc->gdb_read_register = s390_cpu_gdb_read_register;
      cc->gdb_write_register = s390_cpu_gdb_write_register;
  #ifndef CONFIG_USER_ONLY
-     s390_cpu_class_init_sysemu(cc);
 +    device_class_set_props(dc, s390x_cpu_properties);
+     s390_cpu_system_class_init(cc);
  #endif
      cc->disas_set_info = s390_cpu_disas_set_info;
      cc->gdb_core_xml_file = "s390x-core64.xml";
Simple merge
Simple merge