of: Add support for linking device tree blobs into vmlinux
authorDirk Brandewie <dirk.brandewie@gmail.com>
Wed, 22 Dec 2010 19:57:26 +0000 (11:57 -0800)
committerGrant Likely <grant.likely@secretlab.ca>
Thu, 23 Dec 2010 21:43:00 +0000 (14:43 -0700)
commitaab94339cd85d726abeae78fc02351fc1910e6a4
tree25d434a1dec4f758a9938e621dc1516f7a788521
parentcfb13c5db08c90311a5defdde9a0328ee788cca5
of: Add support for linking device tree blobs into vmlinux

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: Dirk Brandewie <dirk.brandewie@gmail.com>
Acked-by: Michal Marek <mmarek@suse.cz>
[grant.likely@secretlab.ca: cleaned up whitespace inconsistencies]
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Documentation/kbuild/makefiles.txt
include/asm-generic/vmlinux.lds.h
scripts/Makefile.lib