copy
This commit is contained in:
35
firmware/start.S
Normal file
35
firmware/start.S
Normal file
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (c) 2020 Great Scott Gadgets <info@greatscottgadgets.com>
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
.section .init, "ax"
|
||||
|
||||
.global _start
|
||||
_start:
|
||||
.cfi_startproc
|
||||
.cfi_undefined ra
|
||||
|
||||
/* Set up our global pointer. */
|
||||
.option push
|
||||
.option norelax
|
||||
la gp, __global_pointer$
|
||||
.option pop
|
||||
|
||||
/* Set up our stack. */
|
||||
la sp, __stack_top
|
||||
add s0, sp, zero
|
||||
|
||||
/*
|
||||
* NOTE: In most cases, we'd clear the BSS, here.
|
||||
*
|
||||
* In our case, our FPGA automaticaly starts with all of our RAM
|
||||
* initialized to zero; so our BSS comes pre-cleared. We'll skip the
|
||||
* formality of re-clearing it.
|
||||
*/
|
||||
|
||||
/* Finally, start our main routine. */
|
||||
jal zero, main
|
||||
|
||||
.cfi_endproc
|
||||
.end
|
||||
Reference in New Issue
Block a user