From: Davorin Mista <davorin.mista@aggios.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: alistai@xilinx.com, QEMU Developers <qemu-devel@nongnu.org>,
Soren Brinkmann <sorenb@xilinx.com>
Subject: Re: [Qemu-devel] [PATCH] target-arm: Implement AArch64 OSLSR_EL1 sysreg dummy
Date: Wed, 23 Sep 2015 12:12:04 -0700 [thread overview]
Message-ID: <5602F984.2010707@aggios.com> (raw)
In-Reply-To: <CAFEAcA_RxjE=5YgRr+H3VHx-ibybyTJd-5UW90uG6DttoUtJgQ@mail.gmail.com>
On 09/23/2015 09:07 AM, Peter Maydell wrote:
> On 22 September 2015 at 11:35, Davorin Mista <davorin.mista@aggios.com> wrote:
>> Define a dummy version of the AArch64 OSLAR_EL1 system register
>
> Should read "OSLSR_EL1" :-)
Yes, sorry about that :)
>
>> which just ignores reads.
>> Linux reads from this register during its suspend/resume procedure.
>
>> Signed-off-by: Davorin Mista <davorin.mista@aggios.com>
>>
>> ---
>> target-arm/helper.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/target-arm/helper.c b/target-arm/helper.c
>> index 454d666..8431181 100644
>> --- a/target-arm/helper.c
>> +++ b/target-arm/helper.c
>> @@ -3085,6 +3085,10 @@ static const ARMCPRegInfo debug_cp_reginfo[] = {
>> { .name = "OSLAR_EL1", .state = ARM_CP_STATE_BOTH,
>> .cp = 14, .opc0 = 2, .opc1 = 0, .crn = 1, .crm = 0, .opc2 = 4,
>> .access = PL1_W, .type = ARM_CP_NOP },
>> + /* We define a dummy OSLSR_EL1, because Linux reads from it. */
>> + { .name = "OSLSR_EL1", .state = ARM_CP_STATE_BOTH,
>> + .cp = 14, .opc0 = 2, .opc1 = 0, .crn = 1, .crm = 1, .opc2 = 4 ,
>> + .access = PL1_R, .type = ARM_CP_NOP },
>> /* Dummy OSDLR_EL1: 32-bit Linux will read this */
>> { .name = "OSDLR_EL1", .state = ARM_CP_STATE_BOTH,
>> .cp = 14, .opc0 = 2, .opc1 = 0, .crn = 1, .crm = 3, .opc2 = 4,
>> --
>
> I think we need to do better than reads-as-zero here if we're going
> to implement this. The value read here should be 0b10x0, where the
> value of 'x' is 1 on reset and is controlled by what is written to
> the OSLAR_EL1.
>
> This should be pretty straightforward to implement, we just need some
> state for the OSLSR, implement OSLSR as a RO register backed by the
> state field, and change OSLAR to have a write-function which alters
> the OSLSR state field appropriately depending on what's written.
Okay, so we'd add a writefn for OSLAR_EL1, and a readfn for OSLSR_EL1.
Where do you suggest we keep the OSLSR state? Directly in the ARMCPU
struct? As far as I can tell it's the first register from the PTM-A9
block. None of the other debug registers have read/write functions so far.
Also, what type should the register be? Out of the available ARM_CP_xx
types I'm not sure which one(s) apply.
Thanks,
Davorin
>
> thanks
> -- PMM
>
prev parent reply other threads:[~2015-09-23 19:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-22 18:35 [Qemu-devel] [PATCH] target-arm: Implement AArch64 OSLSR_EL1 sysreg dummy Davorin Mista
2015-09-22 21:16 ` Alistair Francis
2015-09-23 16:07 ` Peter Maydell
2015-09-23 19:12 ` Davorin Mista [this message]
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=5602F984.2010707@aggios.com \
--to=davorin.mista@aggios.com \
--cc=alistai@xilinx.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=sorenb@xilinx.com \
/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.