mbox series

[v6,0/3] Allow accessing CSR using CSR number

Message ID 20190425083804.11991-1-anup.patel@wdc.com (mailing list archive)
Headers show
Series Allow accessing CSR using CSR number | expand

Message

Anup Patel April 25, 2019, 8:38 a.m. UTC
This patch series adds support to access CSR using both CSR name and
CSR numbers.

Also, we should prefer accessing CSRs using their CSR numbers because:
1. It compiles fine with older toolchains.
2. We can use latest CSR names in #define macro names of CSR numbers
   as-per RISC-V spec. (e.g. sptbr => CSR_SATP, sbadaddr => CSR_STVAL, etc.)
3. We can access newly added CSRs even if toolchain does not recognize
   newly addes CSRs by name. (e.g. BSSTATUS, BSIE, SSIP, etc.)

The patchset can be found in riscv_csr_number_v6 branch of
https//github.com/avpatel/linux.git

Changes since v5:
 - Drop redundant INTERRUPT_CAUSE_FLAG from kernel/irq.c

Changes since v4:
 - Express SCAUSE_IRQ_FLAG in-terms of __riscv_xlen

Changes since v3:
 - Keep old INTERRUPT_xyz defines in kernel/irq.c for PATCH2

Changes since v2:
 - Dropped PATCH1 which added asm/encoding.h
 - Added new PATCH1 which beautifies asm/csr.h by using tabs to
   align macro values

Changes since v1:
 - Squash PATCH2 into cpatch3
 - Added new PATCH2 to add interrupt related SCAUSE defines
   in asm/encoding.h

Anup Patel (3):
  RISC-V: Use tabs to align macro values in asm/csr.h
  RISC-V: Add interrupt related SCAUSE defines in asm/csr.h
  RISC-V: Access CSRs using CSR numbers

 arch/riscv/include/asm/csr.h         | 123 +++++++++++++++++----------
 arch/riscv/include/asm/irqflags.h    |  10 +--
 arch/riscv/include/asm/mmu_context.h |   7 +-
 arch/riscv/kernel/entry.S            |  22 ++---
 arch/riscv/kernel/head.S             |  12 +--
 arch/riscv/kernel/irq.c              |  16 +---
 arch/riscv/kernel/perf_event.c       |   4 +-
 arch/riscv/kernel/smp.c              |   2 +-
 arch/riscv/kernel/traps.c            |   6 +-
 arch/riscv/mm/fault.c                |   6 +-
 10 files changed, 111 insertions(+), 97 deletions(-)

--
2.17.1

Comments

Palmer Dabbelt May 1, 2019, 12:11 a.m. UTC | #1
On Thu, 25 Apr 2019 01:38:24 PDT (-0700), Anup Patel wrote:
> This patch series adds support to access CSR using both CSR name and
> CSR numbers.
> 
> Also, we should prefer accessing CSRs using their CSR numbers because:
> 1. It compiles fine with older toolchains.
> 2. We can use latest CSR names in #define macro names of CSR numbers
>    as-per RISC-V spec. (e.g. sptbr => CSR_SATP, sbadaddr => CSR_STVAL, etc.)
> 3. We can access newly added CSRs even if toolchain does not recognize
>    newly addes CSRs by name. (e.g. BSSTATUS, BSIE, SSIP, etc.)
> 
> The patchset can be found in riscv_csr_number_v6 branch of
> https//github.com/avpatel/linux.git
> 
> Changes since v5:
>  - Drop redundant INTERRUPT_CAUSE_FLAG from kernel/irq.c
> 
> Changes since v4:
>  - Express SCAUSE_IRQ_FLAG in-terms of __riscv_xlen
> 
> Changes since v3:
>  - Keep old INTERRUPT_xyz defines in kernel/irq.c for PATCH2
> 
> Changes since v2:
>  - Dropped PATCH1 which added asm/encoding.h
>  - Added new PATCH1 which beautifies asm/csr.h by using tabs to
>    align macro values
> 
> Changes since v1:
>  - Squash PATCH2 into cpatch3
>  - Added new PATCH2 to add interrupt related SCAUSE defines
>    in asm/encoding.h
> 
> Anup Patel (3):
>   RISC-V: Use tabs to align macro values in asm/csr.h
>   RISC-V: Add interrupt related SCAUSE defines in asm/csr.h
>   RISC-V: Access CSRs using CSR numbers
> 
>  arch/riscv/include/asm/csr.h         | 123 +++++++++++++++++----------
>  arch/riscv/include/asm/irqflags.h    |  10 +--
>  arch/riscv/include/asm/mmu_context.h |   7 +-
>  arch/riscv/kernel/entry.S            |  22 ++---
>  arch/riscv/kernel/head.S             |  12 +--
>  arch/riscv/kernel/irq.c              |  16 +---
>  arch/riscv/kernel/perf_event.c       |   4 +-
>  arch/riscv/kernel/smp.c              |   2 +-
>  arch/riscv/kernel/traps.c            |   6 +-
>  arch/riscv/mm/fault.c                |   6 +-
>  10 files changed, 111 insertions(+), 97 deletions(-)
> 
> --
> 2.17.1

Thanks.  I've added these to for-next with a minor merge conflict, but I think
I managed to avoid screwing it up!