On 04/07/2014 02:42 AM, Rob Herring wrote: > On Fri, Apr 4, 2014 at 9:11 AM, Michal Simek wrote: >> On 04/04/2014 03:32 PM, Rob Herring wrote: >>> On Fri, Apr 4, 2014 at 8:22 AM, Michal Simek wrote: >>>> On 04/04/2014 03:00 PM, Rob Herring wrote: >>>>> On Fri, Apr 4, 2014 at 7:16 AM, Michal Simek wrote: >>>>>> On 04/04/2014 12:16 AM, Rob Herring wrote: >>>>>>> From: Rob Herring >>>>>>> >>>>>>> Both powerpc and microblaze have the same FDT blob in debugfs feature. >>>>>>> Move this to common location and remove the powerpc and microblaze >>>>>>> implementations. This feature could become more useful when FDT >>>>>>> overlay support is added. >>>>> >>>>> [snip] >>> >>>> Anyway I am testing it for microblaze and getting problem >>>> caused by this patch: >>>> commit 3d2ee8571ac0580d49c3f41fa28336289934900a >>>> Author: Rob Herring >>>> Date: Wed Apr 2 15:10:14 2014 -0500 >>>> >>>> of/fdt: Convert FDT functions to use libfdt >>>> >>>> And reason is that in unflatten_dt_node() >>>> >>>> pathp = fdt_get_name(blob, *poffset, &l); >>>> >>>> is returning NULL >>>> and here >>>> /* version 0x10 has a more compact unit name here instead of the full >>>> * path. we accumulate the full path size using "fpsize", we'll rebuild >>>> * it later. We detect this because the first character of the name is >>>> * not '/'. >>>> */ >>>> if ((*pathp) != '/') { >>>> >>>> code is trying to read it which is causing this kernel bug: >>>> Oops: kernel access of bad area, sig: 11 >>>> >>>> It means fdt_next_node(is doing something wrong) >>>> >>>> Any easy way how to debug it? >>> >>> I didn't think fdt_get_path should fail. Can you add a print of >>> *poffset and pathp values. > > I think I've fixed this now and updated the branch. Please test again > when you have a chance. yep. The updated branch works for Microblaze. Thanks, Michal -- Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91 w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/ Maintainer of Linux kernel - Xilinx Zynq ARM architecture Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform