Message ID | 20200403041055.27535-1-alistair@popple.id.au (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/2] powerpc: Add base support for ISA v3.1 | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch powerpc/merge (d0c12846a3a24cd6d68b608c866712bc7e471634) |
snowpatch_ozlabs/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 19 lines checked |
snowpatch_ozlabs/needsstable | success | Patch has no Fixes tags |
Hi!
On Fri, Apr 03, 2020 at 03:10:54PM +1100, Alistair Popple wrote:
> +#define PCR_ARCH_300 0x10 /* Architecture 3.00 */
It's called 3.0, not 3.00?
Segher
On Saturday, 4 April 2020 2:32:08 AM AEST Segher Boessenkool wrote: > Hi! > > On Fri, Apr 03, 2020 at 03:10:54PM +1100, Alistair Popple wrote: > > +#define PCR_ARCH_300 0x10 /* Architecture 3.00 */ > > It's called 3.0, not 3.00? Thanks. I'll fix that up. - Alistair > > Segher
On Tuesday, 21 April 2020 11:30:52 AM AEST Alistair Popple wrote: > On Saturday, 4 April 2020 2:32:08 AM AEST Segher Boessenkool wrote: > > Hi! > > > > On Fri, Apr 03, 2020 at 03:10:54PM +1100, Alistair Popple wrote: > > > +#define PCR_ARCH_300 0x10 /* Architecture 3.00 */ > > > > It's called 3.0, not 3.00? > > Thanks. I'll fix that up. Actually we have already defined it upstream as CPU_FTR_ARCH_300 in arch/ powerpc/include/asm/cputable.h and PVR_ARCH_300 in arch/powerpc/include/asm/ reg.h so for consistency we should make it the same here. So either we leave this patch as is or we change it to PCR_ARCH_30 along with the existing upstream #defines. Thoughts? - Alistair > - Alistair > > > Segher
On Tue, Apr 21, 2020 at 11:53 AM Alistair Popple <alistair@popple.id.au> wrote: > > On Tuesday, 21 April 2020 11:30:52 AM AEST Alistair Popple wrote: > > On Saturday, 4 April 2020 2:32:08 AM AEST Segher Boessenkool wrote: > > > Hi! > > > > > > On Fri, Apr 03, 2020 at 03:10:54PM +1100, Alistair Popple wrote: > > > > +#define PCR_ARCH_300 0x10 /* Architecture 3.00 */ > > > > > > It's called 3.0, not 3.00? > > > > Thanks. I'll fix that up. > > Actually we have already defined it upstream as CPU_FTR_ARCH_300 in arch/ > powerpc/include/asm/cputable.h and PVR_ARCH_300 in arch/powerpc/include/asm/ > reg.h so for consistency we should make it the same here. So either we leave > this patch as is or we change it to PCR_ARCH_30 along with the existing > upstream #defines. Thoughts? I used 300 for consistency with the existing three digit definitions when I added the CPU_FTR macro. It doesn't really matter since these are all internal definitions, but I SAY THE BIKESHED SHOULD BE THREE DIGITS LONG. Oliver
Segher Boessenkool <segher@kernel.crashing.org> writes: > Hi! > > On Fri, Apr 03, 2020 at 03:10:54PM +1100, Alistair Popple wrote: >> +#define PCR_ARCH_300 0x10 /* Architecture 3.00 */ > > It's called 3.0, not 3.00? It should actually be 3.0B shouldn't it? cheers
Hi, On Tue, Apr 21, 2020 at 11:58:31AM +1000, Oliver O'Halloran wrote: > On Tue, Apr 21, 2020 at 11:53 AM Alistair Popple <alistair@popple.id.au> wrote: > > > > On Tuesday, 21 April 2020 11:30:52 AM AEST Alistair Popple wrote: > > > On Saturday, 4 April 2020 2:32:08 AM AEST Segher Boessenkool wrote: > > > > Hi! > > > > > > > > On Fri, Apr 03, 2020 at 03:10:54PM +1100, Alistair Popple wrote: > > > > > +#define PCR_ARCH_300 0x10 /* Architecture 3.00 */ > > > > > > > > It's called 3.0, not 3.00? > > > > > > Thanks. I'll fix that up. > > > > Actually we have already defined it upstream as CPU_FTR_ARCH_300 in arch/ > > powerpc/include/asm/cputable.h and PVR_ARCH_300 in arch/powerpc/include/asm/ > > reg.h so for consistency we should make it the same here. So either we leave > > this patch as is or we change it to PCR_ARCH_30 along with the existing > > upstream #defines. Thoughts? > > I used 300 for consistency with the existing three digit definitions > when I added the CPU_FTR macro. It doesn't really matter since these > are all internal definitions, but I SAY THE BIKESHED SHOULD BE THREE > DIGITS LONG. You can do in your own symbols whatever you want, but the comment is refering to an existing real-world version of the ISA, namely, 3.0 :-) (It's important to get names right, and especially in the canonical places, like this one. IMO of course). Segher
diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h index 86efd5eb0389..5cd111c63b5a 100644 --- a/arch/powerpc/include/asm/cputable.h +++ b/arch/powerpc/include/asm/cputable.h @@ -213,6 +213,7 @@ static inline void cpu_feature_keys_init(void) { } #define CPU_FTR_P9_TIDR LONG_ASM_CONST(0x0000800000000000) #define CPU_FTR_P9_TLBIE_ERAT_BUG LONG_ASM_CONST(0x0001000000000000) #define CPU_FTR_P9_RADIX_PREFETCH_BUG LONG_ASM_CONST(0x0002000000000000) +#define CPU_FTR_ARCH_31 LONG_ASM_CONST(0x0004000000000000) #ifndef __ASSEMBLY__ diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h index 5f5c0254ee3a..163773cf011b 100644 --- a/arch/powerpc/include/asm/reg.h +++ b/arch/powerpc/include/asm/reg.h @@ -487,10 +487,11 @@ * determine both the compatibility level which we want to emulate and the * compatibility level which the host is capable of emulating. */ +#define PCR_ARCH_300 0x10 /* Architecture 3.00 */ #define PCR_ARCH_207 0x8 /* Architecture 2.07 */ #define PCR_ARCH_206 0x4 /* Architecture 2.06 */ #define PCR_ARCH_205 0x2 /* Architecture 2.05 */ -#define PCR_LOW_BITS (PCR_ARCH_207 | PCR_ARCH_206 | PCR_ARCH_205) +#define PCR_LOW_BITS (PCR_ARCH_207 | PCR_ARCH_206 | PCR_ARCH_205 | PCR_ARCH_300) #define PCR_MASK ~(PCR_HIGH_BITS | PCR_LOW_BITS) /* PCR Reserved Bits */ #define SPRN_HEIR 0x153 /* Hypervisor Emulated Instruction Register */ #define SPRN_TLBINDEXR 0x154 /* P7 TLB control register */
Newer ISA versions are enabled by clearing all bits in the PCR associated with previous versions of the ISA. Enable ISA v3.1 support by updating the PCR mask to include ISA v3.0. This ensures all PCR bits corresponding to earlier architecture versions get cleared thereby enabling ISA v3.1. Signed-off-by: Alistair Popple <alistair@popple.id.au> --- arch/powerpc/include/asm/cputable.h | 1 + arch/powerpc/include/asm/reg.h | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-)