Hi Rob On 27/01/21 3:25 am, Rob Herring wrote: > On Mon, Jan 25, 2021 at 8:50 PM Chris Packham > wrote: >> Hi Rob, >> >> On 26/01/21 3:39 pm, Rob Herring wrote: >>> Commit 7536c7e03e74 ("of/fdt: Remove redundant kbasename function >>> call") exposed a bug creating DT nodes in the ATAGS to DT fixup code. >>> Non-existent nodes would mistaken get created with a leading '/'. The >>> problem was fdt_path_offset() takes a full path while creating a node >>> with fdt_add_subnode() takes just the basename. >>> >>> Since this we only add root child nodes, we can just skip over the '/'. >>> >>> Fixes: 7536c7e03e74 ("of/fdt: Remove redundant kbasename function call") >>> Reported-by: Chris Packham >>> Cc: Qi Zheng >>> Cc: Russell King >>> Signed-off-by: Rob Herring >> Thanks for the quick patch. It doesn't quite seem to work as my system >> can't find it's initrd (it can with my other hacky patch). It does seem >> to get the command line info as I'm getting printk output. > That doesn't make sense. Can you enable debug in drivers/of/fdt.c. I've attached two captures with DEBUG enabled in drivers/of/fdt.c. One with your patch and one with mine. I note that in your one we do actually pick up initrd_start/initrd_end but then it gets disabled for some reason (possibly other changes we have in our kernel).