[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[XenPPC] [xenppc-unstable] merge



# HG changeset patch
# User Hollis Blanchard <hollisb@xxxxxxxxxx>
# Node ID 81281ae027e1844ef8475cf5eeaffe43a1413752
# Parent  aaa0870863b457be3c243640e10f0097bfc83296
# Parent  517ce601ae9d49a63fd14d61a5f6a060fbf2853c
merge
---
 xen/arch/ppc/Makefile             |   13 ++++++++++---
 xen/arch/ppc/Rules.mk             |    4 +++-
 xen/arch/ppc/boot_of.c            |    2 +-
 xen/arch/ppc/mpic.c               |    4 ++--
 xen/arch/ppc/of_handler/control.c |    2 +-
 xen/arch/ppc/of_handler/devtree.c |   12 ++++++------
 xen/arch/ppc/of_handler/io.c      |    6 +++---
 xen/arch/ppc/of_handler/memory.c  |    4 ++--
 xen/arch/ppc/of_handler/ofh.c     |    4 ++--
 xen/arch/ppc/of_handler/ofh.h     |    4 ++--
 xen/arch/ppc/ofd_fixup.c          |    2 +-
 xen/arch/ppc/papr/tce.c           |    2 +-
 12 files changed, 34 insertions(+), 25 deletions(-)

diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/Makefile
--- a/xen/arch/ppc/Makefile     Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/Makefile     Tue Jun 06 15:03:45 2006 -0500
@@ -44,10 +44,17 @@ obj-y += firmware_image.o
 
 CFLAGS += -Wundef -Wpointer-arith
 CFLAGS += -Wmissing-prototypes -Wmissing-declarations -Wpacked
-CFALGS += -Wredundant-decls
+CFLAGS += -Wredundant-decls
+
+#
+# The following flags are fed to gcc in order to link several
+# objects into a single ELF segment and to not link in any additional
+# objects that gcc would normally like to
+#
+OMAGIC = -N -nodefaultlibs -nostartfiles
 
 firmware: of_handler/built_in.o $(TARGET_SUBARCH)/memcpy.o of-devtree.o
-       $(LD) $(LDFLAGS) -e __ofh_start -N -Ttext=0x0 $^ -o $@
+       $(CC) $(CFLAGS) $(OMAGIC) -e __ofh_start -Wl,-Ttext,0x0 $^ -o $@
 
 firmware_image: firmware
        $(CROSS_COMPILE)objcopy --output-target=binary $< $@
@@ -72,7 +79,7 @@ start.o: boot/start.S
        $(CC) $(CFLAGS) -D__ASSEMBLY__ -c $< -o $@
 
 $(TARGET)-syms: start.o $(ALL_OBJS) xen.lds
-       $(LD) $(LDFLAGS) -N -Ttext 0x2000100 -T xen.lds start.o $(ALL_OBJS) -o 
$@
+       $(CC) $(CFLAGS) $(OMAGIC) -Wl,-Ttext,0x2000100,-T,xen.lds start.o 
$(ALL_OBJS) -o $@
 
 $(TARGET).bin: $(TARGET)-syms
        $(CROSS_COMPILE)objcopy --output-target=binary $< $@
diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/Rules.mk
--- a/xen/arch/ppc/Rules.mk     Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/Rules.mk     Tue Jun 06 15:03:45 2006 -0500
@@ -3,7 +3,7 @@ CC := $(CROSS_COMPILE)gcc
 CC := $(CROSS_COMPILE)gcc
 LD := $(CROSS_COMPILE)ld
 
-CFLAGS := -ffreestanding -fno-builtin -fno-common -fno-strict-aliasing
+CFLAGS := -m64 -ffreestanding -fno-builtin -fno-common -fno-strict-aliasing
 CFLAGS += -iwithprefix include -Wall -Werror -pipe # -Wpadded
 CFLAGS += -I$(BASEDIR)/include
 CFLAGS += -I$(BASEDIR)/include/asm-ppc/mach-generic
@@ -12,6 +12,8 @@ CFLAGS += -msoft-float -O2
 CFLAGS += -msoft-float -O2
 CFLAGS-$(debug) += -O0 # last one wins
 CFLAGS-$(papr_vterm) += -DPAPR_VDEVICE -DPAPR_VTERM
+
+LDFLAGS += -m elf64ppc
 
 #
 # command to embed a binary inside a .o
diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/boot_of.c
--- a/xen/arch/ppc/boot_of.c    Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/boot_of.c    Tue Jun 06 15:03:45 2006 -0500
@@ -62,7 +62,7 @@ extern s32 prom_call(void *arg, ulong rt
 extern s32 prom_call(void *arg, ulong rtas_base, ulong func, ulong msr);
 
 static int __init of_call(
-    const char *service, u32 nargs, u32 nrets, u32 rets[], ...)
+    const char *service, u32 nargs, u32 nrets, s32 rets[], ...)
 {
     int rc;
 
diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/mpic.c
--- a/xen/arch/ppc/mpic.c       Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/mpic.c       Tue Jun 06 15:03:45 2006 -0500
@@ -896,7 +896,7 @@ void __init mpic_init(struct mpic *mpic)
 
 void mpic_irq_set_priority(unsigned int irq, unsigned int pri)
 {
-       int is_ipi;
+       unsigned is_ipi;
        struct mpic *mpic = mpic_find(irq, &is_ipi);
        unsigned long flags;
        u32 reg;
@@ -918,7 +918,7 @@ void mpic_irq_set_priority(unsigned int 
 
 unsigned int mpic_irq_get_priority(unsigned int irq)
 {
-       int is_ipi;
+       unsigned is_ipi;
        struct mpic *mpic = mpic_find(irq, &is_ipi);
        unsigned long flags;
        u32 reg;
diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/of_handler/control.c
--- a/xen/arch/ppc/of_handler/control.c Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/of_handler/control.c Tue Jun 06 15:03:45 2006 -0500
@@ -48,7 +48,7 @@ ofh_exit(u32 nargs __attribute__ ((unuse
         ulong b)
 {
     static const char msg[] = "OFH: exit method called\n";
-    u32 dummy;
+    s32 dummy;
 
     ofh_cons_write(DRELA(&msg[0], b), sizeof (msg), &dummy);
 
diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/of_handler/devtree.c
--- a/xen/arch/ppc/of_handler/devtree.c Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/of_handler/devtree.c Tue Jun 06 15:03:45 2006 -0500
@@ -26,7 +26,7 @@ ofh_peer(u32 nargs, u32 nrets, s32 argp[
     if (nargs == 1) {
         if (nrets == 1) {
             ofdn_t ph = argp[0];
-            u32 *sib_ph = &retp[0];
+            s32 *sib_ph = &retp[0];
             void *mem = ofd_mem(b);
 
             *sib_ph = ofd_node_peer(mem, ph);
@@ -42,7 +42,7 @@ ofh_child(u32 nargs, u32 nrets, s32 argp
     if (nargs == 1) {
         if (nrets == 1) {
             ofdn_t ph = argp[0];
-            u32 *ch_ph = &retp[0];
+            s32 *ch_ph = &retp[0];
             void *mem = ofd_mem(b);
 
             *ch_ph = ofd_node_child(mem, ph);
@@ -58,7 +58,7 @@ ofh_parent(u32 nargs, u32 nrets, s32 arg
     if (nargs == 1) {
         if (nrets == 1) {
             ofdn_t ph = argp[0];
-            u32 *parent_ph = &retp[0];
+            s32 *parent_ph = &retp[0];
             void *mem = ofd_mem(b);
 
             *parent_ph = ofd_node_parent(mem, ph);
@@ -76,7 +76,7 @@ ofh_instance_to_package(u32 nargs, u32 n
         if (nrets == 1) {
             struct ofh_ihandle *ih =
                 (struct ofh_ihandle *)(ulong)argp[0];
-            u32 *p = &retp[0];
+            s32 *p = &retp[0];
 
             *p = (s32)ih->ofi_node;
             return OF_SUCCESS;
@@ -173,7 +173,7 @@ ofh_canon(u32 nargs, u32 nrets, s32 argp
             const char *dev_spec = (const char *)(ulong)argp[0];
             char *buf = (char *)(ulong)argp[1];
             u32 sz = argp[2];
-            u32 *len = &retp[0];
+            s32 *len = &retp[0];
             void *mem = ofd_mem(b);
             ofdn_t ph;
 
@@ -227,7 +227,7 @@ ofh_instance_to_path(u32 nargs, u32 nret
                 (struct ofh_ihandle *)((ulong)argp[0]);
             char *buf = (char *)(ulong)argp[1];
             u32 sz = argp[2];
-            u32 *len = &retp[0];
+            s32 *len = &retp[0];
             ofdn_t ph;
             void *mem = ofd_mem(b);
 
diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/of_handler/io.c
--- a/xen/arch/ppc/of_handler/io.c      Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/of_handler/io.c      Tue Jun 06 15:03:45 2006 -0500
@@ -25,7 +25,7 @@ ofh_open(u32 nargs, u32 nrets, s32 argp[
     if (nargs == 1) {
         if (nrets == 1) {
             const char *devspec = (const char *)(ulong)argp[0];
-            u32 *ih = &retp[0];
+            s32 *ih = &retp[0];
             ofdn_t p;
             void *mem = ofd_mem(b);
 
@@ -72,7 +72,7 @@ ofh_read(u32 nargs, u32 nrets, s32 argp[
             if (ih->ofi_read != NULL) {
                 void *addr = (void *)(ulong)argp[1];
                 u32 sz = argp[2];
-                u32 *actual = &retp[0];
+                s32 *actual = &retp[0];
                 void *f = ih->ofi_read;
 
                 if (f != 0) {
@@ -96,7 +96,7 @@ ofh_write(u32 nargs, u32 nrets, s32 argp
             if (ih->ofi_write != NULL) {
                 void *addr = (void *)(ulong)argp[1];
                 u32 sz = argp[2];
-                u32 *actual = &retp[0];
+                s32 *actual = &retp[0];
                 void *f = ih->ofi_write;
 
                 if (f != 0) {
diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/of_handler/memory.c
--- a/xen/arch/ppc/of_handler/memory.c  Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/of_handler/memory.c  Tue Jun 06 15:03:45 2006 -0500
@@ -25,7 +25,7 @@ static struct of_malloc_s claimed[64];
 static struct of_malloc_s claimed[64];
 
 static s32
-claim(ulong b, u32 virt, u32 size, u32 align, u32 *baseaddr)
+claim(ulong b, u32 virt, u32 size, u32 align, s32 *baseaddr)
 {
     struct of_malloc_s *cp;
     u32 i;
@@ -76,7 +76,7 @@ ofh_claim(u32 nargs, u32 nrets, s32 argp
             u32 virt = argp[0];
             u32 size = argp[1];
             u32 align = argp[2];
-            u32 *baseaddr = &retp[0];
+            s32 *baseaddr = &retp[0];
 
             return claim(b, virt, size, align, baseaddr);
         }
diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/of_handler/ofh.c
--- a/xen/arch/ppc/of_handler/ofh.c     Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/of_handler/ofh.c     Tue Jun 06 15:03:45 2006 -0500
@@ -67,7 +67,7 @@ assprint(const char *expr, const char *f
     a[13] = '\n';
     a[14] = '\n';
 
-    u32 actual;
+    s32 actual;
     u32 t = 1;
     volatile u32 *tp = &t;
 
@@ -319,7 +319,7 @@ ofh_handler(struct ofh_args *args, ulong
 
         if ((ulong)ofd_mem(b) < (ulong)_end + b) {
             static const char msg[] = "PANIC: OFD and BSS collide\n";
-            u32 dummy;
+            s32 dummy;
 
             ofh_cons_write(DRELA(&msg[0], b), sizeof (msg), &dummy);
             for (;;);
diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/of_handler/ofh.h
--- a/xen/arch/ppc/of_handler/ofh.h     Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/of_handler/ofh.h     Tue Jun 06 15:03:45 2006 -0500
@@ -124,10 +124,10 @@ extern s32 ofh_cons_write(const void *bu
 extern s32 ofh_cons_write(const void *buf, u32 count, s32 *actual);
 extern s32 ofh_cons_close(void);
 extern s32 ofh_handler(struct ofh_args *args, ulong ifh_base);
-extern s32 leap(u32 nargs, u32 nrets, u32 args[], u32 rets[],
+extern s32 leap(u32 nargs, u32 nrets, s32 args[], s32 rets[],
                 ulong ba, void *f);
 
-extern s32 io_leap(s32 chan, void *buf, u32 sz, u32 *actual,
+extern s32 io_leap(s32 chan, void *buf, u32 sz, s32 *actual,
                 ulong ba, void *f);
 
 extern void ofh_vty_init(ofdn_t chosen, ulong b);
diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/ofd_fixup.c
--- a/xen/arch/ppc/ofd_fixup.c  Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/ofd_fixup.c  Tue Jun 06 15:03:45 2006 -0500
@@ -484,7 +484,7 @@ int ofd_dom0_fixup(struct domain *d, ulo
     ofd_cpus_props(m, d);
 
     printk("Add /chosen props\n");
-    ofd_chosen_props(m, si->cmd_line);
+    ofd_chosen_props(m, (char *)si->cmd_line);
 
     printk("fix /memory@0 props\n");
     ofd_memory_props(m, d, eoload);
diff -r aaa0870863b4 -r 81281ae027e1 xen/arch/ppc/papr/tce.c
--- a/xen/arch/ppc/papr/tce.c   Tue Jun 06 14:37:46 2006 -0500
+++ b/xen/arch/ppc/papr/tce.c   Tue Jun 06 15:03:45 2006 -0500
@@ -70,7 +70,7 @@ static void h_stuff_tce(struct cpu_user_
 #ifdef DEBUG
     printk("%s: liobn: 0x%x ioba: 0x%lx tce: 0x%"
             PRIx64"(0x%"PRIx64") count: %lu\n",
-            __func__, liobn, ioba, tce.tce_dword, tce.tce_bits.tce_rpn,
+           __func__, liobn, ioba, tce.tce_dword, (long)tce.tce_bits.tce_rpn,
             count);
 #endif
     regs->gprs[3] = H_Function;

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.