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. Alex