changeset: 10374:da465f243e12aec3f019624a5b98fef245f4d9d9
tag: tip
user: jimix@xxxxxxxxxxxxxxxxxxxxx
date: Fri May 19 13:08:58 2006 -0400
files: xen/arch/ppc/boot_of.c xen/arch/ppc/domain_build.c
xen/arch/ppc/external.c xen/arch/ppc/mpic_init.c xen/arch/ppc/mpic_init.h
xen/arch/ppc/setup.c
description:
[ppc] make the oftree is global so init drivers can do their own discovery via
__init
diff -r 2b09feae5f887eec534f9f4b12649c139504cfee -r
da465f243e12aec3f019624a5b98fef245f4d9d9 xen/arch/ppc/boot_of.c
--- a/xen/arch/ppc/boot_of.c Fri May 19 13:07:49 2006 -0400
+++ b/xen/arch/ppc/boot_of.c Fri May 19 13:08:58 2006 -0400
@@ -738,7 +738,14 @@ static void __init boot_of_fix_maple(voi
const char *ranges = "ranges";
u32 isa_ranges[3];
const u32 isa_test[] = { 0x00000001, 0xf4000000, 0x00010000 };
- const u32 isa_fixed[] = { 0x1, 0x0, 0x0, 0x0, 0x0, 0x00010000 };
+ const u32 isa_fixed[] = {
+ 0x00000001,
+ 0x00000000,
+ 0x00000000, /* 0xf4000000, matt says this */
+ 0x00000000,
+ 0x00000000,
+ 0x00010000
+ };
isa = of_finddevice("/ht@0/isa@4");
if (isa != OF_FAILURE) {
diff -r 2b09feae5f887eec534f9f4b12649c139504cfee -r
da465f243e12aec3f019624a5b98fef245f4d9d9 xen/arch/ppc/domain_build.c
--- a/xen/arch/ppc/domain_build.c Fri May 19 13:07:49 2006 -0400
+++ b/xen/arch/ppc/domain_build.c Fri May 19 13:08:58 2006 -0400
@@ -26,10 +26,7 @@
#include <xen/compile.h>
#include <asm/processor.h>
#include <asm/papr.h>
-
-extern ulong oftree;
-extern ulong oftree_len;
-extern int ofd_dom0_fixup(struct domain *d, ulong oftree, start_info_t *si,
ulong dst);
+#include "oftree.h"
/* opt_dom0_mem: memory allocated to domain 0. */
diff -r 2b09feae5f887eec534f9f4b12649c139504cfee -r
da465f243e12aec3f019624a5b98fef245f4d9d9 xen/arch/ppc/external.c
--- a/xen/arch/ppc/external.c Fri May 19 13:07:49 2006 -0400
+++ b/xen/arch/ppc/external.c Fri May 19 13:08:58 2006 -0400
@@ -170,9 +170,9 @@ static struct hw_interrupt_type xen_irq
.set_affinity = xen_set_affinity,
};
-void init_IRQ(unsigned long oftree)
-{
- hc_irq = xen_mpic_init(oftree, &xen_irq);
+void init_IRQ(void)
+{
+ hc_irq = xen_mpic_init(&xen_irq);
}
void ack_APIC_irq(void) {
diff -r 2b09feae5f887eec534f9f4b12649c139504cfee -r
da465f243e12aec3f019624a5b98fef245f4d9d9 xen/arch/ppc/mpic_init.c
--- a/xen/arch/ppc/mpic_init.c Fri May 19 13:07:49 2006 -0400
+++ b/xen/arch/ppc/mpic_init.c Fri May 19 13:08:58 2006 -0400
@@ -6,6 +6,7 @@
#include <public/of-devtree.h>
#include <asm/mpic.h>
#include "mpic_init.h"
+#include "oftree.h"
#undef DEBUG
#undef NOSERIAL
@@ -288,15 +289,15 @@ static int find_mpic_canonical_probe(voi
return -1;
}
-static int find_mpic(unsigned long oftree)
+static int find_mpic(void)
{
void *oft_p;
int rc;
- opic_addr = (unsigned long) -1;
+ opic_addr = (unsigned long)-1;
opic_flags = 0;
- oft_p = (void *) oftree;
+ oft_p = (void *)oftree;
rc = find_mpic_simple_probe(oft_p);
if (rc < 0) {
@@ -309,8 +310,7 @@ static int find_mpic(unsigned long oftre
static struct hw_interrupt_type hc_irq;
-struct hw_interrupt_type *xen_mpic_init(
- unsigned long oftree, struct hw_interrupt_type *xen_irq)
+struct hw_interrupt_type *xen_mpic_init(struct hw_interrupt_type *xen_irq)
{
unsigned int isu_size;
unsigned int irq_offset;
@@ -332,7 +332,7 @@ struct hw_interrupt_type *xen_mpic_init(
senses = NULL;
senses_count = 0;
- if (find_mpic(oftree)) {
+ if (find_mpic()) {
printk("%s: ERROR: Could not find open pic.\n", __func__);
return NULL;
}
diff -r 2b09feae5f887eec534f9f4b12649c139504cfee -r
da465f243e12aec3f019624a5b98fef245f4d9d9 xen/arch/ppc/mpic_init.h
--- a/xen/arch/ppc/mpic_init.h Fri May 19 13:07:49 2006 -0400
+++ b/xen/arch/ppc/mpic_init.h Fri May 19 13:08:58 2006 -0400
@@ -2,7 +2,7 @@
#define _MPIC_INIT_H
extern struct hw_interrupt_type *xen_mpic_init(
- unsigned long oftree, struct hw_interrupt_type *xen_irq);
+ struct hw_interrupt_type *xen_irq);
extern int xen_mpic_get_irq(struct cpu_user_regs *regs);
diff -r 2b09feae5f887eec534f9f4b12649c139504cfee -r
da465f243e12aec3f019624a5b98fef245f4d9d9 xen/arch/ppc/setup.c
--- a/xen/arch/ppc/setup.c Fri May 19 13:07:49 2006 -0400
+++ b/xen/arch/ppc/setup.c Fri May 19 13:08:58 2006 -0400
@@ -54,7 +54,6 @@ unsigned long wait_init_idle;
unsigned long wait_init_idle;
unsigned int timebase_freq;
ulong oftree;
-ulong oftree_end;
ulong oftree_len;
cpumask_t cpu_sibling_map[NR_CPUS] __read_mostly;
@@ -158,6 +157,7 @@ static void __init __start_xen(multiboot
ulong heap_size = 0;
ulong bytes = 0;
ulong freemem = (ulong)_end;
+ ulong oftree_end;
memcpy(0, exception_vectors, exception_vectors_end - exception_vectors);
synchronize_caches(0, exception_vectors_end - exception_vectors);
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
|