fw_jump.S 845 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * SPDX-License-Identifier: BSD-2-Clause
  3. *
  4. * Copyright (c) 2019 Western Digital Corporation or its affiliates.
  5. *
  6. * Authors:
  7. * Anup Patel <anup.patel@wdc.com>
  8. */
  9. #include "fw_base.S"
  10. .align 3
  11. .section .entry, "ax", %progbits
  12. .global fw_prev_arg1
  13. fw_prev_arg1:
  14. /* We return previous arg1 in 'a0' */
  15. add a0, zero, zero
  16. ret
  17. .align 3
  18. .section .entry, "ax", %progbits
  19. .global fw_next_arg1
  20. fw_next_arg1:
  21. /* We return next arg1 in 'a0' */
  22. #ifdef FW_JUMP_FDT_ADDR
  23. li a0, FW_JUMP_FDT_ADDR
  24. #else
  25. add a0, zero, zero
  26. #endif
  27. ret
  28. .align 3
  29. .section .entry, "ax", %progbits
  30. .global fw_next_addr
  31. fw_next_addr:
  32. /* We return next address in 'a0' */
  33. la a0, _jump_addr
  34. REG_L a0, (a0)
  35. ret
  36. #ifndef FW_JUMP_ADDR
  37. #error "Must define FW_JUMP_ADDR"
  38. #endif
  39. .align 3
  40. .section .entry, "ax", %progbits
  41. _jump_addr:
  42. RISCV_PTR FW_JUMP_ADDR