From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joakim Tjernlund Date: Thu, 13 Dec 2007 23:11:02 +0100 Subject: [U-Boot-Users] libfdt problem when loading device tree In-Reply-To: <47618125.5040401@ge.com> References: <1197563083.8607.19.camel@gentoo-jocke.transmode.se> <7295C709-91F2-4184-8C7F-9ED682B8232D@kernel.crashing.org> <47618125.5040401@ge.com> Message-ID: <008901c83dd5$0cdbd100$02ac10ac@Jocke> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de > -----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