fsl_dpmng_cmd.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /* Copyright 2014 Freescale Semiconductor Inc.
  2. *
  3. * SPDX-License-Identifier: GPL-2.0+
  4. */
  5. #ifndef __FSL_DPMNG_CMD_H
  6. #define __FSL_DPMNG_CMD_H
  7. /* Command IDs */
  8. #define DPMNG_CMDID_GET_VERSION 0x831
  9. #define DPMNG_CMDID_RESET_AIOP 0x832
  10. #define DPMNG_CMDID_LOAD_AIOP 0x833
  11. #define DPMNG_CMDID_RUN_AIOP 0x834
  12. #define DPMNG_CMDID_RESET_MC_PORTAL 0x835
  13. /* cmd, param, offset, width, type, arg_name */
  14. #define DPMNG_RSP_GET_VERSION(cmd, mc_ver_info) \
  15. do { \
  16. MC_RSP_OP(cmd, 0, 0, 32, uint32_t, mc_ver_info->revision); \
  17. MC_RSP_OP(cmd, 0, 32, 32, uint32_t, mc_ver_info->major); \
  18. MC_RSP_OP(cmd, 1, 0, 32, uint32_t, mc_ver_info->minor); \
  19. } while (0)
  20. /* cmd, param, offset, width, type, arg_name */
  21. #define DPMNG_CMD_RESET_AIOP(cmd, container_id, aiop_tile_id) \
  22. do { \
  23. MC_CMD_OP(cmd, 0, 0, 32, int, aiop_tile_id); \
  24. MC_CMD_OP(cmd, 0, 32, 32, int, container_id); \
  25. } while (0)
  26. /* cmd, param, offset, width, type, arg_name */
  27. #define DPMNG_CMD_LOAD_AIOP(cmd, container_id, aiop_tile_id, img_size, \
  28. img_iova) \
  29. do { \
  30. MC_CMD_OP(cmd, 0, 0, 32, int, aiop_tile_id); \
  31. MC_CMD_OP(cmd, 0, 32, 32, int, container_id); \
  32. MC_CMD_OP(cmd, 1, 0, 32, uint32_t, img_size); \
  33. MC_CMD_OP(cmd, 2, 0, 64, uint64_t, img_iova); \
  34. } while (0)
  35. /* cmd, param, offset, width, type, arg_name */
  36. #define DPMNG_CMD_RUN_AIOP(cmd, container_id, aiop_tile_id, cfg) \
  37. do { \
  38. MC_CMD_OP(cmd, 0, 0, 32, int, aiop_tile_id); \
  39. MC_CMD_OP(cmd, 0, 32, 32, int, container_id); \
  40. MC_CMD_OP(cmd, 1, 0, 32, uint32_t, cfg->cores_mask); \
  41. MC_CMD_OP(cmd, 2, 0, 64, uint64_t, cfg->options); \
  42. } while (0)
  43. #endif /* __FSL_DPMNG_CMD_H */