public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] libfdt problem when loading device tree
@ 2007-12-13 16:24 Joakim Tjernlund
  2007-12-13 16:34 ` Kumar Gala
  2007-12-13 16:46 ` Jerry Van Baren
  0 siblings, 2 replies; 11+ messages in thread
From: Joakim Tjernlund @ 2007-12-13 16:24 UTC (permalink / raw)
  To: u-boot

I get this when I try to boot my board:
## Booting image at 00200000 ...
   Image Name:   oskernel02a:p1a:99
   Created:      2007-12-13   9:59:43 UTC
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    1238992 Bytes =  1.2 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 007fe000, end 007ff6f9 ... OK
WARNING: could not create /bd_t FDT_ERR_NOSPACE.
fdt_bd_t: FDT_ERR_NOSPACE
ERROR: /bd_t node create failed - must RESET the board to recover.
Resetting the board.

I have tried different combinations of -S and -R options to dtc,
but nothing helps:
dtc -S 2000 -R 2000 -f of-tmcu.dts -O asm > of-tmcu.S

If I remove the chosen node from my dts file, I get the error when
libfdt tries to create a chosen node.

I am using dtc 1.0.0 and u-boot 1.3.1

 Jocke

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot-Users] libfdt problem when loading device tree
  2007-12-13 16:24 [U-Boot-Users] libfdt problem when loading device tree Joakim Tjernlund
@ 2007-12-13 16:34 ` Kumar Gala
  2007-12-13 16:39   ` Joakim Tjernlund
  2007-12-13 18:59   ` Jerry Van Baren
  2007-12-13 16:46 ` Jerry Van Baren
  1 sibling, 2 replies; 11+ messages in thread
From: Kumar Gala @ 2007-12-13 16:34 UTC (permalink / raw)
  To: u-boot


On Dec 13, 2007, at 10:24 AM, Joakim Tjernlund wrote:

> I get this when I try to boot my board:
> ## Booting image at 00200000 ...
>   Image Name:   oskernel02a:p1a:99
>   Created:      2007-12-13   9:59:43 UTC
>   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
>   Data Size:    1238992 Bytes =  1.2 MB
>   Load Address: 00000000
>   Entry Point:  00000000
>   Verifying Checksum ... OK
>   Uncompressing Kernel Image ... OK
>   Loading Device Tree to 007fe000, end 007ff6f9 ... OK
> WARNING: could not create /bd_t FDT_ERR_NOSPACE.
> fdt_bd_t: FDT_ERR_NOSPACE
> ERROR: /bd_t node create failed - must RESET the board to recover.
> Resetting the board.
>
> I have tried different combinations of -S and -R options to dtc,
> but nothing helps:
> dtc -S 2000 -R 2000 -f of-tmcu.dts -O asm > of-tmcu.S
>
> If I remove the chosen node from my dts file, I get the error when
> libfdt tries to create a chosen node.
>
> I am using dtc 1.0.0 and u-boot 1.3.1

How big is the .dtb if you don't specify -S?  The -R should only be  
something like 8.

- k

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot-Users] libfdt problem when loading device tree
  2007-12-13 16:34 ` Kumar Gala
@ 2007-12-13 16:39   ` Joakim Tjernlund
  2007-12-13 18:59   ` Jerry Van Baren
  1 sibling, 0 replies; 11+ messages in thread
From: Joakim Tjernlund @ 2007-12-13 16:39 UTC (permalink / raw)
  To: u-boot


On Thu, 2007-12-13 at 10:34 -0600, Kumar Gala wrote:
> On Dec 13, 2007, at 10:24 AM, Joakim Tjernlund wrote:
> 
> > I get this when I try to boot my board:
> > ## Booting image at 00200000 ...
> >   Image Name:   oskernel02a:p1a:99
> >   Created:      2007-12-13   9:59:43 UTC
> >   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
> >   Data Size:    1238992 Bytes =  1.2 MB
> >   Load Address: 00000000
> >   Entry Point:  00000000
> >   Verifying Checksum ... OK
> >   Uncompressing Kernel Image ... OK
> >   Loading Device Tree to 007fe000, end 007ff6f9 ... OK
> > WARNING: could not create /bd_t FDT_ERR_NOSPACE.
> > fdt_bd_t: FDT_ERR_NOSPACE
> > ERROR: /bd_t node create failed - must RESET the board to recover.
> > Resetting the board.
> >
> > I have tried different combinations of -S and -R options to dtc,
> > but nothing helps:
> > dtc -S 2000 -R 2000 -f of-tmcu.dts -O asm > of-tmcu.S
> >
> > If I remove the chosen node from my dts file, I get the error when
> > libfdt tries to create a chosen node.
> >
> > I am using dtc 1.0.0 and u-boot 1.3.1
> 
> How big is the .dtb if you don't specify -S?  The -R should only be  
> something like 8.

dtc  -R 8 -f of-tmcu.dts -O asm > of-tmcu.S
makes
  ls -s of-tmcu.S
  24 of-tmcu.S
and
  size of-tmcu.o
 text    data     bss     dec     hex filename
 5696       0       0    5696    1640 of-tmcu.o

 Jocke

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot-Users] libfdt problem when loading device tree
  2007-12-13 16:24 [U-Boot-Users] libfdt problem when loading device tree Joakim Tjernlund
  2007-12-13 16:34 ` Kumar Gala
@ 2007-12-13 16:46 ` Jerry Van Baren
  2007-12-13 17:00   ` Joakim Tjernlund
  2007-12-13 17:07   ` Joakim Tjernlund
  1 sibling, 2 replies; 11+ messages in thread
From: Jerry Van Baren @ 2007-12-13 16:46 UTC (permalink / raw)
  To: u-boot

Joakim Tjernlund wrote:
> I get this when I try to boot my board:
> ## Booting image at 00200000 ...
>    Image Name:   oskernel02a:p1a:99
>    Created:      2007-12-13   9:59:43 UTC
>    Image Type:   PowerPC Linux Kernel Image (gzip compressed)
>    Data Size:    1238992 Bytes =  1.2 MB
>    Load Address: 00000000
>    Entry Point:  00000000
>    Verifying Checksum ... OK
>    Uncompressing Kernel Image ... OK
>    Loading Device Tree to 007fe000, end 007ff6f9 ... OK
> WARNING: could not create /bd_t FDT_ERR_NOSPACE.
> fdt_bd_t: FDT_ERR_NOSPACE
> ERROR: /bd_t node create failed - must RESET the board to recover.
> Resetting the board.
> 
> I have tried different combinations of -S and -R options to dtc,
> but nothing helps:
> dtc -S 2000 -R 2000 -f of-tmcu.dts -O asm > of-tmcu.S

-S 2000 may be too small, I found I needed -S 3000.  If you run dtc 
without the -S option and add in a verbose/info option(?), dtc will tell 
you how big your blob is without any padding.  Obviously, you need to 
pad it.

-R 2000 is big time overkill, I've found -R 8 is plenty.  These are the 
memory reserve slots.

> If I remove the chosen node from my dts file, I get the error when
> libfdt tries to create a chosen node.

I don't believe having a /chosen node in the source is recommended.  The 
idea is that u-boot's board configuration customization should create 
the /chosen node with the proper values either from a-priori knowledge 
or from probing.

> I am using dtc 1.0.0 and u-boot 1.3.1
> 
>  Jocke

Sounds like a bug with the move operation from flash to RAM.  What 
happens if you copy the blob from flash to RAM from the u-boot command line?

(from memory so I may be wrong)

 > fdt move <source> <ramblobaddr>
 > bootm <ramdisk> <ramblobaddr>

gvb

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot-Users] libfdt problem when loading device tree
  2007-12-13 16:46 ` Jerry Van Baren
@ 2007-12-13 17:00   ` Joakim Tjernlund
  2007-12-13 17:07   ` Joakim Tjernlund
  1 sibling, 0 replies; 11+ messages in thread
From: Joakim Tjernlund @ 2007-12-13 17:00 UTC (permalink / raw)
  To: u-boot


On Thu, 2007-12-13 at 11:46 -0500, Jerry Van Baren wrote:
> Joakim Tjernlund wrote:
> > I get this when I try to boot my board:
> > ## Booting image at 00200000 ...
> >    Image Name:   oskernel02a:p1a:99
> >    Created:      2007-12-13   9:59:43 UTC
> >    Image Type:   PowerPC Linux Kernel Image (gzip compressed)
> >    Data Size:    1238992 Bytes =  1.2 MB
> >    Load Address: 00000000
> >    Entry Point:  00000000
> >    Verifying Checksum ... OK
> >    Uncompressing Kernel Image ... OK
> >    Loading Device Tree to 007fe000, end 007ff6f9 ... OK
> > WARNING: could not create /bd_t FDT_ERR_NOSPACE.
> > fdt_bd_t: FDT_ERR_NOSPACE
> > ERROR: /bd_t node create failed - must RESET the board to recover.
> > Resetting the board.
> > 
> > I have tried different combinations of -S and -R options to dtc,
> > but nothing helps:
> > dtc -S 2000 -R 2000 -f of-tmcu.dts -O asm > of-tmcu.S
> 
> -S 2000 may be too small, I found I needed -S 3000.  If you run dtc 
> without the -S option and add in a verbose/info option(?), dtc will tell 
> you how big your blob is without any padding.  Obviously, you need to 
> pad it.
> 
> -R 2000 is big time overkill, I've found -R 8 is plenty.  These are the 
> memory reserve slots.

Noted, set to 8 now. This was just a something I tried as noting would
work

> 
> > If I remove the chosen node from my dts file, I get the error when
> > libfdt tries to create a chosen node.
> 
> I don't believe having a /chosen node in the source is recommended.  The 
> idea is that u-boot's board configuration customization should create 
> the /chosen node with the proper values either from a-priori knowledge 
> or from probing.

I didn't have one, but added one to workaround this problem.

> 
> > I am using dtc 1.0.0 and u-boot 1.3.1
> > 
> >  Jocke
> 
> Sounds like a bug with the move operation from flash to RAM.  What 
> happens if you copy the blob from flash to RAM from the u-boot command line?
> 
> (from memory so I may be wrong)
> 
>  > fdt move <source> <ramblobaddr>
>  > bootm <ramdisk> <ramblobaddr>

The same thing happens.

A few observations:
fdt list only prints a few nodes:
=> fdt addr 0xf8026038
=> fdt list
/ {
        model="TMCUTU";
        compatible="MPC83xx";
        #address-cells=<0x00000001>;
        #size-cells=<0x00000001>;
        chosen {
        };
        board {
        };
        flash at f8000000 {
        };
        cpus {
        };
        memory {
        };
        soc8321 at e0000000 {
        };
        qe at e0100000 {
        };
};

If I produce a dtb file and compare:
 size of-tmcu.o
   text    data     bss     dec     hex filename
   5696       0       0    5696    1640 of-tmcu.o
ls -l of-tmcu.dtb
-rw-r--r-- 1 jocke users 5690 2007-12-13 17:47 of-tmcu.dtb

The assembler version is 6 bytes bigger

 Jocke
> 
> gvb
> 
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot-Users] libfdt problem when loading device tree
  2007-12-13 16:46 ` Jerry Van Baren
  2007-12-13 17:00   ` Joakim Tjernlund
@ 2007-12-13 17:07   ` Joakim Tjernlund
  2007-12-13 17:16     ` Joakim Tjernlund
  2007-12-13 18:03     ` Jerry Van Baren
  1 sibling, 2 replies; 11+ messages in thread
From: Joakim Tjernlund @ 2007-12-13 17:07 UTC (permalink / raw)
  To: u-boot


On Thu, 2007-12-13 at 11:46 -0500, Jerry Van Baren wrote:
> Joakim Tjernlund wrote:
> > I get this when I try to boot my board:
> > ## Booting image at 00200000 ...
> >    Image Name:   oskernel02a:p1a:99
> >    Created:      2007-12-13   9:59:43 UTC
> >    Image Type:   PowerPC Linux Kernel Image (gzip compressed)
> >    Data Size:    1238992 Bytes =  1.2 MB
> >    Load Address: 00000000
> >    Entry Point:  00000000
> >    Verifying Checksum ... OK
> >    Uncompressing Kernel Image ... OK
> >    Loading Device Tree to 007fe000, end 007ff6f9 ... OK
> > WARNING: could not create /bd_t FDT_ERR_NOSPACE.
> > fdt_bd_t: FDT_ERR_NOSPACE
> > ERROR: /bd_t node create failed - must RESET the board to recover.
> > Resetting the board.
> > 
> > I have tried different combinations of -S and -R options to dtc,
> > but nothing helps:
> > dtc -S 2000 -R 2000 -f of-tmcu.dts -O asm > of-tmcu.S
> 
> -S 2000 may be too small, I found I needed -S 3000.  If you run dtc 
> without the -S option and add in a verbose/info option(?), dtc will tell 
> you how big your blob is without any padding.  Obviously, you need to 
> pad it.

yes, that was it. Increasing to -S 0x4000 makes it work. I was noted
this when producing a dtb, I got a warning. The asm version does
not warn when the *.S is too small.

 Jocke

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot-Users] libfdt problem when loading device tree
  2007-12-13 17:07   ` Joakim Tjernlund
@ 2007-12-13 17:16     ` Joakim Tjernlund
  2007-12-13 18:03     ` Jerry Van Baren
  1 sibling, 0 replies; 11+ messages in thread
From: Joakim Tjernlund @ 2007-12-13 17:16 UTC (permalink / raw)
  To: u-boot


On Thu, 2007-12-13 at 18:07 +0100, Joakim Tjernlund wrote:
> On Thu, 2007-12-13 at 11:46 -0500, Jerry Van Baren wrote:
> > Joakim Tjernlund wrote:
> > > I get this when I try to boot my board:
> > > ## Booting image at 00200000 ...
> > >    Image Name:   oskernel02a:p1a:99
> > >    Created:      2007-12-13   9:59:43 UTC
> > >    Image Type:   PowerPC Linux Kernel Image (gzip compressed)
> > >    Data Size:    1238992 Bytes =  1.2 MB
> > >    Load Address: 00000000
> > >    Entry Point:  00000000
> > >    Verifying Checksum ... OK
> > >    Uncompressing Kernel Image ... OK
> > >    Loading Device Tree to 007fe000, end 007ff6f9 ... OK
> > > WARNING: could not create /bd_t FDT_ERR_NOSPACE.
> > > fdt_bd_t: FDT_ERR_NOSPACE
> > > ERROR: /bd_t node create failed - must RESET the board to recover.
> > > Resetting the board.
> > > 
> > > I have tried different combinations of -S and -R options to dtc,
> > > but nothing helps:
> > > dtc -S 2000 -R 2000 -f of-tmcu.dts -O asm > of-tmcu.S
> > 
> > -S 2000 may be too small, I found I needed -S 3000.  If you run dtc 
> > without the -S option and add in a verbose/info option(?), dtc will tell 
> > you how big your blob is without any padding.  Obviously, you need to 
> > pad it.
> 
> yes, that was it. Increasing to -S 0x4000 makes it work. I was noted
> this when producing a dtb, I got a warning. The asm version does
> not warn when the *.S is too small.
> 
>  Jocke

FYI, adding a chosen node to the dts file as below makes the boot fail.
chosen {
	       linux,stdout-path = "/soc8321 at e0000000/serial at 4500";
        };
This is the same as my OF_STDOUT_PATH:
#define OF_STDOUT_PATH          "/soc8321 at e0000000/serial at 4500"

 Jocke

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot-Users] libfdt problem when loading device tree
  2007-12-13 17:07   ` Joakim Tjernlund
  2007-12-13 17:16     ` Joakim Tjernlund
@ 2007-12-13 18:03     ` Jerry Van Baren
  2007-12-13 18:17       ` Joakim Tjernlund
  1 sibling, 1 reply; 11+ messages in thread
From: Jerry Van Baren @ 2007-12-13 18:03 UTC (permalink / raw)
  To: u-boot

Joakim Tjernlund wrote:
> On Thu, 2007-12-13 at 11:46 -0500, Jerry Van Baren wrote:
>> Joakim Tjernlund wrote:
>>> I get this when I try to boot my board:
>>> ## Booting image at 00200000 ...
>>>    Image Name:   oskernel02a:p1a:99
>>>    Created:      2007-12-13   9:59:43 UTC
>>>    Image Type:   PowerPC Linux Kernel Image (gzip compressed)
>>>    Data Size:    1238992 Bytes =  1.2 MB
>>>    Load Address: 00000000
>>>    Entry Point:  00000000
>>>    Verifying Checksum ... OK
>>>    Uncompressing Kernel Image ... OK
>>>    Loading Device Tree to 007fe000, end 007ff6f9 ... OK
>>> WARNING: could not create /bd_t FDT_ERR_NOSPACE.
>>> fdt_bd_t: FDT_ERR_NOSPACE
>>> ERROR: /bd_t node create failed - must RESET the board to recover.
>>> Resetting the board.
>>>
>>> I have tried different combinations of -S and -R options to dtc,
>>> but nothing helps:
>>> dtc -S 2000 -R 2000 -f of-tmcu.dts -O asm > of-tmcu.S
>> -S 2000 may be too small, I found I needed -S 3000.  If you run dtc 
>> without the -S option and add in a verbose/info option(?), dtc will tell 
>> you how big your blob is without any padding.  Obviously, you need to 
>> pad it.
> 
> yes, that was it. Increasing to -S 0x4000 makes it work. I was noted
> this when producing a dtb, I got a warning. The asm version does
> not warn when the *.S is too small.
> 
>  Jocke

Snoopy dance <http://www.google.com/search?q=snoopy+dance> :-)

WRT one of your previous messages, there are two fdt commands: "fdt 
print" does a full recursive print, "fdt list" only prints the given 
level, it does not print subnodes recursively.

gvb

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot-Users] libfdt problem when loading device tree
  2007-12-13 18:03     ` Jerry Van Baren
@ 2007-12-13 18:17       ` Joakim Tjernlund
  0 siblings, 0 replies; 11+ messages in thread
From: Joakim Tjernlund @ 2007-12-13 18:17 UTC (permalink / raw)
  To: u-boot


On Thu, 2007-12-13 at 13:03 -0500, Jerry Van Baren wrote:
> Joakim Tjernlund wrote:
> > On Thu, 2007-12-13 at 11:46 -0500, Jerry Van Baren wrote:
> >> Joakim Tjernlund wrote:
> >>> I get this when I try to boot my board:
> >>> ## Booting image at 00200000 ...
> >>>    Image Name:   oskernel02a:p1a:99
> >>>    Created:      2007-12-13   9:59:43 UTC
> >>>    Image Type:   PowerPC Linux Kernel Image (gzip compressed)
> >>>    Data Size:    1238992 Bytes =  1.2 MB
> >>>    Load Address: 00000000
> >>>    Entry Point:  00000000
> >>>    Verifying Checksum ... OK
> >>>    Uncompressing Kernel Image ... OK
> >>>    Loading Device Tree to 007fe000, end 007ff6f9 ... OK
> >>> WARNING: could not create /bd_t FDT_ERR_NOSPACE.
> >>> fdt_bd_t: FDT_ERR_NOSPACE
> >>> ERROR: /bd_t node create failed - must RESET the board to recover.
> >>> Resetting the board.
> >>>
> >>> I have tried different combinations of -S and -R options to dtc,
> >>> but nothing helps:
> >>> dtc -S 2000 -R 2000 -f of-tmcu.dts -O asm > of-tmcu.S
> >> -S 2000 may be too small, I found I needed -S 3000.  If you run dtc 
> >> without the -S option and add in a verbose/info option(?), dtc will tell 
> >> you how big your blob is without any padding.  Obviously, you need to 
> >> pad it.
> > 
> > yes, that was it. Increasing to -S 0x4000 makes it work. I was noted
> > this when producing a dtb, I got a warning. The asm version does
> > not warn when the *.S is too small.
> > 
> >  Jocke
> 
> Snoopy dance <http://www.google.com/search?q=snoopy+dance> :-)

:) 

> 
> WRT one of your previous messages, there are two fdt commands: "fdt 
> print" does a full recursive print, "fdt list" only prints the given 
> level, it does not print subnodes recursively.

yes, I see now once I actually read the help messages :)

BTW, if you have anything to say/add to the CFG_OF_TREE discussion
I and WD had earlier, please do.

 Jocke

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot-Users] libfdt problem when loading device tree
  2007-12-13 16:34 ` Kumar Gala
  2007-12-13 16:39   ` Joakim Tjernlund
@ 2007-12-13 18:59   ` Jerry Van Baren
  2007-12-13 22:11     ` Joakim Tjernlund
  1 sibling, 1 reply; 11+ messages in thread
From: Jerry Van Baren @ 2007-12-13 18:59 UTC (permalink / raw)
  To: u-boot

Kumar Gala wrote:
> On Dec 13, 2007, at 10:24 AM, Joakim Tjernlund wrote:
> 
>> I get this when I try to boot my board:
>> ## Booting image at 00200000 ...
>>   Image Name:   oskernel02a:p1a:99
>>   Created:      2007-12-13   9:59:43 UTC
>>   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
>>   Data Size:    1238992 Bytes =  1.2 MB
>>   Load Address: 00000000
>>   Entry Point:  00000000
>>   Verifying Checksum ... OK
>>   Uncompressing Kernel Image ... OK
>>   Loading Device Tree to 007fe000, end 007ff6f9 ... OK
>> WARNING: could not create /bd_t FDT_ERR_NOSPACE.
>> fdt_bd_t: FDT_ERR_NOSPACE
>> ERROR: /bd_t node create failed - must RESET the board to recover.
>> Resetting the board.
>>
>> I have tried different combinations of -S and -R options to dtc,
>> but nothing helps:
>> dtc -S 2000 -R 2000 -f of-tmcu.dts -O asm > of-tmcu.S
>>
>> If I remove the chosen node from my dts file, I get the error when
>> libfdt tries to create a chosen node.
>>
>> I am using dtc 1.0.0 and u-boot 1.3.1
> 
> How big is the .dtb if you don't specify -S?  The -R should only be  
> something like 8.
> 
> - k

More trivia for Jocke:

Note that there now also is a "-s nnnn" option (IIRC and if you have the 
latest dtc) which *adds* nnnn bytes to the blob rather than making the 
blob a fixed size nnnn (IIRC, Kumar created it).  Depending on your 
circumstances and preferences, this could be a better choice than -S.

Having the /chosen node already in the blob has severe limitations. 
Improving that is in my "todo" list: "...a suggestion by Scott Wood to 
make the /chosen handling finer grained: if the /chosen node exists, 
currently u-boot-fdt bails out. A better methodology is to not overwrite 
pre-existing properties on a per-property basis, so if /chosen exists 
but a necessary /chosen/property doesn't, it gets created."

IOW, if you create a blob with /chosen, you must have *everything* 
necessary in it because it won't be fixed up at runtime.

Tip: if you do "fdt chosen" and then "fdt print /chosen", it will tell 
you exactly what your board fixup code put in the /chosen node.

FWIIW, I created a patch to implement Scott's suggestion, but it needs 
to be resurrected, rebased, and tested.

gvb

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot-Users] libfdt problem when loading device tree
  2007-12-13 18:59   ` Jerry Van Baren
@ 2007-12-13 22:11     ` Joakim Tjernlund
  0 siblings, 0 replies; 11+ messages in thread
From: Joakim Tjernlund @ 2007-12-13 22:11 UTC (permalink / raw)
  To: u-boot

 

> -----Original Message-----
> From: Jerry Van Baren [mailto:gerald.vanbaren at ge.com] 
> Sent: den 13 december 2007 20:00
> To: Kumar Gala
> Cc: joakim.tjernlund at transmode.se; U-BOOT
> Subject: Re: [U-Boot-Users] libfdt problem when loading device tree
> 
> Kumar Gala wrote:
> > On Dec 13, 2007, at 10:24 AM, Joakim Tjernlund wrote:
> > 
> >> I get this when I try to boot my board:
> >> ## Booting image at 00200000 ...
> >>   Image Name:   oskernel02a:p1a:99
> >>   Created:      2007-12-13   9:59:43 UTC
> >>   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
> >>   Data Size:    1238992 Bytes =  1.2 MB
> >>   Load Address: 00000000
> >>   Entry Point:  00000000
> >>   Verifying Checksum ... OK
> >>   Uncompressing Kernel Image ... OK
> >>   Loading Device Tree to 007fe000, end 007ff6f9 ... OK
> >> WARNING: could not create /bd_t FDT_ERR_NOSPACE.
> >> fdt_bd_t: FDT_ERR_NOSPACE
> >> ERROR: /bd_t node create failed - must RESET the board to recover.
> >> Resetting the board.
> >>
> >> I have tried different combinations of -S and -R options to dtc,
> >> but nothing helps:
> >> dtc -S 2000 -R 2000 -f of-tmcu.dts -O asm > of-tmcu.S
> >>
> >> If I remove the chosen node from my dts file, I get the error when
> >> libfdt tries to create a chosen node.
> >>
> >> I am using dtc 1.0.0 and u-boot 1.3.1
> > 
> > How big is the .dtb if you don't specify -S?  The -R should 
> only be  
> > something like 8.
> > 
> > - k
> 
> More trivia for Jocke:

Thanks for telling me this

> 
> Note that there now also is a "-s nnnn" option (IIRC and if 
> you have the 
> latest dtc) which *adds* nnnn bytes to the blob rather than 
> making the 
> blob a fixed size nnnn (IIRC, Kumar created it).  Depending on your 
> circumstances and preferences, this could be a better choice than -S.

I was about to suggest this after my mishap but got distracted. It is
a useful option and I will probably use it in the future. Perhaps
you should error out if the space is too small when using -S? That
would have saved me some time.

> 
> Having the /chosen node already in the blob has severe limitations. 
> Improving that is in my "todo" list: "...a suggestion by 
> Scott Wood to 
> make the /chosen handling finer grained: if the /chosen node exists, 
> currently u-boot-fdt bails out. A better methodology is to 
> not overwrite 
> pre-existing properties on a per-property basis, so if /chosen exists 
> but a necessary /chosen/property doesn't, it gets created."
> 
> IOW, if you create a blob with /chosen, you must have *everything* 
> necessary in it because it won't be fixed up at runtime.

I don't need a chosen node in my dts, I just added it to get futher.
Maybe others do.

> 
> Tip: if you do "fdt chosen" and then "fdt print /chosen", it 
> will tell 
> you exactly what your board fixup code put in the /chosen node.

Will have a look tmw, still very behind on device tree stuff.

> 
> FWIIW, I created a patch to implement Scott's suggestion, but 
> it needs 
> to be resurrected, rebased, and tested.

Good luck and thanks again.

 Jocke

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2007-12-13 22:11 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-13 16:24 [U-Boot-Users] libfdt problem when loading device tree Joakim Tjernlund
2007-12-13 16:34 ` Kumar Gala
2007-12-13 16:39   ` Joakim Tjernlund
2007-12-13 18:59   ` Jerry Van Baren
2007-12-13 22:11     ` Joakim Tjernlund
2007-12-13 16:46 ` Jerry Van Baren
2007-12-13 17:00   ` Joakim Tjernlund
2007-12-13 17:07   ` Joakim Tjernlund
2007-12-13 17:16     ` Joakim Tjernlund
2007-12-13 18:03     ` Jerry Van Baren
2007-12-13 18:17       ` Joakim Tjernlund

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox