riscv: Using CSR numbers to access CSRs
Since commit a3182c91ef
("RISC-V: Access CSRs using CSR numbers"),
we should prefer accessing CSRs using their CSR numbers, but there
are several leftovers like sstatus / sptbr we missed.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
This commit is contained in:
@@ -167,7 +167,7 @@ ENTRY(handle_exception)
|
||||
tail do_IRQ
|
||||
1:
|
||||
/* Exceptions run with interrupts enabled */
|
||||
csrs sstatus, SR_SIE
|
||||
csrs CSR_SSTATUS, SR_SIE
|
||||
|
||||
/* Handle syscalls */
|
||||
li t0, EXC_SYSCALL
|
||||
@@ -222,7 +222,7 @@ ret_from_syscall:
|
||||
|
||||
ret_from_exception:
|
||||
REG_L s0, PT_SSTATUS(sp)
|
||||
csrc sstatus, SR_SIE
|
||||
csrc CSR_SSTATUS, SR_SIE
|
||||
andi s0, s0, SR_SPP
|
||||
bnez s0, resume_kernel
|
||||
|
||||
@@ -265,7 +265,7 @@ work_pending:
|
||||
bnez s1, work_resched
|
||||
work_notifysig:
|
||||
/* Handle pending signals and notify-resume requests */
|
||||
csrs sstatus, SR_SIE /* Enable interrupts for do_notify_resume() */
|
||||
csrs CSR_SSTATUS, SR_SIE /* Enable interrupts for do_notify_resume() */
|
||||
move a0, sp /* pt_regs */
|
||||
move a1, s0 /* current_thread_info->flags */
|
||||
tail do_notify_resume
|
||||
|
@@ -23,7 +23,7 @@ ENTRY(__fstate_save)
|
||||
li a2, TASK_THREAD_F0
|
||||
add a0, a0, a2
|
||||
li t1, SR_FS
|
||||
csrs sstatus, t1
|
||||
csrs CSR_SSTATUS, t1
|
||||
frcsr t0
|
||||
fsd f0, TASK_THREAD_F0_F0(a0)
|
||||
fsd f1, TASK_THREAD_F1_F0(a0)
|
||||
@@ -58,7 +58,7 @@ ENTRY(__fstate_save)
|
||||
fsd f30, TASK_THREAD_F30_F0(a0)
|
||||
fsd f31, TASK_THREAD_F31_F0(a0)
|
||||
sw t0, TASK_THREAD_FCSR_F0(a0)
|
||||
csrc sstatus, t1
|
||||
csrc CSR_SSTATUS, t1
|
||||
ret
|
||||
ENDPROC(__fstate_save)
|
||||
|
||||
@@ -67,7 +67,7 @@ ENTRY(__fstate_restore)
|
||||
add a0, a0, a2
|
||||
li t1, SR_FS
|
||||
lw t0, TASK_THREAD_FCSR_F0(a0)
|
||||
csrs sstatus, t1
|
||||
csrs CSR_SSTATUS, t1
|
||||
fld f0, TASK_THREAD_F0_F0(a0)
|
||||
fld f1, TASK_THREAD_F1_F0(a0)
|
||||
fld f2, TASK_THREAD_F2_F0(a0)
|
||||
@@ -101,6 +101,6 @@ ENTRY(__fstate_restore)
|
||||
fld f30, TASK_THREAD_F30_F0(a0)
|
||||
fld f31, TASK_THREAD_F31_F0(a0)
|
||||
fscsr t0
|
||||
csrc sstatus, t1
|
||||
csrc CSR_SSTATUS, t1
|
||||
ret
|
||||
ENDPROC(__fstate_restore)
|
||||
|
@@ -61,7 +61,7 @@ _start_kernel:
|
||||
* floating point in kernel space
|
||||
*/
|
||||
li t0, SR_FS
|
||||
csrc sstatus, t0
|
||||
csrc CSR_SSTATUS, t0
|
||||
|
||||
/* Pick one hart to run the main boot sequence */
|
||||
la a3, hart_lottery
|
||||
|
Reference in New Issue
Block a user