Re: [RFC] FDT fix for 64 bit platforms
On 10/15/11 01:12, Jayachandran C. wrote:
> On Sat, Oct 15, 2011 at 2:01 AM, Nathan Whitehorn
> <nwhitehorn@freebsd.org> wrote:
>> On 10/14/11 14:10, Jayachandran C. wrote:
>>> I'm planning commit this -CURRENT if there an no objections.
>>>
>>> In the current implementation, phandle is used to store a pointer to
>>> the location inside the device tree. Since phandle_t is u32, this
>>> will not work on 64 bit platforms. With this fix, the phandle is the
>>> offset from the start of device tree pointer 'fdtp', which will be 32
>>> bit.
>>>
>>> Review or testing from device tree users will be welcome.
>>>
>>> JC.
>> Why not use offsets into the FDT rather than full pointers? I believe having
>> phandles greater than 32 bits violates the FDT spec, and declaring that the
>> FDT can't itself be larger than 4 GB seems reasonable.
> I am actually using the offset from the beginning of FDT (fdtp) as
> phandle. I cannot use the usual fdt offset (after off_dt_struct) as
> phandle, because in that case offset of 0 is valid, but phandle 0
> should not be valid.
Why shouldn't phandle 0 be valid? The invalid phandle is -1. This is one
of the problems with our existing FDT code -- it makes all kinds of
wrong assumptions like this about IEEE 1275.
-Nathan
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
討論串 (同標題文章)
完整討論串 (本文為第 5 之 6 篇):