[U-Boot] Antwort: Re: cmd/fdt: support single value replacement within an array

Hannes Schmelzer Hannes.Schmelzer at br-automation.com
Fri Aug 18 12:49:17 UTC 2017


Laurent Pinchart <laurent.pinchart at ideasonboard.com> schrieb am 18.08.2017 
10:14:39:

> Von: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> 
> Hi Hannes,
Hi Laurent,

i will provide some patch for fixing this issue.

cheers,
Hannes

> 
> On Friday 18 Aug 2017 10:07:19 Hannes Schmelzer wrote:
> > Laurent Pinchart schrieb am 04.08.2017 23:23:19:
> > 
> > Hi Laurent,
> > 
> > as told a few days ago i'm now coming back to this issue.
> 
> Thank you.
> 
> > > (I'm not subscribed to the list, please keep me CC'ed on replies)
> > 
> > subscribing to the list would be a great idea, so you're always up to 
date
> > whats going on ;-)
> 
> I know, but I've already stopped reading mailing lists I'm subscribed to 
due 
> to the amount of traffic, so I figured out that subscribing to new ones 
> wouldn't be a good idea :-)
> 
> > > On Tuesday 30 May 2017 13:05:00 Hannes Schmelzer wrote:
> > >> With this commit we can modify single values within an array of a 
dts
> > >> property.
> > > 
> > > But with this commit U-Boot crashes if you try to create a new 
property
> > > with the fdt set command :-/
> > > 
> > > I've tested v2017.07 with the commit reverted, and fdt set works 
again
> > > for me. The issue is that your fdt_getprop() call fails and return 
NULL
> > > with len set to -1. You can easily imagine what the memcpy() 
following it
> > > will do.
> > 
> > Yes. Your'e right with that.
> > 
> > I just checked most current source (...), there were changes regarding
> > this issue.
> > Tom introduced a check against the fail of fdt_getprop(...) call.
> > 
> > 
http://git.denx.de/?p=u-boot.git;a=commitdiff;h=99bb38e2cce9d99238458e0f6d18

> > 80c6d2e80a4d
> > 
> > Can you please try with your testcase with most current source again?
> > 
> > please let us know if the problem is fixed with this.
> 
> I can't test that right now as I don't have access to my hardware at the 

> moment, but I doubt it will work.
> 
> The code now reads as
> 
>    ptmp = fdt_getprop(working_fdt, nodeoffset, prop, &len);
>    if (!ptmp) {
>       printf("prop (%s) not found!\n", prop);
>       return 1;
>    }
> 
> The new !ptmp check should prevent the crash, but it will also prevent 
the fdt 
> set command from operating correctly, as it will return an error if the 
> property isn't found.
> 
> -- 
> Regards,
> 
> Laurent Pinchart
> 




More information about the U-Boot mailing list