On Fri, Jun 24, 2022 at 11:44:07AM -0500, Frank Rowand wrote: > On 6/24/22 08:13, Clément Léger wrote: > > Le Thu, 23 Jun 2022 22:43:26 -0500, > > frowand.list@xxxxxxxxx a écrit : > > > >> > >> +/* > >> + * __dtb_empty_root_begin[] magically created by cmd_dt_S_dtb in > >> + * scripts/Makefile.lib > >> + */ > >> +extern void *__dtb_empty_root_begin; > >> + > >> /* > >> * of_fdt_limit_memory - limit the number of regions in the /memory node > >> * @limit: maximum entries > >> @@ -1332,8 +1338,13 @@ bool __init early_init_dt_scan(void *params) > >> */ > >> void __init unflatten_device_tree(void) > >> { > > > > Hi Frank, > > > > This function is only defined when CONFIG_OF_EARLY_FLATTREE is enabled. > > More precisely, only if CONFIG_OF_FLATTREE is enabled. But that would > most likely be seleved by CONFIG_OF_EARLY_FLATTREE, so in practice the > issue you raise is valid. > > > Which means that on platforms that do not select this, the default > > empty device-tree creation will not be done. > > Yes, so platforms that need this functionality need to select this > option. > > > > > This configuration option is selected by the platform and not by the > > user. On x86, only one config enables this (X86_INTEL_CE) which means > > this won't work on all the other platforms even if CONFIG_OF is > > selected. I would need this to work by only selected CONFIG_OF. > > Maybe this means that CONFIG_OF should be changed to select > CONFIG_OF_FLATTREE. Any opinions on this Rob? I don't think that works in the PDT (Sparc) case. I think either CONFIG_OF_FLATTREE or CONFIG_OF_EARLY_FLATTREE will need to become user selectable. > > > That's why I decided to add the of_root creation in of_core_init() > > using a function (of_fdt_unflatten()) that is provided if CONFIG_OF is > > defined. > > I mentioned this in response to the previous patch series, but will > repeat here for those who might not have read that email thread. > > I do not want the root live tree to be created buy different code in > different places; I want one central place where this occurs. When > the tree can be created in multiple places by different code blocks, > it becomes more difficult to understand the code and more likely that > one of the tree creation code blocks is not updated when another is. +1 Rob