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/2] linux: build start_info_t from devtree only

To: Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
Subject: Re: [XenPPC] [PATCH 2/2] linux: build start_info_t from devtree only
From: Ryan Harper <ryanh@xxxxxxxxxx>
Date: Thu, 8 Feb 2007 07:45:48 -0600
Cc: xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Thu, 08 Feb 2007 05:45:04 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <83633416-C0DB-45DF-837D-ADA18FFFC355@xxxxxxxxxxxxxx>
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: <20070207233448.GH6494@xxxxxxxxxx> <83633416-C0DB-45DF-837D-ADA18FFFC355@xxxxxxxxxxxxxx>
Sender: xen-ppc-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.6+20040907i
* Jimi Xenidis <jimix@xxxxxxxxxxxxxx> [2007-02-08 06:48]:
> some comments
> On Feb 7, 2007, at 6:34 PM, Ryan Harper wrote:
> 
> >This patch cleans up xen_init_early() to construct a start_info_t only
> >from the devtree as Patch1 fixes xen to no longer create a  
> >start_info_t
> >for dom0.
> >
> >-- 
> >Ryan Harper
> >Software Engineer; Linux Technology Center
> >IBM Corp., Austin, Tx
> >(512) 838-9253   T/L: 678-9253
> >ryanh@xxxxxxxxxx
> >
> >
> >diffstat output:
> > setup.c |   33 +++++++++++++++------------------
> > 1 files changed, 15 insertions(+), 18 deletions(-)
> >
> >Signed-off-by: Ryan Harper <ryanh@xxxxxxxxxx>
> >---
> >diff -r a6adf094e08e arch/powerpc/platforms/xen/setup.c
> >--- a/arch/powerpc/platforms/xen/setup.c     Tue Feb 06 13:55:48 2007  
> >-0600
> >+++ b/arch/powerpc/platforms/xen/setup.c     Wed Feb 07 11:33:10 2007  
> >-0600
> >@@ -88,29 +88,26 @@ static void __init xen_init_early(void)
> > static void __init xen_init_early(void)
> > {
> >     struct device_node *xen;
> >-    u64 *si;
> >
> >     DBG(" -> %s\n", __func__);
> >
> >     xen = of_find_node_by_path("/xen");
> >
> >-    si = (u64 *)get_property(xen, "start-info", NULL);
> >-
> >-    /* build our own start_info_t if start-info property is not  
> >present */
> >-    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 = &xsi;
> 
> Please make xsi static in its declaration earlier in the file.

Sure.  And while I wanted to access xsi vai xen_start_info, 
the

   xen_start_info = &xsi 

seemed a bit awkward.  Not sure if I should switch to xsi.  Thoughts?

> >+
> >+    /* fill out start_info_t from devtree */
> >+    if ((char *)get_property(xen, "privileged", NULL))
> >+            xen_start_info->flags |= SIF_PRIVILEGED;
> >+    if ((char *)get_property(xen, "initdomain", NULL))
> >+            xen_start_info->flags |= SIF_INITDOMAIN;
> >+    xen_start_info->shared_info = *((u64 *)get_property(xen,
> >+       "shared-info", NULL));
> >+
> >+    /* only look for store and console for guest domains */
> 
> Hmm, I think you need to look for them always.
> You _at_least_ need the console evtchn, which may not be zero and we  
> create the node/prop anyway.

Hrm, you may be right.  I know that dom0 boots fine with this, but that
maybe because it defaults those values to 0.  I'll kill the if().

> 
> Feel free to "panic()" more:
> NOTE: this is early so a "udbg_printf(); HYPERVISOR_shutdown 
> (SHUTDOWN_poweroff);" will do cuz panic() is no available yet.

Yeah, good idea though none of the messages get out if our shared_info
page isn't setup correctly, which I learned during my testing of this
patch, was the value most likely to get hosed.  

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

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