Files
linux-kernel-module-cheat/baremetal/lib/aarch64.S
Ciro Santilli 六四事件 法轮功 5391bc1bfd Get rid of lkmc_assert_fail in favor of abort + assert
What was missing previously was implementing abort in baremetal.

I had done that previously and forgotten to do this conversion!
2019-05-21 00:00:00 +00:00

37 lines
761 B
ArmAsm

#include <lkmc.h>
.global mystart
mystart:
/* = NEON setup */
mov x1, #(0x3 << 20)
msr cpacr_el1, x1
isb
/* Load the vector table. */
ldr x0, =lkmc_vector_table
msr vbar_el1, x0
/* Prepare the stack for main, mandatory for C code. */
ldr x0, =stack_top
mov sp, x0
/* https://github.com/cirosantilli/linux-kernel-module-cheat#magic-failure-string */
adr x0, lkmc_baremetal_on_exit_callback
bl on_exit
/* Run main. */
bl main
/* If main returns, exit. */
bl exit
LKMC_VECTOR_TABLE
/* Default trap handler. */
LKMC_WEAK(lkmc_vector_trap_handler)
ldr x0, =lkmc_vector_trap_handler_error
bl puts
bl abort
lkmc_vector_trap_handler_error:
.asciz "error: unexpected interrupt"