qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 0/5] tile: Can load elf64 tilegx binary successfully


From: Chen Gang S
Subject: [Qemu-devel] [PATCH 0/5] tile: Can load elf64 tilegx binary successfully for linux-user
Date: Fri, 13 Feb 2015 05:14:36 +0800
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

After load elf64 tilegx binary for linux-user, the working flow reaches
1st correct instruction "__start". Next, we shall load all instructions
for qemu using.

This patch is based on Linux kernel tile architecture tilegx 64-bit
implementation, and also based on tilegx architecture ABI reference.

The related test:

  address@hidden qemu]# ./configure --target-list=tilegx-linux-user && make 
  address@hidden qemu]# ./tilegx-linux-user/qemu-tilegx -d all ./test.tgx
  CPU Reset (CPU 0)
  CPU Reset (CPU 0)
  host mmap_min_addr=0x10000
  Reserved 0xe0000 bytes of guest address space
  Relocating guest address space from 0x0000000000010000 to 0x10000
  guest_base  0x0  
  start            end              size             prot 
  0000000000010000-00000000000e0000 00000000000d0000 r-x
  00000000000e0000-00000000000f0000 0000000000010000 rw-
  0000004000000000-0000004000010000 0000000000010000 ---
  0000004000010000-0000004000810000 0000000000800000 rw-
  start_brk   0x0000000000000000
  end_code    0x00000000000d86f7
  start_code  0x0000000000010000
  start_data  0x00000000000e86f8
  end_data    0x00000000000ea208
  start_stack 0x000000400080f250
  brk         0x00000000000ec2b0
  entry       0x0000000000010f60
  PROLOGUE: [size=40]
  0x7fcc44c716f0:  push   %rbp 
  0x7fcc44c716f1:  push   %rbx 
  0x7fcc44c716f2:  push   %r12 
  0x7fcc44c716f4:  push   %r13 
  0x7fcc44c716f6:  push   %r14 
  0x7fcc44c716f8:  push   %r15 
  0x7fcc44c716fa:  mov    %rdi,%r14
  0x7fcc44c716fd:  add    $0xfffffffffffffb78,%rsp
  0x7fcc44c71704:  jmpq   *%rsi
  0x7fcc44c71706:  add    $0x488,%rsp
  0x7fcc44c7170d:  pop    %r15 
  0x7fcc44c7170f:  pop    %r14 
  0x7fcc44c71711:  pop    %r13 
  0x7fcc44c71713:  pop    %r12 
  0x7fcc44c71715:  pop    %rbx 
  0x7fcc44c71716:  pop    %rbp 
  0x7fcc44c71717:  retq 

  Load elf64 tilegx successfully
  reach code start position: [0000000000010f60] _start

  address@hidden qemu]# echo $?
  0
  address@hidden qemu]#


Chen Gang (5):
  target-tile: Firstly add to qemu with minimized features
  linux-user: tile: Firstly add architecture related features
  linux-user: tile: Add target features support within qemu
  linux-user: Support tile architecture in syscall
  linux-user: Support tile architecture in linux-user

 configure                             |   7 +
 default-configs/tilegx-linux-user.mak |   1 +
 include/elf.h                         |   2 +
 linux-user/elfload.c                  |  23 +++
 linux-user/main.c                     |  73 ++++++++
 linux-user/syscall_defs.h             |  34 +++-
 linux-user/tile/syscall.h             |  80 +++++++++
 linux-user/tile/syscall_nr.h          | 327 ++++++++++++++++++++++++++++++++++
 linux-user/tile/target_cpu.h          |  35 ++++
 linux-user/tile/target_signal.h       |  28 +++
 linux-user/tile/target_structs.h      |  48 +++++
 linux-user/tile/termbits.h            | 285 +++++++++++++++++++++++++++++
 target-tile/Makefile.objs             |   1 +
 target-tile/cpu-qom.h                 |  72 ++++++++
 target-tile/cpu.c                     | 159 +++++++++++++++++
 target-tile/cpu.h                     |  84 +++++++++
 target-tile/helper.h                  |   0
 target-tile/translate.c               |  54 ++++++
 18 files changed, 1310 insertions(+), 3 deletions(-)
 create mode 100644 default-configs/tilegx-linux-user.mak
 create mode 100644 linux-user/tile/syscall.h
 create mode 100644 linux-user/tile/syscall_nr.h
 create mode 100644 linux-user/tile/target_cpu.h
 create mode 100644 linux-user/tile/target_signal.h
 create mode 100644 linux-user/tile/target_structs.h
 create mode 100644 linux-user/tile/termbits.h
 create mode 100644 target-tile/Makefile.objs
 create mode 100644 target-tile/cpu-qom.h
 create mode 100644 target-tile/cpu.c
 create mode 100644 target-tile/cpu.h
 create mode 100644 target-tile/helper.h
 create mode 100644 target-tile/translate.c

-- 
1.9.3 (Apple Git-50)



reply via email to

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