From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-arm@nongnu.org, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 00/13] target/arm: Implement semihosting v2.0
Date: Tue, 10 Sep 2019 15:44:15 +0100 [thread overview]
Message-ID: <20190910144428.32597-1-peter.maydell@linaro.org> (raw)
This patchset implements support in QEMU for v2.0 of the
Arm semihosting specification:
https://developer.arm.com/docs/100863/latest/preface
Specifically, v2.0 has:
* a mechanism for detection of optional extra features,
which works by allowing the guest to open a magic file
named ":semihosting-features" and read some feature
flags from it
* two defined extensions:
- STDOUT_STDERR lets the guest separately open stdout and
stderr via the ":tt" magic filename (v1.0 only allowed
access to stdout)
- EXIT_EXTENDED lets A32/T32 guests exit with a specified
exit status (otherwise only available to A64 guests).
This is something that people have been complaining
about for a long time.
(Technically some of the things we already support, like
having an A64 semihosting interface at all, are also part of
the v2.0 spec.)
This patchset:
* fixes some bugs relating to errnos in some cases
* makes semihosting hand out its own filedescriptors rather
than just passing out host fd numbers
* abstracts out the fd-related semihosting calls so they
indirect via a function table based on the type of the fd
* adds a new type of fd representing the magic file
":semihosting-features" which is used for feature-detection
* implements both of the extensions defined by the v2.0 spec
I've tested this by improving my semihosting test suite:
https://git.linaro.org/people/peter.maydell/semihosting-tests.git/
(if people have other guest binaries that make much use of
semihosting then testing would certainly be welcome.)
thanks
-- PMM
Peter Maydell (13):
target/arm/arm-semi: Capture errno in softmmu version of
set_swi_errno()
target/arm/arm-semi: Always set some kind of errno for failed calls
target/arm/arm-semi: Make semihosting code hand out its own file
descriptors
target/arm/arm-semi: clean up TaskState* usage in non-user-only code
target/arm/arm-semi: Factor out implementation of SYS_CLOSE
target/arm/arm-semi: Factor out implementation of SYS_WRITE
target/arm/arm-semi: Factor out implementation of SYS_READ
target/arm/arm-semi: Factor out implementation of SYS_ISTTY
target/arm/arm-semi: Factor out implementation of SYS_SEEK
target/arm/arm-semi: Factor out implementation of SYS_FLEN
target/arm/arm-semi: Implement support for semihosting feature
detection
target/arm/arm-semi: Implement SH_EXT_STDOUT_STDERR extension
target/arm/arm-semi: Implement SH_EXT_EXIT_EXTENDED extension
target/arm/arm-semi.c | 613 +++++++++++++++++++++++++++++++++++-------
1 file changed, 513 insertions(+), 100 deletions(-)
--
2.20.1
next reply other threads:[~2019-09-10 14:51 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-10 14:44 Peter Maydell [this message]
2019-09-10 14:44 ` [Qemu-devel] [PATCH 01/13] target/arm/arm-semi: Capture errno in softmmu version of set_swi_errno() Peter Maydell
2019-09-12 10:39 ` [Qemu-devel] [Qemu-arm] " Alex Bennée
2019-09-12 10:49 ` Peter Maydell
2019-09-10 14:44 ` [Qemu-devel] [PATCH 02/13] target/arm/arm-semi: Always set some kind of errno for failed calls Peter Maydell
2019-09-12 10:42 ` [Qemu-devel] [Qemu-arm] " Alex Bennée
2019-09-12 10:50 ` Peter Maydell
2019-09-12 11:09 ` Alex Bennée
2019-09-10 14:44 ` [Qemu-devel] [PATCH 03/13] target/arm/arm-semi: Make semihosting code hand out its own file descriptors Peter Maydell
2019-09-12 11:02 ` [Qemu-devel] [Qemu-arm] " Alex Bennée
2019-09-10 14:44 ` [Qemu-devel] [PATCH 04/13] target/arm/arm-semi: clean up TaskState* usage in non-user-only code Peter Maydell
2019-09-12 11:42 ` [Qemu-devel] [Qemu-arm] " Alex Bennée
2019-09-12 11:49 ` Peter Maydell
2019-09-10 14:44 ` [Qemu-devel] [PATCH 05/13] target/arm/arm-semi: Factor out implementation of SYS_CLOSE Peter Maydell
2019-09-12 11:13 ` [Qemu-devel] [Qemu-arm] " Alex Bennée
2019-09-10 14:44 ` [Qemu-devel] [PATCH 06/13] target/arm/arm-semi: Factor out implementation of SYS_WRITE Peter Maydell
2019-09-12 11:18 ` Alex Bennée
2019-09-10 14:44 ` [Qemu-devel] [PATCH 07/13] target/arm/arm-semi: Factor out implementation of SYS_READ Peter Maydell
2019-09-12 11:19 ` [Qemu-devel] [Qemu-arm] " Alex Bennée
2019-09-10 14:44 ` [Qemu-devel] [PATCH 08/13] target/arm/arm-semi: Factor out implementation of SYS_ISTTY Peter Maydell
2019-09-12 11:20 ` [Qemu-devel] [Qemu-arm] " Alex Bennée
2019-09-10 14:44 ` [Qemu-devel] [PATCH 09/13] target/arm/arm-semi: Factor out implementation of SYS_SEEK Peter Maydell
2019-09-12 11:43 ` Alex Bennée
2019-09-10 14:44 ` [Qemu-devel] [PATCH 10/13] target/arm/arm-semi: Factor out implementation of SYS_FLEN Peter Maydell
2019-09-12 11:43 ` [Qemu-devel] [Qemu-arm] " Alex Bennée
2019-09-10 14:44 ` [Qemu-devel] [PATCH 11/13] target/arm/arm-semi: Implement support for semihosting feature detection Peter Maydell
2019-09-10 17:00 ` Peter Maydell
2019-09-12 11:56 ` [Qemu-devel] [Qemu-arm] " Alex Bennée
2019-09-10 14:44 ` [Qemu-devel] [PATCH 12/13] target/arm/arm-semi: Implement SH_EXT_STDOUT_STDERR extension Peter Maydell
2019-09-12 12:05 ` Alex Bennée
2019-09-12 12:09 ` [Qemu-devel] [Qemu-arm] " Peter Maydell
2019-09-10 14:44 ` [Qemu-devel] [PATCH 13/13] target/arm/arm-semi: Implement SH_EXT_EXIT_EXTENDED extension Peter Maydell
2019-09-12 12:07 ` [Qemu-devel] [Qemu-arm] " Alex Bennée
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190910144428.32597-1-peter.maydell@linaro.org \
--to=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).