All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/5] target-mips: add UHI semihosting support
@ 2015-06-19 10:08 Leon Alrae
  2015-06-19 10:08 ` [Qemu-devel] [PATCH v3 1/5] include/softmmu-semi.h: Make semihosting support 64-bit clean Leon Alrae
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Leon Alrae @ 2015-06-19 10:08 UTC (permalink / raw)
  To: qemu-devel; +Cc: matthew.fortune, aurelien

This series introduces the Unified Hosting Interface support to QEMU.
Version 3 of this patchset contains just minor cleanup and corrections
in mips-semi.c comparing to previous version.

It has been on the mailing list for a while and given that command line
option responsible for passing semihosting arguments is clarified I'm
planning to apply this patch series to mips-next soon.

Patches apply on top of:
https://lists.gnu.org/archive/html/qemu-devel/2015-06/msg05013.html

Simple example for those who would like to give it a try:

Bare Metal Toolchain containing UHI support can be obtained from:
http://codescape-mips-sdk.imgtec.com/components/toolchain/2015.01-7/

* Source file:
  #include <stdio.h>

  int main(int argc, char *argv[])
  {
      int i;
      for (i = 0; i < argc; i++) {
          printf("argv[%d] = %s\n", i, argv[i]);
      }
      return 0;
  }

* Build:
  $ mips-img-elf-gcc -mips64r6 -mabi=64 -EL -Tuhi64_64.ld main.c

* Run
  $ qemu-system-mips64el -cpu mips64r6-generic -M malta -nographic -kernel a.out -semihosting-config arg=a.out,arg=foo,arg="bar baz"
  argv[0] = a.out
  argv[1] = foo
  argv[2] = bar baz

Regards,
Leon

v3:
* remove useless #ifndef CONFIG_USER_ONLY
* correct errno in copy_stat_to_target(), write_to_file() and read_from_file()

v2:
* use new -semihosting arg option
* if semihosting args are not present, then fall back to old-style
  -kernel/-append
* clean up SDBBP and remove identical code in different branch
* fix overlooked microMIPS SDBBP
* translate errno values which don't map 1:1
* update dates in the licence header
* return -1 and fake errno when lock_user() fails in write_to_file() and
  read_from_file()

Leon Alrae (3):
  target-mips: remove identical code in different branch
  target-mips: add Unified Hosting Interface (UHI) support
  target-mips: convert host to MIPS errno values when required

Maciej W. Rozycki (1):
  include/softmmu-semi.h: Make semihosting support 64-bit clean

Matthew Fortune (1):
  hw/mips: Do not clear BEV for MIPS malta kernel load

 hw/mips/mips_malta.c        |  11 +-
 include/exec/softmmu-semi.h |  13 +-
 qemu-options.hx             |  10 +-
 target-mips/Makefile.objs   |   2 +-
 target-mips/helper.h        |   2 +
 target-mips/mips-semi.c     | 358 ++++++++++++++++++++++++++++++++++++++++++++
 target-mips/translate.c     |  68 +++++----
 7 files changed, 426 insertions(+), 38 deletions(-)
 create mode 100644 target-mips/mips-semi.c

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2015-06-24 16:21 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-19 10:08 [Qemu-devel] [PATCH v3 0/5] target-mips: add UHI semihosting support Leon Alrae
2015-06-19 10:08 ` [Qemu-devel] [PATCH v3 1/5] include/softmmu-semi.h: Make semihosting support 64-bit clean Leon Alrae
2015-06-24 14:24   ` Aurelien Jarno
2015-06-19 10:08 ` [Qemu-devel] [PATCH v3 2/5] hw/mips: Do not clear BEV for MIPS malta kernel load Leon Alrae
2015-06-24 14:29   ` Aurelien Jarno
2015-06-24 16:21     ` Matthew Fortune
2015-06-19 10:08 ` [Qemu-devel] [PATCH v3 3/5] target-mips: remove identical code in different branch Leon Alrae
2015-06-24 14:37   ` Aurelien Jarno
2015-06-24 14:59     ` Leon Alrae
2015-06-19 10:08 ` [Qemu-devel] [PATCH v3 4/5] target-mips: add Unified Hosting Interface (UHI) support Leon Alrae
2015-06-24 14:40   ` Aurelien Jarno
2015-06-19 10:08 ` [Qemu-devel] [PATCH v3 5/5] target-mips: convert host to MIPS errno values when required Leon Alrae
2015-06-24 14:40   ` Aurelien Jarno

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.