• Dirk Brandewie's avatar
    of: Add support for linking device tree blobs into vmlinux · aab94339
    Dirk Brandewie authored
    This patch adds support for linking device tree blob(s) into
    vmlinux. Modifies asm-generic/vmlinux.lds.h to add linking
    .dtb sections into vmlinux. To maintain compatiblity with the of/fdt
    driver code platforms MUST copy the blob to a non-init memory location
    before the kernel frees the .init.* sections in the image.
    
    Modifies scripts/Makefile.lib to add a kbuild command to
    compile DTS files to device tree blobs and a rule to create objects to
    wrap the blobs for linking.
    
    STRUCT_ALIGNMENT is defined in vmlinux.lds.h for use in the rule to
    create wrapper objects for the dtb in Makefile.lib.  The
    STRUCT_ALIGN() macro in vmlinux.lds.h is modified to use the
    STRUCT_ALIGNMENT definition.
    
    The DTB's are placed on 32 byte boundries to allow parsing the blob
    with driver/of/fdt.c during early boot without having to copy the blob
    to get the structure alignment GCC expects.
    
    A DTB is linked in by adding the DTB object to the list of objects to
    be linked into vmlinux in the archtecture specific Makefile using
       obj-y += foo.dtb.o
    Signed-off-by: default avatarDirk Brandewie <dirk.brandewie@gmail.com>
    Acked-by: default avatarMichal Marek <mmarek@suse.cz>
    [grant.likely@secretlab.ca: cleaned up whitespace inconsistencies]
    Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
    aab94339
vmlinux.lds.h 22.8 KB