Message ID | 20230125142056.18356-4-andy.chiu@sifive.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | riscv: Add vector ISA support | expand |
On Wed, Jan 25, 2023 at 02:20:40PM +0000, Andy Chiu wrote: > From: Greentime Hu <greentime.hu@sifive.com> > > Follow the riscv vector spec to add new csr numbers. > > [guoren@linux.alibaba.com: first porting for new vector related csr] > Acked-by: Guo Ren <guoren@kernel.org> > Co-developed-by: Guo Ren <guoren@linux.alibaba.com> > Signed-off-by: Guo Ren <guoren@linux.alibaba.com> > Co-developed-by: Vincent Chen <vincent.chen@sifive.com> > Signed-off-by: Vincent Chen <vincent.chen@sifive.com> > Signed-off-by: Greentime Hu <greentime.hu@sifive.com> > Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com> > Suggested-by: Vineet Gupta <vineetg@rivosinc.com> This series has gone on for so long, that the tags barely seem to make sense any more. I won't pretend that I understand why quite so many people are required to add a few definitions of the spec! Nor can I be bothered reading 12 revisions on lore to find out why it was done this way... They do seem to align with what is in the latest release, so: Reviewed-by: Conor Dooley <conor.dooley@microchip.com> I also noticed that you missed some tags from the v12 submission. Eg Heiko's here: https://lore.kernel.org/linux-riscv/2096011.OBFZWjSADL@diego/ There's also one for patch 1: https://lore.kernel.org/linux-riscv/5335635.Sb9uPGUboI@diego/ Thanks, Conor.
diff --git a/arch/riscv/include/asm/csr.h b/arch/riscv/include/asm/csr.h index 0e571f6483d9..add51662b7c3 100644 --- a/arch/riscv/include/asm/csr.h +++ b/arch/riscv/include/asm/csr.h @@ -24,16 +24,24 @@ #define SR_FS_CLEAN _AC(0x00004000, UL) #define SR_FS_DIRTY _AC(0x00006000, UL) +#define SR_VS _AC(0x00000600, UL) /* Vector Status */ +#define SR_VS_OFF _AC(0x00000000, UL) +#define SR_VS_INITIAL _AC(0x00000200, UL) +#define SR_VS_CLEAN _AC(0x00000400, UL) +#define SR_VS_DIRTY _AC(0x00000600, UL) + #define SR_XS _AC(0x00018000, UL) /* Extension Status */ #define SR_XS_OFF _AC(0x00000000, UL) #define SR_XS_INITIAL _AC(0x00008000, UL) #define SR_XS_CLEAN _AC(0x00010000, UL) #define SR_XS_DIRTY _AC(0x00018000, UL) +#define SR_FS_VS (SR_FS | SR_VS) /* Vector and Floating-Point Unit */ + #ifndef CONFIG_64BIT -#define SR_SD _AC(0x80000000, UL) /* FS/XS dirty */ +#define SR_SD _AC(0x80000000, UL) /* FS/VS/XS dirty */ #else -#define SR_SD _AC(0x8000000000000000, UL) /* FS/XS dirty */ +#define SR_SD _AC(0x8000000000000000, UL) /* FS/VS/XS dirty */ #endif #ifdef CONFIG_64BIT @@ -297,6 +305,12 @@ #define CSR_MIMPID 0xf13 #define CSR_MHARTID 0xf14 +#define CSR_VSTART 0x8 +#define CSR_VCSR 0xf +#define CSR_VL 0xc20 +#define CSR_VTYPE 0xc21 +#define CSR_VLENB 0xc22 + #ifdef CONFIG_RISCV_M_MODE # define CSR_STATUS CSR_MSTATUS # define CSR_IE CSR_MIE