On Wed, 12 Jun 2013 21:12:39 +0200, Walter Goossens <waltergooss...@home.nl> wrote: > On 06/12/13 20:23, Grant Likely wrote: > > On Wed, Jun 12, 2013 at 6:33 PM, Collins, Rod > > <rod.coll...@saabsensis.com> wrote: > >> The blob is built into the zImage.initramfs.gz image which is put into > >> flash. The zImage.initramfs.gz is self copied from flash to RAM, then > >> uncompressed to the running area. I will dig into the location of the > >> blob in the image and report back. > > Thanks. If it is appended to the zImage wrapper, then things should be > > fine (this is the expected way to do when not passed in from the > > bootloader). If a *.dtb.o target has been used to embedded it into the > > kernel-proper (vmlinux) then you will have a problem. The *.dtb.S > > target puts the dtb data into the dtb.init.rodata section which gets > > discarded. > > > > g. > > Hi Grant, > > you're right that's exactly what nios2 is doing... > I guess we could modify the section where it gets loaded but that sounds > to me a bit like a hack... What is the best target to look at for a > clean, similar solution? Arm with CONFIG_ARM_APPENDED_DTB?
My first recommendation would be the way it is described in Documentation/arm/Booting and Documentation/devicetree/booting-without-of.txt, by which I mean passing the dtb into the kernel from the bootloader. This is the preferred approach on both PowerPC and ARM, but I do undertstand that doesn't work in all situations; such as if there is no bootloader. The second choice is to attach it to the kernel image as a post-processing step. On ARM that is enabled by CONFIG_ARM_APPENDED_DTB which makes it possible to merely dd the DTB onto the end of the kernel image. PowerPC uses a slighly different approach where a script takes care of linking the DTB into the bootwrapper. See the arch/powerpc/boot/wrapper script for details. Either way, I don't think it is a good architectural decision to link the dtb directly into the kernel proper because doing so precludes ever having a single kernel image bootable on multiple platforms. On an FPGA platform it is particularly useful not having to rebuild the kernel every time the FPGA design changes. g. _______________________________________________ devicetree-discuss mailing list devicetree-discuss@lists.ozlabs.org https://lists.ozlabs.org/listinfo/devicetree-discuss