From e7daa60575932e76395cef2d19205d43f96983d7 Mon Sep 17 00:00:00 2001 From: ths Date: Mon, 8 Oct 2007 13:38:27 +0000 Subject: [PATCH] Add CRIS configuration bits, by Edgar E. Iglesias. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3368 c046a42c-6fe2-441c-8c8c-71466251a162 --- Makefile.target | 15 +++++++++++++++ configure | 19 ++++++++++++++++--- tests/Makefile | 5 +++++ 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/Makefile.target b/Makefile.target index 6445a7ba47..f31cc788cc 100644 --- a/Makefile.target +++ b/Makefile.target @@ -324,6 +324,15 @@ ifeq ($(TARGET_BASE_ARCH), alpha) LIBOBJS+= op_helper.o helper.o alpha_palcode.o endif +ifeq ($(TARGET_BASE_ARCH), cris) +LIBOBJS+= op_helper.o helper.o +LIBOBJS+= cris-dis.o + +ifndef CONFIG_USER_ONLY +LIBOBJS+= mmu.o +endif +endif + # NOTE: the disassembler code is only needed for debugging LIBOBJS+=disas.o ifeq ($(findstring i386, $(TARGET_ARCH) $(ARCH)),i386) @@ -461,6 +470,12 @@ VL_OBJS+= ide.o gt64xxx.o pckbd.o ps2.o fdc.o mc146818rtc.o usb-uhci.o acpi.o ds VL_OBJS+= piix_pci.o smbus_eeprom.o parallel.o mixeng.o cirrus_vga.o $(SOUND_HW) $(AUDIODRV) CPPFLAGS += -DHAS_AUDIO endif +ifeq ($(TARGET_BASE_ARCH), cris) +VL_OBJS+= etraxfs.o +VL_OBJS+= ptimer.o +VL_OBJS+= etraxfs_timer.o +VL_OBJS+= etraxfs_ser.o +endif ifeq ($(TARGET_BASE_ARCH), sparc) ifeq ($(TARGET_ARCH), sparc64) VL_OBJS+= sun4u.o ide.o pckbd.o ps2.o vga.o apb_pci.o diff --git a/configure b/configure index ebc294ebe8..a8dbf85114 100755 --- a/configure +++ b/configure @@ -53,6 +53,9 @@ case "$cpu" in mips64) cpu="mips64" ;; + cris) + cpu="cris" + ;; s390*) cpu="s390" ;; @@ -497,11 +500,11 @@ fi if test -z "$target_list" ; then # these targets are portable if [ "$softmmu" = "yes" ] ; then - target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc64-softmmu ppcemb-softmmu m68k-softmmu sh4-softmmu" + target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc64-softmmu ppcemb-softmmu m68k-softmmu sh4-softmmu cris-softmmu" fi # the following are Linux specific if [ "$linux_user" = "yes" ] ; then - target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user ppc-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user ppc64-linux-user sh4-linux-user $target_list" + target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user ppc-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user ppc64-linux-user sh4-linux-user cris-linux-user $target_list" fi # the following are Darwin specific if [ "$darwin_user" = "yes" ] ; then @@ -782,6 +785,9 @@ elif test "$cpu" = "mips" ; then elif test "$cpu" = "mips64" ; then echo "ARCH=mips64" >> $config_mak echo "#define HOST_MIPS64 1" >> $config_h +elif test "$cpu" = "cris" ; then + echo "ARCH=cris" >> $config_mak + echo "#define HOST_CRIS 1" >> $config_h elif test "$cpu" = "s390" ; then echo "ARCH=s390" >> $config_mak echo "#define HOST_S390 1" >> $config_h @@ -1053,6 +1059,12 @@ elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then echo "#define TARGET_ARCH \"mips64\"" >> $config_h echo "#define TARGET_MIPS 1" >> $config_h echo "#define TARGET_MIPS64 1" >> $config_h +elif test "$target_cpu" = "cris" ; then + echo "TARGET_ARCH=cris" >> $config_mak + echo "#define TARGET_ARCH \"cris\"" >> $config_h + echo "#define TARGET_CRIS 1" >> $config_h + echo "CONFIG_SOFTFLOAT=yes" >> $config_mak + echo "#define CONFIG_SOFTFLOAT 1" >> $config_h elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then echo "TARGET_ARCH=sh4" >> $config_mak echo "#define TARGET_ARCH \"sh4\"" >> $config_h @@ -1135,8 +1147,9 @@ done # for target in $targets # build tree in object directory if source path is different from current one if test "$source_path_used" = "yes" ; then - DIRS="tests" + DIRS="tests tests/cris" FILES="Makefile tests/Makefile" + FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit" for dir in $DIRS ; do mkdir -p $dir done diff --git a/tests/Makefile b/tests/Makefile index ec3a93ce62..97688b8f0b 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -98,6 +98,11 @@ test2: ../$${arch}-linux-user/qemu-$${arch} $${arch}/ls -l linux-test.c ; \ done + +# testsuite for the CRIS port. +test-cris: + $(MAKE) -C cris check + clean: rm -f *~ *.o test-i386.out test-i386.ref \ test-x86_64.log test-x86_64.ref qruncom $(TESTS) -- 2.11.0