Patchwork [08/12] KVM/MIPS: Enable KVM/MIPS for MIPS targets. Add MIPS GIC code to the build.

login
register
mail settings
Submitter Sanjay Lal
Date March 2, 2013, 3:18 p.m.
Message ID <1362237527-23678-10-git-send-email-sanjayl@kymasys.com>
Download mbox | patch
Permalink /patch/224505/
State New
Headers show

Comments

Sanjay Lal - March 2, 2013, 3:18 p.m.
---
 configure                 | 17 +++++++++++++++--
 hw/mips/Makefile.objs     |  2 +-
 target-mips/Makefile.objs |  1 +
 3 files changed, 17 insertions(+), 3 deletions(-)
Peter Maydell - March 2, 2013, 3:42 p.m.
On 2 March 2013 15:18, Sanjay Lal <sanjayl@kymasys.com> wrote:
> ---
>  configure                 | 17 +++++++++++++++--
>  hw/mips/Makefile.objs     |  2 +-
>  target-mips/Makefile.objs |  1 +
>  3 files changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/configure b/configure
> index bf5970f..5447661 100755
> --- a/configure
> +++ b/configure
> @@ -1370,7 +1370,12 @@ case "$cpu" in
>        bigendian=yes
>      fi
>    ;;
> -  hppa|m68k|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64)
> +  mips|mips64)
> +    if check_define __MIPSEB__; then
> +      bigendian=yes
> +    fi
> +  ;;
> +  hppa|m68k|ppc|ppc64|s390|s390x|sparc|sparc64)
>      bigendian=yes
>    ;;
>  esac
> @@ -3844,6 +3849,9 @@ if test "$linux" = "yes" ; then
>      # For most CPUs the kernel architecture name and QEMU CPU name match.
>      linux_arch="$cpu"
>      ;;
> +  mips|mips64)
> +    symlink "$source_path/linux-headers/asm-mips" linux-headers/asm
> +    ;;

Above the default case, not below it, please. And just set linux_arch
like the other cases; don't do the symlink yourself.

>    esac
>      # For non-KVM architectures we will not have asm headers
>      if [ -e "$source_path/linux-headers/asm-$linux_arch" ]; then
> @@ -4074,7 +4082,7 @@ case "$target_arch2" in
>      echo "CONFIG_NO_XEN=y" >> $config_target_mak
>  esac
>  case "$target_arch2" in
> -  i386|x86_64|ppcemb|ppc|ppc64|s390x)
> +  i386|x86_64|ppcemb|ppc|ppc64|s390x|mipsel|mips)
>      # Make sure the target and host cpus are compatible
>      if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
>        \( "$target_arch2" = "$cpu" -o \
> @@ -4082,6 +4090,8 @@ case "$target_arch2" in
>        \( "$target_arch2" = "ppc64"  -a "$cpu" = "ppc" \) -o \
>        \( "$target_arch2" = "ppc"    -a "$cpu" = "ppc64" \) -o \
>        \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc64" \) -o \
> +      \( "$target_arch2" = "mipsel" -a "$cpu" = "mips" \) -o \
> +      \( "$target_arch2" = "mips" -a "$cpu" = "mips" \) -o \

Pointless check because we've already tested for target_arch2 == cpu.
Or did you mean one of these 'mips' to be 'mipsel' ?

>        \( "$target_arch2" = "x86_64" -a "$cpu" = "i386"   \) -o \
>        \( "$target_arch2" = "i386"   -a "$cpu" = "x86_64" \) \) ; then
>        echo "CONFIG_KVM=y" >> $config_target_mak
> @@ -4285,6 +4295,9 @@ if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
>    *)
>      ldflags="$linker_script $ldflags"
>      ;;
> +  mips|mipsel|mipseb|mips64)
> +    symlink $source_path/linux-headers/asm-mips linux-headers/asm
> +    ;;
>    esac
>  fi

??  Looks like the result of a bad merge conflict resolution.

-- PMM
Andreas Färber - March 4, 2013, 11:27 a.m.
Am 02.03.2013 16:18, schrieb Sanjay Lal:
> ---
>  configure                 | 17 +++++++++++++++--
>  hw/mips/Makefile.objs     |  2 +-
>  target-mips/Makefile.objs |  1 +
>  3 files changed, 17 insertions(+), 3 deletions(-)
> 
> diff --git a/configure b/configure
> index bf5970f..5447661 100755
> --- a/configure
> +++ b/configure
> @@ -1370,7 +1370,12 @@ case "$cpu" in
>        bigendian=yes
>      fi
>    ;;
> -  hppa|m68k|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64)
> +  mips|mips64)
> +    if check_define __MIPSEB__; then
> +      bigendian=yes
> +    fi
> +  ;;
> +  hppa|m68k|ppc|ppc64|s390|s390x|sparc|sparc64)
>      bigendian=yes
>    ;;
>  esac
[snip]

If this is needed it should be a patch on its own. But we already
support mipsel I thought, so I don't understand why the change is needed
without proper commit message.

Andreas

Patch

diff --git a/configure b/configure
index bf5970f..5447661 100755
--- a/configure
+++ b/configure
@@ -1370,7 +1370,12 @@  case "$cpu" in
       bigendian=yes
     fi
   ;;
-  hppa|m68k|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64)
+  mips|mips64)
+    if check_define __MIPSEB__; then
+      bigendian=yes
+    fi
+  ;;
+  hppa|m68k|ppc|ppc64|s390|s390x|sparc|sparc64)
     bigendian=yes
   ;;
 esac
@@ -3844,6 +3849,9 @@  if test "$linux" = "yes" ; then
     # For most CPUs the kernel architecture name and QEMU CPU name match.
     linux_arch="$cpu"
     ;;
+  mips|mips64)
+    symlink "$source_path/linux-headers/asm-mips" linux-headers/asm
+    ;;
   esac
     # For non-KVM architectures we will not have asm headers
     if [ -e "$source_path/linux-headers/asm-$linux_arch" ]; then
@@ -4074,7 +4082,7 @@  case "$target_arch2" in
     echo "CONFIG_NO_XEN=y" >> $config_target_mak
 esac
 case "$target_arch2" in
-  i386|x86_64|ppcemb|ppc|ppc64|s390x)
+  i386|x86_64|ppcemb|ppc|ppc64|s390x|mipsel|mips)
     # Make sure the target and host cpus are compatible
     if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
       \( "$target_arch2" = "$cpu" -o \
@@ -4082,6 +4090,8 @@  case "$target_arch2" in
       \( "$target_arch2" = "ppc64"  -a "$cpu" = "ppc" \) -o \
       \( "$target_arch2" = "ppc"    -a "$cpu" = "ppc64" \) -o \
       \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc64" \) -o \
+      \( "$target_arch2" = "mipsel" -a "$cpu" = "mips" \) -o \
+      \( "$target_arch2" = "mips" -a "$cpu" = "mips" \) -o \
       \( "$target_arch2" = "x86_64" -a "$cpu" = "i386"   \) -o \
       \( "$target_arch2" = "i386"   -a "$cpu" = "x86_64" \) \) ; then
       echo "CONFIG_KVM=y" >> $config_target_mak
@@ -4285,6 +4295,9 @@  if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
   *)
     ldflags="$linker_script $ldflags"
     ;;
+  mips|mipsel|mipseb|mips64)
+    symlink $source_path/linux-headers/asm-mips linux-headers/asm
+    ;;
   esac
 fi
 
diff --git a/hw/mips/Makefile.objs b/hw/mips/Makefile.objs
index 29a5d0d..c013bac 100644
--- a/hw/mips/Makefile.objs
+++ b/hw/mips/Makefile.objs
@@ -1,6 +1,6 @@ 
 obj-y = mips_r4k.o mips_jazz.o mips_malta.o mips_mipssim.o
 obj-y += mips_addr.o mips_timer.o mips_int.o
-obj-y += gt64xxx.o mc146818rtc.o
+obj-y += gt64xxx.o mc146818rtc.o mips_gic.o
 obj-$(CONFIG_FULONG) += bonito.o vt82c686.o mips_fulong2e.o
 
 obj-y := $(addprefix ../,$(obj-y))
diff --git a/target-mips/Makefile.objs b/target-mips/Makefile.objs
index 119c816..1956190 100644
--- a/target-mips/Makefile.objs
+++ b/target-mips/Makefile.objs
@@ -1,2 +1,3 @@ 
 obj-y += translate.o dsp_helper.o op_helper.o lmi_helper.o helper.o cpu.o
 obj-$(CONFIG_SOFTMMU) += machine.o
+obj-$(CONFIG_KVM) += kvm.o