qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] q35 and sysbus devices


From: Markus Armbruster
Subject: Re: [Qemu-devel] q35 and sysbus devices
Date: Fri, 24 Mar 2017 18:59:31 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Peter Maydell <address@hidden> writes:

> On 24 March 2017 at 16:58, Markus Armbruster <address@hidden> wrote:
>> "Sysbus" isn't a bus.  In qdev's original design, every device had to
>> plug into a bus, period.  The ones that really didn't were made to plug
>> into "sysbus".
>>
>> Pretty much the only thing "sysbus" devices had in common was that they
>> couldn't be used with device_add and device_del.
>
> This isn't really true. Sysbus devices support having MMIO regions
> and IRQ lines and GPIO lines. If you need those you're a
> sysbus device; otherwise you can probably just be a plain old Device.

Well, "device has MMIO regions, IRQ lines and GPIO lines" is about as
"device contains virtual silicon".  What would a device without any of
these *do*?

Devices plugging into a bus have to expose their MMIO regions, IRQ
lines, etc. in a certain way dictated by the bus.  In return, you don't
have to wire up each resource manually, you simply plug into the bus and
are done.  That's what makes a bus a bus for me.

"Sysbus" does nothing of the sort.

>> We fixed the design to permit bus-less devices, but we didn't get rid of
>> "sysbus".
>
> Call it what you want, but we should have some common code support
> for "I want to have MMIOs and IRQs and GPIO lines".

Of course.

>                                                     You could
> argue for moving all that into Device I suppose.

Yup.

>> We got a "platform bus", which is really not the same as "sysbus", but
>> we shoehorned it into "sysbus" anyway.
>
> I agree 'platform bus' is a mess, and I'd rather it didn't exist.
> Unfortunately people really really want to be able to do device
> pass through of random memory-mapped devices :-(

The "platform" bus adds certain constraints over "sysbus", precisely to
make these uses possible.  And that's precisely why it should be its own
thing instead of complicating "sysbus".



reply via email to

[Prev in Thread] Current Thread [Next in Thread]