On 06/06/2012 11:00 AM, Alexander Graf wrote:
> On 06/06/2012 07:18 AM, Peter Crosthwaite wrote:
>> On Wed, 2012-06-06 at 01:52 +0200, Alexander Graf wrote:
>>> Phandle references work by having 2 pieces:
>>>
>>>    - a "phandle" 1-cell property in the device tree node
>>>    - a reference to the same value in a property we want to point
>>>      to the other node
>>>
>>> To generate the 1-cell property, we need an allocation mechanism that
>>> gives us a unique number space. This patch adds an allocator for these
>>> properties.
>>>
>>> Signed-off-by: Alexander Graf<ag...@suse.de>
>>> ---
>>>   device_tree.c |    7 +++++++
>>>   device_tree.h |    1 +
>>>   2 files changed, 8 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/device_tree.c b/device_tree.c
>>> index d4f1f0a..317bdd0 100644
>>> --- a/device_tree.c
>>> +++ b/device_tree.c
>>> @@ -220,6 +220,13 @@ int qemu_devtree_setprop_phandle(void *fdt,
>>> const char *node_path,
>>>       return qemu_devtree_setprop_cell(fdt, node_path, property,
>>> phandle);
>>>   }
>>>
>>> +uint32_t qemu_devtree_alloc_phandle(void *fdt)
>>> +{
>>> +    static int phandle = 0x8000;
>> can easily double check for duplicates. Would also allow you to start
>> from 1 rather than magic number 0x8000?

You can't check for duplicates, because the tree fragments you'll be
conflicting with haven't been added to the tree yet.  That's done by a
tool operating on the tree output by the first pass of qemu, and is fed
back into the second pass of qemu.

-Scott


Reply via email to