1 /* 2 * Copyright (c) 2016-2017 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 // 20 // DO NOT EDIT! This file is automatically generated 21 // These definitions are tied to a particular hardware layout 22 23 24 #ifndef _REO_UNBLOCK_CACHE_H_ 25 #define _REO_UNBLOCK_CACHE_H_ 26 #if !defined(__ASSEMBLER__) 27 #endif 28 29 #include "uniform_reo_cmd_header.h" 30 31 // ################ START SUMMARY ################# 32 // 33 // Dword Fields 34 // 0 struct uniform_reo_cmd_header cmd_header; 35 // 1 unblock_type[0], cache_block_resource_index[2:1], reserved_1a[31:3] 36 // 2 reserved_2a[31:0] 37 // 3 reserved_3a[31:0] 38 // 4 reserved_4a[31:0] 39 // 5 reserved_5a[31:0] 40 // 6 reserved_6a[31:0] 41 // 7 reserved_7a[31:0] 42 // 8 reserved_8a[31:0] 43 // 44 // ################ END SUMMARY ################# 45 46 #define NUM_OF_DWORDS_REO_UNBLOCK_CACHE 9 47 48 struct reo_unblock_cache { 49 struct uniform_reo_cmd_header cmd_header; 50 uint32_t unblock_type : 1, //[0] 51 cache_block_resource_index : 2, //[2:1] 52 reserved_1a : 29; //[31:3] 53 uint32_t reserved_2a : 32; //[31:0] 54 uint32_t reserved_3a : 32; //[31:0] 55 uint32_t reserved_4a : 32; //[31:0] 56 uint32_t reserved_5a : 32; //[31:0] 57 uint32_t reserved_6a : 32; //[31:0] 58 uint32_t reserved_7a : 32; //[31:0] 59 uint32_t reserved_8a : 32; //[31:0] 60 }; 61 62 /* 63 64 struct uniform_reo_cmd_header cmd_header 65 66 Consumer: REO 67 68 Producer: SW 69 70 71 72 Details for command execution tracking purposes. 73 74 unblock_type 75 76 Unblock type 77 78 79 80 <enum 0 unblock_resource_index> Unblock a block 81 resource, whose index is given in field 82 'cache_block_resource_index'. 83 84 If the indicated blocking resource is not in use (=> not 85 blocking an address at the moment), the command status will 86 indicate an error. 87 88 89 90 <enum 1 unblock_cache> The entire cache usage is 91 unblocked. 92 93 If the entire cache is not in a blocked mode at the 94 moment this command is received, the command status will 95 indicate an error. 96 97 Note that unlocking the entire cache has no changes to 98 the current settings of the blocking resource settings 99 100 101 102 <legal all> 103 104 cache_block_resource_index 105 106 Field not valid when field Unblock_type is set to 107 unblock_cache. 108 109 110 111 Indicates which of the four blocking resources in REO 112 should be released from blocking a (descriptor) address. 113 114 <legal all> 115 116 reserved_1a 117 118 <legal 0> 119 120 reserved_2a 121 122 <legal 0> 123 124 reserved_3a 125 126 <legal 0> 127 128 reserved_4a 129 130 <legal 0> 131 132 reserved_5a 133 134 <legal 0> 135 136 reserved_6a 137 138 <legal 0> 139 140 reserved_7a 141 142 <legal 0> 143 144 reserved_8a 145 146 <legal 0> 147 */ 148 149 #define REO_UNBLOCK_CACHE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_OFFSET 0x00000000 150 #define REO_UNBLOCK_CACHE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_LSB 0 151 #define REO_UNBLOCK_CACHE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_MASK 0xffffffff 152 153 /* Description REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE 154 155 Unblock type 156 157 158 159 <enum 0 unblock_resource_index> Unblock a block 160 resource, whose index is given in field 161 'cache_block_resource_index'. 162 163 If the indicated blocking resource is not in use (=> not 164 blocking an address at the moment), the command status will 165 indicate an error. 166 167 168 169 <enum 1 unblock_cache> The entire cache usage is 170 unblocked. 171 172 If the entire cache is not in a blocked mode at the 173 moment this command is received, the command status will 174 indicate an error. 175 176 Note that unlocking the entire cache has no changes to 177 the current settings of the blocking resource settings 178 179 180 181 <legal all> 182 */ 183 #define REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE_OFFSET 0x00000004 184 #define REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE_LSB 0 185 #define REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE_MASK 0x00000001 186 187 /* Description REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX 188 189 Field not valid when field Unblock_type is set to 190 unblock_cache. 191 192 193 194 Indicates which of the four blocking resources in REO 195 should be released from blocking a (descriptor) address. 196 197 <legal all> 198 */ 199 #define REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX_OFFSET 0x00000004 200 #define REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX_LSB 1 201 #define REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX_MASK 0x00000006 202 203 /* Description REO_UNBLOCK_CACHE_1_RESERVED_1A 204 205 <legal 0> 206 */ 207 #define REO_UNBLOCK_CACHE_1_RESERVED_1A_OFFSET 0x00000004 208 #define REO_UNBLOCK_CACHE_1_RESERVED_1A_LSB 3 209 #define REO_UNBLOCK_CACHE_1_RESERVED_1A_MASK 0xfffffff8 210 211 /* Description REO_UNBLOCK_CACHE_2_RESERVED_2A 212 213 <legal 0> 214 */ 215 #define REO_UNBLOCK_CACHE_2_RESERVED_2A_OFFSET 0x00000008 216 #define REO_UNBLOCK_CACHE_2_RESERVED_2A_LSB 0 217 #define REO_UNBLOCK_CACHE_2_RESERVED_2A_MASK 0xffffffff 218 219 /* Description REO_UNBLOCK_CACHE_3_RESERVED_3A 220 221 <legal 0> 222 */ 223 #define REO_UNBLOCK_CACHE_3_RESERVED_3A_OFFSET 0x0000000c 224 #define REO_UNBLOCK_CACHE_3_RESERVED_3A_LSB 0 225 #define REO_UNBLOCK_CACHE_3_RESERVED_3A_MASK 0xffffffff 226 227 /* Description REO_UNBLOCK_CACHE_4_RESERVED_4A 228 229 <legal 0> 230 */ 231 #define REO_UNBLOCK_CACHE_4_RESERVED_4A_OFFSET 0x00000010 232 #define REO_UNBLOCK_CACHE_4_RESERVED_4A_LSB 0 233 #define REO_UNBLOCK_CACHE_4_RESERVED_4A_MASK 0xffffffff 234 235 /* Description REO_UNBLOCK_CACHE_5_RESERVED_5A 236 237 <legal 0> 238 */ 239 #define REO_UNBLOCK_CACHE_5_RESERVED_5A_OFFSET 0x00000014 240 #define REO_UNBLOCK_CACHE_5_RESERVED_5A_LSB 0 241 #define REO_UNBLOCK_CACHE_5_RESERVED_5A_MASK 0xffffffff 242 243 /* Description REO_UNBLOCK_CACHE_6_RESERVED_6A 244 245 <legal 0> 246 */ 247 #define REO_UNBLOCK_CACHE_6_RESERVED_6A_OFFSET 0x00000018 248 #define REO_UNBLOCK_CACHE_6_RESERVED_6A_LSB 0 249 #define REO_UNBLOCK_CACHE_6_RESERVED_6A_MASK 0xffffffff 250 251 /* Description REO_UNBLOCK_CACHE_7_RESERVED_7A 252 253 <legal 0> 254 */ 255 #define REO_UNBLOCK_CACHE_7_RESERVED_7A_OFFSET 0x0000001c 256 #define REO_UNBLOCK_CACHE_7_RESERVED_7A_LSB 0 257 #define REO_UNBLOCK_CACHE_7_RESERVED_7A_MASK 0xffffffff 258 259 /* Description REO_UNBLOCK_CACHE_8_RESERVED_8A 260 261 <legal 0> 262 */ 263 #define REO_UNBLOCK_CACHE_8_RESERVED_8A_OFFSET 0x00000020 264 #define REO_UNBLOCK_CACHE_8_RESERVED_8A_LSB 0 265 #define REO_UNBLOCK_CACHE_8_RESERVED_8A_MASK 0xffffffff 266 267 268 #endif // _REO_UNBLOCK_CACHE_H_ 269