Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 227707
b: refs/heads/master
c: aab9433
h: refs/heads/master
i:
  227705: 5d3d0b8
  227703: 1d58775
v: v3
  • Loading branch information
Dirk Brandewie authored and Grant Likely committed Dec 23, 2010
1 parent c7cbb4b commit e034764
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cfb13c5db08c90311a5defdde9a0328ee788cca5
refs/heads/master: aab94339cd85d726abeae78fc02351fc1910e6a4
15 changes: 15 additions & 0 deletions trunk/Documentation/kbuild/makefiles.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1136,6 +1136,21 @@ When kbuild executes, the following steps are followed (roughly):
resulting in the target file being recompiled for no
obvious reason.

dtc
Create flattend device tree blob object suitable for linking
into vmlinux. Device tree blobs linked into vmlinux are placed
in an init section in the image. Platform code *must* copy the
blob to non-init memory prior to calling unflatten_device_tree().

Example:
#arch/x86/platform/ce4100/Makefile
clean-files := *dtb.S

DTC_FLAGS := -p 1024
obj-y += foo.dtb.o

$(obj)/%.dtb: $(src)/%.dts
$(call cmd,dtc)

--- 6.7 Custom kbuild commands

Expand Down
13 changes: 11 additions & 2 deletions trunk/include/asm-generic/vmlinux.lds.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@
* Align to a 32 byte boundary equal to the
* alignment gcc 4.5 uses for a struct
*/
#define STRUCT_ALIGN() . = ALIGN(32)
#define STRUCT_ALIGNMENT 32
#define STRUCT_ALIGN() . = ALIGN(STRUCT_ALIGNMENT)

/* The actual configuration determine if the init/exit sections
* are handled as text/data or they can be discarded (which
Expand Down Expand Up @@ -146,6 +147,13 @@
#define TRACE_SYSCALLS()
#endif


#define KERNEL_DTB() \
STRUCT_ALIGN(); \
VMLINUX_SYMBOL(__dtb_start) = .; \
*(.dtb.init.rodata) \
VMLINUX_SYMBOL(__dtb_end) = .;

/* .data section */
#define DATA_DATA \
*(.data) \
Expand Down Expand Up @@ -468,7 +476,8 @@
MCOUNT_REC() \
DEV_DISCARD(init.rodata) \
CPU_DISCARD(init.rodata) \
MEM_DISCARD(init.rodata)
MEM_DISCARD(init.rodata) \
KERNEL_DTB()

#define INIT_TEXT \
*(.init.text) \
Expand Down
23 changes: 23 additions & 0 deletions trunk/scripts/Makefile.lib
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,29 @@ quiet_cmd_gzip = GZIP $@
cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) || \
(rm -f $@ ; false)

# DTC
# ---------------------------------------------------------------------------

# Generate an assembly file to wrap the output of the device tree compiler
quiet_cmd_dt_S_dtb= DTB $@
cmd_dt_S_dtb= \
( \
echo '\#include <asm-generic/vmlinux.lds.h>'; \
echo '.section .dtb.init.rodata,"a"'; \
echo '.balign STRUCT_ALIGNMENT'; \
echo '.global __dtb_$(*F)_begin'; \
echo '__dtb_$(*F)_begin:'; \
echo '.incbin "$<" '; \
echo '__dtb_$(*F)_end:'; \
echo '.global __dtb_$(*F)_end'; \
echo '.balign STRUCT_ALIGNMENT'; \
) > $@

$(obj)/%.dtb.S: $(obj)/%.dtb
$(call cmd,dt_S_dtb)

quiet_cmd_dtc = DTC $@
cmd_dtc = $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) $<

# Bzip2
# ---------------------------------------------------------------------------
Expand Down

0 comments on commit e034764

Please sign in to comment.