semihosting.S 486 B

12345678910111213141516171819202122232425262728293031
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * (C) 2022 Arm Ltd.
  4. */
  5. #include <config.h>
  6. #include <asm/macro.h>
  7. #include <linux/linkage.h>
  8. .pushsection .text.smh_trap, "ax"
  9. /* long smh_trap(unsigned int sysnum, void *addr); */
  10. ENTRY(smh_trap)
  11. #if defined(CONFIG_ARM64)
  12. hlt #0xf000
  13. #elif defined(CONFIG_CPU_V7M)
  14. bkpt #0xab
  15. #elif defined(CONFIG_SYS_THUMB_BUILD)
  16. svc #0xab
  17. #else
  18. svc #0x123456
  19. #endif
  20. #if defined(CONFIG_ARM64)
  21. ret
  22. #else
  23. bx lr
  24. #endif
  25. ENDPROC(smh_trap)
  26. .popsection