big endian ARM support (Lennert Buytenhek)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1180 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
bellard 2004-12-19 23:33:47 +00:00
parent e80cfcfc88
commit 808c4954bf
5 changed files with 23 additions and 5 deletions

View File

@ -1,4 +1,5 @@
arm-user arm-user
armeb-user
config-host.* config-host.*
dyngen dyngen
i386 i386

View File

@ -7,6 +7,7 @@ version 0.6.2:
- 'pidfile' option - 'pidfile' option
- .dmg disk image format support (Johannes Schindelin) - .dmg disk image format support (Johannes Schindelin)
- keymaps support (initial patch by Johannes Schindelin) - keymaps support (initial patch by Johannes Schindelin)
- big endian ARM support (Lennert Buytenhek)
version 0.6.1: version 0.6.1:

View File

@ -13,7 +13,15 @@ LIBS=
HELPER_CFLAGS=$(CFLAGS) HELPER_CFLAGS=$(CFLAGS)
DYNGEN=../dyngen$(EXESUF) DYNGEN=../dyngen$(EXESUF)
# user emulator name # user emulator name
QEMU_USER=qemu-$(TARGET_ARCH) ifeq ($(TARGET_ARCH),arm)
ifeq ($(TARGET_WORDS_BIGENDIAN),yes)
QEMU_USER=qemu-armeb
else
QEMU_USER=qemu-arm
endif
else
QEMU_USER=qemu-$(TARGET_ARCH)
endif
# system emulator name # system emulator name
ifdef CONFIG_SOFTMMU ifdef CONFIG_SOFTMMU
ifeq ($(TARGET_ARCH), i386) ifeq ($(TARGET_ARCH), i386)

15
configure vendored
View File

@ -27,11 +27,14 @@ ar="ar"
make="make" make="make"
strip="strip" strip="strip"
cpu=`uname -m` cpu=`uname -m`
target_list="i386-user i386 i386-softmmu arm-user sparc-user ppc-user ppc-softmmu sparc-softmmu" target_list="i386-user i386 i386-softmmu arm-user armeb-user sparc-user ppc-user ppc-softmmu sparc-softmmu"
case "$cpu" in case "$cpu" in
i386|i486|i586|i686|i86pc|BePC) i386|i486|i586|i686|i86pc|BePC)
cpu="i386" cpu="i386"
;; ;;
armv4b)
cpu="armv4b"
;;
armv4l) armv4l)
cpu="armv4l" cpu="armv4l"
;; ;;
@ -205,7 +208,7 @@ fi
else else
# if cross compiling, cannot launch a program, so make a static guess # if cross compiling, cannot launch a program, so make a static guess
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k"; then if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
bigendian="yes" bigendian="yes"
fi fi
@ -383,6 +386,9 @@ if test "$cpu" = "i386" ; then
elif test "$cpu" = "amd64" ; then elif test "$cpu" = "amd64" ; then
echo "ARCH=amd64" >> $config_mak echo "ARCH=amd64" >> $config_mak
echo "#define HOST_AMD64 1" >> $config_h echo "#define HOST_AMD64 1" >> $config_h
elif test "$cpu" = "armv4b" ; then
echo "ARCH=arm" >> $config_mak
echo "#define HOST_ARM 1" >> $config_h
elif test "$cpu" = "armv4l" ; then elif test "$cpu" = "armv4l" ; then
echo "ARCH=arm" >> $config_mak echo "ARCH=arm" >> $config_mak
echo "#define HOST_ARM 1" >> $config_h echo "#define HOST_ARM 1" >> $config_h
@ -482,6 +488,7 @@ config_mak=$target_dir/config.mak
config_h=$target_dir/config.h config_h=$target_dir/config.h
target_cpu=`echo $target | cut -d '-' -f 1` target_cpu=`echo $target | cut -d '-' -f 1`
target_bigendian="no" target_bigendian="no"
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
[ "$target_cpu" = "sparc" ] && target_bigendian=yes [ "$target_cpu" = "sparc" ] && target_bigendian=yes
[ "$target_cpu" = "ppc" ] && target_bigendian=yes [ "$target_cpu" = "ppc" ] && target_bigendian=yes
target_softmmu="no" target_softmmu="no"
@ -496,7 +503,7 @@ fi
#echo "Creating $config_mak, $config_h and $target_dir/Makefile" #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
mkdir -p $target_dir mkdir -p $target_dir
if test "$target" = "arm-user" ; then if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
mkdir -p $target_dir/nwfpe mkdir -p $target_dir/nwfpe
fi fi
if test "$target_user_only" = "no" ; then if test "$target_user_only" = "no" ; then
@ -519,7 +526,7 @@ if test "$target_cpu" = "i386" ; then
echo "TARGET_ARCH=i386" >> $config_mak echo "TARGET_ARCH=i386" >> $config_mak
echo "#define TARGET_ARCH \"i386\"" >> $config_h echo "#define TARGET_ARCH \"i386\"" >> $config_h
echo "#define TARGET_I386 1" >> $config_h echo "#define TARGET_I386 1" >> $config_h
elif test "$target_cpu" = "arm" ; then elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
echo "TARGET_ARCH=arm" >> $config_mak echo "TARGET_ARCH=arm" >> $config_mak
echo "#define TARGET_ARCH \"arm\"" >> $config_h echo "#define TARGET_ARCH \"arm\"" >> $config_h
echo "#define TARGET_ARM 1" >> $config_h echo "#define TARGET_ARM 1" >> $config_h

View File

@ -25,6 +25,7 @@ if [ $cpu != "i386" ] ; then
fi fi
if [ $cpu != "arm" ] ; then if [ $cpu != "arm" ] ; then
echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff:/usr/local/bin/qemu-arm:' > /proc/sys/fs/binfmt_misc/register echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff:/usr/local/bin/qemu-arm:' > /proc/sys/fs/binfmt_misc/register
echo ':armeb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff:/usr/local/bin/qemu-armeb:' > /proc/sys/fs/binfmt_misc/register
fi fi
if [ $cpu != "sparc" ] ; then if [ $cpu != "sparc" ] ; then
echo ':sparc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff:/usr/local/bin/qemu-sparc:' > /proc/sys/fs/binfmt_misc/register echo ':sparc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff:/usr/local/bin/qemu-sparc:' > /proc/sys/fs/binfmt_misc/register