blob: 44a84ec4e1c37c2425f124be90d782c4af120e77 [file] [log] [blame]
// SPDX-FileCopyrightText: © 2022 Leo Moser <https://codeberg.org/mole99>
// SPDX-License-Identifier: GPL-3.0-or-later
#define CSR_MHARTID 0xF14
.global main
.global _stack
.section .reset_vector
reset_vector:
j start
.section .text
start:
// Clear all registers
addi x1, zero, 0
addi x2, zero, 0
addi x3, zero, 0
addi x4, zero, 0
addi x5, zero, 0
addi x6, zero, 0
addi x7, zero, 0
addi x8, zero, 0
addi x9, zero, 0
addi x10, zero, 0
addi x11, zero, 0
addi x12, zero, 0
addi x13, zero, 0
addi x14, zero, 0
addi x15, zero, 0
addi x16, zero, 0
addi x17, zero, 0
addi x18, zero, 0
addi x19, zero, 0
addi x20, zero, 0
addi x21, zero, 0
addi x22, zero, 0
addi x23, zero, 0
addi x24, zero, 0
addi x25, zero, 0
addi x26, zero, 0
addi x27, zero, 0
addi x28, zero, 0
addi x29, zero, 0
addi x30, zero, 0
addi x31, zero, 0
// Initialize stack pointer
la sp, _stack
// Set the machine hart id as first argument
csrr a0, CSR_MHARTID
// Call main
call main
// Trap
ebreak
// Infinite loop
loop:
j loop