WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ppc-devel

[XenPPC] [pushed] [ppc] find the OpenPIC by the device tree

To: xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
Subject: [XenPPC] [pushed] [ppc] find the OpenPIC by the device tree
From: jimix@xxxxxxxxxxxxxx
Date: Fri, 28 Apr 2006 17:48:18 -0400
Delivery-date: Fri, 28 Apr 2006 14:47:25 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ppc-devel-request@lists.xensource.com?subject=help>
List-id: Xen PPC development <xen-ppc-devel.lists.xensource.com>
List-post: <mailto:xen-ppc-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ppc-devel-bounces@xxxxxxxxxxxxxxxxxxx
changeset:   9957:ffa41af2e455738f8fe3a0af8ae8952e9d4cc47c
user:        jimix@xxxxxxxxxxxxxxxxxxxxx
date:        Thu Apr 27 14:40:10 2006 -0400
files:       xen/arch/ppc/boot_of.c xen/arch/ppc/external.c
description:
[ppc] find the OpenPIC by the device tree


diff -r 392b622c462327f6a5cab6f26635a2292bb4867d -r 
ffa41af2e455738f8fe3a0af8ae8952e9d4cc47c xen/arch/ppc/boot_of.c
--- a/xen/arch/ppc/boot_of.c    Thu Apr 27 14:37:58 2006 -0400
+++ b/xen/arch/ppc/boot_of.c    Thu Apr 27 14:40:10 2006 -0400
@@ -33,6 +33,7 @@ static char dom0args[256];
 static char dom0args[256];
 
 extern unsigned int timebase_freq;
+extern unsigned long opic_addr;
 
 #undef OF_DEBUG
 
@@ -865,6 +866,31 @@ static int __init boot_of_rtas(void)
     return 1;
 }
 
+static void __init boot_of_pic(void)
+{
+    int root;
+    int p;
+    u32 addr_cells = 1;
+    int rc;
+    u32 addr[2];
+
+    root = of_finddevice("/");
+    p = of_getchild(root);
+
+    /* code is writen to assume sizes of 1 */
+    of_getprop(root, "#address-cells", &addr_cells, sizeof (addr_cells));
+    rc = of_getprop(root, "platform-open-pic", addr, sizeof (addr));
+    if (rc <= 0) {
+        of_panic("cannot find the openpic\n");
+    }
+    opic_addr = addr[0];
+    if (addr_cells == 2) {
+        opic_addr <<= 32;
+        opic_addr |= addr[1];
+    }
+    of_printf("OF: found OpenPIC at: 0x%lx\n", opic_addr);
+}
+
 multiboot_info_t __init *boot_of_init(
         ulong r3, ulong r4, ulong vec, ulong r6, ulong r7, ulong orig_msr)
 {
@@ -901,6 +927,7 @@ multiboot_info_t __init *boot_of_init(
     boot_of_serial();
     boot_of_cpus();
     boot_of_rtas();
+    boot_of_pic();
 
     /* end of OF */
     of_printf("closing OF stdout...\n");
diff -r 392b622c462327f6a5cab6f26635a2292bb4867d -r 
ffa41af2e455738f8fe3a0af8ae8952e9d4cc47c xen/arch/ppc/external.c
--- a/xen/arch/ppc/external.c   Thu Apr 27 14:37:58 2006 -0400
+++ b/xen/arch/ppc/external.c   Thu Apr 27 14:40:10 2006 -0400
@@ -38,6 +38,7 @@ extern void do_IRQ(struct cpu_user_regs 
 
 int vector_irq[NR_VECTORS] __read_mostly = { [0 ... NR_VECTORS - 1] = -1};
 
+unsigned long opic_addr;
 unsigned long io_apic_irqs;
 int ioapic_ack_new = 1;
 
@@ -167,7 +168,6 @@ static void xen_set_affinity(unsigned in
 
 void init_IRQ(void)
 {
-    unsigned long opic_addr;
     unsigned int isu_size;
     unsigned int irq_offset;
     unsigned int irq_count;
@@ -181,11 +181,6 @@ void init_IRQ(void)
        irq_vector[0] = FIRST_DEVICE_VECTOR;
        vector_irq[FIRST_DEVICE_VECTOR] = 0;
 
-    /* should find this in the devtree:
-     * G5 is at 0xffc00000
-     * Maple is at 0xf8040000
-     */
-    opic_addr = 0xf8040000;
     isu_size = 0;
     irq_offset = 0;
     irq_count = 128;



_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [XenPPC] [pushed] [ppc] find the OpenPIC by the device tree, jimix <=