From: Ian Campbell <ian.campbell@citrix.com>
To: Julien Grall <julien.grall@citrix.com>
Cc: stefano.stabellini@eu.citrix.com, tim@xen.org,
julien.grall@linaro.org, xen-devel@lists.xen.org
Subject: Re: [PATCH 15/19] xen: arm: Annotate registers trapped by MDCR_EL2.TDA
Date: Fri, 17 Apr 2015 13:08:08 +0100 [thread overview]
Message-ID: <1429272488.25195.289.camel@citrix.com> (raw)
In-Reply-To: <55228CF4.4060508@citrix.com>
On Mon, 2015-04-06 at 15:41 +0200, Julien Grall wrote:
> Hi Ian,
>
> On 31/03/2015 12:07, Ian Campbell wrote:
> > Gather the affected handlers in a single place per trap type.
> >
> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> > ---
> > xen/arch/arm/traps.c | 71 ++++++++++++++++++++++++++++++++++++++++++--------
> > 1 file changed, 60 insertions(+), 11 deletions(-)
> >
> > diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> > index 518f047..0ab5e56 100644
> > --- a/xen/arch/arm/traps.c
> > +++ b/xen/arch/arm/traps.c
> > @@ -1816,6 +1816,28 @@ static void do_cp14_32(struct cpu_user_regs *regs, const union hsr hsr)
> > case HSR_CPREG32(DBGOSDLR):
> > return handle_raz_wi(regs, r, cp32.read, hsr, 1);
> >
> > + /*
> > + * MDCR_EL2.TDA
> > + *
> > + * ARMv7 (DDI 0406C.b): B1.14.15
> > + * ARMv8 (DDI 0487A.d): D1-1510 Table D1-59
> > + *
> > + * Unhandled:
> > + * DBGDCCINT
> > + * DBGDTRRXint
> > + * DBGDTRTXint
> > + * DBGWFAR
> > + * DBGDTRTXext
> > + * DBGDTRRXext,
> > + * DBGBXVR<n>
> > + * DBGCLAIMSET
> > + * DBGCLAIMCLR
> > + * DBGAUTHSTATUS
> > + * DBGDEVID
> > + * DBGDEVID1
> > + * DBGDEVID2
> > + * DBGOSECCR
>
> Listing unhandled registers doesn't bring much information.
Actually it does and it was quite deliberate and part of the purpose of
the series. By listing these unhandled registers you can now look at the
docs (in particular the ARMv8 table is very good for this) and see
immediately that every register is either handled or listed as
unhandled.
Without that you need to remember why certain things aren't handled in
order to distinguish them from things which have been accidentally
forgotten.
> Also, it's very confusing that you are mixing AArch64 name with AArch32
> name. The former is used for the traps register while the latter is used
> for register name.
For the traps register where it is similar enough I chose to only list
the Aarch64 name, since that is what we use when we write it. I could
write both I suppose but it didn't seem especially useful.
For the registers themselves it is easier to correlate with the docs if
the name which is relevant to the context (e.g. an arm32 vs arm64
handler). Comparing two lists where one is Aarch64 names and the other
Aarch32 is hard, especially in the dbg registers where the names don't
always correlate especially obviously.
The only change I'd be willing to make here would be to list HDCR.TDA
after MDCR_EL2.TDA.
> > + */
> > case HSR_CPREG32(DBGDIDR):
> > /*
> > * Read-only register. Accessible by EL0 if DBGDSCRext.UDCCdis
> > @@ -1925,6 +1947,17 @@ static void do_cp14_dbg(struct cpu_user_regs *regs, const union hsr hsr)
> > return;
> > }
> >
> > + /*
> > + * MDCR_EL2.TDOSA
>
> Did you mean MDCR_EL2.TDA?
>
> [..]
No, this hunk should have been in the previous patch. Moved.
>
> > case HSR_SYSREG_MDSCR_EL1:
> > - /* - Breakpoints */
>
> [..]
>
> > - /* - Watchpoints */
>
> I think this 2 comments was useful in order to split the list of registers.
In the new code this is just:
HSR_SYSREG_DBG_CASES(DBGBVR):
HSR_SYSREG_DBG_CASES(DBGBCR):
HSR_SYSREG_DBG_CASES(DBGWVR):
HSR_SYSREG_DBG_CASES(DBGWCR):
return handle_raz_wi(regs, x, hsr.sysreg.read, hsr, 1);
I don't think the comments were adding much any more, especially given
we aren't actually doing anything with them.
Ian.
next prev parent reply other threads:[~2015-04-17 12:08 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-31 10:07 [PATCH 00/19] xen: arm: cleanup traps.c Ian Campbell
2015-03-31 10:07 ` [PATCH 01/19] xen: arm: constify union hsr and struct hsr_* where possible Ian Campbell
2015-04-02 10:44 ` Julien Grall
2015-04-02 15:10 ` Julien Grall
2015-03-31 10:07 ` [PATCH 02/19] xen: arm: add missing break Ian Campbell
2015-04-02 15:09 ` Julien Grall
2015-04-16 16:08 ` Ian Campbell
2015-04-17 6:06 ` Julien Grall
2015-03-31 10:07 ` [PATCH 03/19] xen: arm: call inject_undef_exception directly Ian Campbell
2015-04-02 15:08 ` Julien Grall
2015-03-31 10:07 ` [PATCH 04/19] xen: arm: provide and use a handle_raz_wi helper Ian Campbell
2015-04-02 15:14 ` Julien Grall
2015-04-02 15:31 ` Ian Campbell
2015-04-02 15:45 ` Julien Grall
2015-04-02 15:50 ` Ian Campbell
2015-04-02 16:01 ` Ian Campbell
2015-04-02 16:19 ` Ian Campbell
2015-04-03 12:39 ` Julien Grall
2015-04-16 16:35 ` Ian Campbell
2015-03-31 10:07 ` [PATCH 05/19] xen: arm: Add and use r/o+raz and w/o+wi helpers Ian Campbell
2015-04-03 12:51 ` Julien Grall
2015-04-16 16:22 ` Ian Campbell
2015-04-17 6:18 ` Julien Grall
2015-04-17 10:34 ` Ian Campbell
2015-03-31 10:07 ` [PATCH 06/19] xen: arm: add minimum exception level argument to trap handler helpers Ian Campbell
2015-04-03 12:58 ` Julien Grall
2015-04-16 16:24 ` Ian Campbell
2015-03-31 10:07 ` [PATCH 07/19] xen: arm: Annotate trap handler for HCR_EL2.{TWI, TWE, TSC} Ian Campbell
2015-04-03 13:05 ` Julien Grall
2015-04-16 16:34 ` Ian Campbell
2015-04-17 6:26 ` Julien Grall
2015-03-31 10:07 ` [PATCH 08/19] xen: arm: implement handling of ACTLR_EL1 trap Ian Campbell
2015-04-03 13:42 ` Julien Grall
2015-04-16 16:40 ` Ian Campbell
2015-03-31 10:07 ` [PATCH 09/19] xen: arm: Annotate registers trapped by HSR_EL1.TIDCP Ian Campbell
2015-04-03 13:47 ` Julien Grall
2015-03-31 10:07 ` [PATCH 10/19] xen: arm: Annotate registers trapped by CPTR_EL2.TTA Ian Campbell
2015-04-06 11:10 ` Julien Grall
2015-04-16 16:45 ` Ian Campbell
2015-03-31 10:07 ` [PATCH 11/19] xen: arm: Annotate handlers for PCTR_EL2.Tx Ian Campbell
2015-04-06 11:18 ` Julien Grall
2015-04-16 16:53 ` Ian Campbell
2015-04-17 6:31 ` Julien Grall
2015-03-31 10:07 ` [PATCH 12/19] xen: arm: Annotate the handlers for HSTR_EL2.Tx Ian Campbell
2015-04-06 11:25 ` Julien Grall
2015-03-31 10:07 ` [PATCH 13/19] xen: arm: Annotate registers trapped by MDCR_EL2.TDRA Ian Campbell
2015-04-06 13:24 ` Julien Grall
2015-04-17 11:51 ` Ian Campbell
2015-04-21 8:26 ` Julien Grall
2015-04-21 8:42 ` Ian Campbell
2015-03-31 10:07 ` [PATCH 14/19] xen: arm: Annotate registers trapped by MDCR_EL2.TDOSA Ian Campbell
2015-03-31 10:07 ` [PATCH 15/19] xen: arm: Annotate registers trapped by MDCR_EL2.TDA Ian Campbell
2015-04-06 13:41 ` Julien Grall
2015-04-17 12:08 ` Ian Campbell [this message]
2015-03-31 10:07 ` [PATCH 16/19] xen: arm: Annotate registers trapped by MDCR_EL2.TPM and TPMCR Ian Campbell
2015-03-31 10:07 ` [PATCH 17/19] xen: arm: Remove CNTPCT_EL0 trap handling Ian Campbell
2015-04-06 13:52 ` Julien Grall
2015-03-31 10:07 ` [PATCH 18/19] xen: arm: Annotate registers trapped when CNTHCTL_EL2.EL1PCEN == 0 Ian Campbell
2015-04-06 13:58 ` Julien Grall
2015-04-17 12:12 ` Ian Campbell
2015-03-31 10:07 ` [PATCH 19/19] xen: arm: Annotate source of ICC SGI register trapping Ian Campbell
2015-04-06 14:08 ` Julien Grall
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=1429272488.25195.289.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=julien.grall@citrix.com \
--cc=julien.grall@linaro.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tim@xen.org \
--cc=xen-devel@lists.xen.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.