Thread (6 messages) flat view 6 messages, 3 authors, 2013-02-04

Re: [PATCH 1/1] powerpc/85xx: Board support for ppa8548

From: Scott Wood <hidden>
Date: 2013-02-02 00:47:23

On 02/01/2013 09:36:53 AM, Stef van Os wrote:
+	memory {
+		device_type =3D "memory";
+		reg =3D <0 0 0x0 0x40000000>;
+	};
You have a "filled in by U-Boot" comment elsewhere in the file, but you =20
aren't letting U-Boot fill in the memory size?
+	board_lbc: lbc: localbus@fe0005000 {
+		reg =3D <0xf 0xe0005000 0 0x1000>;
+		ranges =3D <0x0 0x0 0xf 0xff800000 0x00800000>;
+	};
+
+	board_soc: soc: soc8548@fe0000000 {
+		ranges =3D <0 0xf 0xe0000000 0x100000>;
+	};
I know some existing dts files do this, but there's no need for two =20
labels one one node.
+	rio: rapidio@fe00c0000 {
+		reg =3D <0xf 0xe00c0000 0x0 0x11000>;
+		port1 {
+			ranges =3D <0x0 0x0 0x0 0x80000000 0x0 =20
0x40000000>;
+		};
+	};
+};
+
+&lbc {
+	#address-cells =3D <2>;
+	#size-cells =3D <1>;
+	compatible =3D "fsl,mpc8548-lbc", "fsl,pq3-localbus", =20
"simple-bus";
+	interrupts =3D <19 2 0 0>;
+};
+
+&rio {
+	compatible =3D "fsl,srio";
+	interrupts =3D <48 2 0 0>;
+	#address-cells =3D <2>;
+	#size-cells =3D <2>;
+	fsl,srio-rmu-handle =3D <&rmu>;
+	ranges;
+
+	port1 {
+		#address-cells =3D <2>;
+		#size-cells =3D <2>;
+		cell-index =3D <1>;
+	};
+};
+
+&soc {
+	#address-cells =3D <1>;
+	#size-cells =3D <1>;
+	device_type =3D "soc";
+	compatible =3D "fsl,mpc8548-immr", "simple-bus";
+	bus-frequency =3D <0>;		// Filled out by uboot.
+
+	ecm-law@0 {
+		compatible =3D "fsl,ecm-law";
+		reg =3D <0x0 0x1000>;
+		fsl,num-laws =3D <10>;
+	};
+
+	ecm@1000 {
+		compatible =3D "fsl,mpc8548-ecm", "fsl,ecm";
+		reg =3D <0x1000 0x1000>;
+		interrupts =3D <17 2 0 0>;
+	};
+
+	memory-controller@2000 {
+		compatible =3D "fsl,mpc8548-memory-controller";
+		reg =3D <0x2000 0x1000>;
+		interrupts =3D <18 2 0 0>;
+	};
+
+/include/ "fsl/pq3-i2c-0.dtsi"
+/include/ "fsl/pq3-i2c-1.dtsi"
+/include/ "fsl/pq3-duart-0.dtsi"
+
+	L2: l2-cache-controller@20000 {
+		compatible =3D "fsl,mpc8548-l2-cache-controller";
+		reg =3D <0x20000 0x1000>;
+		cache-line-size =3D <32>;	// 32 bytes
+		cache-size =3D <0x80000>; // L2, 512K
+		interrupts =3D <16 2 0 0>;
+	};
+
+/include/ "fsl/pq3-dma-0.dtsi"
+/include/ "fsl/pq3-etsec1-0.dtsi"
+/include/ "fsl/pq3-etsec1-1.dtsi"
+/include/ "fsl/pq3-etsec1-2.dtsi"
+/include/ "fsl/pq3-etsec1-3.dtsi"
+
+/include/ "fsl/pq3-sec2.1-0.dtsi"
+/include/ "fsl/pq3-mpic.dtsi"
+/include/ "fsl/pq3-rmu-0.dtsi"
+
+	global-utilities@e0000 {
+		compatible =3D "fsl,mpc8548-guts";
+		reg =3D <0xe0000 0x1000>;
+		fsl,has-rstcr;
+	};
+};
I guess the reason you're not using fsl/mpc8548si-post.dtsi is that you =20
don't want PCI.  Maybe PCI and srio should be moved out of that file, =20
or ifdeffed if 85xx ever ends up using the preprocessor for its device =20
trees.
quoted hunk ↗ jump to hunk
diff --git a/arch/powerpc/platforms/85xx/ppa8548.c =20
b/arch/powerpc/platforms/85xx/ppa8548.c
new file mode 100644
index 0000000..80a9307
--- /dev/null
+++ b/arch/powerpc/platforms/85xx/ppa8548.c
@@ -0,0 +1,119 @@
+/*
+ * ppa8548 setup and early boot code.
+ *
+ * Copyright 2009 Prodrive B.V..
+ *
+ * By Stef van Os (see MAINTAINERS for contact information)
+ *
+ * Based on the SBC8548 support - Copyright 2007 Wind River Systems =20
Inc.
+ * Based on the MPC8548CDS support - Copyright 2005 Freescale Inc.
+ *
+ * This program is free software; you can redistribute  it and/or =20
modify it
+ * under  the terms of  the GNU General  Public License as published =20
by the
+ * Free Software Foundation;  either version 2 of the  License, or =20
(at your
+ * option) any later version.
+ */
+
+#include <linux/stddef.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/errno.h>
+#include <linux/reboot.h>
+#include <linux/kdev_t.h>
+#include <linux/major.h>
+#include <linux/console.h>
+#include <linux/delay.h>
+#include <linux/seq_file.h>
+#include <linux/initrd.h>
+#include <linux/module.h>
+#include <linux/interrupt.h>
+#include <linux/fsl_devices.h>
+#include <linux/of_platform.h>
+
+#include <asm/pgtable.h>
+#include <asm/page.h>
+#include <asm/atomic.h>
+#include <asm/time.h>
+#include <asm/io.h>
+#include <asm/machdep.h>
+#include <asm/ipic.h>
+#include <asm/irq.h>
+#include <mm/mmu_decl.h>
+#include <asm/prom.h>
+#include <asm/udbg.h>
+#include <asm/mpic.h>
+
+#include <sysdev/fsl_soc.h>
I doubt you need all of these.

E.g. asm/ipic.h is for 83xx and 512x chips.  Some others are for things =20
that haven't been done by board files for years (e.g. kdev_t.h).
+static void ppa8548_show_cpuinfo(struct seq_file *m)
+{
+	uint pvid, svid, phid1;
+
+	pvid =3D mfspr(SPRN_PVR);
+	svid =3D mfspr(SPRN_SVR);
+
+	seq_printf(m, "Vendor\t\t: Prodrive B.V.\n");
+	seq_printf(m, "Machine\t\t: ppa8548\n");
+	seq_printf(m, "PVR\t\t: 0x%x\n", pvid);
+	seq_printf(m, "SVR\t\t: 0x%x\n", svid);
+
+	/* Display cpu Pll setting */
+	phid1 =3D mfspr(SPRN_HID1);
+	seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
+}
PVR and ppc_md.name are already shown by the generic /proc/cpuinfo code.

-Scott=
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help