From: Antony Pavlov <antonynpavlov@gmail.com>
To: barebox@lists.infradead.org
Subject: [PATCH v2 3/7] openrisc: add initial device tree support
Date: Mon, 8 Sep 2014 10:53:05 +0400 [thread overview]
Message-ID: <1410159189-17328-4-git-send-email-antonynpavlov@gmail.com> (raw)
In-Reply-To: <1410159189-17328-1-git-send-email-antonynpavlov@gmail.com>
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Cc: Franck Jullien <franck.jullien@gmail.com>
---
arch/openrisc/Kconfig | 9 +++++++++
arch/openrisc/Makefile | 7 +++++++
arch/openrisc/cpu/barebox.lds.S | 2 ++
arch/openrisc/dts/Makefile | 5 +++++
arch/openrisc/lib/Makefile | 1 +
arch/openrisc/lib/dtb.c | 44 +++++++++++++++++++++++++++++++++++++++++
drivers/of/Kconfig | 2 +-
7 files changed, 69 insertions(+), 1 deletion(-)
diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig
index 23c6a71..483ae6d 100644
--- a/arch/openrisc/Kconfig
+++ b/arch/openrisc/Kconfig
@@ -1,5 +1,6 @@
config OPENRISC
bool
+ select OFTREE
select HAS_CACHE
select HAVE_CONFIGURABLE_MEMORY_LAYOUT
select HAVE_DEFAULT_ENVIRONMENT_NEW
@@ -11,6 +12,14 @@ config ARCH_TEXT_BASE
hex
default 0x00000000
+config BUILTIN_DTB
+ bool "link a DTB into the barebox image"
+ depends on OFTREE
+
+config BUILTIN_DTB_NAME
+ string "DTB to build into the barebox image"
+ depends on BUILTIN_DTB
+
choice
prompt "Select your board"
diff --git a/arch/openrisc/Makefile b/arch/openrisc/Makefile
index fd8bbbf..b0c8566 100644
--- a/arch/openrisc/Makefile
+++ b/arch/openrisc/Makefile
@@ -19,3 +19,10 @@ common-y += arch/openrisc/lib/
common-y += arch/openrisc/cpu/
lds-y += arch/openrisc/cpu/barebox.lds
+
+common-$(CONFIG_BUILTIN_DTB) += arch/openrisc/dts/
+
+dts := arch/openrisc/dts
+
+%.dtb: scripts
+ $(Q)$(MAKE) $(build)=$(dts) $(dts)/$@
diff --git a/arch/openrisc/cpu/barebox.lds.S b/arch/openrisc/cpu/barebox.lds.S
index d71df46..d4b6359 100644
--- a/arch/openrisc/cpu/barebox.lds.S
+++ b/arch/openrisc/cpu/barebox.lds.S
@@ -69,6 +69,8 @@ SECTIONS
__usymtab : { BAREBOX_SYMS } > ram
___usymtab_end = .;
+ .dtb : { BAREBOX_DTB() } > ram
+
__etext = .; /* End of text and rodata section */
. = ALIGN(4);
diff --git a/arch/openrisc/dts/Makefile b/arch/openrisc/dts/Makefile
new file mode 100644
index 0000000..6d6c9a3
--- /dev/null
+++ b/arch/openrisc/dts/Makefile
@@ -0,0 +1,5 @@
+
+BUILTIN_DTB := $(patsubst "%",%,$(CONFIG_BUILTIN_DTB_NAME))
+obj-$(CONFIG_BUILTIN_DTB) += $(BUILTIN_DTB).dtb.o
+
+clean-files := *.dtb *.dtb.S
diff --git a/arch/openrisc/lib/Makefile b/arch/openrisc/lib/Makefile
index 0b3cc50..62082fe 100644
--- a/arch/openrisc/lib/Makefile
+++ b/arch/openrisc/lib/Makefile
@@ -5,3 +5,4 @@ obj-y += muldi3.o
obj-y += lshrdi3.o
obj-y += ashldi3.o
obj-y += ashrdi3.o
+obj-$(CONFIG_BUILTIN_DTB) += dtb.o
diff --git a/arch/openrisc/lib/dtb.c b/arch/openrisc/lib/dtb.c
new file mode 100644
index 0000000..4f63a77
--- /dev/null
+++ b/arch/openrisc/lib/dtb.c
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2014 Antony Pavlov <antonynpavlov@gmail.com>
+ *
+ * Based on arch/arm/cpu/dtb.c:
+ * Copyright (C) 2013 Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+#include <common.h>
+#include <init.h>
+#include <of.h>
+
+extern char __dtb_start[];
+
+static int of_openrisc_init(void)
+{
+ struct device_node *root;
+
+ root = of_get_root_node();
+ if (root)
+ return 0;
+
+ root = of_unflatten_dtb(__dtb_start);
+ if (root) {
+ pr_debug("using internal DTB\n");
+ of_set_root_node(root);
+ if (IS_ENABLED(CONFIG_OFDEVICE))
+ of_probe();
+ }
+
+ return 0;
+}
+core_initcall(of_openrisc_init);
diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
index 8195506..97a1d93 100644
--- a/drivers/of/Kconfig
+++ b/drivers/of/Kconfig
@@ -4,7 +4,7 @@ config OFTREE
config OFTREE_MEM_GENERIC
depends on OFTREE
- depends on PPC || ARM || ARCH_EFI
+ depends on PPC || ARM || ARCH_EFI || OPENRISC
def_bool y
config DTC
--
2.1.0
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2014-09-08 6:53 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-08 6:53 [PATCH v2 0/7] openrisc: add device tree support Antony Pavlov
2014-09-08 6:53 ` [PATCH v2 1/7] openrisc: generic board: reserve 512K for barebox Antony Pavlov
2014-09-08 6:53 ` [PATCH v2 2/7] net: ethoc: add device tree support Antony Pavlov
2014-09-08 6:53 ` Antony Pavlov [this message]
2014-09-08 6:53 ` [PATCH v2 4/7] openrisc: dts: import or1ksim.dts from linux-3.16 Antony Pavlov
2014-09-08 6:53 ` [PATCH v2 5/7] openrisc: generic board: reduce platform code Antony Pavlov
2014-09-08 6:53 ` [PATCH v2 6/7] openrisc: generic_defconfig: enable device tree stuff Antony Pavlov
2014-09-08 6:53 ` [PATCH v2 7/7] Documentation: add OpenRISC or1ksim emulator section Antony Pavlov
2014-09-08 7:12 ` Franck Jullien
2014-09-09 8:29 ` Sascha Hauer
2014-09-09 10:38 ` Antony Pavlov
2014-09-09 8:28 ` [PATCH v2 0/7] openrisc: add device tree support Sascha Hauer
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=1410159189-17328-4-git-send-email-antonynpavlov@gmail.com \
--to=antonynpavlov@gmail.com \
--cc=barebox@lists.infradead.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.