qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v6 00/24] AArch64 preparation patchset


From: Peter Maydell
Subject: [Qemu-devel] [PATCH v6 00/24] AArch64 preparation patchset
Date: Tue, 3 Sep 2013 20:12:00 +0100

This patchset is v6 of the "preparation patchset" that started
off with Alex, was passed to John Rigby and now to me.

*** I plan to commit these patches (except the configs
*** patches which actually enable the aarch64 targets)
*** to target-arm.next unless there are issues raised in
*** review of this series.

We've got 1.6 out of the door now, and I expect the
aarch64-linux-user code to arrive before 1.7, so I think
the time is now right to get these preparatory patches
into master. If there's anything you want to see addressed
before then, please mention it. (My apologies if I've failed
to notice any review comments on earlier versions of the
series; if so, please flag that up.)

With these patches:
 * new target aarch64-linux-user, which will run but
   SIGILL on all instructions
 * new target aarch64-softmmu, which will run all the 32 bit
   CPUs and board models; however there is no 64 bit CPU
   defined so it's a bit pointless except as a demonstration
   that we haven't broken the 32 bit code.

Available in git at:
  git://git.linaro.org/people/pmaydell/qemu-arm.git aarch64

Changes since v5:
 * created a QOM type AArch64CPU -- all 64 bit capable CPUs
   will be subtypes of this. This means we can handle things
   like gdb set/get functions and the cpu state dump function
   by just setting the class function pointers here, which
   is a nice little cleanup.
 * fixed bogus type for sigaltstack ss_flags field
 * added endianness handling for vfp regs in signal struct
 * dropped the aarch64-fpu.xml (it was unused). I have a
   prototype patch which adds it back and actually registers
   it together with some fp reg load/save functions, but I
   don't currently have any way of testing it so it's not
   in this patchset.
 * generalised the workaround for the guest glibc barfing
   if the kernel version reports as <3.8.0 and integrated it
   better with the existing "lie to guest about version" code
 * aarch64-linux-user only provides 64 bit capable CPUs

Changes v4 to v5:
 * various bits of cleanup for style and other minor things
 * a little shuffling and splitting of patches
 * made the 32 bit CPUs work in aarch64-softmmu
 * given aarch64 its own cpu_loop() in linux-user/main.c 
 * made sure NWFPE doesn't sneak into aarch64-linux-user
 * let aarch64 have a nearly clean slate for tb_flags

Note that in general the 'signed-off-by:' lines from people
other than me should be taken to indicate credit/authorship
rather than "I'm happy with this patchset", given that I've
changed the patches as they passed through my hands.

Individual patches have a summary of my changes in the commit.

Alexander Graf (13):
  target-arm: Extract the disas struct to a header file
  target-arm: Export cpu_env
  target-arm: Fix target_ulong/uint32_t confusions
  target-arm: Prepare translation for AArch64 code
  target-arm: Add AArch64 translation stub
  target-arm: Add AArch64 gdbstub support
  linux-user: Don't treat AArch64 cpu names specially
  linux-user: Add syscall number definitions for AArch64
  linux-user: Fix up AArch64 syscall handlers
  linux-user: Implement cpu_set_tls() and cpu_clone_regs() for AArch64
  linux-user: Add AArch64 termbits.h definitions
  linux-user: Add AArch64 support
  configure: Add handling code for AArch64 targets

Andreas Schwab (1):
  linux-user: Add signal handling for AArch64

Peter Maydell (10):
  target-arm: Make '-cpu any' available in linux-user mode only
  target-arm: Abstract out load/store from a vaddr in AArch32
  target-arm: Pass DisasContext* to gen_set_pc_im()
  target-arm: Add new AArch64CPUInfo base class and subclasses
  target-arm: Disable 32 bit CPUs in 64 bit linux-user builds
  linux-user: Add cpu loop for AArch64
  linux-user: Make sure NWFPE code is 32 bit ARM only
  linux-user: Allow targets to specify a minimum uname release
  default-configs: Add config for aarch64-linux-user
  default-configs: Add config for aarch64-softmmu

 configure                              |    7 +-
 default-configs/aarch64-linux-user.mak |    3 +
 default-configs/aarch64-softmmu.mak    |   82 ++++++
 gdb-xml/aarch64-core.xml               |   46 ++++
 linux-user/aarch64/syscall.h           |    9 +
 linux-user/aarch64/syscall_nr.h        |  323 +++++++++++++++++++++++
 linux-user/aarch64/target_cpu.h        |   35 +++
 linux-user/aarch64/target_signal.h     |   29 +++
 linux-user/aarch64/termbits.h          |  220 ++++++++++++++++
 linux-user/cpu-uname.c                 |    3 +-
 linux-user/elfload.c                   |   15 +-
 linux-user/main.c                      |  100 +++++++
 linux-user/qemu.h                      |    5 +-
 linux-user/signal.c                    |  260 +++++++++++++++++++
 linux-user/syscall.c                   |   67 +++--
 linux-user/syscall_defs.h              |   28 +-
 target-arm/Makefile.objs               |    1 +
 target-arm/cpu-qom.h                   |   19 ++
 target-arm/cpu.c                       |   21 +-
 target-arm/cpu.h                       |  138 ++++++++--
 target-arm/cpu64.c                     |  118 +++++++++
 target-arm/gdbstub64.c                 |   73 ++++++
 target-arm/machine.c                   |    8 +-
 target-arm/translate-a64.c             |  139 ++++++++++
 target-arm/translate.c                 |  445 +++++++++++++++++++-------------
 target-arm/translate.h                 |   49 ++++
 26 files changed, 2011 insertions(+), 232 deletions(-)
 create mode 100644 default-configs/aarch64-linux-user.mak
 create mode 100644 default-configs/aarch64-softmmu.mak
 create mode 100644 gdb-xml/aarch64-core.xml
 create mode 100644 linux-user/aarch64/syscall.h
 create mode 100644 linux-user/aarch64/syscall_nr.h
 create mode 100644 linux-user/aarch64/target_cpu.h
 create mode 100644 linux-user/aarch64/target_signal.h
 create mode 100644 linux-user/aarch64/termbits.h
 create mode 100644 target-arm/cpu64.c
 create mode 100644 target-arm/gdbstub64.c
 create mode 100644 target-arm/translate-a64.c
 create mode 100644 target-arm/translate.h

-- 
1.7.9.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]