[U-Boot-Users] Testing todays u-boot-fdt

Wolfgang Grandegger wg at grandegger.com
Thu Apr 19 15:10:34 CEST 2007


Jerry Van Baren wrote:
> Wolfgang Grandegger wrote:
>> Hi Jerry,
>>
>> I gave the fdtlib of your git://cideas.us/pub/scm/u-boot/u-boot-fdt.git
>> a try on my Icecube board. I got it built with the attached patch. 
>> libfdt was actually not made and the second hunk fixes a warning 
>> (=bug?). Then I was able to read and list a blob in memory:
>>
>> => fdt addr 20000
>> => fdt print /
>> ...
>>
>> A few other things didn't work, especially updating the FDT:
>>
>> => fdt addr 20000 10000
>> libfdt: FDT_ERR_BADVERSION
>>
>> => fdt env
>> libfdt: FDT_ERR_BADVERSION
>> => fdt bd_t
>> libfdt: FDT_ERR_BADVERSION
>> => fdt chosen
>> libfdt: FDT_ERR_BADVERSION
>>
>> => fdt set /memory reg "<00000000 08000000>"
>> Usage:
>> fdt     - flattened device tree utility commands
>>
>> And "fdt mknode" seems not to be implemented.
>>
>> Am I doing something wrong?
>>
>> Wolfgang.
> 
> Hi Wolfgang,
> 
> Ouch, that was a bad bug and very embarrassing.  Just when you think you 
> are perfect, a stupid pointer error jumps up and bits you.  :-(  I'll 
> apply your patch.  Thanks & sorry.

Well, nobody is ...

> 
> The bad version error is because you are running a version 16 blob and 
> you need a version 17 blob to allow modifications.  David Gibson has an 
> intention of upconverting a v16 to v17 as part of libfdt, but neither of 
> us has gotten around to doing it yet.

OK, I can now update the FDT, apart from "mknode", but have still 
problems booting Linux-2.6.21-rc7. Should it already work?

> If you pick up the latest dtc, it compiles v17 by default now.  The 
> latest dtc also implements a -S <minsize> parameter so you can make 
> extra space in the blob and not need to specify the length parameter 
> with the "fdt addr" command (the length parameter for addr makes the 
> blob longer - unnecessary with -S blobs).  If you really want to be at 
> the bleeding edge, you can apply this patch as well, but it is *not* 
> necessary (the patch pads out the blob rather than leaving the extra 
> space undefined):
>   <http://article.gmane.org/gmane.linux.ports.ppc64.devel/18741>
> 
> See also:
> <http://www.denx.de/wiki/UBoot/UBootFdtInfo>
> (linked off the Custodian page).

Ah, I was not yet aware of that link. It's very useful, indeed.

> On a related note, you will probably want a fdt_find_compatible_node() 
> function added to libfdt.  I looked at the kernel one and it looks like 
> it would be pretty simple to adapt it to libfdt, but I have not gotten 
> to it yet.
> 
> <http://www.denx.de/wiki/view/UBoot/UBootFdtInfo#ToDo_libfdt>
>    2. fdt_find_compatible_node() Ref: arch/powerpc/kernel/prom.c
>           * Needed if we use fdt blobs to configure u-boot drivers

OK.

Thanks.

Wolfgang.




More information about the U-Boot mailing list