All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Mark Brown <broonie@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v1 6/9] arm64/sysreg: Generate definitions for CTR_EL0
Date: Fri, 20 May 2022 16:29:12 +0100	[thread overview]
Message-ID: <YoezyHrh3FnRJB5N@FVFF77S0Q05N> (raw)
In-Reply-To: <YoexubSOmEpZSZRO@FVFF77S0Q05N>

On Fri, May 20, 2022 at 04:20:25PM +0100, Mark Rutland wrote:
> On Tue, May 17, 2022 at 07:22:16PM +0100, Mark Brown wrote:
> > Convert CTR_EL0 to automatic register generation as per DDI0487H.a, no
> > functional change.
> > 
> > Signed-off-by: Mark Brown <broonie@kernel.org>
> > ---
> >  arch/arm64/include/asm/sysreg.h |  1 -
> >  arch/arm64/tools/sysreg         | 15 +++++++++++++++
> >  2 files changed, 15 insertions(+), 1 deletion(-)
> > 
> > diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h
> > index 6240149f9818..c77e2310d189 100644
> > --- a/arch/arm64/include/asm/sysreg.h
> > +++ b/arch/arm64/include/asm/sysreg.h
> > @@ -461,7 +461,6 @@
> >  #define SMIDR_EL1_SMPS_SHIFT	15
> >  #define SMIDR_EL1_AFFINITY_SHIFT	0
> >  
> > -#define SYS_CTR_EL0			sys_reg(3, 3, 0, 0, 1)
> >  #define SYS_DCZID_EL0			sys_reg(3, 3, 0, 0, 7)
> >  
> >  #define SYS_RNDR_EL0			sys_reg(3, 3, 2, 4, 0)
> > diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> > index 47c4c45d5dc3..3971e1fb6af4 100644
> > --- a/arch/arm64/tools/sysreg
> > +++ b/arch/arm64/tools/sysreg
> > @@ -277,6 +277,21 @@ Field	3:1	Level
> >  Field	0	InD
> >  EndSysreg
> >  
> > +Sysreg	CTR_EL0	3	3	0	0	1
> > +Res0	63:38
> > +Field	37:32	TminLine
> > +Res1	31
> > +Res0	30
> > +Field	29	DIC
> > +Field	28	IDC
> > +Field	27:24	CWG
> > +Field	23:20	ERG
> > +Field	19:16	DminLine
> > +Field	15:14	L1Ip
> > +Res0	13:4
> > +Field	3:0	IminLine
> > +EndSysreg
> 
> The values all look right to me.
> 
> The L1Ip field is an enumeration where:
> 
> * 0b00 means VPIPT
> * 0b01 means AIVIVT // reserved in ARMv8
> * 0b10 means VIPT
> * 0b11 means PIPT
> 
> So I reckon we want to describe that as:
> 
> Enum	15:14	L1Ip
> 	0b00	VPIPT
> 	0b01	AIVIVT	# or RESERVED
> 	0b10	VIPT
> 	0b11	PIPT
> EndEnum
> 
> We have some existing definitions that could be removed (and their users
> converted over):
> 
> | arch/arm64/include/asm/cache.h:#define ICACHE_POLICY_VPIPT      0
> | arch/arm64/include/asm/cache.h:#define ICACHE_POLICY_RESERVED   1
> | arch/arm64/include/asm/cache.h:#define ICACHE_POLICY_VIPT       2
> | arch/arm64/include/asm/cache.h:#define ICACHE_POLICY_PIPT       3

Likewise there are CTR_* definitions that should be converted over along with
their users:

arch/arm64/include/asm/cache.h:#define CTR_L1IP_MASK            3
arch/arm64/include/asm/cache.h:#define CTR_DMINLINE_SHIFT       16
arch/arm64/include/asm/cache.h:#define CTR_IMINLINE_SHIFT       0
arch/arm64/include/asm/cache.h:#define CTR_IMINLINE_MASK        0xf
arch/arm64/include/asm/cache.h:#define CTR_ERG_SHIFT            20
arch/arm64/include/asm/cache.h:#define CTR_CWG_SHIFT            24
arch/arm64/include/asm/cache.h:#define CTR_CWG_MASK             15
arch/arm64/include/asm/cache.h:#define CTR_IDC_SHIFT            28
arch/arm64/include/asm/cache.h:#define CTR_DIC_SHIFT            29
arch/arm64/include/asm/cache.h:#define CTR_CACHE_MINLINE_MASK   \
arch/arm64/include/asm/cache.h: (0xf << CTR_DMINLINE_SHIFT | CTR_IMINLINE_MASK << CTR_IMINLINE_SHIFT)
arch/arm64/include/asm/cache.h:#define CTR_L1IP(ctr)            (((ctr) >> CTR_L1IP_SHIFT) & CTR_L1IP_MASK)

Mark.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-05-20 15:30 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-17 18:22 [PATCH v1 0/9] arm64/sysreg: More system register generation Mark Brown
2022-05-17 18:22 ` [PATCH v1 1/9] arm64/sysreg: Generate definitions for CCSIDR2_EL1 Mark Brown
2022-05-20 14:53   ` Mark Rutland
2022-05-17 18:22 ` [PATCH v1 2/9] arm64/sysreg: Generate definitions for CLIDR_EL1 Mark Brown
2022-05-20 14:56   ` Mark Rutland
2022-05-17 18:22 ` [PATCH v1 3/9] arm64/sysreg: Generate definitions for CONTEXTIDR_ELx Mark Brown
2022-05-20 15:01   ` Mark Rutland
2022-05-17 18:22 ` [PATCH v1 4/9] arm64/sysreg: Generate definitions for CPACR_ELx Mark Brown
2022-05-20 15:10   ` Mark Rutland
2022-05-20 15:29     ` Mark Brown
2022-05-17 18:22 ` [PATCH v1 5/9] arm64/sysreg: Generate definitions for CSSELR_EL1 Mark Brown
2022-05-20 15:12   ` Mark Rutland
2022-05-17 18:22 ` [PATCH v1 6/9] arm64/sysreg: Generate definitions for CTR_EL0 Mark Brown
2022-05-20 15:20   ` Mark Rutland
2022-05-20 15:29     ` Mark Rutland [this message]
2022-05-17 18:22 ` [PATCH v1 7/9] arm64/sysreg: Generate definitions for DACR32_EL2 Mark Brown
2022-05-20 15:22   ` Mark Rutland
2022-05-17 18:22 ` [PATCH v1 8/9] arm64/sysreg: Generate definitions for DCZID_EL0 Mark Brown
2022-05-20 15:26   ` Mark Rutland
2022-05-17 18:22 ` [PATCH v1 9/9] arm64/sysreg: Generate definitions for FAR_ELx Mark Brown
2022-05-20 15:32   ` Mark Rutland

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=YoezyHrh3FnRJB5N@FVFF77S0Q05N \
    --to=mark.rutland@arm.com \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=will@kernel.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.