[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for
From: |
Eric Auger |
Subject: |
Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding |
Date: |
Wed, 10 Sep 2014 15:51:09 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
On 09/10/2014 12:09 PM, Alexander Graf wrote:
>
>
> On 10.09.14 12:05, Paolo Bonzini wrote:
>> Il 10/09/2014 11:56, Alexander Graf ha scritto:
>>>
>>>
>>> On 10.09.14 11:43, Paolo Bonzini wrote:
>>>> Il 10/09/2014 11:31, Alexander Graf ha scritto:
>>>>>>> Yeah, please do the registration in sysbus.c, not in virt.c. There is
>>>>>>> no reason to make the platform_bus_init_notify+DynSysbusNotifier
>>>>>>> interface public. The code in sysbus.c can fill in the fields.
>>>>> Sysbus != Platform bus. Sysbus is an in-QEMU representation of a
>>>>> pseudo-bus that we put all devices onto that we consider unsorted.
>>>>>
>>>>> Platform bus is a machine representation of an actual bus that devices
>>>>> are attached to. These devices usually are sysbus devices.
>>>>
>>>> Is there any difference between the two?
>>>>
>>>> Take a machine that has two chips, a SoC that does everything except
>>>> USB, and a USB controller chip.
>>>>
>>>> Strictly speaking the USB controller chip would be on a "platform bus",
>>>> but we would likely put it on sysbus.
>>>>
>>>> Why should it matter whether the devices are static or dynamic, for the
>>>> sake of calling something the "system" or the "platform" bus? I would
>>>> say that QEMU calls "sysbus" the platform bus.
>>>>
>>>> Some devices (e.g. the local APIC in x86, or the in-core timers and GIC
>>>> in ARM) should probably not be in sysbus at all, and should attach
>>>> directly to the CPU address space. But that is a quirk in the modeling
>>>> of those devices, it shouldn't mean that sysbus is not a "platform" bus.
>>>
>>> On e500 for example, we have a predefined CCSR region. That is a machine
>>> defined "platform bus". The offsets inside that region are strictly
>>> defined by the spec.
>>>
>>> Now take the serial ports. We have space for 2 serial ports inside of
>>> that CCSR region. We can spawn these 2 ports in the machine file based
>>> on -serial, but if you want to spawn them with -device, how do you tell
>>> the machine whether they should go into the "big bucket platform bus" or
>>> the "CCSR platform bus"?
>>
>> Two possibilities:
>>
>> 1) you would use two instances of sysbus (one default, one created by
>> the board) and specify ",bus=ccsr" on the command line when you want to
>> add the device to the CCSR region.
>>
>> The two would work exactly the same way, only with different algorithms
>> for resource allocation.
>>
>> 2) similar to ISA, you would create a new ccsr-bus device and a new
>> ccsr-serial device, and use -device ccsr-serial,index=[0|1],chardev=foo
>> to specify which of the two serial ports this is for. Most of the fdt
>> magic could be shared by the sysbus and CCSR cases.
>>
>> I think I prefer (2)...
>
> Fair enough.
>
> As far as moving "platform bus" logic into sysbus, I'd really like to
> hold back and see what this whole thing ends up getting used for first.
>
> So for now, I'd definitely prefer to keep "platform bus" logic and
> "sysbus" logic separate. If we realize that every user only ever uses
> the dynamic sysbus creation in conjunction with our "platform bus"
> implementation, we can merge them.
Hi Paolo, Alex,
I understand I keep the code in a separate module from sysbus.c. Is that
the shared conclusion?
Thanks
Best Regards
Eric
>
>
> Alex
>
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, (continued)
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Paolo Bonzini, 2014/09/09
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Eric Auger, 2014/09/09
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Alexander Graf, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Paolo Bonzini, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Alexander Graf, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Paolo Bonzini, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Alexander Graf, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Paolo Bonzini, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Alexander Graf, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Paolo Bonzini, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding,
Eric Auger <=
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Paolo Bonzini, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Alexander Graf, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Paolo Bonzini, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Alexander Graf, 2014/09/10
- Re: [Qemu-devel] [PATCH v3 1/6] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Paolo Bonzini, 2014/09/10
[Qemu-devel] [PATCH v3 2/6] hw/arm/dyn_sysbus_devtree: helpers for sysbus device dynamic dt node generation, Eric Auger, 2014/09/09