On 23.07.2013, at 21:38, Scott Wood wrote:
> On 07/22/2013 10:28:17 AM, Alexander Graf wrote:
>> Today we generate the device tree once on machine initialization
and then
>> store the finalized blob in memory to reload it on reset.
>> This is bad for 2 reasons. First we potentially waste a bunch of
RAM for no
>> good reason, as we have all information required to regenerate the
device
>> tree available anyways.
>> The second reason is even more important. On machine init when we
generate
>> the device tree for the first time, we don't have all of the
devices fully
>> initialized yet. But the device tree needs to potentially walk
devices to
>> put information about them into the device tree.
>
> If you can't produce the entire device tree at init time, how can
you calculate its size with a dry run?
>
> Device trees are generally pretty small; couldn't we just set a
maximum size and allocate that much space?
It's what we do, unless we load it from the disk. In that case we
take the fdt size from disk.