From: Stafford Horne <shorne@gmail.com>
To: openrisc@lists.librecores.org
Subject: [OpenRISC] [Qemu-devel] [PATCH 2/7] target/openrisc: add shutdown logic
Date: Thu, 28 Apr 2022 06:48:27 +0900 [thread overview]
Message-ID: <Ymm6K3DjesAZR0OY@antec> (raw)
In-Reply-To: <CAFEAcA9FZZzzZJaCHrepni+5oUELxW1TtZ3gZHxSUdfKdx+ghQ@mail.gmail.com>
On Wed, Apr 27, 2022 at 07:47:33PM +0100, Peter Maydell wrote:
> On Wed, 27 Apr 2022 at 18:46, Jason A. Donenfeld <Jason@zx2c4.com> wrote:
> >
> > Hey Stafford,
> >
> > On Mon, Apr 17, 2017 at 08:23:51AM +0900, Stafford Horne wrote:
> > > In openrisc simulators we use hooks like 'l.nop 1' to cause the
> > > simulator to exit. Implement that for qemu too.
> > >
> > > Reported-by: Waldemar Brodkorb <wbx@openadk.org>
> > > Signed-off-by: Stafford Horne <shorne@gmail.com>
> >
> > I'm curious as to why this never got merged. I noticed I'm entirely able
> > to shutdown or to reboot (which is mostly what I care about) Linux from
> > OpenRISC. It just hangs.
>
> This kind of thing needs to be either:
> (1) we're modelling real hardware and that real hardware has a
> device or other mechanism guest code can prod to cause a power-off
> or reboot. Then we model that device, and guest code triggers a
> shutdown or reboot exactly as it would on the real hardware.
> (2) there is an architecturally defined ABI for simulators, debug
> stubs, etc, that includes various operations typically including
> an "exit the simulator" function. (Arm semihosting is an example
> of this.) In that case we can implement that functionality,
> guarded by and controlled by the appropriate command line options.
> (This is generally not as nice as option 1, because the guest code
> has to be compiled to have support for semihosting and also because
> turning it on is usually also giving implicit permission for the
> guest code to read and write arbitrary host files, etc.)
>
> Either way, undocumented random hacks aren't a good idea, which
> is why this wasn't merged.
Yes, this is what was brought up before. At that time semihosting was mentioned
and I tried to understand what it was but didn't really understand it as a general
concept. Is this something arm specific?
Since the qemu or1k-sim defines our "simulator", I suspect I could add a
definition of our simulator ABI to the OpenRISC architecture specification. The
simulation uses of l.nop N as ABI hooks is a de-facto standard for OpenRISC.
From the way you describe this now I take it if we document this as a
architecture simulation ABI the patch would be accepted.
-Stafford
WARNING: multiple messages have this Message-ID (diff)
From: Stafford Horne <shorne@gmail.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Jason A. Donenfeld" <Jason@zx2c4.com>,
openrisc@lists.librecores.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/7] target/openrisc: add shutdown logic
Date: Thu, 28 Apr 2022 06:48:27 +0900 [thread overview]
Message-ID: <Ymm6K3DjesAZR0OY@antec> (raw)
In-Reply-To: <CAFEAcA9FZZzzZJaCHrepni+5oUELxW1TtZ3gZHxSUdfKdx+ghQ@mail.gmail.com>
On Wed, Apr 27, 2022 at 07:47:33PM +0100, Peter Maydell wrote:
> On Wed, 27 Apr 2022 at 18:46, Jason A. Donenfeld <Jason@zx2c4.com> wrote:
> >
> > Hey Stafford,
> >
> > On Mon, Apr 17, 2017 at 08:23:51AM +0900, Stafford Horne wrote:
> > > In openrisc simulators we use hooks like 'l.nop 1' to cause the
> > > simulator to exit. Implement that for qemu too.
> > >
> > > Reported-by: Waldemar Brodkorb <wbx@openadk.org>
> > > Signed-off-by: Stafford Horne <shorne@gmail.com>
> >
> > I'm curious as to why this never got merged. I noticed I'm entirely able
> > to shutdown or to reboot (which is mostly what I care about) Linux from
> > OpenRISC. It just hangs.
>
> This kind of thing needs to be either:
> (1) we're modelling real hardware and that real hardware has a
> device or other mechanism guest code can prod to cause a power-off
> or reboot. Then we model that device, and guest code triggers a
> shutdown or reboot exactly as it would on the real hardware.
> (2) there is an architecturally defined ABI for simulators, debug
> stubs, etc, that includes various operations typically including
> an "exit the simulator" function. (Arm semihosting is an example
> of this.) In that case we can implement that functionality,
> guarded by and controlled by the appropriate command line options.
> (This is generally not as nice as option 1, because the guest code
> has to be compiled to have support for semihosting and also because
> turning it on is usually also giving implicit permission for the
> guest code to read and write arbitrary host files, etc.)
>
> Either way, undocumented random hacks aren't a good idea, which
> is why this wasn't merged.
Yes, this is what was brought up before. At that time semihosting was mentioned
and I tried to understand what it was but didn't really understand it as a general
concept. Is this something arm specific?
Since the qemu or1k-sim defines our "simulator", I suspect I could add a
definition of our simulator ABI to the OpenRISC architecture specification. The
simulation uses of l.nop N as ABI hooks is a de-facto standard for OpenRISC.
From the way you describe this now I take it if we document this as a
architecture simulation ABI the patch would be accepted.
-Stafford
next prev parent reply other threads:[~2022-04-27 21:48 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-16 23:23 [OpenRISC] [PATCH 0/7] Openrisc misc features / fixes Stafford Horne
2017-04-16 23:23 ` [Qemu-devel] " Stafford Horne
2017-04-16 23:23 ` [OpenRISC] [PATCH 1/7] target/openrisc: Fixes for memory debugging Stafford Horne
2017-04-16 23:23 ` [Qemu-devel] " Stafford Horne
2017-04-18 7:47 ` [OpenRISC] " Richard Henderson
2017-04-18 7:47 ` Richard Henderson
2017-04-18 14:18 ` [OpenRISC] " Stafford Horne
2017-04-18 14:18 ` Stafford Horne
2017-04-18 15:00 ` [OpenRISC] " Richard Henderson
2017-04-18 15:00 ` Richard Henderson
2017-04-19 20:06 ` [OpenRISC] " Stafford Horne
2017-04-19 20:06 ` Stafford Horne
2017-04-16 23:23 ` [OpenRISC] [PATCH 2/7] target/openrisc: add shutdown logic Stafford Horne
2017-04-16 23:23 ` [Qemu-devel] " Stafford Horne
2017-04-18 7:52 ` [OpenRISC] " Richard Henderson
2017-04-18 7:52 ` Richard Henderson
2017-04-18 14:20 ` [OpenRISC] " Stafford Horne
2017-04-18 14:20 ` Stafford Horne
2017-04-22 10:09 ` [OpenRISC] " Stafford Horne
2017-04-22 10:09 ` Stafford Horne
2017-04-22 15:25 ` [OpenRISC] " Richard Henderson
2017-04-22 15:25 ` Richard Henderson
2017-04-23 21:28 ` [OpenRISC] [PATCH PMR] target/openrisc: Support non-busy idle state using PMR SPR Stafford Horne
2017-04-23 21:54 ` [OpenRISC] [PATCH RFC] " Stafford Horne
2017-04-23 21:54 ` [Qemu-devel] " Stafford Horne
2017-04-25 10:11 ` [OpenRISC] " Richard Henderson
2017-04-25 10:11 ` [Qemu-devel] " Richard Henderson
2017-04-25 14:10 ` [OpenRISC] [PATCH RFC v2] " Stafford Horne
2017-04-25 14:10 ` [Qemu-devel] " Stafford Horne
2017-04-25 14:18 ` [OpenRISC] [PATCH RFC] " Stafford Horne
2017-04-25 14:18 ` [Qemu-devel] " Stafford Horne
2017-04-25 14:51 ` [OpenRISC] " Richard Henderson
2017-04-25 14:51 ` [Qemu-devel] " Richard Henderson
2022-04-27 17:44 ` [OpenRISC] [Qemu-devel] [PATCH 2/7] target/openrisc: add shutdown logic Jason A. Donenfeld
2022-04-27 17:44 ` Jason A. Donenfeld
2022-04-27 18:47 ` [OpenRISC] " Peter Maydell
2022-04-27 18:47 ` Peter Maydell
2022-04-27 21:48 ` Stafford Horne [this message]
2022-04-27 21:48 ` Stafford Horne
2022-04-28 0:04 ` [OpenRISC] " Jason A. Donenfeld
2022-04-28 0:04 ` Jason A. Donenfeld
2022-04-28 11:16 ` [OpenRISC] " Jason A. Donenfeld
2022-04-28 11:16 ` Jason A. Donenfeld
2022-04-28 11:47 ` [OpenRISC] " Stafford Horne
2022-04-28 11:47 ` Stafford Horne
2022-04-28 9:19 ` [OpenRISC] " Peter Maydell
2022-04-28 9:19 ` Peter Maydell
2017-04-16 23:23 ` [OpenRISC] [PATCH 3/7] target/openrisc: add numcores and coreid support Stafford Horne
2017-04-16 23:23 ` [Qemu-devel] " Stafford Horne
2017-04-18 8:01 ` [OpenRISC] " Richard Henderson
2017-04-18 8:01 ` Richard Henderson
2017-04-16 23:23 ` [OpenRISC] [PATCH 4/7] target/openrisc: implement shadow registers Stafford Horne
2017-04-16 23:23 ` [Qemu-devel] " Stafford Horne
2017-04-18 8:11 ` [OpenRISC] " Richard Henderson
2017-04-18 8:11 ` Richard Henderson
2017-04-18 14:26 ` [OpenRISC] " Stafford Horne
2017-04-18 14:26 ` Stafford Horne
2017-04-16 23:23 ` [OpenRISC] [PATCH 5/7] migration: Add VMSTATE_UINTTL_2DARRAY() Stafford Horne
2017-04-16 23:23 ` [Qemu-devel] " Stafford Horne
2017-04-16 23:23 ` [OpenRISC] [PATCH 6/7] migration: Add VMSTATE_STRUCT_2DARRAY() Stafford Horne
2017-04-16 23:23 ` [Qemu-devel] " Stafford Horne
2017-04-16 23:23 ` [OpenRISC] [PATCH 7/7] target/openrisc: Implement full vmstate serialization Stafford Horne
2017-04-16 23:23 ` [Qemu-devel] " Stafford Horne
2017-04-18 8:14 ` [OpenRISC] " Richard Henderson
2017-04-18 8:14 ` Richard Henderson
2017-04-18 14:27 ` [OpenRISC] " Stafford Horne
2017-04-18 14:27 ` Stafford Horne
2017-04-16 23:33 ` [OpenRISC] [Qemu-devel] [PATCH 0/7] Openrisc misc features / fixes no-reply
2017-04-16 23:33 ` no-reply
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=Ymm6K3DjesAZR0OY@antec \
--to=shorne@gmail.com \
--cc=openrisc@lists.librecores.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 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.