reo_unblock_cache.h 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. /*
  2. * Copyright (c) 2019 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. //
  19. // DO NOT EDIT! This file is automatically generated
  20. // These definitions are tied to a particular hardware layout
  21. #ifndef _REO_UNBLOCK_CACHE_H_
  22. #define _REO_UNBLOCK_CACHE_H_
  23. #if !defined(__ASSEMBLER__)
  24. #endif
  25. #include "uniform_reo_cmd_header.h"
  26. // ################ START SUMMARY #################
  27. //
  28. // Dword Fields
  29. // 0 struct uniform_reo_cmd_header cmd_header;
  30. // 1 unblock_type[0], cache_block_resource_index[2:1], reserved_1a[31:3]
  31. // 2 reserved_2a[31:0]
  32. // 3 reserved_3a[31:0]
  33. // 4 reserved_4a[31:0]
  34. // 5 reserved_5a[31:0]
  35. // 6 reserved_6a[31:0]
  36. // 7 reserved_7a[31:0]
  37. // 8 reserved_8a[31:0]
  38. //
  39. // ################ END SUMMARY #################
  40. #define NUM_OF_DWORDS_REO_UNBLOCK_CACHE 9
  41. struct reo_unblock_cache {
  42. struct uniform_reo_cmd_header cmd_header;
  43. uint32_t unblock_type : 1, //[0]
  44. cache_block_resource_index : 2, //[2:1]
  45. reserved_1a : 29; //[31:3]
  46. uint32_t reserved_2a : 32; //[31:0]
  47. uint32_t reserved_3a : 32; //[31:0]
  48. uint32_t reserved_4a : 32; //[31:0]
  49. uint32_t reserved_5a : 32; //[31:0]
  50. uint32_t reserved_6a : 32; //[31:0]
  51. uint32_t reserved_7a : 32; //[31:0]
  52. uint32_t reserved_8a : 32; //[31:0]
  53. };
  54. /*
  55. struct uniform_reo_cmd_header cmd_header
  56. Consumer: REO
  57. Producer: SW
  58. Details for command execution tracking purposes.
  59. unblock_type
  60. Unblock type
  61. <enum 0 unblock_resource_index> Unblock a block
  62. resource, whose index is given in field
  63. 'cache_block_resource_index'.
  64. If the indicated blocking resource is not in use (=> not
  65. blocking an address at the moment), the command status will
  66. indicate an error.
  67. <enum 1 unblock_cache> The entire cache usage is
  68. unblocked.
  69. If the entire cache is not in a blocked mode at the
  70. moment this command is received, the command status will
  71. indicate an error.
  72. Note that unlocking the entire cache has no changes to
  73. the current settings of the blocking resource settings
  74. <legal all>
  75. cache_block_resource_index
  76. Field not valid when field Unblock_type is set to
  77. unblock_cache.
  78. Indicates which of the four blocking resources in REO
  79. should be released from blocking a (descriptor) address.
  80. <legal all>
  81. reserved_1a
  82. <legal 0>
  83. reserved_2a
  84. <legal 0>
  85. reserved_3a
  86. <legal 0>
  87. reserved_4a
  88. <legal 0>
  89. reserved_5a
  90. <legal 0>
  91. reserved_6a
  92. <legal 0>
  93. reserved_7a
  94. <legal 0>
  95. reserved_8a
  96. <legal 0>
  97. */
  98. /* EXTERNAL REFERENCE : struct uniform_reo_cmd_header cmd_header */
  99. /* Description REO_UNBLOCK_CACHE_0_CMD_HEADER_REO_CMD_NUMBER
  100. Consumer: REO/SW/DEBUG
  101. Producer: SW
  102. This number can be used by SW to track, identify and
  103. link the created commands with the command statusses
  104. <legal all>
  105. */
  106. #define REO_UNBLOCK_CACHE_0_CMD_HEADER_REO_CMD_NUMBER_OFFSET 0x00000000
  107. #define REO_UNBLOCK_CACHE_0_CMD_HEADER_REO_CMD_NUMBER_LSB 0
  108. #define REO_UNBLOCK_CACHE_0_CMD_HEADER_REO_CMD_NUMBER_MASK 0x0000ffff
  109. /* Description REO_UNBLOCK_CACHE_0_CMD_HEADER_REO_STATUS_REQUIRED
  110. Consumer: REO
  111. Producer: SW
  112. <enum 0 NoStatus> REO does not need to generate a status
  113. TLV for the execution of this command
  114. <enum 1 StatusRequired> REO shall generate a status TLV
  115. for the execution of this command
  116. <legal all>
  117. */
  118. #define REO_UNBLOCK_CACHE_0_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET 0x00000000
  119. #define REO_UNBLOCK_CACHE_0_CMD_HEADER_REO_STATUS_REQUIRED_LSB 16
  120. #define REO_UNBLOCK_CACHE_0_CMD_HEADER_REO_STATUS_REQUIRED_MASK 0x00010000
  121. /* Description REO_UNBLOCK_CACHE_0_CMD_HEADER_RESERVED_0A
  122. <legal 0>
  123. */
  124. #define REO_UNBLOCK_CACHE_0_CMD_HEADER_RESERVED_0A_OFFSET 0x00000000
  125. #define REO_UNBLOCK_CACHE_0_CMD_HEADER_RESERVED_0A_LSB 17
  126. #define REO_UNBLOCK_CACHE_0_CMD_HEADER_RESERVED_0A_MASK 0xfffe0000
  127. /* Description REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE
  128. Unblock type
  129. <enum 0 unblock_resource_index> Unblock a block
  130. resource, whose index is given in field
  131. 'cache_block_resource_index'.
  132. If the indicated blocking resource is not in use (=> not
  133. blocking an address at the moment), the command status will
  134. indicate an error.
  135. <enum 1 unblock_cache> The entire cache usage is
  136. unblocked.
  137. If the entire cache is not in a blocked mode at the
  138. moment this command is received, the command status will
  139. indicate an error.
  140. Note that unlocking the entire cache has no changes to
  141. the current settings of the blocking resource settings
  142. <legal all>
  143. */
  144. #define REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE_OFFSET 0x00000004
  145. #define REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE_LSB 0
  146. #define REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE_MASK 0x00000001
  147. /* Description REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX
  148. Field not valid when field Unblock_type is set to
  149. unblock_cache.
  150. Indicates which of the four blocking resources in REO
  151. should be released from blocking a (descriptor) address.
  152. <legal all>
  153. */
  154. #define REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX_OFFSET 0x00000004
  155. #define REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX_LSB 1
  156. #define REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX_MASK 0x00000006
  157. /* Description REO_UNBLOCK_CACHE_1_RESERVED_1A
  158. <legal 0>
  159. */
  160. #define REO_UNBLOCK_CACHE_1_RESERVED_1A_OFFSET 0x00000004
  161. #define REO_UNBLOCK_CACHE_1_RESERVED_1A_LSB 3
  162. #define REO_UNBLOCK_CACHE_1_RESERVED_1A_MASK 0xfffffff8
  163. /* Description REO_UNBLOCK_CACHE_2_RESERVED_2A
  164. <legal 0>
  165. */
  166. #define REO_UNBLOCK_CACHE_2_RESERVED_2A_OFFSET 0x00000008
  167. #define REO_UNBLOCK_CACHE_2_RESERVED_2A_LSB 0
  168. #define REO_UNBLOCK_CACHE_2_RESERVED_2A_MASK 0xffffffff
  169. /* Description REO_UNBLOCK_CACHE_3_RESERVED_3A
  170. <legal 0>
  171. */
  172. #define REO_UNBLOCK_CACHE_3_RESERVED_3A_OFFSET 0x0000000c
  173. #define REO_UNBLOCK_CACHE_3_RESERVED_3A_LSB 0
  174. #define REO_UNBLOCK_CACHE_3_RESERVED_3A_MASK 0xffffffff
  175. /* Description REO_UNBLOCK_CACHE_4_RESERVED_4A
  176. <legal 0>
  177. */
  178. #define REO_UNBLOCK_CACHE_4_RESERVED_4A_OFFSET 0x00000010
  179. #define REO_UNBLOCK_CACHE_4_RESERVED_4A_LSB 0
  180. #define REO_UNBLOCK_CACHE_4_RESERVED_4A_MASK 0xffffffff
  181. /* Description REO_UNBLOCK_CACHE_5_RESERVED_5A
  182. <legal 0>
  183. */
  184. #define REO_UNBLOCK_CACHE_5_RESERVED_5A_OFFSET 0x00000014
  185. #define REO_UNBLOCK_CACHE_5_RESERVED_5A_LSB 0
  186. #define REO_UNBLOCK_CACHE_5_RESERVED_5A_MASK 0xffffffff
  187. /* Description REO_UNBLOCK_CACHE_6_RESERVED_6A
  188. <legal 0>
  189. */
  190. #define REO_UNBLOCK_CACHE_6_RESERVED_6A_OFFSET 0x00000018
  191. #define REO_UNBLOCK_CACHE_6_RESERVED_6A_LSB 0
  192. #define REO_UNBLOCK_CACHE_6_RESERVED_6A_MASK 0xffffffff
  193. /* Description REO_UNBLOCK_CACHE_7_RESERVED_7A
  194. <legal 0>
  195. */
  196. #define REO_UNBLOCK_CACHE_7_RESERVED_7A_OFFSET 0x0000001c
  197. #define REO_UNBLOCK_CACHE_7_RESERVED_7A_LSB 0
  198. #define REO_UNBLOCK_CACHE_7_RESERVED_7A_MASK 0xffffffff
  199. /* Description REO_UNBLOCK_CACHE_8_RESERVED_8A
  200. <legal 0>
  201. */
  202. #define REO_UNBLOCK_CACHE_8_RESERVED_8A_OFFSET 0x00000020
  203. #define REO_UNBLOCK_CACHE_8_RESERVED_8A_LSB 0
  204. #define REO_UNBLOCK_CACHE_8_RESERVED_8A_MASK 0xffffffff
  205. #endif // _REO_UNBLOCK_CACHE_H_