[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[XenPPC] [pushed] [ppc] remove the device that Xen is using for console from the devtree we give dom0



changeset:   10292:362e8769dba11053cc7d26ec9796698ac4219f93
user:        jimix@xxxxxxxxxxxxxxxxxxxxx
date:        Thu May 18 13:58:17 2006 -0400
files:       xen/arch/ppc/boot_of.c
description:
[ppc] remove the device that Xen is using for console from the devtree we give 
dom0


diff -r 953fd3f66b0015c8883815c89549fda1e920b4da -r 
362e8769dba11053cc7d26ec9796698ac4219f93 xen/arch/ppc/boot_of.c
--- a/xen/arch/ppc/boot_of.c    Thu May 18 13:57:33 2006 -0400
+++ b/xen/arch/ppc/boot_of.c    Thu May 18 13:58:17 2006 -0400
@@ -730,6 +730,79 @@ static ulong find_space(u32 size, ulong 
     }
 }
 
+
+static int __init boot_of_serial(void *oftree)
+{
+    int n;
+    int p;
+    int rc;
+    u32 val[3];
+    char buf[128];
+
+    n = of_instance_to_package(of_out);
+    if (n == OF_FAILURE) {
+        of_panic("instance-to-package of /chosen/stdout: failed\n");
+    }
+
+    /* prune this from the oftree */
+    rc = of_package_to_path(n, buf, sizeof(buf));
+    if (rc == OF_FAILURE) {
+        of_panic("package-to-path of /chosen/stdout: failed\n");
+    }
+    of_printf("Pruning from devtree: %s\n"
+              "  since Xen will be using it for console\n", buf);
+    rc = ofd_prune_path(oftree, buf);
+    if (rc < 0) {
+        of_panic("prune path \"%s\" failed\n", buf);
+    }
+    
+
+    p = of_getparent(n);
+    if (p == OF_FAILURE) {
+        of_panic("no parent for: 0x%x\n", n);
+    }
+
+    buf[0] = '\0';
+    of_getprop(p, "device_type", buf, sizeof (buf));
+    if (strstr(buf, "isa") == NULL) {
+        of_panic("only ISA UARTS supported\n");
+    }
+
+    /* should get this from devtree */
+    isa_io_base = 0xf4000000;
+    of_printf("%s: ISA base: 0x%lx\n", __func__, isa_io_base);
+
+    buf[0] = '\0';
+    of_getprop(n, "device_type", buf, sizeof (buf));
+    if (strstr(buf, "serial") == NULL) {
+        of_panic("only UARTS supported\n");
+    }
+
+    rc = of_getprop(n, "reg", val, sizeof (val));
+    if (rc == OF_FAILURE) {
+        of_panic("%s: no location for serial port\n", __func__);
+    }
+    ns16550.io_base = val[1];
+
+    ns16550.baud = BAUD_AUTO;
+    ns16550.data_bits = 8;
+    ns16550.parity = 'n';
+    ns16550.stop_bits = 1;
+
+    rc = of_getprop(n, "interrupts", val, sizeof (val));
+    if (rc == OF_FAILURE) {
+        of_printf("%s: no ISRC, forcing poll mode\n", __func__);
+        ns16550.irq = 0;
+    } else {
+        ns16550.irq = val[0];
+        of_printf("%s: ISRC=0x%x, but forcing poll mode\n",
+                  __func__, ns16550.irq);
+        ns16550.irq = 0;
+    }
+
+    return 1;
+}
+
 static void boot_of_module(ulong r3, ulong r4, multiboot_info_t *mbi)
 {
     static module_t mods[3];
@@ -828,66 +901,8 @@ static void boot_of_module(ulong r3, ulo
     mbi->flags |= MBI_MODULES;
     mbi->mods_count = 2;
     mbi->mods_addr = (u32)mods;
-}
-
-
-static int __init boot_of_serial(void)
-{
-    int n;
-    int p;
-    int rc;
-    u32 val[3];
-    char buf[64];
-
-    n = of_instance_to_package(of_out);
-    if (n == OF_FAILURE) {
-        of_panic("instance-to-package of /chosen/stdout: failed\n");
-    }
-
-    p = of_getparent(n);
-    if (p == OF_FAILURE) {
-        of_panic("no parent for: 0x%x\n", n);
-    }
-
-    buf[0] = '\0';
-    of_getprop(p, "device_type", buf, sizeof (buf));
-    if (strstr(buf, "isa") == NULL) {
-        of_panic("only ISA UARTS supported\n");
-    }
-
-    /* should get this from devtree */
-    isa_io_base = 0xf4000000;
-    of_printf("%s: ISA base: 0x%lx\n", __func__, isa_io_base);
-
-    buf[0] = '\0';
-    of_getprop(n, "device_type", buf, sizeof (buf));
-    if (strstr(buf, "serial") == NULL) {
-        of_panic("only UARTS supported\n");
-    }
-
-    rc = of_getprop(n, "reg", val, sizeof (val));
-    if (rc == OF_FAILURE) {
-        of_panic("%s: no location for serial port\n", __func__);
-    }
-    ns16550.io_base = val[1];
-
-    ns16550.baud = BAUD_AUTO;
-    ns16550.data_bits = 8;
-    ns16550.parity = 'n';
-    ns16550.stop_bits = 1;
-
-    rc = of_getprop(n, "interrupts", val, sizeof (val));
-    if (rc == OF_FAILURE) {
-        of_printf("%s: no ISRC, forcing poll mode\n", __func__);
-        ns16550.irq = 0;
-    } else {
-        ns16550.irq = val[0];
-      of_printf("%s: ISRC=0x%x, but forcing poll mode\n",
-                __func__, ns16550.irq);
-      ns16550.irq = 0;
-    }
-
-    return 1;
+
+    boot_of_serial(oftree);
 }
 
 static int __init boot_of_cpus(void)
@@ -1007,7 +1022,6 @@ multiboot_info_t __init *boot_of_init(
     boot_of_probemem(&mbi);
     boot_of_bootargs(&mbi);
     boot_of_module(r3, r4, &mbi);
-    boot_of_serial();
     boot_of_cpus();
     boot_of_rtas();
     boot_of_pic();



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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.