Commit 808c4954bfe48da4068c540d667ad379b55a5155

Authored by bellard
1 parent e80cfcfc

big endian ARM support (Lennert Buytenhek)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1180 c046a42c-6fe2-441c-8c8c-71466251a162
.cvsignore
1 1 arm-user
  2 +armeb-user
2 3 config-host.*
3 4 dyngen
4 5 i386
... ...
Changelog
... ... @@ -7,6 +7,7 @@ version 0.6.2:
7 7 - 'pidfile' option
8 8 - .dmg disk image format support (Johannes Schindelin)
9 9 - keymaps support (initial patch by Johannes Schindelin)
  10 + - big endian ARM support (Lennert Buytenhek)
10 11  
11 12 version 0.6.1:
12 13  
... ...
Makefile.target
... ... @@ -13,7 +13,15 @@ LIBS=
13 13 HELPER_CFLAGS=$(CFLAGS)
14 14 DYNGEN=../dyngen$(EXESUF)
15 15 # user emulator name
16   -QEMU_USER=qemu-$(TARGET_ARCH)
  16 +ifeq ($(TARGET_ARCH),arm)
  17 + ifeq ($(TARGET_WORDS_BIGENDIAN),yes)
  18 + QEMU_USER=qemu-armeb
  19 + else
  20 + QEMU_USER=qemu-arm
  21 + endif
  22 +else
  23 + QEMU_USER=qemu-$(TARGET_ARCH)
  24 +endif
17 25 # system emulator name
18 26 ifdef CONFIG_SOFTMMU
19 27 ifeq ($(TARGET_ARCH), i386)
... ...
configure
... ... @@ -27,11 +27,14 @@ ar="ar"
27 27 make="make"
28 28 strip="strip"
29 29 cpu=`uname -m`
30   -target_list="i386-user i386 i386-softmmu arm-user sparc-user ppc-user ppc-softmmu sparc-softmmu"
  30 +target_list="i386-user i386 i386-softmmu arm-user armeb-user sparc-user ppc-user ppc-softmmu sparc-softmmu"
31 31 case "$cpu" in
32 32 i386|i486|i586|i686|i86pc|BePC)
33 33 cpu="i386"
34 34 ;;
  35 + armv4b)
  36 + cpu="armv4b"
  37 + ;;
35 38 armv4l)
36 39 cpu="armv4l"
37 40 ;;
... ... @@ -205,7 +208,7 @@ fi
205 208 else
206 209  
207 210 # if cross compiling, cannot launch a program, so make a static guess
208   -if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k"; then
  211 +if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
209 212 bigendian="yes"
210 213 fi
211 214  
... ... @@ -383,6 +386,9 @@ if test "$cpu" = "i386" ; then
383 386 elif test "$cpu" = "amd64" ; then
384 387 echo "ARCH=amd64" >> $config_mak
385 388 echo "#define HOST_AMD64 1" >> $config_h
  389 +elif test "$cpu" = "armv4b" ; then
  390 + echo "ARCH=arm" >> $config_mak
  391 + echo "#define HOST_ARM 1" >> $config_h
386 392 elif test "$cpu" = "armv4l" ; then
387 393 echo "ARCH=arm" >> $config_mak
388 394 echo "#define HOST_ARM 1" >> $config_h
... ... @@ -482,6 +488,7 @@ config_mak=$target_dir/config.mak
482 488 config_h=$target_dir/config.h
483 489 target_cpu=`echo $target | cut -d '-' -f 1`
484 490 target_bigendian="no"
  491 +[ "$target_cpu" = "armeb" ] && target_bigendian=yes
485 492 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
486 493 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
487 494 target_softmmu="no"
... ... @@ -496,7 +503,7 @@ fi
496 503 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
497 504  
498 505 mkdir -p $target_dir
499   -if test "$target" = "arm-user" ; then
  506 +if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
500 507 mkdir -p $target_dir/nwfpe
501 508 fi
502 509 if test "$target_user_only" = "no" ; then
... ... @@ -519,7 +526,7 @@ if test "$target_cpu" = "i386" ; then
519 526 echo "TARGET_ARCH=i386" >> $config_mak
520 527 echo "#define TARGET_ARCH \"i386\"" >> $config_h
521 528 echo "#define TARGET_I386 1" >> $config_h
522   -elif test "$target_cpu" = "arm" ; then
  529 +elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
523 530 echo "TARGET_ARCH=arm" >> $config_mak
524 531 echo "#define TARGET_ARCH \"arm\"" >> $config_h
525 532 echo "#define TARGET_ARM 1" >> $config_h
... ...
qemu-binfmt-conf.sh
... ... @@ -25,6 +25,7 @@ if [ $cpu != "i386" ] ; then
25 25 fi
26 26 if [ $cpu != "arm" ] ; then
27 27 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
  28 + 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
28 29 fi
29 30 if [ $cpu != "sparc" ] ; then
30 31 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
... ...