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