[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".
- [Qemu-devel] q35 and sysbus devices, Eduardo Habkost, 2017/03/22
- Re: [Qemu-devel] q35 and sysbus devices, Laszlo Ersek, 2017/03/22
- Re: [Qemu-devel] q35 and sysbus devices, Marcel Apfelbaum, 2017/03/24
- Re: [Qemu-devel] q35 and sysbus devices, Markus Armbruster, 2017/03/24
- Re: [Qemu-devel] q35 and sysbus devices, Peter Maydell, 2017/03/24
- Re: [Qemu-devel] q35 and sysbus devices,
Markus Armbruster <=
- Re: [Qemu-devel] q35 and sysbus devices, Peter Maydell, 2017/03/24
- Re: [Qemu-devel] q35 and sysbus devices, Thomas Huth, 2017/03/27
- Re: [Qemu-devel] q35 and sysbus devices, Eduardo Habkost, 2017/03/24
- Re: [Qemu-devel] q35 and sysbus devices, Cornelia Huck, 2017/03/27
- Re: [Qemu-devel] q35 and sysbus devices, Peter Maydell, 2017/03/27
- Re: [Qemu-devel] q35 and sysbus devices, Eduardo Habkost, 2017/03/27
Re: [Qemu-devel] q35 and sysbus devices, Thomas Huth, 2017/03/24