Skip to content
Snippets Groups Projects
Commit 31f90589 authored by Lukas Auer's avatar Lukas Auer Committed by Andes
Browse files

riscv: do not blindly modify the mstatus CSR


The mstatus CSR includes WPRI (writes preserve values, reads ignore
values) fields and must therefore not be set to zero without preserving
these fields. It is not apparent why mstatus is set to zero here since
it is not required for U-Boot to run. Remove it.

This instruction and others encode zero as an immediate.  RISC-V has the
zero register for this purpose. Replace the immediates with the zero
register.

Signed-off-by: default avatarLukas Auer <lukas.auer@aisec.fraunhofer.de>
Reviewed-by: default avatarBin Meng <bmeng.cn@gmail.com>
Reviewed-by: default avatarRick Chen <rick@andestech.com>
parent 8bfa231c
No related branches found
No related tags found
No related merge requests found
......@@ -38,8 +38,9 @@ _start:
SREG a2, 0(t0)
la t0, trap_entry
csrw mtvec, t0
csrwi mstatus, 0
csrwi mie, 0
/* mask all interrupts */
csrw mie, zero
/*
* Set stackpointer in internal/ex RAM to call board_init_f
......@@ -160,11 +161,10 @@ clear_bss:
add t0, t0, t6 /* t0 <- rel __bss_start in RAM */
la t1, __bss_end /* t1 <- rel __bss_end in FLASH */
add t1, t1, t6 /* t1 <- rel __bss_end in RAM */
li t2, 0x00000000 /* clear */
beq t0, t1, call_board_init_r
clbss_l:
SREG t2, 0(t0) /* clear loop... */
SREG zero, 0(t0) /* clear loop... */
addi t0, t0, REGBYTES
bne t0, t1, clbss_l
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment