[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XenPPC] [PATCH 3/4] linux: create start_info_t from devtree
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 ryanh@xxxxxxxxxx diffstat output: setup.c | 28 +++++++++++++++++++++++++++- 1 files changed, 27 insertions(+), 1 deletion(-) Signed-off-by: Ryan Harper <ryanh@xxxxxxxxxx> --- 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@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ppc-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |