1 /* 2 * Copyright (c) 2011 Intel Corporation. All Rights Reserved. 3 * Copyright (c) Imagination Technologies Limited, UK 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the 7 * "Software"), to deal in the Software without restriction, including 8 * without limitation the rights to use, copy, modify, merge, publish, 9 * distribute, sub license, and/or sell copies of the Software, and to 10 * permit persons to whom the Software is furnished to do so, subject to 11 * the following conditions: 12 * 13 * The above copyright notice and this permission notice (including the 14 * next paragraph) shall be included in all copies or substantial portions 15 * of the Software. 16 * 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 20 * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 21 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 22 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 23 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 */ 25 26 #ifndef _REGCONV_H_topaz_db_regs_h 27 #define _REGCONV_H_topaz_db_regs_h 28 29 #ifdef __cplusplus 30 #include "img_types.h" 31 #include "systemc_utils.h" 32 #endif 33 34 35 /* Register CR_DB_ALPHA_BETA_OFFSET */ 36 #define TOPAZ_DB_CR_DB_ALPHA_BETA_OFFSET 0x0004 37 #define MASK_TOPAZ_DB_CR_H264_ALPHA_OFFSET 0x0000001F 38 #define SHIFT_TOPAZ_DB_CR_H264_ALPHA_OFFSET 0 39 #define REGNUM_TOPAZ_DB_CR_H264_ALPHA_OFFSET 0x0004 40 #define SIGNED_TOPAZ_DB_CR_H264_ALPHA_OFFSET 0 41 42 #define MASK_TOPAZ_DB_CR_H264_BETA_OFFSET 0x000003E0 43 #define SHIFT_TOPAZ_DB_CR_H264_BETA_OFFSET 5 44 #define REGNUM_TOPAZ_DB_CR_H264_BETA_OFFSET 0x0004 45 #define SIGNED_TOPAZ_DB_CR_H264_BETA_OFFSET 0 46 47 /* Register CR_DB_BUF_STATE */ 48 #define TOPAZ_DB_CR_DB_BUF_STATE 0x0008 49 #define MASK_TOPAZ_DB_CR_BUSY 0x08000000 50 #define SHIFT_TOPAZ_DB_CR_BUSY 27 51 #define REGNUM_TOPAZ_DB_CR_BUSY 0x0008 52 #define SIGNED_TOPAZ_DB_CR_BUSY 0 53 54 /* Register CR_DB_CMD_FIFO_SIG */ 55 #define TOPAZ_DB_CR_DB_CMD_FIFO_SIG 0x000C 56 #define MASK_TOPAZ_DB_CR_CMD_IN_SIGNATURE 0xFFFFFFFF 57 #define SHIFT_TOPAZ_DB_CR_CMD_IN_SIGNATURE 0 58 #define REGNUM_TOPAZ_DB_CR_CMD_IN_SIGNATURE 0x000C 59 #define SIGNED_TOPAZ_DB_CR_CMD_IN_SIGNATURE 0 60 61 /* Register CR_DB_INPUT_SIG */ 62 #define TOPAZ_DB_CR_DB_INPUT_SIG 0x0010 63 #define MASK_TOPAZ_DB_CR_DATA_IN_SIGNATURE 0xFFFFFFFF 64 #define SHIFT_TOPAZ_DB_CR_DATA_IN_SIGNATURE 0 65 #define REGNUM_TOPAZ_DB_CR_DATA_IN_SIGNATURE 0x0010 66 #define SIGNED_TOPAZ_DB_CR_DATA_IN_SIGNATURE 0 67 68 /* Register CR_DB_OUTPUT_SIG */ 69 #define TOPAZ_DB_CR_DB_OUTPUT_SIG 0x0014 70 #define MASK_TOPAZ_DB_CR_DATA_OUT_SIGNATURE 0xFFFFFFFF 71 #define SHIFT_TOPAZ_DB_CR_DATA_OUT_SIGNATURE 0 72 #define REGNUM_TOPAZ_DB_CR_DATA_OUT_SIGNATURE 0x0014 73 #define SIGNED_TOPAZ_DB_CR_DATA_OUT_SIGNATURE 0 74 75 /* Register CR_DB_DIAG */ 76 #define TOPAZ_DB_CR_DB_DIAG 0x0018 77 #define MASK_TOPAZ_DB_CR_DIAG 0xFFFFFFFF 78 #define SHIFT_TOPAZ_DB_CR_DIAG 0 79 #define REGNUM_TOPAZ_DB_CR_DIAG 0x0018 80 #define SIGNED_TOPAZ_DB_CR_DIAG 0 81 82 /* Register CR_DB_SIG_ADDR */ 83 #define TOPAZ_DB_CR_DB_SIG_ADDR 0x001C 84 #define MASK_TOPAZ_DB_CR_ADDR_OUT_SIGNATURE 0xFFFFFFFF 85 #define SHIFT_TOPAZ_DB_CR_ADDR_OUT_SIGNATURE 0 86 #define REGNUM_TOPAZ_DB_CR_ADDR_OUT_SIGNATURE 0x001C 87 #define SIGNED_TOPAZ_DB_CR_ADDR_OUT_SIGNATURE 0 88 89 /* Register CR_DB_START */ 90 #define TOPAZ_DB_CR_DB_START 0x0020 91 #define MASK_TOPAZ_DB_CR_START 0x00000001 92 #define SHIFT_TOPAZ_DB_CR_START 0 93 #define REGNUM_TOPAZ_DB_CR_START 0x0020 94 #define SIGNED_TOPAZ_DB_CR_START 0 95 96 #define MASK_TOPAZ_DB_CR_FLUSH 0x00000002 97 #define SHIFT_TOPAZ_DB_CR_FLUSH 1 98 #define REGNUM_TOPAZ_DB_CR_FLUSH 0x0020 99 #define SIGNED_TOPAZ_DB_CR_FLUSH 0 100 101 /* Register CR_DB_RESET */ 102 #define TOPAZ_DB_CR_DB_RESET 0x0024 103 #define MASK_TOPAZ_DB_CR_RESET 0x00000001 104 #define SHIFT_TOPAZ_DB_CR_RESET 0 105 #define REGNUM_TOPAZ_DB_CR_RESET 0x0024 106 #define SIGNED_TOPAZ_DB_CR_RESET 0 107 108 /* Register CR_DB_DISABLE_DEBLOCK_IDC */ 109 #define TOPAZ_DB_CR_DB_DISABLE_DEBLOCK_IDC 0x002C 110 #define MASK_TOPAZ_DB_CR_DISABLE_DEBLOCK_IDC 0x00000003 111 #define SHIFT_TOPAZ_DB_CR_DISABLE_DEBLOCK_IDC 0 112 #define REGNUM_TOPAZ_DB_CR_DISABLE_DEBLOCK_IDC 0x002C 113 #define SIGNED_TOPAZ_DB_CR_DISABLE_DEBLOCK_IDC 0 114 115 #define MASK_TOPAZ_DB_CR_DISABLE_FILTER_SLICETOP 0x00000004 116 #define SHIFT_TOPAZ_DB_CR_DISABLE_FILTER_SLICETOP 2 117 #define REGNUM_TOPAZ_DB_CR_DISABLE_FILTER_SLICETOP 0x002C 118 #define SIGNED_TOPAZ_DB_CR_DISABLE_FILTER_SLICETOP 0 119 120 /* Register CR_DB_STATUS */ 121 #define TOPAZ_DB_CR_DB_STATUS 0x0030 122 #define MASK_TOPAZ_DB_CR_V_PLANE_DONE 0x00000001 123 #define SHIFT_TOPAZ_DB_CR_V_PLANE_DONE 0 124 #define REGNUM_TOPAZ_DB_CR_V_PLANE_DONE 0x0030 125 #define SIGNED_TOPAZ_DB_CR_V_PLANE_DONE 0 126 127 #define MASK_TOPAZ_DB_CR_U_PLANE_DONE 0x00000002 128 #define SHIFT_TOPAZ_DB_CR_U_PLANE_DONE 1 129 #define REGNUM_TOPAZ_DB_CR_U_PLANE_DONE 0x0030 130 #define SIGNED_TOPAZ_DB_CR_U_PLANE_DONE 0 131 132 #define MASK_TOPAZ_DB_CR_Y_PLANE_DONE 0x00000004 133 #define SHIFT_TOPAZ_DB_CR_Y_PLANE_DONE 2 134 #define REGNUM_TOPAZ_DB_CR_Y_PLANE_DONE 0x0030 135 #define SIGNED_TOPAZ_DB_CR_Y_PLANE_DONE 0 136 137 #define MASK_TOPAZ_DB_CR_MODULE_BUSY 0x00000008 138 #define SHIFT_TOPAZ_DB_CR_MODULE_BUSY 3 139 #define REGNUM_TOPAZ_DB_CR_MODULE_BUSY 0x0030 140 #define SIGNED_TOPAZ_DB_CR_MODULE_BUSY 0 141 142 /* Register CR_DB_PERFORMANCE_0 */ 143 #define TOPAZ_DB_CR_DB_PERFORMANCE_0 0x0034 144 #define MASK_TOPAZ_DB_CR_WORST_MB_CYCLES 0x0000FFFF 145 #define SHIFT_TOPAZ_DB_CR_WORST_MB_CYCLES 0 146 #define REGNUM_TOPAZ_DB_CR_WORST_MB_CYCLES 0x0034 147 #define SIGNED_TOPAZ_DB_CR_WORST_MB_CYCLES 0 148 149 #define MASK_TOPAZ_DB_CR_WORST_MB_TYPE 0x00030000 150 #define SHIFT_TOPAZ_DB_CR_WORST_MB_TYPE 16 151 #define REGNUM_TOPAZ_DB_CR_WORST_MB_TYPE 0x0034 152 #define SIGNED_TOPAZ_DB_CR_WORST_MB_TYPE 0 153 154 /* Register CR_DB_PERFORMANCE_1 */ 155 #define TOPAZ_DB_CR_DB_PERFORMANCE_1 0x0038 156 #define MASK_TOPAZ_DB_CR_WORST_MB_NUMBER 0x003FFFFF 157 #define SHIFT_TOPAZ_DB_CR_WORST_MB_NUMBER 0 158 #define REGNUM_TOPAZ_DB_CR_WORST_MB_NUMBER 0x0038 159 #define SIGNED_TOPAZ_DB_CR_WORST_MB_NUMBER 0 160 161 /* Register CR_DB_PERFORMANCE_RESET */ 162 #define TOPAZ_DB_CR_DB_PERFORMANCE_RESET 0x003C 163 #define MASK_TOPAZ_DB_CR_WORST_MB_RESET 0x00000001 164 #define SHIFT_TOPAZ_DB_CR_WORST_MB_RESET 0 165 #define REGNUM_TOPAZ_DB_CR_WORST_MB_RESET 0x003C 166 #define SIGNED_TOPAZ_DB_CR_WORST_MB_RESET 0 167 168 #define MASK_TOPAZ_DB_CR_DISABLE_COUNTERS 0x00000002 169 #define SHIFT_TOPAZ_DB_CR_DISABLE_COUNTERS 1 170 #define REGNUM_TOPAZ_DB_CR_DISABLE_COUNTERS 0x003C 171 #define SIGNED_TOPAZ_DB_CR_DISABLE_COUNTERS 0 172 173 /* 174 Byte range covering the group TOPAZHP_DB file 175 */ 176 177 #define TOPAZ_DB_TOPAZHP_DB_REGISTERS_START 0x00000004 178 #define TOPAZ_DB_TOPAZHP_DB_REGISTERS_END 0x0000003F 179 180 /* 181 Byte range covering the whole register file 182 */ 183 184 #define TOPAZ_DB_REGISTERS_START 0x00000004 185 #define TOPAZ_DB_REGISTERS_END 0x0000003F 186 #define TOPAZ_DB_REG_DEFAULT_TABLE struct {\ 187 IMG_UINT16 uRegOffset;\ 188 IMG_UINT32 uRegDefault;\ 189 IMG_UINT32 uRegMask;\ 190 bool bReadonly;\ 191 const char* pszName;\ 192 } TOPAZ_DB_Defaults[] = {\ 193 {0x0004, 0x00000000, 0x000003FF, 0, "CR_DB_ALPHA_BETA_OFFSET" } ,\ 194 {0x0008, 0x00000000, 0x08000000, 1, "CR_DB_BUF_STATE" } ,\ 195 {0x000C, 0x00000000, 0xFFFFFFFF, 1, "CR_DB_CMD_FIFO_SIG" } ,\ 196 {0x0010, 0x00000000, 0xFFFFFFFF, 1, "CR_DB_INPUT_SIG" } ,\ 197 {0x0014, 0x00000000, 0xFFFFFFFF, 1, "CR_DB_OUTPUT_SIG" } ,\ 198 {0x0018, 0x11000000, 0xFFFFFFFF, 1, "CR_DB_DIAG" } ,\ 199 {0x001C, 0x00000000, 0xFFFFFFFF, 1, "CR_DB_SIG_ADDR" } ,\ 200 {0x0020, 0x00000000, 0x00000003, 0, "CR_DB_START" } ,\ 201 {0x0024, 0x00000000, 0x00000001, 0, "CR_DB_RESET" } ,\ 202 {0x002C, 0x00000000, 0x00000007, 0, "CR_DB_DISABLE_DEBLOCK_IDC" } ,\ 203 {0x0030, 0x00000000, 0x0000000F, 1, "CR_DB_STATUS" } ,\ 204 {0x0034, 0x00000000, 0x0003FFFF, 1, "CR_DB_PERFORMANCE_0" } ,\ 205 {0x0038, 0x00000000, 0x003FFFFF, 1, "CR_DB_PERFORMANCE_1" } ,\ 206 {0x003C, 0x00000000, 0x00000003, 0, "CR_DB_PERFORMANCE_RESET" } ,\ 207 { 0 }} 208 209 #define TOPAZ_DB_REGS_INIT(uBase) \ 210 { \ 211 int n;\ 212 TOPAZ_DB_REG_DEFAULT_TABLE;\ 213 for (n = 0; n < sizeof(TOPAZ_DB_Defaults)/ sizeof(TOPAZ_DB_Defaults[0] ) -1; n++)\ 214 {\ 215 RegWriteNoTrap(TOPAZ_DB_Defaults[n].uRegOffset + uBase, TOPAZ_DB_Defaults[n].uRegDefault); \ 216 }\ 217 } 218 #endif 219