[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH 0/7] QEMU patches to generate FDT from qdev
From: |
Grant Likely |
Subject: |
Re: [Qemu-devel] [RFC PATCH 0/7] QEMU patches to generate FDT from qdevs |
Date: |
Wed, 7 Apr 2010 14:57:35 -0600 |
Thanks for the comments. Replies below...
On Wed, Apr 7, 2010 at 1:10 PM, Blue Swirl <address@hidden> wrote:
> On 4/7/10, Grant Likely <address@hidden> wrote:
>> Hi everyone,
>>
>> This is an experimental set of patches for populating the flattened
>> device tree (fdt) data from the actual set of qdevs in the platform.
>> I'm not expecting this to get merged anytime soon, but I wanted to get
>> it out there to solicit comments. My target for this is testing
>> device tree support on ARM.
>>
>> The approach is by no means final, and there are still a number of
>> details to work out, but I've got it working well with the versatile
>> platform and I've got the kernel using fdt data to bind against the
>> smc91x device driver. I'll be posting my associated kernel patches
>> real-soon-now.
>
> It looks like the hook is only used to add some additional properties.
> I think a data driven approach (fields in qdev structure) would be
> simpler because the handling code would be only in qdev instead of all
> devices.
Hmmm, maybe. I don't really have a good answer yet as I'm still
experimenting. It is possible that I'll need more complex behaviour
as I add new kinds of devices or for handling different bus types.
For example, right now I've got code to change the node name for mmio
devices, and that cannot be filled in until the register base is
defined and the best name format may be different for different
busses/devices. I'm not familiar enough with qemu to know how best to
handle this with properties.
> Something like:
> static SysBusDeviceInfo smc91c111_info = {
> .init = smc91c111_init1,
> .qdev.name = "smc91c111",
> .qdev.size = sizeof(smc91c111_state),
> .qdev.props = (Property[]) {
> DEFINE_NIC_PROPERTIES(smc91c111_state, conf),
> DEFINE_PROP_END_OF_LIST(),
> },
> .qdev.fdt_props = (FDTProperty[]) {
> DEFINE_FDT_NIC_MACADDR("local-mac-address", smc91c111_state,
> conf.macaddr),
> DEFINE_FDT_PROP_STR("compatible", "smc,91c111"),
> DEFINE_FDT_PROP_END_OF_LIST(),
> }
> };
>
> A separate question is whether the properties should be visible to
> user, for example shown by "info qdev". If yes, then the FDT
> properties should be a special case of qdev properties:
> .qdev.props = (Property[]) {
> DEFINE_NIC_PROPERTIES(smc91c111_state, conf),
> DEFINE_FDT_NIC_MACADDR("local-mac-address", smc91c111_state,
> conf.macaddr),
> DEFINE_FDT_PROP_STR("compatible", "smc,91c111"),
> DEFINE_PROP_END_OF_LIST(),
> }
It would certainly be useful to see the device node(s) associated with a qdev.
g.
- Re: [Qemu-devel] [RFC PATCH 1/7] devicetree: Add 8k instead of double dtb size when reserving extra memory, (continued)
- [Qemu-devel] [RFC PATCH 2/7] devicetree: auto-populate the device tree with qdev data, Grant Likely, 2010/04/07
- [Qemu-devel] [RFC PATCH 3/7] devicetree: add helper for determining IRQ properties in the device tree, Grant Likely, 2010/04/07
- [Qemu-devel] [RFC PATCH 4/7] devicetree: Add sysbus fdt populate hooks., Grant Likely, 2010/04/07
- [Qemu-devel] [RFC PATCH 5/7] devicetree: Add helper to register devices with an fdt_populate hook, Grant Likely, 2010/04/07
- [Qemu-devel] [RFC PATCH 6/7] devicetree: Add fdt_populate hook to pl011 device, Grant Likely, 2010/04/07
- [Qemu-devel] [RFC PATCH 7/7] devicetree: Add fdt_populate hook to smc91x device, Grant Likely, 2010/04/07
- [Qemu-devel] Re: [RFC PATCH 0/7] QEMU patches to generate FDT from qdevs, Jeremy Kerr, 2010/04/07
- Re: [Qemu-devel] [RFC PATCH 0/7] QEMU patches to generate FDT from qdevs, Blue Swirl, 2010/04/07
- Re: [Qemu-devel] [RFC PATCH 0/7] QEMU patches to generate FDT from qdevs,
Grant Likely <=
- Re: [Qemu-devel] [RFC PATCH 0/7] QEMU patches to generate FDT from qdevs, Paul Brook, 2010/04/09