mss_mem.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * Copyright (C) 2018 Marvell International Ltd.
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. * https://spdx.org/licenses
  6. */
  7. #ifndef MSS_MEM_H
  8. #define MSS_MEM_H
  9. /* MSS SRAM Memory base */
  10. #define MSS_SRAM_PM_CONTROL_BASE (MVEBU_REGS_BASE + 0x520000)
  11. enum mss_pm_ctrl_handshake {
  12. MSS_UN_INITIALIZED = 0,
  13. MSS_COMPATIBILITY_ERROR = 1,
  14. MSS_ACKNOWLEDGMENT = 2,
  15. HOST_ACKNOWLEDGMENT = 3
  16. };
  17. enum mss_pm_ctrl_rtos_env {
  18. MSS_MULTI_PROCESS_ENV = 0,
  19. MSS_SINGLE_PROCESS_ENV = 1,
  20. MSS_MAX_PROCESS_ENV
  21. };
  22. struct mss_pm_ctrl_block {
  23. /* This field is used to synchronize the Host
  24. * and MSS initialization sequence
  25. * Valid Values
  26. * 0 - Un-Initialized
  27. * 1 - Compatibility Error
  28. * 2 - MSS Acknowledgment
  29. * 3 - Host Acknowledgment
  30. */
  31. unsigned int handshake;
  32. /*
  33. * This field include Host IPC version. Once received by the MSS
  34. * It will be compared to MSS IPC version and set MSS Acknowledge to
  35. * "compatibility error" in case there is no match
  36. */
  37. unsigned int ipc_version;
  38. unsigned int ipc_base_address;
  39. unsigned int ipc_state;
  40. /* Following fields defines firmware core architecture */
  41. unsigned int num_of_cores;
  42. unsigned int num_of_clusters;
  43. unsigned int num_of_cores_per_cluster;
  44. /* Following fields define pm trace debug base address */
  45. unsigned int pm_trace_ctrl_base_address;
  46. unsigned int pm_trace_info_base_address;
  47. unsigned int pm_trace_info_core_size;
  48. unsigned int ctrl_blk_size;
  49. };
  50. #endif /* MSS_MEM_H */