* [PATCH 0/4] V3 Add ability to link device blob(s) into vmlinux
@ 2010-12-22 19:57 dirk.brandewie
2010-12-22 19:57 ` [PATCH 1/4] of: Add support for linking device tree blobs " dirk.brandewie
` (3 more replies)
0 siblings, 4 replies; 15+ messages in thread
From: dirk.brandewie @ 2010-12-22 19:57 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree-discuss, linuxppc-dev, microblaze-uclinux, linux-arch,
mmarek, dirk.brandewie, linux-kbuild
From: Dirk Brandewie <dirk.brandewie@gmail.com>
This patch set adds the ability to link device tree blobs into
vmlinux.
Patch 1 implements the changes to include/asm-generic/vmlinux.lds.h and
adds a generic rule for generating DTB objects to be linked vmlinux.
Patch 2 implements linking a DTB into an x86 image.
Patch 3-4 move {powerpc,microblaze}/boot/Makefile to use the dtc rule
in patch 1.
This patch set has been tested on x86.
Powerpc and Microblaze have been compile tested with and without patch
3 and 4 applied.
Changes from V1:
Documentation added for dtc command in Makefile.lib to
Documentation/kbuild/makefiles.txt
Separate DTB_ALIGNMENT define removed.
FORCE removed from dtc rule.
Removed hardcoded path to dts files from dtc command.
Moved %.dtb: %.dts rule to arch specific makefiles.
Patch for adding kernel command line option to pass in dtb_compat
string dropped from this set will be submitted seperately.
Changes from V2:
Rule to create assembly wrapper for blob changed to use Sam Ravnborgs
suggested implementation.
Rules in architecture specific Makefiles changed to use the cmd
function instead of the if_changed function.
Changes from V3:
Cosmetic fix of DTC quiet command
Dirk Brandewie (4):
of: Add support for linking device tree blobs into vmlinux
x86/of: Add building device tree blob(s) into image.
of/powerpc: Use generic rule to build dtb's
microblaze/of: Use generic rule to build dtb's
Documentation/kbuild/makefiles.txt | 15 +++++++++++++++
arch/microblaze/boot/Makefile | 12 +++---------
arch/powerpc/boot/Makefile | 8 +++-----
arch/x86/platform/ce4100/Makefile | 10 ++++++++++
include/asm-generic/vmlinux.lds.h | 13 +++++++++++--
scripts/Makefile.lib | 23 +++++++++++++++++++++++
6 files changed, 65 insertions(+), 16 deletions(-)
--
1.7.2.3
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/4] of: Add support for linking device tree blobs into vmlinux
2010-12-22 19:57 [PATCH 0/4] V3 Add ability to link device blob(s) into vmlinux dirk.brandewie
@ 2010-12-22 19:57 ` dirk.brandewie
2010-12-22 22:36 ` Michal Marek
2010-12-23 21:42 ` Grant Likely
2010-12-22 19:57 ` [PATCH 2/4] x86/of: Add building device tree blob(s) into image dirk.brandewie
` (2 subsequent siblings)
3 siblings, 2 replies; 15+ messages in thread
From: dirk.brandewie @ 2010-12-22 19:57 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree-discuss, linuxppc-dev, microblaze-uclinux, linux-arch,
mmarek, dirk.brandewie, linux-kbuild
From: Dirk Brandewie <dirk.brandewie@gmail.com>
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>
---
Documentation/kbuild/makefiles.txt | 15 +++++++++++++++
include/asm-generic/vmlinux.lds.h | 13 +++++++++++--
scripts/Makefile.lib | 23 +++++++++++++++++++++++
3 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
index 0ef00bd..86e3cd0 100644
--- a/Documentation/kbuild/makefiles.txt
+++ b/Documentation/kbuild/makefiles.txt
@@ -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
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index bd69d79..05cbad0 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -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
@@ -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) \
@@ -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) \
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 4c72c11..7df8eb5 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -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
# ---------------------------------------------------------------------------
--
1.7.2.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] of: Add support for linking device tree blobs into vmlinux
2010-12-22 19:57 ` [PATCH 1/4] of: Add support for linking device tree blobs " dirk.brandewie
@ 2010-12-22 22:36 ` Michal Marek
2010-12-23 6:14 ` Geert Uytterhoeven
2010-12-23 21:42 ` Grant Likely
1 sibling, 1 reply; 15+ messages in thread
From: Michal Marek @ 2010-12-22 22:36 UTC (permalink / raw)
To: dirk.brandewie
Cc: linux-kernel, devicetree-discuss, linuxppc-dev,
microblaze-uclinux, linux-arch, linux-kbuild
On 22.12.2010 20:57, dirk.brandewie@gmail.com wrote:
> From: Dirk Brandewie<dirk.brandewie@gmail.com>
>
> 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>
Hi,
you can add
Acked-by: Michal Marek <mmarek@suse.cz>
but I thing this series should go through the tip tree, as your primary
target seems to be x86 and patch 2/4 depends on the ce4100 code that is
only in tip.
Michal
> ---
> Documentation/kbuild/makefiles.txt | 15 +++++++++++++++
> include/asm-generic/vmlinux.lds.h | 13 +++++++++++--
> scripts/Makefile.lib | 23 +++++++++++++++++++++++
> 3 files changed, 49 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
> index 0ef00bd..86e3cd0 100644
> --- a/Documentation/kbuild/makefiles.txt
> +++ b/Documentation/kbuild/makefiles.txt
> @@ -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
>
> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> index bd69d79..05cbad0 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -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
> @@ -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) \
> @@ -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) \
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index 4c72c11..7df8eb5 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -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
> # ---------------------------------------------------------------------------
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] of: Add support for linking device tree blobs into vmlinux
2010-12-22 22:36 ` Michal Marek
@ 2010-12-23 6:14 ` Geert Uytterhoeven
2010-12-23 21:44 ` Grant Likely
0 siblings, 1 reply; 15+ messages in thread
From: Geert Uytterhoeven @ 2010-12-23 6:14 UTC (permalink / raw)
To: Michal Marek
Cc: dirk.brandewie, linux-kernel, devicetree-discuss, linuxppc-dev,
microblaze-uclinux, linux-arch, linux-kbuild
2010/12/22 Michal Marek <mmarek@suse.cz>:
> On 22.12.2010 20:57, dirk.brandewie@gmail.com wrote:
>>
>> From: Dirk Brandewie<dirk.brandewie@gmail.com>
>>
>> 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>
>
> Hi,
>
> you can add
> Acked-by: Michal Marek <mmarek@suse.cz>
> but I thing this series should go through the tip tree, as your primary
> target seems to be x86 and patch 2/4 depends on the ce4100 code that is only
> in tip.
If the two lines
+# device tree blob
+obj-$(CONFIG_X86_INTEL_CE) += ce4100.dtb.o
are removed, patch 2/4 no longer depends on the ce4100 code.
The summary and description for that patch don't mention anything
about ce4100 anyway.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] of: Add support for linking device tree blobs into vmlinux
2010-12-23 6:14 ` Geert Uytterhoeven
@ 2010-12-23 21:44 ` Grant Likely
0 siblings, 0 replies; 15+ messages in thread
From: Grant Likely @ 2010-12-23 21:44 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Michal Marek, linux-arch, linux-kbuild, microblaze-uclinux,
devicetree-discuss, linux-kernel, dirk.brandewie, linuxppc-dev
On Thu, Dec 23, 2010 at 07:14:20AM +0100, Geert Uytterhoeven wrote:
> 2010/12/22 Michal Marek <mmarek@suse.cz>:
> > On 22.12.2010 20:57, dirk.brandewie@gmail.com wrote:
> >>
> >> From: Dirk Brandewie<dirk.brandewie@gmail.com>
> >>
> >> 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>
> >
> > Hi,
> >
> > you can add
> > Acked-by: Michal Marek <mmarek@suse.cz>
> > but I thing this series should go through the tip tree, as your primary
> > target seems to be x86 and patch 2/4 depends on the ce4100 code that is only
> > in tip.
>
> If the two lines
>
> +# device tree blob
> +obj-$(CONFIG_X86_INTEL_CE) += ce4100.dtb.o
>
> are removed, patch 2/4 no longer depends on the ce4100 code.
> The summary and description for that patch don't mention anything
> about ce4100 anyway.
I'd like to take this through the dt tree. I'll drop the ce4100 hunk
when I merge it.
g.
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] of: Add support for linking device tree blobs into vmlinux
2010-12-22 19:57 ` [PATCH 1/4] of: Add support for linking device tree blobs " dirk.brandewie
2010-12-22 22:36 ` Michal Marek
@ 2010-12-23 21:42 ` Grant Likely
1 sibling, 0 replies; 15+ messages in thread
From: Grant Likely @ 2010-12-23 21:42 UTC (permalink / raw)
To: dirk.brandewie
Cc: linux-kernel, linux-arch, mmarek, linux-kbuild,
microblaze-uclinux, devicetree-discuss, linuxppc-dev
On Wed, Dec 22, 2010 at 11:57:26AM -0800, dirk.brandewie@gmail.com wrote:
> From: Dirk Brandewie <dirk.brandewie@gmail.com>
>
> 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>
merged, thanks.
g.
> ---
> Documentation/kbuild/makefiles.txt | 15 +++++++++++++++
> include/asm-generic/vmlinux.lds.h | 13 +++++++++++--
> scripts/Makefile.lib | 23 +++++++++++++++++++++++
> 3 files changed, 49 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
> index 0ef00bd..86e3cd0 100644
> --- a/Documentation/kbuild/makefiles.txt
> +++ b/Documentation/kbuild/makefiles.txt
> @@ -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
>
> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> index bd69d79..05cbad0 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -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
> @@ -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) \
> @@ -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) \
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index 4c72c11..7df8eb5 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -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
> # ---------------------------------------------------------------------------
> --
> 1.7.2.3
>
> _______________________________________________
> devicetree-discuss mailing list
> devicetree-discuss@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/devicetree-discuss
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 2/4] x86/of: Add building device tree blob(s) into image.
2010-12-22 19:57 [PATCH 0/4] V3 Add ability to link device blob(s) into vmlinux dirk.brandewie
2010-12-22 19:57 ` [PATCH 1/4] of: Add support for linking device tree blobs " dirk.brandewie
@ 2010-12-22 19:57 ` dirk.brandewie
2010-12-23 21:58 ` Grant Likely
2010-12-22 19:57 ` [PATCH 3/4] of/powerpc: Use generic rule to build dtb's dirk.brandewie
2010-12-22 19:57 ` [PATCH 4/4] microblaze/of: " dirk.brandewie
3 siblings, 1 reply; 15+ messages in thread
From: dirk.brandewie @ 2010-12-22 19:57 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree-discuss, linuxppc-dev, microblaze-uclinux, linux-arch,
mmarek, dirk.brandewie, linux-kbuild
From: Dirk Brandewie <dirk.brandewie@gmail.com>
This patch adds linking device tree blob into vmlinux. DTB's are
added by adding the blob object name to list of objects to be linked
into the image.
Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
---
arch/x86/platform/ce4100/Makefile | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/arch/x86/platform/ce4100/Makefile b/arch/x86/platform/ce4100/Makefile
index 91fc929..e5f3b7b 100644
--- a/arch/x86/platform/ce4100/Makefile
+++ b/arch/x86/platform/ce4100/Makefile
@@ -1 +1,11 @@
obj-$(CONFIG_X86_INTEL_CE) += ce4100.o
+clean-files := *dtb.S
+
+ifdef CONFIG_X86_OF
+###
+# device tree blob
+obj-$(CONFIG_X86_INTEL_CE) += ce4100.dtb.o
+
+$(obj)/%.dtb: $(src)/%.dts
+ $(call cmd,dtc)
+endif
--
1.7.2.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 2/4] x86/of: Add building device tree blob(s) into image.
2010-12-22 19:57 ` [PATCH 2/4] x86/of: Add building device tree blob(s) into image dirk.brandewie
@ 2010-12-23 21:58 ` Grant Likely
0 siblings, 0 replies; 15+ messages in thread
From: Grant Likely @ 2010-12-23 21:58 UTC (permalink / raw)
To: dirk.brandewie
Cc: linux-kernel, devicetree-discuss, linuxppc-dev,
microblaze-uclinux, linux-arch, mmarek, linux-kbuild
On Wed, Dec 22, 2010 at 11:57:27AM -0800, dirk.brandewie@gmail.com wrote:
> From: Dirk Brandewie <dirk.brandewie@gmail.com>
>
> This patch adds linking device tree blob into vmlinux. DTB's are
> added by adding the blob object name to list of objects to be linked
> into the image.
>
> Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
> ---
> arch/x86/platform/ce4100/Makefile | 10 ++++++++++
> 1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/platform/ce4100/Makefile b/arch/x86/platform/ce4100/Makefile
> index 91fc929..e5f3b7b 100644
> --- a/arch/x86/platform/ce4100/Makefile
> +++ b/arch/x86/platform/ce4100/Makefile
> @@ -1 +1,11 @@
> obj-$(CONFIG_X86_INTEL_CE) += ce4100.o
> +clean-files := *dtb.S
> +
> +ifdef CONFIG_X86_OF
> +###
> +# device tree blob
> +obj-$(CONFIG_X86_INTEL_CE) += ce4100.dtb.o
> +
> +$(obj)/%.dtb: $(src)/%.dts
> + $(call cmd,dtc)
> +endif
Skipped for now; will pick up after ce4100 is in mainline since this
is a pretty low-risk change.
g.
> --
> 1.7.2.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 3/4] of/powerpc: Use generic rule to build dtb's
2010-12-22 19:57 [PATCH 0/4] V3 Add ability to link device blob(s) into vmlinux dirk.brandewie
2010-12-22 19:57 ` [PATCH 1/4] of: Add support for linking device tree blobs " dirk.brandewie
2010-12-22 19:57 ` [PATCH 2/4] x86/of: Add building device tree blob(s) into image dirk.brandewie
@ 2010-12-22 19:57 ` dirk.brandewie
2010-12-23 22:13 ` Grant Likely
2010-12-22 19:57 ` [PATCH 4/4] microblaze/of: " dirk.brandewie
3 siblings, 1 reply; 15+ messages in thread
From: dirk.brandewie @ 2010-12-22 19:57 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree-discuss, linuxppc-dev, microblaze-uclinux, linux-arch,
mmarek, dirk.brandewie, linux-kbuild
From: Dirk Brandewie <dirk.brandewie@gmail.com>
Modify arch/powerpc/boot/Makefile to use dtc command in
scripts/Makefile.lib
Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
---
arch/powerpc/boot/Makefile | 8 +++-----
1 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index fae8192..96deec6 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -35,7 +35,7 @@ endif
BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj)
-DTS_FLAGS ?= -p 1024
+DTC_FLAGS ?= -p 1024
$(obj)/4xx.o: BOOTCFLAGS += -mcpu=405
$(obj)/ebony.o: BOOTCFLAGS += -mcpu=405
@@ -332,10 +332,8 @@ $(obj)/treeImage.%: vmlinux $(obj)/%.dtb $(wrapperbits)
$(call if_changed,wrap,treeboot-$*,,$(obj)/$*.dtb)
# Rule to build device tree blobs
-DTC = $(objtree)/scripts/dtc/dtc
-
-$(obj)/%.dtb: $(dtstree)/%.dts
- $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 $(DTS_FLAGS) $(dtstree)/$*.dts
+$(obj)/%.dtb: $(src)/dts/%.dts
+ $(call cmd,dtc)
# If there isn't a platform selected then just strip the vmlinux.
ifeq (,$(image-y))
--
1.7.2.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 3/4] of/powerpc: Use generic rule to build dtb's
2010-12-22 19:57 ` [PATCH 3/4] of/powerpc: Use generic rule to build dtb's dirk.brandewie
@ 2010-12-23 22:13 ` Grant Likely
0 siblings, 0 replies; 15+ messages in thread
From: Grant Likely @ 2010-12-23 22:13 UTC (permalink / raw)
To: dirk.brandewie
Cc: linux-kernel, devicetree-discuss, linuxppc-dev,
microblaze-uclinux, linux-arch, mmarek, linux-kbuild
On Wed, Dec 22, 2010 at 11:57:28AM -0800, dirk.brandewie@gmail.com wrote:
> From: Dirk Brandewie <dirk.brandewie@gmail.com>
>
> Modify arch/powerpc/boot/Makefile to use dtc command in
> scripts/Makefile.lib
>
> Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
applied, thanks
g.
> ---
> arch/powerpc/boot/Makefile | 8 +++-----
> 1 files changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index fae8192..96deec6 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -35,7 +35,7 @@ endif
>
> BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj)
>
> -DTS_FLAGS ?= -p 1024
> +DTC_FLAGS ?= -p 1024
>
> $(obj)/4xx.o: BOOTCFLAGS += -mcpu=405
> $(obj)/ebony.o: BOOTCFLAGS += -mcpu=405
> @@ -332,10 +332,8 @@ $(obj)/treeImage.%: vmlinux $(obj)/%.dtb $(wrapperbits)
> $(call if_changed,wrap,treeboot-$*,,$(obj)/$*.dtb)
>
> # Rule to build device tree blobs
> -DTC = $(objtree)/scripts/dtc/dtc
> -
> -$(obj)/%.dtb: $(dtstree)/%.dts
> - $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 $(DTS_FLAGS) $(dtstree)/$*.dts
> +$(obj)/%.dtb: $(src)/dts/%.dts
> + $(call cmd,dtc)
>
> # If there isn't a platform selected then just strip the vmlinux.
> ifeq (,$(image-y))
> --
> 1.7.2.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 4/4] microblaze/of: Use generic rule to build dtb's
2010-12-22 19:57 [PATCH 0/4] V3 Add ability to link device blob(s) into vmlinux dirk.brandewie
` (2 preceding siblings ...)
2010-12-22 19:57 ` [PATCH 3/4] of/powerpc: Use generic rule to build dtb's dirk.brandewie
@ 2010-12-22 19:57 ` dirk.brandewie
2010-12-23 22:13 ` Grant Likely
3 siblings, 1 reply; 15+ messages in thread
From: dirk.brandewie @ 2010-12-22 19:57 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree-discuss, linuxppc-dev, microblaze-uclinux, linux-arch,
mmarek, dirk.brandewie, linux-kbuild
From: Dirk Brandewie <dirk.brandewie@gmail.com>
Modify arch/powerpc/boot/Makefile to use dtc command in
scripts/Makefile.lib
Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
---
arch/microblaze/boot/Makefile | 12 +++---------
1 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile
index be01d78..4c4e58e 100644
--- a/arch/microblaze/boot/Makefile
+++ b/arch/microblaze/boot/Makefile
@@ -10,9 +10,6 @@ targets := linux.bin linux.bin.gz simpleImage.%
OBJCOPYFLAGS := -O binary
-# Where the DTS files live
-dtstree := $(srctree)/$(src)/dts
-
# Ensure system.dtb exists
$(obj)/linked_dtb.o: $(obj)/system.dtb
@@ -51,14 +48,11 @@ $(obj)/simpleImage.%: vmlinux FORCE
$(call if_changed,strip)
@echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
-# Rule to build device tree blobs
-DTC = $(objtree)/scripts/dtc/dtc
# Rule to build device tree blobs
-quiet_cmd_dtc = DTC $@
- cmd_dtc = $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 -p 1024 $(dtstree)/$*.dts
+DTC_FLAGS := -p 1024
-$(obj)/%.dtb: $(dtstree)/%.dts FORCE
- $(call if_changed,dtc)
+$(obj)/%.dtb: $(src)/dts/%.dts FORCE
+ $(call cmd,dtc)
clean-files += *.dtb simpleImage.*.unstrip linux.bin.ub
--
1.7.2.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 4/4] microblaze/of: Use generic rule to build dtb's
2010-12-22 19:57 ` [PATCH 4/4] microblaze/of: " dirk.brandewie
@ 2010-12-23 22:13 ` Grant Likely
0 siblings, 0 replies; 15+ messages in thread
From: Grant Likely @ 2010-12-23 22:13 UTC (permalink / raw)
To: dirk.brandewie
Cc: linux-kernel, devicetree-discuss, linuxppc-dev,
microblaze-uclinux, linux-arch, mmarek, linux-kbuild
On Wed, Dec 22, 2010 at 11:57:29AM -0800, dirk.brandewie@gmail.com wrote:
> From: Dirk Brandewie <dirk.brandewie@gmail.com>
>
> Modify arch/powerpc/boot/Makefile to use dtc command in
> scripts/Makefile.lib
>
> Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
applied, thanks
g.
> ---
> arch/microblaze/boot/Makefile | 12 +++---------
> 1 files changed, 3 insertions(+), 9 deletions(-)
>
> diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile
> index be01d78..4c4e58e 100644
> --- a/arch/microblaze/boot/Makefile
> +++ b/arch/microblaze/boot/Makefile
> @@ -10,9 +10,6 @@ targets := linux.bin linux.bin.gz simpleImage.%
>
> OBJCOPYFLAGS := -O binary
>
> -# Where the DTS files live
> -dtstree := $(srctree)/$(src)/dts
> -
> # Ensure system.dtb exists
> $(obj)/linked_dtb.o: $(obj)/system.dtb
>
> @@ -51,14 +48,11 @@ $(obj)/simpleImage.%: vmlinux FORCE
> $(call if_changed,strip)
> @echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
>
> -# Rule to build device tree blobs
> -DTC = $(objtree)/scripts/dtc/dtc
>
> # Rule to build device tree blobs
> -quiet_cmd_dtc = DTC $@
> - cmd_dtc = $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 -p 1024 $(dtstree)/$*.dts
> +DTC_FLAGS := -p 1024
>
> -$(obj)/%.dtb: $(dtstree)/%.dts FORCE
> - $(call if_changed,dtc)
> +$(obj)/%.dtb: $(src)/dts/%.dts FORCE
> + $(call cmd,dtc)
>
> clean-files += *.dtb simpleImage.*.unstrip linux.bin.ub
> --
> 1.7.2.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 0/4] V3 Add ability to link device blob(s) into vmlinux
@ 2010-12-08 15:01 dirk.brandewie
2010-12-08 15:01 ` [PATCH 4/4] microblaze/of: Use generic rule to build dtb's dirk.brandewie
0 siblings, 1 reply; 15+ messages in thread
From: dirk.brandewie @ 2010-12-08 15:01 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree-discuss, sodaville, linuxppc-dev, microblaze-uclinux,
linux-arch, mmarek, Dirk Brandewie
From: Dirk Brandewie <dirk.brandewie@gmail.com>
This patch set adds the ability to link device tree blobs into
vmlinux.
Patch 1 implements the changes to include/asm-generic/vmlinux.lds.h and
adds a generic rule for generating DTB objects to be linked vmlinux.
Patch 2 implements linking a DTB into an x86 image.
Patch 3-4 move {powerpc,microblaze}/boot/Makefile to use the dtc rule
in patch 1.
This patch set has been tested on x86.
Powerpc and Microblaze have been compile tested with and without patch
3 and 4 applied.
Changes from V1:
Documentation added for dtc command in Makefile.lib to
Documentation/kbuild/makefiles.txt
Separate DTB_ALIGNMENT define removed.
FORCE removed from dtc rule.
Removed hardcoded path to dts files from dtc command.
Moved %.dtb: %.dts rule to arch specific makefiles.
Patch for adding kernel command line option to pass in dtb_compat
string dropped from this set will be submitted seperately.
Changes from V2:
Rule to create assembly wrapper for blob changed to use Sam Ravnborgs
suggested implementation.
Rules in architecture specific Makefiles changed to use the cmd
function instead of the if_changed function.
Dirk Brandewie (4):
of: Add support for linking device tree blobs into vmlinux
x86/of: Add building device tree blob(s) into image.
of/powerpc: Use generic rule to build dtb's
microblaze/of: Use generic rule to build dtb's
Documentation/kbuild/makefiles.txt | 15 +++++++++++++++
arch/microblaze/boot/Makefile | 12 +++---------
arch/powerpc/boot/Makefile | 8 +++-----
arch/x86/platform/ce4100/Makefile | 10 ++++++++++
include/asm-generic/vmlinux.lds.h | 13 +++++++++++--
scripts/Makefile.lib | 23 +++++++++++++++++++++++
6 files changed, 65 insertions(+), 16 deletions(-)
--
1.7.2.3
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 4/4] microblaze/of: Use generic rule to build dtb's
2010-12-08 15:01 [PATCH 0/4] V3 Add ability to link device blob(s) into vmlinux dirk.brandewie
@ 2010-12-08 15:01 ` dirk.brandewie
0 siblings, 0 replies; 15+ messages in thread
From: dirk.brandewie @ 2010-12-08 15:01 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree-discuss, sodaville, linuxppc-dev, microblaze-uclinux,
linux-arch, mmarek, Dirk Brandewie
From: Dirk Brandewie <dirk.brandewie@gmail.com>
Modify arch/powerpc/boot/Makefile to use dtc command in
scripts/Makefile.lib
Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
---
arch/microblaze/boot/Makefile | 12 +++---------
1 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile
index be01d78..4c4e58e 100644
--- a/arch/microblaze/boot/Makefile
+++ b/arch/microblaze/boot/Makefile
@@ -10,9 +10,6 @@ targets := linux.bin linux.bin.gz simpleImage.%
OBJCOPYFLAGS := -O binary
-# Where the DTS files live
-dtstree := $(srctree)/$(src)/dts
-
# Ensure system.dtb exists
$(obj)/linked_dtb.o: $(obj)/system.dtb
@@ -51,14 +48,11 @@ $(obj)/simpleImage.%: vmlinux FORCE
$(call if_changed,strip)
@echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
-# Rule to build device tree blobs
-DTC = $(objtree)/scripts/dtc/dtc
# Rule to build device tree blobs
-quiet_cmd_dtc = DTC $@
- cmd_dtc = $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 -p 1024 $(dtstree)/$*.dts
+DTC_FLAGS := -p 1024
-$(obj)/%.dtb: $(dtstree)/%.dts FORCE
- $(call if_changed,dtc)
+$(obj)/%.dtb: $(src)/dts/%.dts FORCE
+ $(call cmd,dtc)
clean-files += *.dtb simpleImage.*.unstrip linux.bin.ub
--
1.7.2.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 0/4] V2 Add ability to link device blob(s) into vmlinux
@ 2010-12-06 17:35 dirk.brandewie
2010-12-06 17:36 ` [PATCH 4/4] microblaze/of: Use generic rule to build dtb's dirk.brandewie
0 siblings, 1 reply; 15+ messages in thread
From: dirk.brandewie @ 2010-12-06 17:35 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree-discuss, sodaville, linuxppc-dev, microblaze-uclinux,
linux-arch, mmarek, Dirk Brandewie
From: Dirk Brandewie <dirk.brandewie@gmail.com>
This patch set adds the ability to link device tree blobs into
vmlinux.
Patch 1 implements the changes to include/asm-generic/vmlinux.lds.h and
adds a generic rule for generating DTB objects to be linked vmlinux.
Patch 2 implements linking a DTB into an x86 image.
Patch 3-4 move {powerpc,microblaze}/boot/Makefile to use the dtc rule
in patch 1.
This patch set has been tested on x86.
Powerpc and Microblaze have been compile tested with and without patch
3 and 4 applied.
Changes from V1:
Documentation added for dtc command in Makefile.lib to
Documentation/kbuild/makefiles.txt
Separate DTB_ALIGNMENT define removed.
FORCE removed from dtc rule.
Removed hardcoded path to dts files from dtc command.
Moved %.dtb: %.dts rule to arch specific makefiles.
Patch for adding kernel command line option to pass in dtb_compat
string dropped from this set will be submitted seperately.
Dirk Brandewie (4):
of: Add support for linking device tree blobs into vmlinux
x86/of: Add building device tree blob(s) into image.
of/powerpc: Use generic rule to build dtb's
microblaze/of: Use generic rule to build dtb's
Documentation/kbuild/makefiles.txt | 15 +++++++++++++++
arch/microblaze/boot/Makefile | 10 ++--------
arch/powerpc/boot/Makefile | 8 +++-----
arch/x86/platform/ce4100/Makefile | 10 ++++++++++
include/asm-generic/vmlinux.lds.h | 15 ++++++++++++---
scripts/Makefile.lib | 21 ++++++++++++++++++++-
6 files changed, 62 insertions(+), 17 deletions(-)
--
1.7.2.3
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 4/4] microblaze/of: Use generic rule to build dtb's
2010-12-06 17:35 [PATCH 0/4] V2 Add ability to link device blob(s) into vmlinux dirk.brandewie
@ 2010-12-06 17:36 ` dirk.brandewie
0 siblings, 0 replies; 15+ messages in thread
From: dirk.brandewie @ 2010-12-06 17:36 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree-discuss, sodaville, linuxppc-dev, microblaze-uclinux,
linux-arch, mmarek, Dirk Brandewie
From: Dirk Brandewie <dirk.brandewie@gmail.com>
Modify arch/powerpc/boot/Makefile to use dtc command in
scripts/Makefile.lib
Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
---
arch/microblaze/boot/Makefile | 10 ++--------
1 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile
index be01d78..52430e5 100644
--- a/arch/microblaze/boot/Makefile
+++ b/arch/microblaze/boot/Makefile
@@ -10,9 +10,6 @@ targets := linux.bin linux.bin.gz simpleImage.%
OBJCOPYFLAGS := -O binary
-# Where the DTS files live
-dtstree := $(srctree)/$(src)/dts
-
# Ensure system.dtb exists
$(obj)/linked_dtb.o: $(obj)/system.dtb
@@ -51,14 +48,11 @@ $(obj)/simpleImage.%: vmlinux FORCE
$(call if_changed,strip)
@echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
-# Rule to build device tree blobs
-DTC = $(objtree)/scripts/dtc/dtc
# Rule to build device tree blobs
-quiet_cmd_dtc = DTC $@
- cmd_dtc = $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 -p 1024 $(dtstree)/$*.dts
+DTC_FLAGS := -p 1024
-$(obj)/%.dtb: $(dtstree)/%.dts FORCE
+$(obj)/%.dtb: $(src)/dts/%.dts FORCE
$(call if_changed,dtc)
clean-files += *.dtb simpleImage.*.unstrip linux.bin.ub
--
1.7.2.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 0/5] Add the ability to link device blobs into vmlinux
@ 2010-11-16 22:41 dirk.brandewie
2010-12-02 16:31 ` [PATCH 0/4] V2 Add ability to link device blob(s) " dirk.brandewie
0 siblings, 1 reply; 15+ messages in thread
From: dirk.brandewie @ 2010-11-16 22:41 UTC (permalink / raw)
To: devicetree-discuss
Cc: sodaville, arjan, dirk.brandewie, linuxppc-dev,
microblaze-uclinux, linux-arch, linux-kbuild, linux-kernel
From: Dirk Brandewie <dirk.brandewie@gmail.com>
This patch set adds the ability to link device tree blob(s)
directly into the vmlinux image and specify the blob to be used via a
kernel command line option.
Patch 1 implements the changes to include/asm-generic/vmlinux.lds.h,
add generic rules for building and linking the DTB's into vmlinux.
Patch 2 adds the command line option, the functions for the
platform code to retrieve the value passed in and locate the matching
blob in the image. This patch has been tested on x86.
Patch 3-5 show using the generic dts->dtb rule in x86, microblaze and
powerpc. The microblaze and powerpc patches have only been compile
tested.
Dirk Brandewie (5):
of: Add support for linking device tree blobs into vmlinux
of/fdt: add kernel command line option for dtb_compat string
x86/of: Add building device tree blob(s) into image.
of/powerpc: Move build to use generic dts->dtb rule
of/microblaze: Move build to use generic dts->dtb rule
Documentation/kernel-parameters.txt | 7 +++++
arch/microblaze/boot/Makefile | 13 +--------
arch/powerpc/boot/Makefile | 7 -----
arch/x86/Kconfig | 6 +++-
arch/x86/kernel/Makefile | 6 ++++
arch/x86/kernel/dts/Kconfig | 7 +++++
drivers/of/fdt.c | 52 +++++++++++++++++++++++++++++++++++
include/asm-generic/vmlinux.lds.h | 19 +++++++++++-
include/linux/of_fdt.h | 4 +++
scripts/Makefile.lib | 20 +++++++++++++
10 files changed, 119 insertions(+), 22 deletions(-)
create mode 100644 arch/x86/kernel/dts/Kconfig
--
1.7.2.3
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 0/4] V2 Add ability to link device blob(s) into vmlinux
2010-11-16 22:41 [PATCH 0/5] Add the ability to link device blobs into vmlinux dirk.brandewie
@ 2010-12-02 16:31 ` dirk.brandewie
2010-12-02 16:31 ` [PATCH 4/4] microblaze/of: Use generic rule to build dtb's dirk.brandewie
0 siblings, 1 reply; 15+ messages in thread
From: dirk.brandewie @ 2010-12-02 16:31 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree-discuss, sodaville, linuxppc-dev, microblaze-uclinux,
linux-arch, mmarek, Dirk Brandewie
From: Dirk Brandewie <dirk.brandewie@gmail.com>
Resending using the correct To: address sorry for the spam on the CC: lists
This patch set adds the ability to link device tree blobs into
vmlinux.
Patch 1 implements the changes to include/asm-generic/vmlinux.lds.h and
adds a generic rule for generating DTB objects to be linked vmlinux.
Patch 2 implements linking a DTB into an x86 image.
Patch 3-4 move {powerpc,microblaze}/boot/Makefile to use the dtc rule
in patch 1.
This patch set has been tested on x86.
Powerpc and Microblaze have been compile tested with and without patch
3 and 4 applied.
Changes from V1:
Documentation added for dtc command in Makefile.lib to
Documentation/kbuild/makefiles.txt
Separate DTB_ALIGNMENT define removed.
FORCE removed from dtc rule.
Removed hardcoded path to dts files from dtc command.
Moved %.dtb: %.dts rule to arch specific makefiles.
Patch for adding kernel command line option to pass in dtb_compat
string dropped from this set will be submitted seperately.
Dirk Brandewie (4):
of: Add support for linking device tree blobs into vmlinux
x86/of: Add building device tree blob(s) into image.
of/powerpc: Use generic rule to build dtb's
microblaze/of: Use generic rule to build dtb's
Documentation/kbuild/makefiles.txt | 15 +++++++++++++++
arch/microblaze/boot/Makefile | 10 ++--------
arch/powerpc/boot/Makefile | 8 +++-----
arch/x86/platform/ce4100/Makefile | 10 ++++++++++
include/asm-generic/vmlinux.lds.h | 15 ++++++++++++---
scripts/Makefile.lib | 21 ++++++++++++++++++++-
6 files changed, 62 insertions(+), 17 deletions(-)
--
1.7.2.3
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 4/4] microblaze/of: Use generic rule to build dtb's
2010-12-02 16:31 ` [PATCH 0/4] V2 Add ability to link device blob(s) " dirk.brandewie
@ 2010-12-02 16:31 ` dirk.brandewie
0 siblings, 0 replies; 15+ messages in thread
From: dirk.brandewie @ 2010-12-02 16:31 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree-discuss, sodaville, linuxppc-dev, microblaze-uclinux,
linux-arch, mmarek, Dirk Brandewie
From: Dirk Brandewie <dirk.brandewie@gmail.com>
Modify arch/powerpc/boot/Makefile to use dtc command in
scripts/Makefile.lib
Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
---
arch/microblaze/boot/Makefile | 10 ++--------
1 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile
index be01d78..52430e5 100644
--- a/arch/microblaze/boot/Makefile
+++ b/arch/microblaze/boot/Makefile
@@ -10,9 +10,6 @@ targets := linux.bin linux.bin.gz simpleImage.%
OBJCOPYFLAGS := -O binary
-# Where the DTS files live
-dtstree := $(srctree)/$(src)/dts
-
# Ensure system.dtb exists
$(obj)/linked_dtb.o: $(obj)/system.dtb
@@ -51,14 +48,11 @@ $(obj)/simpleImage.%: vmlinux FORCE
$(call if_changed,strip)
@echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
-# Rule to build device tree blobs
-DTC = $(objtree)/scripts/dtc/dtc
# Rule to build device tree blobs
-quiet_cmd_dtc = DTC $@
- cmd_dtc = $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 -p 1024 $(dtstree)/$*.dts
+DTC_FLAGS := -p 1024
-$(obj)/%.dtb: $(dtstree)/%.dts FORCE
+$(obj)/%.dtb: $(src)/dts/%.dts FORCE
$(call if_changed,dtc)
clean-files += *.dtb simpleImage.*.unstrip linux.bin.ub
--
1.7.2.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2010-12-23 22:13 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-22 19:57 [PATCH 0/4] V3 Add ability to link device blob(s) into vmlinux dirk.brandewie
2010-12-22 19:57 ` [PATCH 1/4] of: Add support for linking device tree blobs " dirk.brandewie
2010-12-22 22:36 ` Michal Marek
2010-12-23 6:14 ` Geert Uytterhoeven
2010-12-23 21:44 ` Grant Likely
2010-12-23 21:42 ` Grant Likely
2010-12-22 19:57 ` [PATCH 2/4] x86/of: Add building device tree blob(s) into image dirk.brandewie
2010-12-23 21:58 ` Grant Likely
2010-12-22 19:57 ` [PATCH 3/4] of/powerpc: Use generic rule to build dtb's dirk.brandewie
2010-12-23 22:13 ` Grant Likely
2010-12-22 19:57 ` [PATCH 4/4] microblaze/of: " dirk.brandewie
2010-12-23 22:13 ` Grant Likely
-- strict thread matches above, loose matches on Subject: below --
2010-12-08 15:01 [PATCH 0/4] V3 Add ability to link device blob(s) into vmlinux dirk.brandewie
2010-12-08 15:01 ` [PATCH 4/4] microblaze/of: Use generic rule to build dtb's dirk.brandewie
2010-12-06 17:35 [PATCH 0/4] V2 Add ability to link device blob(s) into vmlinux dirk.brandewie
2010-12-06 17:36 ` [PATCH 4/4] microblaze/of: Use generic rule to build dtb's dirk.brandewie
2010-11-16 22:41 [PATCH 0/5] Add the ability to link device blobs into vmlinux dirk.brandewie
2010-12-02 16:31 ` [PATCH 0/4] V2 Add ability to link device blob(s) " dirk.brandewie
2010-12-02 16:31 ` [PATCH 4/4] microblaze/of: Use generic rule to build dtb's dirk.brandewie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).