1/* 2 * Copyright (c) 2021-2023 HPMicro 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 */ 7 #include <rtconfig.h> 8 #include "hpm_csr_regs.h" 9 .section .start, "ax" 10 11 .global _start 12 .type _start,@function 13 14_start: 15 /* Initialize global pointer */ 16 .option push 17 .option norelax 18 la gp, __global_pointer$ 19 la tp, __thread_pointer 20 .option pop 21 22 /* Initialize stack pointer */ 23 la t0, _stack 24 mv sp, t0 25 26#ifdef __nds_execit 27 /* Initialize EXEC.IT table */ 28 la t0, _ITB_BASE_ 29 csrw uitb, t0 30#endif 31 32#ifdef __riscv_flen 33 /* Enable FPU */ 34 li t0, CSR_MSTATUS_FS_MASK 35 csrrs t0, mstatus, t0 36 37 /* Initialize FCSR */ 38 fscsr zero 39#endif 40 /* Disable Vector mode */ 41 csrci CSR_MMISC_CTL, 2 42 /* Initialize trap_entry base */ 43 la t0, SW_handler 44 csrw mtvec, t0 45 46 47 /* System reset handler */ 48 call reset_handler 49 50 /* Infinite loop, if returned accidently */ 511: j 1b 52 53 .weak nmi_handler 54nmi_handler: 551: j 1b 56 57 .global default_irq_handler 58 .weak default_irq_handler 59 .align 2 60default_irq_handler: 611: j 1b 62 63 .macro IRQ_HANDLER irq 64 .weak default_isr_\irq 65 .set default_isr_\irq, default_irq_handler 66 .long default_isr_\irq 67 .endm 68 69#include "vectors.S" 70