vectors_m.S 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * (C) Copyright 2015
  4. * Kamil Lulko, <kamil.lulko@gmail.com>
  5. */
  6. #include <config.h>
  7. #include <asm/assembler.h>
  8. #include <linux/linkage.h>
  9. .type __hard_fault_entry, %function
  10. __hard_fault_entry:
  11. mov r0, sp @ pass auto-saved registers as argument
  12. b do_hard_fault
  13. .type __mm_fault_entry, %function
  14. __mm_fault_entry:
  15. mov r0, sp @ pass auto-saved registers as argument
  16. b do_mm_fault
  17. .type __bus_fault_entry, %function
  18. __bus_fault_entry:
  19. mov r0, sp @ pass auto-saved registers as argument
  20. b do_bus_fault
  21. .type __usage_fault_entry, %function
  22. __usage_fault_entry:
  23. mov r0, sp @ pass auto-saved registers as argument
  24. b do_usage_fault
  25. .type __invalid_entry, %function
  26. __invalid_entry:
  27. mov r0, sp @ pass auto-saved registers as argument
  28. b do_invalid_entry
  29. .section .vectors
  30. ENTRY(_start)
  31. .long CONFIG_SYS_INIT_SP_ADDR @ 0 - Reset stack pointer
  32. .long reset @ 1 - Reset
  33. .long __invalid_entry @ 2 - NMI
  34. .long __hard_fault_entry @ 3 - HardFault
  35. .long __mm_fault_entry @ 4 - MemManage
  36. .long __bus_fault_entry @ 5 - BusFault
  37. .long __usage_fault_entry @ 6 - UsageFault
  38. .long __invalid_entry @ 7 - Reserved
  39. .long __invalid_entry @ 8 - Reserved
  40. .long __invalid_entry @ 9 - Reserved
  41. .long __invalid_entry @ 10 - Reserved
  42. .long __invalid_entry @ 11 - SVCall
  43. .long __invalid_entry @ 12 - Debug Monitor
  44. .long __invalid_entry @ 13 - Reserved
  45. .long __invalid_entry @ 14 - PendSV
  46. .long __invalid_entry @ 15 - SysTick
  47. .rept 255 - 16
  48. .long __invalid_entry @ 16..255 - External Interrupts
  49. .endr