diff options
Diffstat (limited to 'arch/riscv/kernel/head.S')
| -rw-r--r-- | arch/riscv/kernel/head.S | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/riscv/kernel/head.S b/arch/riscv/kernel/head.S index 711190d473d4..fe884cd69abd 100644 --- a/arch/riscv/kernel/head.S +++ b/arch/riscv/kernel/head.S | |||
| @@ -44,6 +44,16 @@ ENTRY(_start) | |||
| 44 | amoadd.w a3, a2, (a3) | 44 | amoadd.w a3, a2, (a3) |
| 45 | bnez a3, .Lsecondary_start | 45 | bnez a3, .Lsecondary_start |
| 46 | 46 | ||
| 47 | /* Clear BSS for flat non-ELF images */ | ||
| 48 | la a3, __bss_start | ||
| 49 | la a4, __bss_stop | ||
| 50 | ble a4, a3, clear_bss_done | ||
| 51 | clear_bss: | ||
| 52 | REG_S zero, (a3) | ||
| 53 | add a3, a3, RISCV_SZPTR | ||
| 54 | blt a3, a4, clear_bss | ||
| 55 | clear_bss_done: | ||
| 56 | |||
| 47 | /* Save hart ID and DTB physical address */ | 57 | /* Save hart ID and DTB physical address */ |
| 48 | mv s0, a0 | 58 | mv s0, a0 |
| 49 | mv s1, a1 | 59 | mv s1, a1 |
