/*
 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef _REO_UNBLOCK_CACHE_STATUS_H_
#define _REO_UNBLOCK_CACHE_STATUS_H_
#if !defined(__ASSEMBLER__)
#endif

#include "uniform_reo_status_header.h"

// ################ START SUMMARY #################
//
//	Dword	Fields
//	0-1	struct uniform_reo_status_header status_header;
//	2	error_detected[0], unblock_type[1], reserved_2a[31:2]
//	3	reserved_3a[31:0]
//	4	reserved_4a[31:0]
//	5	reserved_5a[31:0]
//	6	reserved_6a[31:0]
//	7	reserved_7a[31:0]
//	8	reserved_8a[31:0]
//	9	reserved_9a[31:0]
//	10	reserved_10a[31:0]
//	11	reserved_11a[31:0]
//	12	reserved_12a[31:0]
//	13	reserved_13a[31:0]
//	14	reserved_14a[31:0]
//	15	reserved_15a[31:0]
//	16	reserved_16a[31:0]
//	17	reserved_17a[31:0]
//	18	reserved_18a[31:0]
//	19	reserved_19a[31:0]
//	20	reserved_20a[31:0]
//	21	reserved_21a[31:0]
//	22	reserved_22a[31:0]
//	23	reserved_23a[31:0]
//	24	reserved_24a[27:0], looping_count[31:28]
//
// ################ END SUMMARY #################

#define NUM_OF_DWORDS_REO_UNBLOCK_CACHE_STATUS 25

struct reo_unblock_cache_status {
    struct            uniform_reo_status_header                       status_header;
             uint32_t error_detected                  :  1, //[0]
                      unblock_type                    :  1, //[1]
                      reserved_2a                     : 30; //[31:2]
             uint32_t reserved_3a                     : 32; //[31:0]
             uint32_t reserved_4a                     : 32; //[31:0]
             uint32_t reserved_5a                     : 32; //[31:0]
             uint32_t reserved_6a                     : 32; //[31:0]
             uint32_t reserved_7a                     : 32; //[31:0]
             uint32_t reserved_8a                     : 32; //[31:0]
             uint32_t reserved_9a                     : 32; //[31:0]
             uint32_t reserved_10a                    : 32; //[31:0]
             uint32_t reserved_11a                    : 32; //[31:0]
             uint32_t reserved_12a                    : 32; //[31:0]
             uint32_t reserved_13a                    : 32; //[31:0]
             uint32_t reserved_14a                    : 32; //[31:0]
             uint32_t reserved_15a                    : 32; //[31:0]
             uint32_t reserved_16a                    : 32; //[31:0]
             uint32_t reserved_17a                    : 32; //[31:0]
             uint32_t reserved_18a                    : 32; //[31:0]
             uint32_t reserved_19a                    : 32; //[31:0]
             uint32_t reserved_20a                    : 32; //[31:0]
             uint32_t reserved_21a                    : 32; //[31:0]
             uint32_t reserved_22a                    : 32; //[31:0]
             uint32_t reserved_23a                    : 32; //[31:0]
             uint32_t reserved_24a                    : 28, //[27:0]
                      looping_count                   :  4; //[31:28]
};

/*

struct uniform_reo_status_header status_header
			
			Consumer: SW
			
			Producer: REO
			
			
			
			Details that can link this status with the original
			command. It also contains info on how long REO took to
			execute this command.

error_detected
			
			Status for blocking resource handling
			
			
			
			0: No error has been detected while executing this
			command
			
			1: The blocking resource was not in use, and therefor it
			could not be 'unblocked'

unblock_type
			
			Reference to the type of Unblock command type...
			
			
			
			<enum 0 unblock_resource_index> Unblock a blocking
			resource
			
			
			
			<enum 1 unblock_cache> The entire cache usage is
			unblock. 
			
			
			
			<legal all>

reserved_2a
			
			<legal 0>

reserved_3a
			
			<legal 0>

reserved_4a
			
			<legal 0>

reserved_5a
			
			<legal 0>

reserved_6a
			
			<legal 0>

reserved_7a
			
			<legal 0>

reserved_8a
			
			<legal 0>

reserved_9a
			
			<legal 0>

reserved_10a
			
			<legal 0>

reserved_11a
			
			<legal 0>

reserved_12a
			
			<legal 0>

reserved_13a
			
			<legal 0>

reserved_14a
			
			<legal 0>

reserved_15a
			
			<legal 0>

reserved_16a
			
			<legal 0>

reserved_17a
			
			<legal 0>

reserved_18a
			
			<legal 0>

reserved_19a
			
			<legal 0>

reserved_20a
			
			<legal 0>

reserved_21a
			
			<legal 0>

reserved_22a
			
			<legal 0>

reserved_23a
			
			<legal 0>

reserved_24a
			
			<legal 0>

looping_count
			
			A count value that indicates the number of times the
			producer of entries into this Ring has looped around the
			ring.
			
			At initialization time, this value is set to 0. On the
			first loop, this value is set to 1. After the max value is
			reached allowed by the number of bits for this field, the
			count value continues with 0 again.
			
			
			
			In case SW is the consumer of the ring entries, it can
			use this field to figure out up to where the producer of
			entries has created new entries. This eliminates the need to
			check where the head pointer' of the ring is located once
			the SW starts processing an interrupt indicating that new
			entries have been put into this ring...
			
			
			
			Also note that SW if it wants only needs to look at the
			LSB bit of this count value.
			
			<legal all>
*/


 /* EXTERNAL REFERENCE : struct uniform_reo_status_header status_header */ 


/* Description		REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER
			
			Consumer: SW , DEBUG
			
			Producer: REO
			
			
			
			The value in this field is equal to value of the
			'REO_CMD_Number' field the REO command 
			
			
			
			This field helps to correlate the statuses with the REO
			commands.
			
			
			
			<legal all> 
*/
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET 0x00000000
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_LSB 0
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_MASK 0x0000ffff

/* Description		REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME
			
			Consumer: DEBUG
			
			Producer: REO 
			
			
			
			The amount of time REO took to excecute the command.
			Note that this time does not include the duration of the
			command waiting in the command ring, before the execution
			started.
			
			
			
			In us.
			
			
			
			<legal all>
*/
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET 0x00000000
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_LSB 16
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_MASK 0x03ff0000

/* Description		REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS
			
			Consumer: DEBUG
			
			Producer: REO 
			
			
			
			Execution status of the command.
			
			
			
			<enum 0 reo_successful_execution> Command has
			successfully be executed
			
			<enum 1 reo_blocked_execution> Command could not be
			executed as the queue or cache was blocked
			
			<enum 2 reo_failed_execution> Command has encountered
			problems when executing, like the queue descriptor not being
			valid. None of the status fields in the entire STATUS TLV
			are valid.
			
			<enum 3 reo_resource_blocked> Command is NOT  executed
			because one or more descriptors were blocked. This is SW
			programming mistake.
			
			None of the status fields in the entire STATUS TLV are
			valid.
			
			
			
			<legal  0-3>
*/
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x00000000
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB 26
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK 0x0c000000

/* Description		REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_RESERVED_0A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_RESERVED_0A_OFFSET  0x00000000
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_RESERVED_0A_LSB     28
#define REO_UNBLOCK_CACHE_STATUS_0_STATUS_HEADER_RESERVED_0A_MASK    0xf0000000

/* Description		REO_UNBLOCK_CACHE_STATUS_1_STATUS_HEADER_TIMESTAMP
			
			Timestamp at the moment that this status report is
			written.
			
			
			
			<legal all>
*/
#define REO_UNBLOCK_CACHE_STATUS_1_STATUS_HEADER_TIMESTAMP_OFFSET    0x00000004
#define REO_UNBLOCK_CACHE_STATUS_1_STATUS_HEADER_TIMESTAMP_LSB       0
#define REO_UNBLOCK_CACHE_STATUS_1_STATUS_HEADER_TIMESTAMP_MASK      0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_2_ERROR_DETECTED
			
			Status for blocking resource handling
			
			
			
			0: No error has been detected while executing this
			command
			
			1: The blocking resource was not in use, and therefor it
			could not be 'unblocked'
*/
#define REO_UNBLOCK_CACHE_STATUS_2_ERROR_DETECTED_OFFSET             0x00000008
#define REO_UNBLOCK_CACHE_STATUS_2_ERROR_DETECTED_LSB                0
#define REO_UNBLOCK_CACHE_STATUS_2_ERROR_DETECTED_MASK               0x00000001

/* Description		REO_UNBLOCK_CACHE_STATUS_2_UNBLOCK_TYPE
			
			Reference to the type of Unblock command type...
			
			
			
			<enum 0 unblock_resource_index> Unblock a blocking
			resource
			
			
			
			<enum 1 unblock_cache> The entire cache usage is
			unblock. 
			
			
			
			<legal all>
*/
#define REO_UNBLOCK_CACHE_STATUS_2_UNBLOCK_TYPE_OFFSET               0x00000008
#define REO_UNBLOCK_CACHE_STATUS_2_UNBLOCK_TYPE_LSB                  1
#define REO_UNBLOCK_CACHE_STATUS_2_UNBLOCK_TYPE_MASK                 0x00000002

/* Description		REO_UNBLOCK_CACHE_STATUS_2_RESERVED_2A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_2_RESERVED_2A_OFFSET                0x00000008
#define REO_UNBLOCK_CACHE_STATUS_2_RESERVED_2A_LSB                   2
#define REO_UNBLOCK_CACHE_STATUS_2_RESERVED_2A_MASK                  0xfffffffc

/* Description		REO_UNBLOCK_CACHE_STATUS_3_RESERVED_3A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_3_RESERVED_3A_OFFSET                0x0000000c
#define REO_UNBLOCK_CACHE_STATUS_3_RESERVED_3A_LSB                   0
#define REO_UNBLOCK_CACHE_STATUS_3_RESERVED_3A_MASK                  0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_4_RESERVED_4A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_4_RESERVED_4A_OFFSET                0x00000010
#define REO_UNBLOCK_CACHE_STATUS_4_RESERVED_4A_LSB                   0
#define REO_UNBLOCK_CACHE_STATUS_4_RESERVED_4A_MASK                  0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_5_RESERVED_5A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_5_RESERVED_5A_OFFSET                0x00000014
#define REO_UNBLOCK_CACHE_STATUS_5_RESERVED_5A_LSB                   0
#define REO_UNBLOCK_CACHE_STATUS_5_RESERVED_5A_MASK                  0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_6_RESERVED_6A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_6_RESERVED_6A_OFFSET                0x00000018
#define REO_UNBLOCK_CACHE_STATUS_6_RESERVED_6A_LSB                   0
#define REO_UNBLOCK_CACHE_STATUS_6_RESERVED_6A_MASK                  0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_7_RESERVED_7A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_7_RESERVED_7A_OFFSET                0x0000001c
#define REO_UNBLOCK_CACHE_STATUS_7_RESERVED_7A_LSB                   0
#define REO_UNBLOCK_CACHE_STATUS_7_RESERVED_7A_MASK                  0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_8_RESERVED_8A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_8_RESERVED_8A_OFFSET                0x00000020
#define REO_UNBLOCK_CACHE_STATUS_8_RESERVED_8A_LSB                   0
#define REO_UNBLOCK_CACHE_STATUS_8_RESERVED_8A_MASK                  0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_9_RESERVED_9A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_9_RESERVED_9A_OFFSET                0x00000024
#define REO_UNBLOCK_CACHE_STATUS_9_RESERVED_9A_LSB                   0
#define REO_UNBLOCK_CACHE_STATUS_9_RESERVED_9A_MASK                  0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_10_RESERVED_10A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_10_RESERVED_10A_OFFSET              0x00000028
#define REO_UNBLOCK_CACHE_STATUS_10_RESERVED_10A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_10_RESERVED_10A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_11_RESERVED_11A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_11_RESERVED_11A_OFFSET              0x0000002c
#define REO_UNBLOCK_CACHE_STATUS_11_RESERVED_11A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_11_RESERVED_11A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_12_RESERVED_12A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_12_RESERVED_12A_OFFSET              0x00000030
#define REO_UNBLOCK_CACHE_STATUS_12_RESERVED_12A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_12_RESERVED_12A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_13_RESERVED_13A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_13_RESERVED_13A_OFFSET              0x00000034
#define REO_UNBLOCK_CACHE_STATUS_13_RESERVED_13A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_13_RESERVED_13A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_14_RESERVED_14A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_14_RESERVED_14A_OFFSET              0x00000038
#define REO_UNBLOCK_CACHE_STATUS_14_RESERVED_14A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_14_RESERVED_14A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_15_RESERVED_15A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_15_RESERVED_15A_OFFSET              0x0000003c
#define REO_UNBLOCK_CACHE_STATUS_15_RESERVED_15A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_15_RESERVED_15A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_16_RESERVED_16A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_16_RESERVED_16A_OFFSET              0x00000040
#define REO_UNBLOCK_CACHE_STATUS_16_RESERVED_16A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_16_RESERVED_16A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_17_RESERVED_17A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_17_RESERVED_17A_OFFSET              0x00000044
#define REO_UNBLOCK_CACHE_STATUS_17_RESERVED_17A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_17_RESERVED_17A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_18_RESERVED_18A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_18_RESERVED_18A_OFFSET              0x00000048
#define REO_UNBLOCK_CACHE_STATUS_18_RESERVED_18A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_18_RESERVED_18A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_19_RESERVED_19A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_19_RESERVED_19A_OFFSET              0x0000004c
#define REO_UNBLOCK_CACHE_STATUS_19_RESERVED_19A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_19_RESERVED_19A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_20_RESERVED_20A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_20_RESERVED_20A_OFFSET              0x00000050
#define REO_UNBLOCK_CACHE_STATUS_20_RESERVED_20A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_20_RESERVED_20A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_21_RESERVED_21A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_21_RESERVED_21A_OFFSET              0x00000054
#define REO_UNBLOCK_CACHE_STATUS_21_RESERVED_21A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_21_RESERVED_21A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_22_RESERVED_22A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_22_RESERVED_22A_OFFSET              0x00000058
#define REO_UNBLOCK_CACHE_STATUS_22_RESERVED_22A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_22_RESERVED_22A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_23_RESERVED_23A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_23_RESERVED_23A_OFFSET              0x0000005c
#define REO_UNBLOCK_CACHE_STATUS_23_RESERVED_23A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_23_RESERVED_23A_MASK                0xffffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_24_RESERVED_24A
			
			<legal 0>
*/
#define REO_UNBLOCK_CACHE_STATUS_24_RESERVED_24A_OFFSET              0x00000060
#define REO_UNBLOCK_CACHE_STATUS_24_RESERVED_24A_LSB                 0
#define REO_UNBLOCK_CACHE_STATUS_24_RESERVED_24A_MASK                0x0fffffff

/* Description		REO_UNBLOCK_CACHE_STATUS_24_LOOPING_COUNT
			
			A count value that indicates the number of times the
			producer of entries into this Ring has looped around the
			ring.
			
			At initialization time, this value is set to 0. On the
			first loop, this value is set to 1. After the max value is
			reached allowed by the number of bits for this field, the
			count value continues with 0 again.
			
			
			
			In case SW is the consumer of the ring entries, it can
			use this field to figure out up to where the producer of
			entries has created new entries. This eliminates the need to
			check where the head pointer' of the ring is located once
			the SW starts processing an interrupt indicating that new
			entries have been put into this ring...
			
			
			
			Also note that SW if it wants only needs to look at the
			LSB bit of this count value.
			
			<legal all>
*/
#define REO_UNBLOCK_CACHE_STATUS_24_LOOPING_COUNT_OFFSET             0x00000060
#define REO_UNBLOCK_CACHE_STATUS_24_LOOPING_COUNT_LSB                28
#define REO_UNBLOCK_CACHE_STATUS_24_LOOPING_COUNT_MASK               0xf0000000


#endif // _REO_UNBLOCK_CACHE_STATUS_H_
