On 11/12/2010 08:24 AM, Dirk Brandewie wrote:
> 
> The second issue is being able to parse the section in the kernel image to 
> find 
> each of the blobs that have been concatenated together.  If the DTB size is 
> modulo 32 bytes I can use  blob = blob+be32_to_cpu(blob->totalsize) to find 
> the 
> next blob in the section and use that address directly to have fdt.c parse 
> the 
> blob.  Otherwise I would need to search for the signature of the next blob 
> somewhere past the end of the current blob which is knid of messy IMHO.
> 

Not if you know it is aligned mod <whatever> bytes, then you just do:

blob = ALIGN_UP(blob + be32_to_cpu(blob->totalsize), DTB_ALIGNMENT);

This, of course, makes it even more important that DTB_ALIGNMENT is a
common constant across the kernel build.  The nice part is that you can
just add:

        .balign DTB_ALIGNMENT

... into your generated .S files and all is good.

        -hpa

_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to