From: Dirk Brandewie <dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: "H. Peter Anvin" <hpa-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Cc: sodaville-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: [RFC] [PATCH V2] Adding DTB to architecture independent vmlinux
Date: Wed, 27 Oct 2010 17:30:27 -0700 [thread overview]
Message-ID: <4CC8C423.9050600@gmail.com> (raw)
In-Reply-To: <4CC860EF.6060503-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Here is V2 of the patch.
The support for linking in the DTB is now a config option. The location
of the config option is completely arbitrary.
The name of the added section has been changed to avoid possible collision
with the powerpc linkage of the DTB into the final image.
ATM this patch would add a redundant/unused section (without name collision) to
the microblaze if configured in since I do not understand why the padding added
to _fdt_start.
This has only been tested on x86.
Comments Suggestions?
--Dirk
of: add support for linking platform dtb into vmlinux
From: Dirk Brandewie <dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
This patch adds support for linking a device tree blob into
vmlinux. The platform DTB to be built and linked into the kernel is
specified by passing PLATFORM_DTB=<platform name> to make.
The command:
make PLATFORM_DTB=ce4100
will link the device tree blob into vmlinux
Signed-off-by: Dirk Brandewie <dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
arch/x86/kernel/Makefile | 15 +++++++++++++++
include/asm-generic/vmlinux.lds.h | 15 +++++++++++++++
init/Kconfig | 7 +++++++
scripts/Makefile.lib | 7 +++++++
5 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index 3068e1e..0f5eb1d 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -120,6 +120,21 @@ obj-$(CONFIG_X86_CHECK_BIOS_CORRUPTION) += check.o
obj-$(CONFIG_SWIOTLB) += pci-swiotlb.o
obj-$(CONFIG_X86_OF) += prom.o
+ifeq ($(CONFIG_KERNEL_DTB),y)
+ifneq ($(PLATFORM_DTB),)
+obj-y += $(PLATFORM_DTB).dtb.o
+endif
+endif
+
+dtstree := $(srctree)/arch/x86/boot/dts
+
+$(obj)/%.dtb: $(dtstree)/%.dts
+ $(call if_changed,dtc)
+
+$(obj)/%.dtb.S: $(obj)/%.dtb
+ @echo '.section .dtb,"a"' > $@
+ @echo '.incbin "$<" ' >> $@
+
###
# 64 bit specific files
ifeq ($(CONFIG_X86_64),y)
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 8a92a17..b18123a 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -146,6 +146,19 @@
#define TRACE_SYSCALLS()
#endif
+#ifdef CONFIG_KERNEL_DTB
+#define KERNEL_DTB \
+ . = ALIGN(4); \
+ .dtb : AT(ADDR(.dtb) - LOAD_OFFSET) { \
+ VMLINUX_SYMBOL(__dtb_start) = .; \
+ *(.dtb) \
+ VMLINUX_SYMBOL(__dtb_end) = .; \
+ }
+
+#else
+#define KERNEL_DTB
+#endif
+
/* .data section */
#define DATA_DATA \
*(.data) \
@@ -245,6 +258,8 @@
VMLINUX_SYMBOL(__end_pci_fixups_suspend) = .; \
} \
\
+ KERNEL_DTB \
+ \
/* Built-in firmware blobs */ \
.builtin_fw : AT(ADDR(.builtin_fw) - LOAD_OFFSET) { \
VMLINUX_SYMBOL(__start_builtin_fw) = .; \
diff --git a/init/Kconfig b/init/Kconfig
index 2de5b1c..4a8802e 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1055,6 +1055,13 @@ config PCI_QUIRKS
bugs/quirks. Disable this only if your target machine is
unaffected by PCI quirks.
+config KERNEL_DTB
+ bool "Support linking a device tree blob into vmlinux"
+ default n
+ help
+ This option provides support for adding a device tree blob
+ directly to vmlinux
+
config SLUB_DEBUG
default y
bool "Enable SLUB debugging support" if EMBEDDED
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 54fd1b7..ce32644 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -207,6 +207,13 @@ quiet_cmd_gzip = GZIP $@
cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) || \
(rm -f $@ ; false)
+# DTC
+# ---------------------------------------------------------------------------
+
+DTC = $(objtree)/scripts/dtc/dtc
+
+quiet_cmd_dtc = DTC $@
+ cmd_dtc = $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 -p 1024 $(dtstree)/$*.dts
# Bzip2
# ---------------------------------------------------------------------------
next prev parent reply other threads:[~2010-10-28 0:30 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-26 14:24 [RFC] [PATCH] Adding DTB to architecture independent vmlinux Dirk Brandewie
[not found] ` <4CC6E491.7060304-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-10-27 11:09 ` Grant Likely
[not found] ` <20101027110937.GD7822-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2010-10-27 17:27 ` [sodaville] " H. Peter Anvin
[not found] ` <4CC860EF.6060503-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2010-10-28 0:30 ` Dirk Brandewie [this message]
[not found] ` <4CC8C423.9050600-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-10-28 0:57 ` [RFC] [PATCH V2] " David VomLehn
[not found] ` <20101028005754.GA27386-ZEW99E7oL/EiWxQNNj96ibh/4TqKg8J2XqFh9Ls21Oc@public.gmane.org>
2010-10-28 15:18 ` H. Peter Anvin
[not found] ` <4CC99441.4030307-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2010-10-28 16:35 ` [sodaville] " Sebastian Andrzej Siewior
[not found] ` <4CC9A66B.6070408-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2010-10-28 16:38 ` H. Peter Anvin
[not found] ` <4CC9A705.3080806-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2010-10-28 18:00 ` David VomLehn
[not found] ` <20101028180053.GC25771-ZEW99E7oL/EiWxQNNj96ibh/4TqKg8J2XqFh9Ls21Oc@public.gmane.org>
2010-11-01 4:15 ` Grant Likely
[not found] ` <AANLkTinYiTDsN+c_vgnK4OjmjpTzLHyyA8FqjPSaFm5h-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-11-02 1:27 ` David VomLehn
2010-10-29 4:02 ` David Gibson
2010-10-28 17:32 ` David VomLehn
[not found] ` <20101028173202.GA25771-ZEW99E7oL/EiWxQNNj96ibh/4TqKg8J2XqFh9Ls21Oc@public.gmane.org>
2010-10-28 21:44 ` H. Peter Anvin
[not found] ` <4CC9EECF.9020208-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2010-10-29 4:04 ` David Gibson
2010-10-29 20:29 ` H. Peter Anvin
[not found] ` <4CCB2E93.2010809-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2010-10-30 12:57 ` David Gibson
2010-11-01 4:12 ` Grant Likely
2010-11-01 3:55 ` [sodaville] [RFC] [PATCH] " Grant Likely
-- strict thread matches above, loose matches on Subject: below --
2010-10-28 15:26 [RFC] [PATCH V2] " Dirk Brandewie
[not found] ` <4CC99628.6000002-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-11-01 3:05 ` Grant Likely
2010-11-01 4:02 ` Grant Likely
2010-11-10 6:03 ` Grant Likely
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CC8C423.9050600@gmail.com \
--to=dirk.brandewie-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=hpa-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=sodaville-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.