Merge remote-tracking branch 'remotes/armbru/tags/pull-qom-fdc-2021-03-16-v5' into staging

QOM and fdc patches patches for 2021-03-16

# gpg: Signature made Fri 19 Mar 2021 14:18:47 GMT
# gpg:                using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg:                issuer "armbru@redhat.com"
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full]
# gpg:                 aka "Markus Armbruster <armbru@pond.sub.org>" [full]
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* remotes/armbru/tags/pull-qom-fdc-2021-03-16-v5:
  memory: Drop "qemu:" prefix from QOM memory region type names
  hw: Replace anti-social QOM type names
  blockdev: Drop deprecated bogus -drive interface type
  fdc: Inline fdctrl_connect_drives() into fdctrl_realize_common()
  fdc: Drop deprecated floppy configuration
  docs/system/deprecated: Fix note on fdc drive properties
  fuzz: Avoid deprecated misuse of -drive if=sd

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell
2021-03-19 15:24:59 +00:00
35 changed files with 126 additions and 762 deletions
+15 -22
View File
@@ -239,19 +239,10 @@ DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit)
return NULL;
}
void drive_mark_claimed_by_board(void)
{
BlockBackend *blk;
DriveInfo *dinfo;
for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
dinfo = blk_legacy_dinfo(blk);
if (dinfo && blk_get_attached_dev(blk)) {
dinfo->claimed_by_board = true;
}
}
}
/*
* Check board claimed all -drive that are meant to be claimed.
* Fatal error if any remain unclaimed.
*/
void drive_check_orphaned(void)
{
BlockBackend *blk;
@@ -261,7 +252,17 @@ void drive_check_orphaned(void)
for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
dinfo = blk_legacy_dinfo(blk);
if (dinfo->is_default || dinfo->type == IF_NONE) {
/*
* Ignore default drives, because we create certain default
* drives unconditionally, then leave them unclaimed. Not the
* users fault.
* Ignore IF_VIRTIO, because it gets desugared into -device,
* so we can leave failing to -device.
* Ignore IF_NONE, because leaving unclaimed IF_NONE remains
* available for device_add is a feature.
*/
if (dinfo->is_default || dinfo->type == IF_VIRTIO
|| dinfo->type == IF_NONE) {
continue;
}
if (!blk_get_attached_dev(blk)) {
@@ -272,14 +273,6 @@ void drive_check_orphaned(void)
if_name[dinfo->type], dinfo->bus, dinfo->unit);
loc_pop(&loc);
orphans = true;
continue;
}
if (!dinfo->claimed_by_board && dinfo->type != IF_VIRTIO) {
loc_push_none(&loc);
qemu_opts_loc_restore(dinfo->opts);
warn_report("bogus if=%s is deprecated, use if=none",
if_name[dinfo->type]);
loc_pop(&loc);
}
}
-33
View File
@@ -71,39 +71,6 @@ QEMU 5.1 has three options:
to the user to load all the images they need.
3. ``-bios <file>`` - Tells QEMU to load the specified file as the firmwrae.
``Configuring floppies with ``-global``
'''''''''''''''''''''''''''''''''''''''
Use ``-device floppy,...`` instead:
::
-global isa-fdc.driveA=...
-global sysbus-fdc.driveA=...
-global SUNW,fdtwo.drive=...
become
::
-device floppy,unit=0,drive=...
and
::
-global isa-fdc.driveB=...
-global sysbus-fdc.driveB=...
become
::
-device floppy,unit=1,drive=...
``-drive`` with bogus interface type
''''''''''''''''''''''''''''''''''''
Drives with interface types other than ``if=none`` are for onboard
devices. It is possible to use drives the board doesn't pick up with
-device. This usage is now deprecated. Use ``if=none`` instead.
Short-form boolean options (since 6.0)
''''''''''''''''''''''''''''''''''''''
+57
View File
@@ -64,6 +64,63 @@ The 'file' driver for drives is no longer appropriate for character or host
devices and will only accept regular files (S_IFREG). The correct driver
for these file types is 'host_cdrom' or 'host_device' as appropriate.
Floppy controllers' drive properties (removed in 6.0)
'''''''''''''''''''''''''''''''''''''''''''''''''''''
Use ``-device floppy,...`` instead. When configuring onboard floppy
controllers
::
-global isa-fdc.driveA=...
-global sysbus-fdc.driveA=...
-global SUNW,fdtwo.drive=...
become
::
-device floppy,unit=0,drive=...
and
::
-global isa-fdc.driveB=...
-global sysbus-fdc.driveB=...
become
::
-device floppy,unit=1,drive=...
When plugging in a floppy controller
::
-device isa-fdc,...,driveA=...
becomes
::
-device isa-fdc,...
-device floppy,unit=0,drive=...
and
::
-device isa-fdc,...,driveB=...
becomes
::
-device isa-fdc,...
-device floppy,unit=1,drive=...
``-drive`` with bogus interface type (removed in 6.0)
'''''''''''''''''''''''''''''''''''''''''''''''''''''
Drives with interface types other than ``if=none`` are for onboard
devices. Drives the board doesn't pick up can no longer be used with
-device. Use ``if=none`` instead.
QEMU Machine Protocol (QMP) commands
------------------------------------
+1 -1
View File
@@ -231,7 +231,7 @@ static void zynq_init(MachineState *machine)
clock_set_hz(zynq_machine->ps_clk, PS_CLK_FREQUENCY);
/* Create slcr, keep a pointer to connect clocks */
slcr = qdev_new("xilinx,zynq_slcr");
slcr = qdev_new("xilinx-zynq_slcr");
qdev_connect_clock_in(slcr, "ps_clk", zynq_machine->ps_clk);
sysbus_realize_and_unref(SYS_BUS_DEVICE(slcr), &error_fatal);
sysbus_mmio_map(SYS_BUS_DEVICE(slcr), 0, 0xF8000000);
+1 -1
View File
@@ -37,7 +37,7 @@
#define CS_DREGS 32
#define CS_MAXDREG (CS_DREGS - 1)
#define TYPE_CS4231 "SUNW,CS4231"
#define TYPE_CS4231 "sun-CS4231"
typedef struct CSState CSState;
DECLARE_INSTANCE_CHECKER(CSState, CS4231,
TYPE_CS4231)
+10 -67
View File
@@ -870,7 +870,6 @@ struct FDCtrl {
uint8_t num_floppies;
FDrive drives[MAX_FD];
struct {
BlockBackend *blk;
FloppyDriveType type;
} qdev_for_drives[MAX_FD];
int reset_sensei;
@@ -2512,64 +2511,6 @@ void isa_fdc_init_drives(ISADevice *fdc, DriveInfo **fds)
fdctrl_init_drives(&ISA_FDC(fdc)->state.bus, fds);
}
static void fdctrl_connect_drives(FDCtrl *fdctrl, DeviceState *fdc_dev,
Error **errp)
{
unsigned int i;
FDrive *drive;
DeviceState *dev;
BlockBackend *blk;
bool ok;
const char *fdc_name, *drive_suffix;
for (i = 0; i < MAX_FD; i++) {
drive = &fdctrl->drives[i];
drive->fdctrl = fdctrl;
/* If the drive is not present, we skip creating the qdev device, but
* still have to initialise the controller. */
blk = fdctrl->qdev_for_drives[i].blk;
if (!blk) {
fd_init(drive);
fd_revalidate(drive);
continue;
}
fdc_name = object_get_typename(OBJECT(fdc_dev));
drive_suffix = !strcmp(fdc_name, "SUNW,fdtwo") ? "" : i ? "B" : "A";
warn_report("warning: property %s.drive%s is deprecated",
fdc_name, drive_suffix);
error_printf("Use -device floppy,unit=%d,drive=... instead.\n", i);
dev = qdev_new("floppy");
qdev_prop_set_uint32(dev, "unit", i);
qdev_prop_set_enum(dev, "drive-type", fdctrl->qdev_for_drives[i].type);
/*
* Hack alert: we move the backend from the floppy controller
* device to the floppy device. We first need to detach the
* controller, or else floppy_create()'s qdev_prop_set_drive()
* will die when it attaches floppy device. We also need to
* take another reference so that blk_detach_dev() doesn't
* free blk while we still need it.
*
* The hack is probably a bad idea.
*/
blk_ref(blk);
blk_detach_dev(blk, fdc_dev);
fdctrl->qdev_for_drives[i].blk = NULL;
ok = qdev_prop_set_drive_err(dev, "drive", blk, errp);
blk_unref(blk);
if (!ok) {
return;
}
if (!qdev_realize_and_unref(dev, &fdctrl->bus.bus, errp)) {
return;
}
}
}
void fdctrl_init_sysbus(qemu_irq irq, int dma_chann,
hwaddr mmio_base, DriveInfo **fds)
{
@@ -2596,7 +2537,7 @@ void sun4m_fdctrl_init(qemu_irq irq, hwaddr io_base,
DeviceState *dev;
FDCtrlSysBus *sys;
dev = qdev_new("SUNW,fdtwo");
dev = qdev_new("sun-fdtwo");
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
sys = SYSBUS_FDC(dev);
sysbus_connect_irq(SYS_BUS_DEVICE(sys), 0, irq);
@@ -2610,6 +2551,7 @@ static void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl,
Error **errp)
{
int i, j;
FDrive *drive;
static int command_tables_inited = 0;
if (fdctrl->fallback == FLOPPY_DRIVE_TYPE_AUTO) {
@@ -2649,7 +2591,13 @@ static void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl,
}
floppy_bus_create(fdctrl, &fdctrl->bus, dev);
fdctrl_connect_drives(fdctrl, dev, errp);
for (i = 0; i < MAX_FD; i++) {
drive = &fdctrl->drives[i];
drive->fdctrl = fdctrl;
fd_init(drive);
fd_revalidate(drive);
}
}
static const MemoryRegionPortio fdc_portio_list[] = {
@@ -2882,8 +2830,6 @@ static Property isa_fdc_properties[] = {
DEFINE_PROP_UINT32("iobase", FDCtrlISABus, iobase, 0x3f0),
DEFINE_PROP_UINT32("irq", FDCtrlISABus, irq, 6),
DEFINE_PROP_UINT32("dma", FDCtrlISABus, dma, 2),
DEFINE_PROP_DRIVE("driveA", FDCtrlISABus, state.qdev_for_drives[0].blk),
DEFINE_PROP_DRIVE("driveB", FDCtrlISABus, state.qdev_for_drives[1].blk),
DEFINE_PROP_SIGNED("fdtypeA", FDCtrlISABus, state.qdev_for_drives[0].type,
FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type,
FloppyDriveType),
@@ -2941,8 +2887,6 @@ static const VMStateDescription vmstate_sysbus_fdc ={
};
static Property sysbus_fdc_properties[] = {
DEFINE_PROP_DRIVE("driveA", FDCtrlSysBus, state.qdev_for_drives[0].blk),
DEFINE_PROP_DRIVE("driveB", FDCtrlSysBus, state.qdev_for_drives[1].blk),
DEFINE_PROP_SIGNED("fdtypeA", FDCtrlSysBus, state.qdev_for_drives[0].type,
FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type,
FloppyDriveType),
@@ -2971,7 +2915,6 @@ static const TypeInfo sysbus_fdc_info = {
};
static Property sun4m_fdc_properties[] = {
DEFINE_PROP_DRIVE("drive", FDCtrlSysBus, state.qdev_for_drives[0].blk),
DEFINE_PROP_SIGNED("fdtype", FDCtrlSysBus, state.qdev_for_drives[0].type,
FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type,
FloppyDriveType),
@@ -2990,7 +2933,7 @@ static void sun4m_fdc_class_init(ObjectClass *klass, void *data)
}
static const TypeInfo sun4m_fdc_info = {
.name = "SUNW,fdtwo",
.name = "sun-fdtwo",
.parent = TYPE_SYSBUS_FDC,
.instance_init = sun4m_fdc_initfn,
.class_init = sun4m_fdc_class_init,
+1 -1
View File
@@ -50,7 +50,7 @@
#define STAT_TR_IDLE 22
#define STAT_TR_RDY 24
#define TYPE_ETRAX_FS_SERIAL "etraxfs,serial"
#define TYPE_ETRAX_FS_SERIAL "etraxfs-serial"
typedef struct ETRAXSerial ETRAXSerial;
DECLARE_INSTANCE_CHECKER(ETRAXSerial, ETRAX_SERIAL,
TYPE_ETRAX_FS_SERIAL)
+3 -3
View File
@@ -289,7 +289,7 @@ void axisdev88_init(MachineState *machine)
&gpio_state.iomem);
dev = qdev_new("etraxfs,pic");
dev = qdev_new("etraxfs-pic");
s = SYS_BUS_DEVICE(dev);
sysbus_realize_and_unref(s, &error_fatal);
sysbus_mmio_map(s, 0, 0x3001c000);
@@ -323,8 +323,8 @@ void axisdev88_init(MachineState *machine)
}
/* 2 timers. */
sysbus_create_varargs("etraxfs,timer", 0x3001e000, irq[0x1b], nmi[1], NULL);
sysbus_create_varargs("etraxfs,timer", 0x3005e000, irq[0x1b], nmi[1], NULL);
sysbus_create_varargs("etraxfs-timer", 0x3001e000, irq[0x1b], nmi[1], NULL);
sysbus_create_varargs("etraxfs-timer", 0x3005e000, irq[0x1b], nmi[1], NULL);
for (i = 0; i < 4; i++) {
etraxfs_ser_create(0x30026000 + i * 0x2000, irq[0x14 + i], serial_hd(i));
+1 -1
View File
@@ -56,7 +56,7 @@
#define TCX_THC_CURSMASK 0x900
#define TCX_THC_CURSBITS 0x980
#define TYPE_TCX "SUNW,tcx"
#define TYPE_TCX "sun-tcx"
OBJECT_DECLARE_SIMPLE_TYPE(TCXState, TCX)
struct TCXState {
+1 -1
View File
@@ -38,7 +38,7 @@
#define R_R_GURU 4
#define R_MAX 5
#define TYPE_ETRAX_FS_PIC "etraxfs,pic"
#define TYPE_ETRAX_FS_PIC "etraxfs-pic"
DECLARE_INSTANCE_CHECKER(struct etrax_pic, ETRAX_FS_PIC,
TYPE_ETRAX_FS_PIC)
+1 -1
View File
@@ -28,7 +28,7 @@
/* Define the PMU device */
#define TYPE_XLNX_ZYNQMP_PMU_SOC "xlnx,zynqmp-pmu-soc"
#define TYPE_XLNX_ZYNQMP_PMU_SOC "xlnx-zynqmp-pmu-soc"
OBJECT_DECLARE_SIMPLE_TYPE(XlnxZynqMPPMUSoCState, XLNX_ZYNQMP_PMU_SOC)
#define XLNX_ZYNQMP_PMU_ROM_SIZE 0x8000
+1 -1
View File
@@ -182,7 +182,7 @@ REG32(DDRIOB, 0xb40)
#define ZYNQ_SLCR_MMIO_SIZE 0x1000
#define ZYNQ_SLCR_NUM_REGS (ZYNQ_SLCR_MMIO_SIZE / 4)
#define TYPE_ZYNQ_SLCR "xilinx,zynq_slcr"
#define TYPE_ZYNQ_SLCR "xilinx-zynq_slcr"
OBJECT_DECLARE_SIMPLE_TYPE(ZynqSLCRState, ZYNQ_SLCR)
struct ZynqSLCRState {
+6 -6
View File
@@ -496,7 +496,7 @@ static void tcx_init(hwaddr addr, qemu_irq irq, int vram_size, int width,
DeviceState *dev;
SysBusDevice *s;
dev = qdev_new("SUNW,tcx");
dev = qdev_new("sun-tcx");
qdev_prop_set_uint32(dev, "vram_size", vram_size);
qdev_prop_set_uint16(dev, "width", width);
qdev_prop_set_uint16(dev, "height", height);
@@ -970,7 +970,7 @@ static void sun4m_hw_init(const struct sun4m_hwdef *hwdef,
}
if (hwdef->sx_base) {
create_unimplemented_device("SUNW,sx", hwdef->sx_base, 0x2000);
create_unimplemented_device("sun-sx", hwdef->sx_base, 0x2000);
}
dev = qdev_new("sysbus-m48t08");
@@ -1045,23 +1045,23 @@ static void sun4m_hw_init(const struct sun4m_hwdef *hwdef,
slavio_irq[30], fdc_tc);
if (hwdef->cs_base) {
sysbus_create_simple("SUNW,CS4231", hwdef->cs_base,
sysbus_create_simple("sun-CS4231", hwdef->cs_base,
slavio_irq[5]);
}
if (hwdef->dbri_base) {
/* ISDN chip with attached CS4215 audio codec */
/* prom space */
create_unimplemented_device("SUNW,DBRI.prom",
create_unimplemented_device("sun-DBRI.prom",
hwdef->dbri_base + 0x1000, 0x30);
/* reg space */
create_unimplemented_device("SUNW,DBRI",
create_unimplemented_device("sun-DBRI",
hwdef->dbri_base + 0x10000, 0x100);
}
if (hwdef->bpp_base) {
/* parallel port */
create_unimplemented_device("SUNW,bpp", hwdef->bpp_base, 0x20);
create_unimplemented_device("sun-bpp", hwdef->bpp_base, 0x20);
}
initrd_size = 0;
+1 -1
View File
@@ -48,7 +48,7 @@
#define R_INTR 0x50
#define R_MASKED_INTR 0x54
#define TYPE_ETRAX_FS_TIMER "etraxfs,timer"
#define TYPE_ETRAX_FS_TIMER "etraxfs-timer"
typedef struct ETRAXTimerState ETRAXTimerState;
DECLARE_INSTANCE_CHECKER(ETRAXTimerState, ETRAX_TIMER,
TYPE_ETRAX_FS_TIMER)
+2 -2
View File
@@ -33,11 +33,11 @@
#define MAX_PHYS_ADDR_SPACE_BITS 62
#define MAX_PHYS_ADDR (((hwaddr)1 << MAX_PHYS_ADDR_SPACE_BITS) - 1)
#define TYPE_MEMORY_REGION "qemu:memory-region"
#define TYPE_MEMORY_REGION "memory-region"
DECLARE_INSTANCE_CHECKER(MemoryRegion, MEMORY_REGION,
TYPE_MEMORY_REGION)
#define TYPE_IOMMU_MEMORY_REGION "qemu:iommu-memory-region"
#define TYPE_IOMMU_MEMORY_REGION "iommu-memory-region"
typedef struct IOMMUMemoryRegionClass IOMMUMemoryRegionClass;
DECLARE_OBJ_CHECKERS(IOMMUMemoryRegion, IOMMUMemoryRegionClass,
IOMMU_MEMORY_REGION, TYPE_IOMMU_MEMORY_REGION)
+1 -1
View File
@@ -15,7 +15,7 @@
#include "target/arm/idau.h"
#include "qom/object.h"
#define TYPE_BITBAND "ARM,bitband-memory"
#define TYPE_BITBAND "ARM-bitband-memory"
OBJECT_DECLARE_SIMPLE_TYPE(BitBandState, BITBAND)
struct BitBandState {
+1 -1
View File
@@ -34,7 +34,7 @@
#include "target/arm/cpu.h"
#include "qom/object.h"
#define TYPE_FSL_IMX25 "fsl,imx25"
#define TYPE_FSL_IMX25 "fsl-imx25"
OBJECT_DECLARE_SIMPLE_TYPE(FslIMX25State, FSL_IMX25)
#define FSL_IMX25_NUM_UARTS 5
+1 -1
View File
@@ -30,7 +30,7 @@
#include "target/arm/cpu.h"
#include "qom/object.h"
#define TYPE_FSL_IMX31 "fsl,imx31"
#define TYPE_FSL_IMX31 "fsl-imx31"
OBJECT_DECLARE_SIMPLE_TYPE(FslIMX31State, FSL_IMX31)
#define FSL_IMX31_NUM_UARTS 2
+1 -1
View File
@@ -36,7 +36,7 @@
#include "cpu.h"
#include "qom/object.h"
#define TYPE_FSL_IMX6 "fsl,imx6"
#define TYPE_FSL_IMX6 "fsl-imx6"
OBJECT_DECLARE_SIMPLE_TYPE(FslIMX6State, FSL_IMX6)
#define FSL_IMX6_NUM_CPUS 4
+1 -1
View File
@@ -40,7 +40,7 @@
#include "cpu.h"
#include "qom/object.h"
#define TYPE_FSL_IMX6UL "fsl,imx6ul"
#define TYPE_FSL_IMX6UL "fsl-imx6ul"
OBJECT_DECLARE_SIMPLE_TYPE(FslIMX6ULState, FSL_IMX6UL)
enum FslIMX6ULConfiguration {

Some files were not shown because too many files have changed in this diff Show More