1 /* 2 * Copyright (c) 2020, The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 #ifndef _REO_FLUSH_CACHE_STATUS_H_ 18 #define _REO_FLUSH_CACHE_STATUS_H_ 19 #if !defined(__ASSEMBLER__) 20 #endif 21 22 #include "uniform_reo_status_header.h" 23 24 // ################ START SUMMARY ################# 25 // 26 // Dword Fields 27 // 0-1 struct uniform_reo_status_header status_header; 28 // 2 error_detected[0], block_error_details[2:1], reserved_2a[7:3], cache_controller_flush_status_hit[8], cache_controller_flush_status_desc_type[11:9], cache_controller_flush_status_client_id[15:12], cache_controller_flush_status_error[17:16], cache_controller_flush_count[25:18], reserved_2b[31:26] 29 // 3 reserved_3a[31:0] 30 // 4 reserved_4a[31:0] 31 // 5 reserved_5a[31:0] 32 // 6 reserved_6a[31:0] 33 // 7 reserved_7a[31:0] 34 // 8 reserved_8a[31:0] 35 // 9 reserved_9a[31:0] 36 // 10 reserved_10a[31:0] 37 // 11 reserved_11a[31:0] 38 // 12 reserved_12a[31:0] 39 // 13 reserved_13a[31:0] 40 // 14 reserved_14a[31:0] 41 // 15 reserved_15a[31:0] 42 // 16 reserved_16a[31:0] 43 // 17 reserved_17a[31:0] 44 // 18 reserved_18a[31:0] 45 // 19 reserved_19a[31:0] 46 // 20 reserved_20a[31:0] 47 // 21 reserved_21a[31:0] 48 // 22 reserved_22a[31:0] 49 // 23 reserved_23a[31:0] 50 // 24 reserved_24a[27:0], looping_count[31:28] 51 // 52 // ################ END SUMMARY ################# 53 54 #define NUM_OF_DWORDS_REO_FLUSH_CACHE_STATUS 25 55 56 struct reo_flush_cache_status { 57 struct uniform_reo_status_header status_header; 58 uint32_t error_detected : 1, //[0] 59 block_error_details : 2, //[2:1] 60 reserved_2a : 5, //[7:3] 61 cache_controller_flush_status_hit: 1, //[8] 62 cache_controller_flush_status_desc_type: 3, //[11:9] 63 cache_controller_flush_status_client_id: 4, //[15:12] 64 cache_controller_flush_status_error: 2, //[17:16] 65 cache_controller_flush_count : 8, //[25:18] 66 reserved_2b : 6; //[31:26] 67 uint32_t reserved_3a : 32; //[31:0] 68 uint32_t reserved_4a : 32; //[31:0] 69 uint32_t reserved_5a : 32; //[31:0] 70 uint32_t reserved_6a : 32; //[31:0] 71 uint32_t reserved_7a : 32; //[31:0] 72 uint32_t reserved_8a : 32; //[31:0] 73 uint32_t reserved_9a : 32; //[31:0] 74 uint32_t reserved_10a : 32; //[31:0] 75 uint32_t reserved_11a : 32; //[31:0] 76 uint32_t reserved_12a : 32; //[31:0] 77 uint32_t reserved_13a : 32; //[31:0] 78 uint32_t reserved_14a : 32; //[31:0] 79 uint32_t reserved_15a : 32; //[31:0] 80 uint32_t reserved_16a : 32; //[31:0] 81 uint32_t reserved_17a : 32; //[31:0] 82 uint32_t reserved_18a : 32; //[31:0] 83 uint32_t reserved_19a : 32; //[31:0] 84 uint32_t reserved_20a : 32; //[31:0] 85 uint32_t reserved_21a : 32; //[31:0] 86 uint32_t reserved_22a : 32; //[31:0] 87 uint32_t reserved_23a : 32; //[31:0] 88 uint32_t reserved_24a : 28, //[27:0] 89 looping_count : 4; //[31:28] 90 }; 91 92 /* 93 94 struct uniform_reo_status_header status_header 95 96 Consumer: SW 97 98 Producer: REO 99 100 101 102 Details that can link this status with the original 103 command. It also contains info on how long REO took to 104 execute this command. 105 106 error_detected 107 108 Status for blocking resource handling 109 110 111 112 0: No error has been detected while executing this 113 command 114 115 1: an error in the blocking resource management was 116 detected 117 118 See field 'Block_error_details' 119 120 block_error_details 121 122 Field only valid when 'Error_detected' is set. 123 124 0: no blocking related error found 125 126 1: blocking resource was already in use 127 128 2: resource that was asked to be unblocked, was not 129 blocked 130 131 <legal 0-2> 132 133 reserved_2a 134 135 <legal 0> 136 137 cache_controller_flush_status_hit 138 139 The status that the cache controller returned for 140 executing the flush command 141 142 143 144 descriptor hit 145 146 1 = hit 147 148 0 = miss 149 150 <legal all> 151 152 cache_controller_flush_status_desc_type 153 154 The status that the cache controller returned for 155 executing the flush command 156 157 Descriptor type 158 159 FLOW_QUEUE_DESCRIPTOR 160 3'd0 161 162 163 <legal all> 164 165 cache_controller_flush_status_client_id 166 167 The status that the cache controller returned for 168 executing the flush command 169 170 171 172 client ID 173 174 Module who made flush the request 175 176 177 178 In REO, this is always set to 0 179 180 <legal 0> 181 182 cache_controller_flush_status_error 183 184 The status that the cache controller returned for 185 executing the flush command 186 187 188 189 Error condition 190 191 2'b00: No error found 192 193 2'b01: HW IF still busy 194 195 2'b10: Line is currently locked. Used for the one line 196 flush command. 197 198 2'b11: At least one line is currently still locked. Used 199 for the cache flush command. 200 201 202 203 <legal all> 204 205 cache_controller_flush_count 206 207 The number of lines that were actually flushed out. 208 209 <legal all> 210 211 reserved_2b 212 213 <legal 0> 214 215 reserved_3a 216 217 <legal 0> 218 219 reserved_4a 220 221 <legal 0> 222 223 reserved_5a 224 225 <legal 0> 226 227 reserved_6a 228 229 <legal 0> 230 231 reserved_7a 232 233 <legal 0> 234 235 reserved_8a 236 237 <legal 0> 238 239 reserved_9a 240 241 <legal 0> 242 243 reserved_10a 244 245 <legal 0> 246 247 reserved_11a 248 249 <legal 0> 250 251 reserved_12a 252 253 <legal 0> 254 255 reserved_13a 256 257 <legal 0> 258 259 reserved_14a 260 261 <legal 0> 262 263 reserved_15a 264 265 <legal 0> 266 267 reserved_16a 268 269 <legal 0> 270 271 reserved_17a 272 273 <legal 0> 274 275 reserved_18a 276 277 <legal 0> 278 279 reserved_19a 280 281 <legal 0> 282 283 reserved_20a 284 285 <legal 0> 286 287 reserved_21a 288 289 <legal 0> 290 291 reserved_22a 292 293 <legal 0> 294 295 reserved_23a 296 297 <legal 0> 298 299 reserved_24a 300 301 <legal 0> 302 303 looping_count 304 305 A count value that indicates the number of times the 306 producer of entries into this Ring has looped around the 307 ring. 308 309 At initialization time, this value is set to 0. On the 310 first loop, this value is set to 1. After the max value is 311 reached allowed by the number of bits for this field, the 312 count value continues with 0 again. 313 314 315 316 In case SW is the consumer of the ring entries, it can 317 use this field to figure out up to where the producer of 318 entries has created new entries. This eliminates the need to 319 check where the head pointer' of the ring is located once 320 the SW starts processing an interrupt indicating that new 321 entries have been put into this ring... 322 323 324 325 Also note that SW if it wants only needs to look at the 326 LSB bit of this count value. 327 328 <legal all> 329 */ 330 331 332 /* EXTERNAL REFERENCE : struct uniform_reo_status_header status_header */ 333 334 335 /* Description REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER 336 337 Consumer: SW , DEBUG 338 339 Producer: REO 340 341 342 343 The value in this field is equal to value of the 344 'REO_CMD_Number' field the REO command 345 346 347 348 This field helps to correlate the statuses with the REO 349 commands. 350 351 352 353 <legal all> 354 */ 355 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET 0x00000000 356 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_LSB 0 357 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_MASK 0x0000ffff 358 359 /* Description REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME 360 361 Consumer: DEBUG 362 363 Producer: REO 364 365 366 367 The amount of time REO took to excecute the command. 368 Note that this time does not include the duration of the 369 command waiting in the command ring, before the execution 370 started. 371 372 373 374 In us. 375 376 377 378 <legal all> 379 */ 380 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET 0x00000000 381 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_LSB 16 382 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_MASK 0x03ff0000 383 384 /* Description REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS 385 386 Consumer: DEBUG 387 388 Producer: REO 389 390 391 392 Execution status of the command. 393 394 395 396 <enum 0 reo_successful_execution> Command has 397 successfully be executed 398 399 <enum 1 reo_blocked_execution> Command could not be 400 executed as the queue or cache was blocked 401 402 <enum 2 reo_failed_execution> Command has encountered 403 problems when executing, like the queue descriptor not being 404 valid. None of the status fields in the entire STATUS TLV 405 are valid. 406 407 <enum 3 reo_resource_blocked> Command is NOT executed 408 because one or more descriptors were blocked. This is SW 409 programming mistake. 410 411 None of the status fields in the entire STATUS TLV are 412 valid. 413 414 415 416 <legal 0-3> 417 */ 418 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x00000000 419 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB 26 420 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK 0x0c000000 421 422 /* Description REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_RESERVED_0A 423 424 <legal 0> 425 */ 426 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_RESERVED_0A_OFFSET 0x00000000 427 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_RESERVED_0A_LSB 28 428 #define REO_FLUSH_CACHE_STATUS_0_STATUS_HEADER_RESERVED_0A_MASK 0xf0000000 429 430 /* Description REO_FLUSH_CACHE_STATUS_1_STATUS_HEADER_TIMESTAMP 431 432 Timestamp at the moment that this status report is 433 written. 434 435 436 437 <legal all> 438 */ 439 #define REO_FLUSH_CACHE_STATUS_1_STATUS_HEADER_TIMESTAMP_OFFSET 0x00000004 440 #define REO_FLUSH_CACHE_STATUS_1_STATUS_HEADER_TIMESTAMP_LSB 0 441 #define REO_FLUSH_CACHE_STATUS_1_STATUS_HEADER_TIMESTAMP_MASK 0xffffffff 442 443 /* Description REO_FLUSH_CACHE_STATUS_2_ERROR_DETECTED 444 445 Status for blocking resource handling 446 447 448 449 0: No error has been detected while executing this 450 command 451 452 1: an error in the blocking resource management was 453 detected 454 455 See field 'Block_error_details' 456 */ 457 #define REO_FLUSH_CACHE_STATUS_2_ERROR_DETECTED_OFFSET 0x00000008 458 #define REO_FLUSH_CACHE_STATUS_2_ERROR_DETECTED_LSB 0 459 #define REO_FLUSH_CACHE_STATUS_2_ERROR_DETECTED_MASK 0x00000001 460 461 /* Description REO_FLUSH_CACHE_STATUS_2_BLOCK_ERROR_DETAILS 462 463 Field only valid when 'Error_detected' is set. 464 465 0: no blocking related error found 466 467 1: blocking resource was already in use 468 469 2: resource that was asked to be unblocked, was not 470 blocked 471 472 <legal 0-2> 473 */ 474 #define REO_FLUSH_CACHE_STATUS_2_BLOCK_ERROR_DETAILS_OFFSET 0x00000008 475 #define REO_FLUSH_CACHE_STATUS_2_BLOCK_ERROR_DETAILS_LSB 1 476 #define REO_FLUSH_CACHE_STATUS_2_BLOCK_ERROR_DETAILS_MASK 0x00000006 477 478 /* Description REO_FLUSH_CACHE_STATUS_2_RESERVED_2A 479 480 <legal 0> 481 */ 482 #define REO_FLUSH_CACHE_STATUS_2_RESERVED_2A_OFFSET 0x00000008 483 #define REO_FLUSH_CACHE_STATUS_2_RESERVED_2A_LSB 3 484 #define REO_FLUSH_CACHE_STATUS_2_RESERVED_2A_MASK 0x000000f8 485 486 /* Description REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_HIT 487 488 The status that the cache controller returned for 489 executing the flush command 490 491 492 493 descriptor hit 494 495 1 = hit 496 497 0 = miss 498 499 <legal all> 500 */ 501 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_HIT_OFFSET 0x00000008 502 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_HIT_LSB 8 503 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_HIT_MASK 0x00000100 504 505 /* Description REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE 506 507 The status that the cache controller returned for 508 executing the flush command 509 510 Descriptor type 511 512 FLOW_QUEUE_DESCRIPTOR 513 3'd0 514 515 516 <legal all> 517 */ 518 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE_OFFSET 0x00000008 519 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE_LSB 9 520 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE_MASK 0x00000e00 521 522 /* Description REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID 523 524 The status that the cache controller returned for 525 executing the flush command 526 527 528 529 client ID 530 531 Module who made flush the request 532 533 534 535 In REO, this is always set to 0 536 537 <legal 0> 538 */ 539 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID_OFFSET 0x00000008 540 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID_LSB 12 541 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID_MASK 0x0000f000 542 543 /* Description REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_ERROR 544 545 The status that the cache controller returned for 546 executing the flush command 547 548 549 550 Error condition 551 552 2'b00: No error found 553 554 2'b01: HW IF still busy 555 556 2'b10: Line is currently locked. Used for the one line 557 flush command. 558 559 2'b11: At least one line is currently still locked. Used 560 for the cache flush command. 561 562 563 564 <legal all> 565 */ 566 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_ERROR_OFFSET 0x00000008 567 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_ERROR_LSB 16 568 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_STATUS_ERROR_MASK 0x00030000 569 570 /* Description REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_COUNT 571 572 The number of lines that were actually flushed out. 573 574 <legal all> 575 */ 576 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_COUNT_OFFSET 0x00000008 577 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_COUNT_LSB 18 578 #define REO_FLUSH_CACHE_STATUS_2_CACHE_CONTROLLER_FLUSH_COUNT_MASK 0x03fc0000 579 580 /* Description REO_FLUSH_CACHE_STATUS_2_RESERVED_2B 581 582 <legal 0> 583 */ 584 #define REO_FLUSH_CACHE_STATUS_2_RESERVED_2B_OFFSET 0x00000008 585 #define REO_FLUSH_CACHE_STATUS_2_RESERVED_2B_LSB 26 586 #define REO_FLUSH_CACHE_STATUS_2_RESERVED_2B_MASK 0xfc000000 587 588 /* Description REO_FLUSH_CACHE_STATUS_3_RESERVED_3A 589 590 <legal 0> 591 */ 592 #define REO_FLUSH_CACHE_STATUS_3_RESERVED_3A_OFFSET 0x0000000c 593 #define REO_FLUSH_CACHE_STATUS_3_RESERVED_3A_LSB 0 594 #define REO_FLUSH_CACHE_STATUS_3_RESERVED_3A_MASK 0xffffffff 595 596 /* Description REO_FLUSH_CACHE_STATUS_4_RESERVED_4A 597 598 <legal 0> 599 */ 600 #define REO_FLUSH_CACHE_STATUS_4_RESERVED_4A_OFFSET 0x00000010 601 #define REO_FLUSH_CACHE_STATUS_4_RESERVED_4A_LSB 0 602 #define REO_FLUSH_CACHE_STATUS_4_RESERVED_4A_MASK 0xffffffff 603 604 /* Description REO_FLUSH_CACHE_STATUS_5_RESERVED_5A 605 606 <legal 0> 607 */ 608 #define REO_FLUSH_CACHE_STATUS_5_RESERVED_5A_OFFSET 0x00000014 609 #define REO_FLUSH_CACHE_STATUS_5_RESERVED_5A_LSB 0 610 #define REO_FLUSH_CACHE_STATUS_5_RESERVED_5A_MASK 0xffffffff 611 612 /* Description REO_FLUSH_CACHE_STATUS_6_RESERVED_6A 613 614 <legal 0> 615 */ 616 #define REO_FLUSH_CACHE_STATUS_6_RESERVED_6A_OFFSET 0x00000018 617 #define REO_FLUSH_CACHE_STATUS_6_RESERVED_6A_LSB 0 618 #define REO_FLUSH_CACHE_STATUS_6_RESERVED_6A_MASK 0xffffffff 619 620 /* Description REO_FLUSH_CACHE_STATUS_7_RESERVED_7A 621 622 <legal 0> 623 */ 624 #define REO_FLUSH_CACHE_STATUS_7_RESERVED_7A_OFFSET 0x0000001c 625 #define REO_FLUSH_CACHE_STATUS_7_RESERVED_7A_LSB 0 626 #define REO_FLUSH_CACHE_STATUS_7_RESERVED_7A_MASK 0xffffffff 627 628 /* Description REO_FLUSH_CACHE_STATUS_8_RESERVED_8A 629 630 <legal 0> 631 */ 632 #define REO_FLUSH_CACHE_STATUS_8_RESERVED_8A_OFFSET 0x00000020 633 #define REO_FLUSH_CACHE_STATUS_8_RESERVED_8A_LSB 0 634 #define REO_FLUSH_CACHE_STATUS_8_RESERVED_8A_MASK 0xffffffff 635 636 /* Description REO_FLUSH_CACHE_STATUS_9_RESERVED_9A 637 638 <legal 0> 639 */ 640 #define REO_FLUSH_CACHE_STATUS_9_RESERVED_9A_OFFSET 0x00000024 641 #define REO_FLUSH_CACHE_STATUS_9_RESERVED_9A_LSB 0 642 #define REO_FLUSH_CACHE_STATUS_9_RESERVED_9A_MASK 0xffffffff 643 644 /* Description REO_FLUSH_CACHE_STATUS_10_RESERVED_10A 645 646 <legal 0> 647 */ 648 #define REO_FLUSH_CACHE_STATUS_10_RESERVED_10A_OFFSET 0x00000028 649 #define REO_FLUSH_CACHE_STATUS_10_RESERVED_10A_LSB 0 650 #define REO_FLUSH_CACHE_STATUS_10_RESERVED_10A_MASK 0xffffffff 651 652 /* Description REO_FLUSH_CACHE_STATUS_11_RESERVED_11A 653 654 <legal 0> 655 */ 656 #define REO_FLUSH_CACHE_STATUS_11_RESERVED_11A_OFFSET 0x0000002c 657 #define REO_FLUSH_CACHE_STATUS_11_RESERVED_11A_LSB 0 658 #define REO_FLUSH_CACHE_STATUS_11_RESERVED_11A_MASK 0xffffffff 659 660 /* Description REO_FLUSH_CACHE_STATUS_12_RESERVED_12A 661 662 <legal 0> 663 */ 664 #define REO_FLUSH_CACHE_STATUS_12_RESERVED_12A_OFFSET 0x00000030 665 #define REO_FLUSH_CACHE_STATUS_12_RESERVED_12A_LSB 0 666 #define REO_FLUSH_CACHE_STATUS_12_RESERVED_12A_MASK 0xffffffff 667 668 /* Description REO_FLUSH_CACHE_STATUS_13_RESERVED_13A 669 670 <legal 0> 671 */ 672 #define REO_FLUSH_CACHE_STATUS_13_RESERVED_13A_OFFSET 0x00000034 673 #define REO_FLUSH_CACHE_STATUS_13_RESERVED_13A_LSB 0 674 #define REO_FLUSH_CACHE_STATUS_13_RESERVED_13A_MASK 0xffffffff 675 676 /* Description REO_FLUSH_CACHE_STATUS_14_RESERVED_14A 677 678 <legal 0> 679 */ 680 #define REO_FLUSH_CACHE_STATUS_14_RESERVED_14A_OFFSET 0x00000038 681 #define REO_FLUSH_CACHE_STATUS_14_RESERVED_14A_LSB 0 682 #define REO_FLUSH_CACHE_STATUS_14_RESERVED_14A_MASK 0xffffffff 683 684 /* Description REO_FLUSH_CACHE_STATUS_15_RESERVED_15A 685 686 <legal 0> 687 */ 688 #define REO_FLUSH_CACHE_STATUS_15_RESERVED_15A_OFFSET 0x0000003c 689 #define REO_FLUSH_CACHE_STATUS_15_RESERVED_15A_LSB 0 690 #define REO_FLUSH_CACHE_STATUS_15_RESERVED_15A_MASK 0xffffffff 691 692 /* Description REO_FLUSH_CACHE_STATUS_16_RESERVED_16A 693 694 <legal 0> 695 */ 696 #define REO_FLUSH_CACHE_STATUS_16_RESERVED_16A_OFFSET 0x00000040 697 #define REO_FLUSH_CACHE_STATUS_16_RESERVED_16A_LSB 0 698 #define REO_FLUSH_CACHE_STATUS_16_RESERVED_16A_MASK 0xffffffff 699 700 /* Description REO_FLUSH_CACHE_STATUS_17_RESERVED_17A 701 702 <legal 0> 703 */ 704 #define REO_FLUSH_CACHE_STATUS_17_RESERVED_17A_OFFSET 0x00000044 705 #define REO_FLUSH_CACHE_STATUS_17_RESERVED_17A_LSB 0 706 #define REO_FLUSH_CACHE_STATUS_17_RESERVED_17A_MASK 0xffffffff 707 708 /* Description REO_FLUSH_CACHE_STATUS_18_RESERVED_18A 709 710 <legal 0> 711 */ 712 #define REO_FLUSH_CACHE_STATUS_18_RESERVED_18A_OFFSET 0x00000048 713 #define REO_FLUSH_CACHE_STATUS_18_RESERVED_18A_LSB 0 714 #define REO_FLUSH_CACHE_STATUS_18_RESERVED_18A_MASK 0xffffffff 715 716 /* Description REO_FLUSH_CACHE_STATUS_19_RESERVED_19A 717 718 <legal 0> 719 */ 720 #define REO_FLUSH_CACHE_STATUS_19_RESERVED_19A_OFFSET 0x0000004c 721 #define REO_FLUSH_CACHE_STATUS_19_RESERVED_19A_LSB 0 722 #define REO_FLUSH_CACHE_STATUS_19_RESERVED_19A_MASK 0xffffffff 723 724 /* Description REO_FLUSH_CACHE_STATUS_20_RESERVED_20A 725 726 <legal 0> 727 */ 728 #define REO_FLUSH_CACHE_STATUS_20_RESERVED_20A_OFFSET 0x00000050 729 #define REO_FLUSH_CACHE_STATUS_20_RESERVED_20A_LSB 0 730 #define REO_FLUSH_CACHE_STATUS_20_RESERVED_20A_MASK 0xffffffff 731 732 /* Description REO_FLUSH_CACHE_STATUS_21_RESERVED_21A 733 734 <legal 0> 735 */ 736 #define REO_FLUSH_CACHE_STATUS_21_RESERVED_21A_OFFSET 0x00000054 737 #define REO_FLUSH_CACHE_STATUS_21_RESERVED_21A_LSB 0 738 #define REO_FLUSH_CACHE_STATUS_21_RESERVED_21A_MASK 0xffffffff 739 740 /* Description REO_FLUSH_CACHE_STATUS_22_RESERVED_22A 741 742 <legal 0> 743 */ 744 #define REO_FLUSH_CACHE_STATUS_22_RESERVED_22A_OFFSET 0x00000058 745 #define REO_FLUSH_CACHE_STATUS_22_RESERVED_22A_LSB 0 746 #define REO_FLUSH_CACHE_STATUS_22_RESERVED_22A_MASK 0xffffffff 747 748 /* Description REO_FLUSH_CACHE_STATUS_23_RESERVED_23A 749 750 <legal 0> 751 */ 752 #define REO_FLUSH_CACHE_STATUS_23_RESERVED_23A_OFFSET 0x0000005c 753 #define REO_FLUSH_CACHE_STATUS_23_RESERVED_23A_LSB 0 754 #define REO_FLUSH_CACHE_STATUS_23_RESERVED_23A_MASK 0xffffffff 755 756 /* Description REO_FLUSH_CACHE_STATUS_24_RESERVED_24A 757 758 <legal 0> 759 */ 760 #define REO_FLUSH_CACHE_STATUS_24_RESERVED_24A_OFFSET 0x00000060 761 #define REO_FLUSH_CACHE_STATUS_24_RESERVED_24A_LSB 0 762 #define REO_FLUSH_CACHE_STATUS_24_RESERVED_24A_MASK 0x0fffffff 763 764 /* Description REO_FLUSH_CACHE_STATUS_24_LOOPING_COUNT 765 766 A count value that indicates the number of times the 767 producer of entries into this Ring has looped around the 768 ring. 769 770 At initialization time, this value is set to 0. On the 771 first loop, this value is set to 1. After the max value is 772 reached allowed by the number of bits for this field, the 773 count value continues with 0 again. 774 775 776 777 In case SW is the consumer of the ring entries, it can 778 use this field to figure out up to where the producer of 779 entries has created new entries. This eliminates the need to 780 check where the head pointer' of the ring is located once 781 the SW starts processing an interrupt indicating that new 782 entries have been put into this ring... 783 784 785 786 Also note that SW if it wants only needs to look at the 787 LSB bit of this count value. 788 789 <legal all> 790 */ 791 #define REO_FLUSH_CACHE_STATUS_24_LOOPING_COUNT_OFFSET 0x00000060 792 #define REO_FLUSH_CACHE_STATUS_24_LOOPING_COUNT_LSB 28 793 #define REO_FLUSH_CACHE_STATUS_24_LOOPING_COUNT_MASK 0xf0000000 794 795 796 #endif // _REO_FLUSH_CACHE_STATUS_H_ 797