lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 11 Nov 2012 13:50:37 +0100
From:	Jonas Gorski <jonas.gorski@...il.com>
To:	linux-mips@...ux-mips.org
Cc:	Ralf Baechle <ralf@...ux-mips.org>,
	John Crispin <blogic@...nwrt.org>,
	Maxime Bizon <mbizon@...ebox.fr>,
	Florian Fainelli <florian@...nwrt.org>,
	Kevin Cernekee <cernekee@...il.com>,
	devicetree-discuss@...ts.ozlabs.org, linux-kernel@...r.kernel.org
Subject: [RFC] MIPS: BCM63XX: add generic fallback device trees

Add generic fallback device trees to load if there is no specific
device tree for the board available. This ensures that always present
devices like interrupt controllers are always available.

Signed-off-by: Jonas Gorski <jonas.gorski@...il.com>
---
 arch/mips/bcm63xx/dts/Makefile             |    8 ++++++++
 arch/mips/bcm63xx/dts/bcm96328_generic.dts |   21 +++++++++++++++++++++
 arch/mips/bcm63xx/dts/bcm96338_generic.dts |   21 +++++++++++++++++++++
 arch/mips/bcm63xx/dts/bcm96345_generic.dts |   21 +++++++++++++++++++++
 arch/mips/bcm63xx/dts/bcm96348_generic.dts |   21 +++++++++++++++++++++
 arch/mips/bcm63xx/dts/bcm96358_generic.dts |   21 +++++++++++++++++++++
 arch/mips/bcm63xx/dts/bcm96368_generic.dts |   21 +++++++++++++++++++++
 arch/mips/bcm63xx/setup.c                  |   17 +++++++++++------
 8 files changed, 145 insertions(+), 6 deletions(-)
 create mode 100644 arch/mips/bcm63xx/dts/bcm96328_generic.dts
 create mode 100644 arch/mips/bcm63xx/dts/bcm96338_generic.dts
 create mode 100644 arch/mips/bcm63xx/dts/bcm96345_generic.dts
 create mode 100644 arch/mips/bcm63xx/dts/bcm96348_generic.dts
 create mode 100644 arch/mips/bcm63xx/dts/bcm96358_generic.dts
 create mode 100644 arch/mips/bcm63xx/dts/bcm96368_generic.dts

diff --git a/arch/mips/bcm63xx/dts/Makefile b/arch/mips/bcm63xx/dts/Makefile
index 69c374b..94d1057 100644
--- a/arch/mips/bcm63xx/dts/Makefile
+++ b/arch/mips/bcm63xx/dts/Makefile
@@ -1,2 +1,10 @@
+# generic fallback boards
+obj-$(CONFIG_BCM63XX_CPU_6328)		+= bcm96328_generic.dtb.o
+obj-$(CONFIG_BCM63XX_CPU_6338)		+= bcm96338_generic.dtb.o
+obj-$(CONFIG_BCM63XX_CPU_6345)		+= bcm96345_generic.dtb.o
+obj-$(CONFIG_BCM63XX_CPU_6348)		+= bcm96348_generic.dtb.o
+obj-$(CONFIG_BCM63XX_CPU_6358)		+= bcm96358_generic.dtb.o
+obj-$(CONFIG_BCM63XX_CPU_6368)		+= bcm96368_generic.dtb.o
+
 $(obj)/%.dtb: $(obj)/%.dts
 	$(call if_changed,dtc)
diff --git a/arch/mips/bcm63xx/dts/bcm96328_generic.dts b/arch/mips/bcm63xx/dts/bcm96328_generic.dts
new file mode 100644
index 0000000..13cdc48
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96328_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6328 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@...il.com>
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/include/ "bcm6328.dtsi"
+
+/ {
+	model = "Generic BCM6328 board";
+	compatible = "bcm96328-generic";
+
+	ubus@...00000 {
+	};
+};
diff --git a/arch/mips/bcm63xx/dts/bcm96338_generic.dts b/arch/mips/bcm63xx/dts/bcm96338_generic.dts
new file mode 100644
index 0000000..3b4e7b0
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96338_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6338 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@...il.com>
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/include/ "bcm6338.dtsi"
+
+/ {
+	model = "Generic BCM6338 board";
+	compatible = "bcm96338-generic";
+
+	ubus@...e0000 {
+	};
+};
diff --git a/arch/mips/bcm63xx/dts/bcm96345_generic.dts b/arch/mips/bcm63xx/dts/bcm96345_generic.dts
new file mode 100644
index 0000000..2bbf69e
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96345_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6345 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@...il.com>
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/include/ "bcm6345.dtsi"
+
+/ {
+	model = "Generic BCM6345 board";
+	compatible = "bcm96345-generic";
+
+	ubus@...e0000 {
+	};
+};
diff --git a/arch/mips/bcm63xx/dts/bcm96348_generic.dts b/arch/mips/bcm63xx/dts/bcm96348_generic.dts
new file mode 100644
index 0000000..d3c21a9
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96348_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6348 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@...il.com>
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/include/ "bcm6348.dtsi"
+
+/ {
+	model = "Generic BCM6348 board";
+	compatible = "bcm96348-generic";
+
+	ubus@...e0000 {
+	};
+};
diff --git a/arch/mips/bcm63xx/dts/bcm96358_generic.dts b/arch/mips/bcm63xx/dts/bcm96358_generic.dts
new file mode 100644
index 0000000..7db5b8f
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96358_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6358 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@...il.com>
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/include/ "bcm6358.dtsi"
+
+/ {
+	model = "Generic BCM6358 board";
+	compatible = "bcm96358-generic";
+
+	ubus@...e0000 {
+	};
+};
diff --git a/arch/mips/bcm63xx/dts/bcm96368_generic.dts b/arch/mips/bcm63xx/dts/bcm96368_generic.dts
new file mode 100644
index 0000000..a5c79a6
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96368_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6368 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@...il.com>
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/include/ "bcm6368.dtsi"
+
+/ {
+	model = "Generic BCM6368 board";
+	compatible = "bcm96368-generic";
+
+	ubus@...00000 {
+	};
+};
diff --git a/arch/mips/bcm63xx/setup.c b/arch/mips/bcm63xx/setup.c
index 8712354..b1fa63d 100644
--- a/arch/mips/bcm63xx/setup.c
+++ b/arch/mips/bcm63xx/setup.c
@@ -209,9 +209,16 @@ void __init device_tree_init(void)
 
 	devtree = find_compatible_tree(of_ids[0].compatible);
 	if (!devtree) {
-		pr_warn("no compatible device tree found for board %s\n"
+		pr_warn("no compatible device tree found for board %s, using fallback tree\n",
 			of_ids[0].compatible);
-		return;
+
+		snprintf(of_ids[0].compatible, sizeof(of_ids[0].compatible),
+			 "bcm9%x-generic", bcm63xx_get_cpu_id());
+		devtree = find_compatible_tree(of_ids[0].compatible);
+
+		if (!devtree)
+			panic("no fallback tree available for BCM%x!\n",
+			      bcm63xx_get_cpu_id());
 	}
 
 	__dt_setup_arch(devtree);
@@ -223,10 +230,8 @@ void __init device_tree_init(void)
 
 int __init bcm63xx_populate_device_tree(void)
 {
-	if (!of_have_populated_dt()) {
-		pr_warn("device tree not available\n");
-		return -ENODEV;
-	}
+	if (!of_have_populated_dt())
+		panic("device tree not available\n");
 
 	return of_platform_populate(NULL, of_ids, NULL, NULL);
 }
-- 
1.7.2.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ