From: John Traill <john.traill@freescale.com>
Date: Wed, 9 Aug 2006 13:33:50 +0000 (+0100)
Subject: Add Rapidio support for the MPC8641HPCN
X-Git-Tag: v2025.01-rc5-pxa1908~22941^2~3^2~45^2
X-Git-Url: http://git.dujemihanovic.xyz/img/sics.gif?a=commitdiff_plain;h=8fc8bd2cc479b6cd188fdede4010e0e052970b8a;p=u-boot.git

Add Rapidio support for the MPC8641HPCN

Signed-off-by: John Traill <john.traill@freescale.com>
---

diff --git a/board/mpc8641hpcn/init.S b/board/mpc8641hpcn/init.S
index 69954a81ac..c6ea55ea71 100644
--- a/board/mpc8641hpcn/init.S
+++ b/board/mpc8641hpcn/init.S
@@ -84,6 +84,9 @@
 #define LAWAR8  ((LAWAR_TRGT_IF_DDR2 | (LAWAR_SIZE & LAWAR_SIZE_512M)) & ~LAWAR_EN)
 #endif
 
+#define LAWBAR9 ((CFG_RIO_MEM_BASE>>12) & 0xfffff)
+#define LAWAR9  (LAWAR_EN | LAWAR_TRGT_IF_RIO | (LAWAR_SIZE & LAWAR_SIZE_512M))
+
 	.section .bootpg, "ax"
 	.globl	law_entry
 law_entry:
@@ -164,5 +167,14 @@ law_entry:
 	ori     r6,r6,LAWAR8@l
 	stwu    r6, 0x20(r5)
 
+	/* LAWBAR9, LAWAR9 */
+	lis     r6,LAWBAR9@h
+	ori     r6,r6,LAWBAR9@l
+	stwu    r6, 0x20(r4)
+
+	lis     r6,LAWAR9@h
+	ori     r6,r6,LAWAR9@l
+	stwu    r6, 0x20(r5)
+
 	blr
 
diff --git a/board/mpc8641hpcn/oftree.dts b/board/mpc8641hpcn/oftree.dts
index 742a1404f1..99d75ca621 100644
--- a/board/mpc8641hpcn/oftree.dts
+++ b/board/mpc8641hpcn/oftree.dts
@@ -341,6 +341,48 @@
 				>;
 			interrupt-parent = <40000>;
 		};
+		rio@c0000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			device_type = "rio";
+			model = "pq38";
+			compatible = "85xx";
+			ranges = <0 c0000000 20000000>;
+			reg = <c0000 13000>;
+			linux,phandle = <c0000>;
+		};
+		rio_message@d3000 {
+			device_type = "network";
+			compatible = "85xx";
+			linux,phandle = <d3000>;
+			reg = <d3000 d3100>;
+			interrupts = <35 2 36 2>;
+			interrupt-parent = <40000>;
+		};
+		rio_message@d3100 {
+			device_type = "network";
+			compatible = "85xx";
+			linux,phandle = <d3100>;
+			reg = <d3100 d3200>;
+			interrupts = <37 2 38 2>;
+			interrupt-parent = <40000>;
+		};
+		rio_doorbell@d3400 {
+			device_type = "doorbell";
+			compatible = "85xx";
+			linux,phandle = <d3400>;
+			reg = <d3400 d34e0>;
+			interrupts = <31 2 32 2>;
+			interrupt-parent = <40000>;
+		};
+		rio_portwrite@d34e0 {
+			device_type = "portwrite";
+			compatible = "85xx";
+			linux,phandle = <d34e0>;
+			reg = <d34e0 d3500>;
+			interrupts = <30 2>;
+			interrupt-parent = <40000>;
+		};
 	};
 };