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

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Aug 18 08:14:39 UTC 2017


Hi 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