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

Re: [XenPPC] [PATCH 2/3] linux: build start_info_t from devtree

To: xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [XenPPC] [PATCH 2/3] linux: build start_info_t from devtree
From: Ryan Harper <ryanh@xxxxxxxxxx>
Date: Thu, 25 Jan 2007 13:17:59 -0600
Delivery-date: Thu, 25 Jan 2007 11:17:22 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <20070124174122.GN24048@xxxxxxxxxx>
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>
References: <20070124174122.GN24048@xxxxxxxxxx>
Sender: xen-ppc-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.6+20040907i
* Ryan Harper <ryanh@xxxxxxxxxx> [2007-01-24 11:51]:
> This patch adds support to linux:xen_init_early() to create a
> start_info_t structure from properties in /xen/start_info_t if the
> device tree does not have a pointer (/xen/start-info) to a previously
> constructed start_info_t in memory.  

Updated to create start_info_t from /xen/console and /xen/store devtree
values if /xen/start-info isn't present.

-- 
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@xxxxxxxxxx


diffstat output:
 setup.c |   28 +++++++++++++++++++++++++++-
 1 files changed, 27 insertions(+), 1 deletion(-)

Signed-off-by: Ryan Harper <ryanh@xxxxxxxxxx>
---
diff -r ab3b5849331d arch/powerpc/platforms/xen/setup.c
--- a/arch/powerpc/platforms/xen/setup.c        Sun Jan 21 08:36:53 2007 -0500
+++ b/arch/powerpc/platforms/xen/setup.c        Thu Jan 25 10:59:53 2007 -0600
@@ -32,6 +32,7 @@ EXPORT_SYMBOL(HYPERVISOR_shared_info);
 EXPORT_SYMBOL(HYPERVISOR_shared_info);
 
 /* Raw start-of-day parameters from the hypervisor. */
+start_info_t xsi;
 start_info_t *xen_start_info;
 
 extern struct machdep_calls mach_maple_md;
@@ -94,7 +95,32 @@ static void __init xen_init_early(void)
        xen = of_find_node_by_path("/xen");
 
        si = (u64 *)get_property(xen, "start-info", NULL);
-       xen_start_info = (start_info_t *)__va(*si);
+
+       /* build our own start_info_t if prop start-info not found */
+       if (si != NULL ) {
+               xen_start_info = (start_info_t *)__va(*si);
+       } else {
+               struct device_node *console;
+               struct device_node *store;
+
+               console = of_find_node_by_path("/xen/console");
+               store = of_find_node_by_path("/xen/store");
+
+               xen_start_info = &xsi;
+
+               /* fill out start_info_t from devtree */
+               xen_start_info->shared_info = *((u64 *)get_property(xen, 
+                  "shared-info", NULL));
+               xen_start_info->store_mfn = *((u64 *)get_property(store,
+                  "reg", NULL));
+               xen_start_info->store_evtchn = *((u32 *)get_property(store,
+                  "interrupts", NULL));
+               xen_start_info->console.domU.mfn = *((u64 
*)get_property(console,
+                  "reg", NULL));
+               xen_start_info->console.domU.evtchn = *((u32 
*)get_property(console,
+                  "interrupts", NULL));
+       }
+
        HYPERVISOR_shared_info = __va(xen_start_info->shared_info);
 
        udbg_init_xen();

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

<Prev in Thread] Current Thread [Next in Thread>