From 65e8be4fe85e0e4410026a86256682a314ddf173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= Date: Tue, 29 Apr 2025 16:25:44 +0200 Subject: [PATCH] lib: sbi: use 64 bit csr macros MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switch the most obvious cases to new macros. Reviewed-by: Anup Patel Signed-off-by: Radim Krčmář Link: https://lore.kernel.org/r/20250429142549.3673976-4-rkrcmar@ventanamicro.com Signed-off-by: Anup Patel --- lib/sbi/sbi_hart.c | 20 ++++---------------- lib/sbi/sbi_timer.c | 7 +------ 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index eefb03f2..26d746d3 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -86,10 +86,7 @@ static void mstatus_init(struct sbi_scratch *scratch) } if (sbi_hart_has_extension(scratch, SBI_HART_EXT_SMSTATEEN)) { - mstateen_val = csr_read(CSR_MSTATEEN0); -#if __riscv_xlen == 32 - mstateen_val |= ((uint64_t)csr_read(CSR_MSTATEEN0H)) << 32; -#endif + mstateen_val = csr_read64(CSR_MSTATEEN0); mstateen_val |= SMSTATEEN_STATEN; mstateen_val |= SMSTATEEN0_CONTEXT; mstateen_val |= SMSTATEEN0_HSENVCFG; @@ -110,17 +107,11 @@ static void mstatus_init(struct sbi_scratch *scratch) else mstateen_val &= ~SMSTATEEN0_CTR; - csr_write(CSR_MSTATEEN0, mstateen_val); -#if __riscv_xlen == 32 - csr_write(CSR_MSTATEEN0H, mstateen_val >> 32); -#endif + csr_write64(CSR_MSTATEEN0, mstateen_val); } if (sbi_hart_priv_version(scratch) >= SBI_HART_PRIV_VER_1_12) { - menvcfg_val = csr_read(CSR_MENVCFG); -#if __riscv_xlen == 32 - menvcfg_val |= ((uint64_t)csr_read(CSR_MENVCFGH)) << 32; -#endif + menvcfg_val = csr_read64(CSR_MENVCFG); /* Disable double trap by default */ menvcfg_val &= ~ENVCFG_DTE; @@ -156,10 +147,7 @@ static void mstatus_init(struct sbi_scratch *scratch) if (sbi_hart_has_extension(scratch, SBI_HART_EXT_SVADE)) menvcfg_val &= ~ENVCFG_ADUE; - csr_write(CSR_MENVCFG, menvcfg_val); -#if __riscv_xlen == 32 - csr_write(CSR_MENVCFGH, menvcfg_val >> 32); -#endif + csr_write64(CSR_MENVCFG, menvcfg_val); /* Enable S-mode access to seed CSR */ if (sbi_hart_has_extension(scratch, SBI_HART_EXT_ZKR)) { diff --git a/lib/sbi/sbi_timer.c b/lib/sbi/sbi_timer.c index 86e0db5a..998a9a67 100644 --- a/lib/sbi/sbi_timer.c +++ b/lib/sbi/sbi_timer.c @@ -139,12 +139,7 @@ void sbi_timer_event_start(u64 next_event) * the older software to leverage sstc extension on newer hardware. */ if (sbi_hart_has_extension(sbi_scratch_thishart_ptr(), SBI_HART_EXT_SSTC)) { -#if __riscv_xlen == 32 - csr_write(CSR_STIMECMP, next_event & 0xFFFFFFFF); - csr_write(CSR_STIMECMPH, next_event >> 32); -#else - csr_write(CSR_STIMECMP, next_event); -#endif + csr_write64(CSR_STIMECMP, next_event); } else if (timer_dev && timer_dev->timer_event_start) { timer_dev->timer_event_start(next_event); csr_clear(CSR_MIP, MIP_STIP);