[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: sysbus failed assert for xen_sysdev
On Tue, Jun 23, 2020 at 9:22 AM Paul Durrant <xadimgnik@xxxxxxxxx> wrote: > > > -----Original Message----- > > From: Jason Andryuk <jandryuk@xxxxxxxxx> > > Sent: 23 June 2020 13:57 > > To: Markus Armbruster <armbru@xxxxxxxxxx> > > Cc: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx>; Anthony PERARD > > <anthony.perard@xxxxxxxxxx>; xen- > > devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>; Paul Durrant <paul@xxxxxxx>; QEMU > > <qemu-devel@xxxxxxxxxx> > > Subject: Re: sysbus failed assert for xen_sysdev > > > > Thanks for your response, Markus. > > > > I didn't write it, but my understanding is as follows. TYPE_XENSYSDEV > > is a device on the system bus that provides the TYPE_XENSYSBUS bus. > > TYPE_XENBACKEND devices can then attach to TYPE_XENSYSBUS. > > > > That would make the qom-tree something like: > > /TYPE_XENSYSDEV > > /TYPE_XENSYSBUX > > /TYPE_XENBACKEND > > > > (I think today the TYPE_XENBACKEND devices ends up attached to the System > > bus.) > > > > I think TYPE_XENSYSDEV is correct - it is a device on the system bus. > > static const TypeInfo xensysdev_info = { > > .name = TYPE_XENSYSDEV, > > .parent = TYPE_SYS_BUS_DEVICE, > > ... > > } > > > > TYPE_XENSYSBUS is the xen-specific bus - provided by TYPE_XENSYSDEV - > > for attaching xendev. > > static const TypeInfo xensysbus_info = { > > .name = TYPE_XENSYSBUS, > > .parent = TYPE_BUS, > > ... > > } > > > > TYPE_XENBACKEND is a generic Xen device and it plugs into > > TYPE_XENSYSBUS. Maybe the .parent here is wrong and it should just be > > TYPE_DEVICE? > > Yes, I think that is the problem leading to the assert. See the equivalent > (non-legacy) code in xen-bus.c. Yes, xen-bus.c looks correct, but the important change seems to be removing `dc->bus_type = TYPE_XENSYSBUS;` from xen_sysdev_class_init() and adding it to xendev_class_init(). That let QEMU get to the cfi.pflash01 assertion failure. Regards, Jason > Paul > > > static const TypeInfo xendev_type_info = { > > .name = TYPE_XENBACKEND, > > .parent = TYPE_XENSYSDEV, > > ... > > } > > > > So removing `bus_type = TYPE_XENSYSBUS` from TYPE_XENSYSDEV class_init > > and adding it to TYPE_XENBACKEND seems correct to me.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |