/* * Copyright (c) 2021 Tokita, Hiroshi * * SPDX-License-Identifier: Apache-2.0 */ #include "nuclei_csr.h" #include #include GTEXT(__nuclei_start) SECTION_FUNC(init, __nuclei_start) /* Disable Global Interrupt */ csrc mstatus, MSTATUS_MIE /* Jump to logical address first to ensure correct operation of RAM region */ la a0, __nuclei_start li a1, 1 slli a1, a1, 29 # 0x2000 0000 bleu a1, a0, _start0800 srli a1, a1, 2 # 0x0800 0000 bleu a1, a0, _start0800 la a0, _start0800 add a0, a0, a1 jr a0 _start0800: /* Set the NMI base to share with mtvec by setting CSR_MMISC_CTL */ li t0, 0x200 csrs CSR_MMISC_CTL, t0 /* Disable performance counter */ csrsi mcountinhibit, 0x5 /* Jump to common start */ tail __start