Create a start_info_t structure from devtree if start_info_t is not passed in.
-- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx (512) 838-9253 T/L: 678-9253 [EMAIL PROTECTED] diffstat output: setup.c | 28 +++++++++++++++++++++++++++- 1 files changed, 27 insertions(+), 1 deletion(-) Signed-off-by: Ryan Harper <[EMAIL PROTECTED]> --- diff -r bbf2db4ddf54 arch/powerpc/platforms/xen/setup.c --- a/arch/powerpc/platforms/xen/setup.c Tue Dec 19 09:22:37 2006 -0500 +++ b/arch/powerpc/platforms/xen/setup.c Tue Jan 30 09:43:11 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))) >> PAGE_SHIFT; + xen_start_info->store_evtchn = *((u32 *)get_property(store, + "interrupts", NULL)); + xen_start_info->console.domU.mfn = (*((u64 *)get_property(console, + "reg", NULL))) >> PAGE_SHIFT; + 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@lists.xensource.com http://lists.xensource.com/xen-ppc-devel