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-changelog

[Xen-changelog] [xen-unstable] Fix cirrus and rt8139 co-exist issue in n

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Fix cirrus and rt8139 co-exist issue in new qemu-dm.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 26 Jul 2006 16:30:20 +0000
Delivery-date: Wed, 26 Jul 2006 09:33:10 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User chris@xxxxxxxxxxxxxxxxxxxxxxxx
# Node ID 14642f36a201af34b62169dce69ba92e94cff9ee
# Parent  9b7e1ea4c4d2db5bbf59fcb63cc225fca616b4d1
Fix cirrus and rt8139 co-exist issue in new qemu-dm.
The root cause is that if two MMIO spaces are continuous, qemu may misuse
last MMIO space's read/write to handle current request.

Signed-off-by: Yang Xiaowei <xiaowei.yang@xxxxxxxxx>
Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxxx>
---
 tools/ioemu/patches/qemu-target-i386-dm |   81 +++++++++++++++++---------------
 tools/ioemu/target-i386-dm/exec-dm.c    |    2 
 2 files changed, 46 insertions(+), 37 deletions(-)

diff -r 9b7e1ea4c4d2 -r 14642f36a201 tools/ioemu/patches/qemu-target-i386-dm
--- a/tools/ioemu/patches/qemu-target-i386-dm   Wed Jul 26 11:34:12 2006 +0100
+++ b/tools/ioemu/patches/qemu-target-i386-dm   Wed Jul 26 11:47:44 2006 +0100
@@ -1,7 +1,8 @@ diff -r 9af27fed6713 Makefile.target
-diff -r 9af27fed6713 Makefile.target
---- a/Makefile.target  Wed Jun 21 17:46:33 2006 +0100
-+++ b/Makefile.target  Mon Jun 26 15:59:21 2006 +0100
-@@ -57,6 +57,8 @@ QEMU_SYSTEM=qemu-fast
+Index: ioemu/Makefile.target
+===================================================================
+--- ioemu.orig/Makefile.target 2006-07-26 11:45:57.572129351 +0100
++++ ioemu/Makefile.target      2006-07-26 11:45:57.589127569 +0100
+@@ -57,6 +57,8 @@
  QEMU_SYSTEM=qemu-fast
  endif
  
@@ -10,7 +11,7 @@ diff -r 9af27fed6713 Makefile.target
  ifdef CONFIG_USER_ONLY
  PROGS=$(QEMU_USER)
  else
-@@ -274,6 +276,9 @@ OBJS+=gdbstub.o
+@@ -274,6 +276,9 @@
  OBJS+=gdbstub.o
  endif
  
@@ -20,7 +21,7 @@ diff -r 9af27fed6713 Makefile.target
  all: $(PROGS)
  
  $(QEMU_USER): $(OBJS)
-@@ -328,7 +333,7 @@ ifeq ($(TARGET_BASE_ARCH), i386)
+@@ -328,7 +333,7 @@
  ifeq ($(TARGET_BASE_ARCH), i386)
  # Hardware support
  VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
@@ -29,10 +30,11 @@ diff -r 9af27fed6713 Makefile.target
  VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o
  DEFINES += -DHAS_AUDIO
  endif
-diff -r 9af27fed6713 configure
---- a/configure        Wed Jun 21 17:46:33 2006 +0100
-+++ b/configure        Mon Jun 26 15:59:21 2006 +0100
-@@ -359,6 +359,8 @@ if test -z "$target_list" ; then
+Index: ioemu/configure
+===================================================================
+--- ioemu.orig/configure       2006-07-26 11:45:57.573129246 +0100
++++ ioemu/configure    2006-07-26 11:45:57.590127464 +0100
+@@ -359,6 +359,8 @@
      if [ "$user" = "yes" ] ; then
          target_list="i386-user arm-user armeb-user sparc-user ppc-user 
mips-user mipsel-user $target_list"
      fi
@@ -41,10 +43,11 @@ diff -r 9af27fed6713 configure
  else
      target_list=`echo "$target_list" | sed -e 's/,/ /g'`
  fi
-diff -r 9af27fed6713 monitor.c
---- a/monitor.c        Wed Jun 21 17:46:33 2006 +0100
-+++ b/monitor.c        Mon Jun 26 15:59:21 2006 +0100
-@@ -1142,6 +1142,10 @@ static term_cmd_t info_cmds[] = {
+Index: ioemu/monitor.c
+===================================================================
+--- ioemu.orig/monitor.c       2006-07-26 11:45:57.576128931 +0100
++++ ioemu/monitor.c    2006-07-26 11:45:57.591127359 +0100
+@@ -1142,6 +1142,10 @@
        "", "show host USB devices", },
      { "profile", "", do_info_profile,
        "", "show profiling information", },
@@ -55,9 +58,10 @@ diff -r 9af27fed6713 monitor.c
      { NULL, NULL, },
  };
  
-diff -r 9af27fed6713 vl.c
---- a/vl.c     Wed Jun 21 17:46:33 2006 +0100
-+++ b/vl.c     Mon Jun 26 15:59:21 2006 +0100
+Index: ioemu/vl.c
+===================================================================
+--- ioemu.orig/vl.c    2006-07-26 11:45:57.579128617 +0100
++++ ioemu/vl.c 2006-07-26 11:45:57.593127149 +0100
 @@ -87,7 +87,7 @@
  
  #include "exec-all.h"
@@ -67,7 +71,7 @@ diff -r 9af27fed6713 vl.c
  
  //#define DEBUG_UNUSED_IOPORT
  //#define DEBUG_IOPORT
-@@ -4382,7 +4382,7 @@ typedef struct QEMUResetEntry {
+@@ -4382,7 +4382,7 @@
  
  static QEMUResetEntry *first_reset_entry;
  static int reset_requested;
@@ -76,7 +80,7 @@ diff -r 9af27fed6713 vl.c
  static int powerdown_requested;
  
  void qemu_register_reset(QEMUResetHandler *func, void *opaque)
-@@ -4534,6 +4534,7 @@ void main_loop_wait(int timeout)
+@@ -4534,6 +4534,7 @@
                      qemu_get_clock(rt_clock));
  }
  
@@ -84,7 +88,7 @@ diff -r 9af27fed6713 vl.c
  static CPUState *cur_cpu;
  
  int main_loop(void)
-@@ -4608,6 +4609,7 @@ int main_loop(void)
+@@ -4608,6 +4609,7 @@
      cpu_disable_ticks();
      return ret;
  }
@@ -92,9 +96,10 @@ diff -r 9af27fed6713 vl.c
  
  void help(void)
  {
-diff -r 9af27fed6713 vl.h
---- a/vl.h     Wed Jun 21 17:46:33 2006 +0100
-+++ b/vl.h     Mon Jun 26 15:59:21 2006 +0100
+Index: ioemu/vl.h
+===================================================================
+--- ioemu.orig/vl.h    2006-07-26 11:45:39.289045710 +0100
++++ ioemu/vl.h 2006-07-26 11:45:57.594127044 +0100
 @@ -38,6 +38,8 @@
  #include <fcntl.h>
  #include <sys/stat.h>
@@ -104,19 +109,19 @@ diff -r 9af27fed6713 vl.h
  
  #ifndef O_LARGEFILE
  #define O_LARGEFILE 0
-@@ -130,6 +132,11 @@ void qemu_system_powerdown(void);
- #endif
+@@ -131,6 +133,11 @@
  
  void main_loop_wait(int timeout);
-+
+ 
 +extern FILE *logfile;
 +
 +extern int xc_handle;
 +extern int domid;
- 
++
  extern int ram_size;
  extern int bios_size;
-@@ -814,6 +821,7 @@ uint32_t pic_intack_read(PicState2 *s);
+ extern int rtc_utc;
+@@ -814,6 +821,7 @@
  uint32_t pic_intack_read(PicState2 *s);
  void pic_info(void);
  void irq_info(void);
@@ -124,9 +129,10 @@ diff -r 9af27fed6713 vl.h
  
  /* APIC */
  typedef struct IOAPICState IOAPICState;
-diff -r 9af27fed6713 target-i386-dm/cpu.h
---- /dev/null  Thu Jan 01 00:00:00 1970 +0000
-+++ b/target-i386-dm/cpu.h     Mon Jun 26 15:59:21 2006 +0100
+Index: ioemu/target-i386-dm/cpu.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ ioemu/target-i386-dm/cpu.h 2006-07-26 11:45:57.594127044 +0100
 @@ -0,0 +1,86 @@
 +/*
 + * i386 virtual CPU header
@@ -214,9 +220,10 @@ diff -r 9af27fed6713 target-i386-dm/cpu.
 +#include "cpu-all.h"
 +
 +#endif /* CPU_I386_H */
-diff -r 9af27fed6713 target-i386-dm/exec-dm.c
---- /dev/null  Thu Jan 01 00:00:00 1970 +0000
-+++ b/target-i386-dm/exec-dm.c Mon Jun 26 15:59:21 2006 +0100
+Index: ioemu/target-i386-dm/exec-dm.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ ioemu/target-i386-dm/exec-dm.c     2006-07-26 11:46:01.059763730 +0100
 @@ -0,0 +1,512 @@
 +/*
 + *  virtual page mapping and translated block handling
@@ -602,7 +609,7 @@ diff -r 9af27fed6713 target-i386-dm/exec
 +                start = mmio[i].start;
 +                end = mmio[i].start + mmio[i].size;
 +
-+                if ((addr >= start) && (addr <= end)){
++                if ((addr >= start) && (addr < end)){
 +                        return (mmio[i].io_index >> IO_MEM_SHIFT) & 
(IO_MEM_NB_ENTRIES - 1);
 +                }
 +        }
@@ -730,9 +737,10 @@ diff -r 9af27fed6713 target-i386-dm/exec
 +
 +      return;
 +}
-diff -r 9af27fed6713 target-i386-dm/helper2.c
---- /dev/null  Thu Jan 01 00:00:00 1970 +0000
-+++ b/target-i386-dm/helper2.c Mon Jun 26 15:59:21 2006 +0100
+Index: ioemu/target-i386-dm/helper2.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ ioemu/target-i386-dm/helper2.c     2006-07-26 11:45:57.596126835 +0100
 @@ -0,0 +1,464 @@
 +/*
 + *  i386 helpers (without register variable usage)
@@ -1198,9 +1206,10 @@ diff -r 9af27fed6713 target-i386-dm/help
 +    }
 +    return 0;
 +}
-diff -r 9af27fed6713 target-i386-dm/i8259-dm.c
---- /dev/null  Thu Jan 01 00:00:00 1970 +0000
-+++ b/target-i386-dm/i8259-dm.c        Mon Jun 26 15:59:21 2006 +0100
+Index: ioemu/target-i386-dm/i8259-dm.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ ioemu/target-i386-dm/i8259-dm.c    2006-07-26 11:45:57.596126835 +0100
 @@ -0,0 +1,107 @@
 +/* Xen 8259 stub for interrupt controller emulation
 + * 
@@ -1309,18 +1318,20 @@ diff -r 9af27fed6713 target-i386-dm/i825
 +                          void *alt_irq_opaque)
 +{
 +}
-diff -r 9af27fed6713 target-i386-dm/qemu-dm.debug
---- /dev/null  Thu Jan 01 00:00:00 1970 +0000
-+++ b/target-i386-dm/qemu-dm.debug     Mon Jun 26 15:59:21 2006 +0100
+Index: ioemu/target-i386-dm/qemu-dm.debug
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ ioemu/target-i386-dm/qemu-dm.debug 2006-07-26 11:45:57.596126835 +0100
 @@ -0,0 +1,5 @@
 +#!/bin/sh
 +
 +echo $* > /tmp/args
 +echo $DISPLAY >> /tmp/args
 +exec /usr/lib/xen/bin/qemu-dm $*
-diff -r 9af27fed6713 target-i386-dm/qemu-ifup
---- /dev/null  Thu Jan 01 00:00:00 1970 +0000
-+++ b/target-i386-dm/qemu-ifup Mon Jun 26 15:59:21 2006 +0100
+Index: ioemu/target-i386-dm/qemu-ifup
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ ioemu/target-i386-dm/qemu-ifup     2006-07-26 11:45:57.597126730 +0100
 @@ -0,0 +1,10 @@
 +#!/bin/sh
 +
diff -r 9b7e1ea4c4d2 -r 14642f36a201 tools/ioemu/target-i386-dm/exec-dm.c
--- a/tools/ioemu/target-i386-dm/exec-dm.c      Wed Jul 26 11:34:12 2006 +0100
+++ b/tools/ioemu/target-i386-dm/exec-dm.c      Wed Jul 26 11:47:44 2006 +0100
@@ -382,7 +382,7 @@ int iomem_index(target_phys_addr_t addr)
                 start = mmio[i].start;
                 end = mmio[i].start + mmio[i].size;
 
-                if ((addr >= start) && (addr <= end)){
+                if ((addr >= start) && (addr < end)){
                         return (mmio[i].io_index >> IO_MEM_SHIFT) & 
(IO_MEM_NB_ENTRIES - 1);
                 }
         }

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Fix cirrus and rt8139 co-exist issue in new qemu-dm., Xen patchbot-unstable <=