fw_payload.S 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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 4
  11. .section .entry, "ax", %progbits
  12. .global fw_prev_arg1
  13. fw_prev_arg1:
  14. /* We return previous arg1 in 'a0' */
  15. #ifdef FW_PAYLOAD_FDT_PATH
  16. la a0, fdt_bin
  17. #else
  18. add a0, zero, zero
  19. #endif
  20. ret
  21. .align 4
  22. .section .entry, "ax", %progbits
  23. .global fw_next_arg1
  24. fw_next_arg1:
  25. /* We return next arg1 in 'a0' */
  26. #ifdef FW_PAYLOAD_FDT_ADDR
  27. li a0, FW_PAYLOAD_FDT_ADDR
  28. #else
  29. add a0, zero, zero
  30. #endif
  31. ret
  32. .align 4
  33. .section .entry, "ax", %progbits
  34. .global fw_next_addr
  35. fw_next_addr:
  36. /* We return next address in 'a0' */
  37. la a0, payload_bin
  38. ret
  39. #ifdef FW_PAYLOAD_FDT_PATH
  40. .align 4
  41. .section .text, "ax", %progbits
  42. .globl fdt_bin
  43. fdt_bin:
  44. .incbin FW_PAYLOAD_FDT_PATH
  45. #endif
  46. .align 4
  47. .section .payload, "ax", %progbits
  48. .globl payload_bin
  49. payload_bin:
  50. #ifndef FW_PAYLOAD_PATH
  51. wfi
  52. j payload_bin
  53. #else
  54. .incbin FW_PAYLOAD_PATH
  55. #endif