1*53ee8cc1Swenshuai.xi //<MStar Software> 2*53ee8cc1Swenshuai.xi //****************************************************************************** 3*53ee8cc1Swenshuai.xi // MStar Software 4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are 6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties. 8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all 9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written 10*53ee8cc1Swenshuai.xi // permission has been granted by MStar. 11*53ee8cc1Swenshuai.xi // 12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you 13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to 14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations: 15*53ee8cc1Swenshuai.xi // 16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar 17*53ee8cc1Swenshuai.xi // Software and any modification/derivatives thereof. 18*53ee8cc1Swenshuai.xi // No right, ownership, or interest to MStar Software and any 19*53ee8cc1Swenshuai.xi // modification/derivatives thereof is transferred to you under Terms. 20*53ee8cc1Swenshuai.xi // 21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be 22*53ee8cc1Swenshuai.xi // supplied together with third party`s software and the use of MStar 23*53ee8cc1Swenshuai.xi // Software may require additional licenses from third parties. 24*53ee8cc1Swenshuai.xi // Therefore, you hereby agree it is your sole responsibility to separately 25*53ee8cc1Swenshuai.xi // obtain any and all third party right and license necessary for your use of 26*53ee8cc1Swenshuai.xi // such third party`s software. 27*53ee8cc1Swenshuai.xi // 28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29*53ee8cc1Swenshuai.xi // MStar`s confidential information and you agree to keep MStar`s 30*53ee8cc1Swenshuai.xi // confidential information in strictest confidence and not disclose to any 31*53ee8cc1Swenshuai.xi // third party. 32*53ee8cc1Swenshuai.xi // 33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34*53ee8cc1Swenshuai.xi // kind. Any warranties are hereby expressly disclaimed by MStar, including 35*53ee8cc1Swenshuai.xi // without limitation, any warranties of merchantability, non-infringement of 36*53ee8cc1Swenshuai.xi // intellectual property rights, fitness for a particular purpose, error free 37*53ee8cc1Swenshuai.xi // and in conformity with any international standard. You agree to waive any 38*53ee8cc1Swenshuai.xi // claim against MStar for any loss, damage, cost or expense that you may 39*53ee8cc1Swenshuai.xi // incur related to your use of MStar Software. 40*53ee8cc1Swenshuai.xi // In no event shall MStar be liable for any direct, indirect, incidental or 41*53ee8cc1Swenshuai.xi // consequential damages, including without limitation, lost of profit or 42*53ee8cc1Swenshuai.xi // revenues, lost or damage of data, and unauthorized system use. 43*53ee8cc1Swenshuai.xi // You agree that this Section 4 shall still apply without being affected 44*53ee8cc1Swenshuai.xi // even if MStar Software has been modified by MStar in accordance with your 45*53ee8cc1Swenshuai.xi // request or instruction for your use, except otherwise agreed by both 46*53ee8cc1Swenshuai.xi // parties in writing. 47*53ee8cc1Swenshuai.xi // 48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or 49*53ee8cc1Swenshuai.xi // services in relation with MStar Software to you for your use of 50*53ee8cc1Swenshuai.xi // MStar Software in conjunction with your or your customer`s product 51*53ee8cc1Swenshuai.xi // ("Services"). 52*53ee8cc1Swenshuai.xi // You understand and agree that, except otherwise agreed by both parties in 53*53ee8cc1Swenshuai.xi // writing, Services are provided on an "AS IS" basis and the warranty 54*53ee8cc1Swenshuai.xi // disclaimer set forth in Section 4 above shall apply. 55*53ee8cc1Swenshuai.xi // 56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels 57*53ee8cc1Swenshuai.xi // or otherwise: 58*53ee8cc1Swenshuai.xi // (a) conferring any license or right to use MStar name, trademark, service 59*53ee8cc1Swenshuai.xi // mark, symbol or any other identification; 60*53ee8cc1Swenshuai.xi // (b) obligating MStar or any of its affiliates to furnish any person, 61*53ee8cc1Swenshuai.xi // including without limitation, you and your customers, any assistance 62*53ee8cc1Swenshuai.xi // of any kind whatsoever, or any information; or 63*53ee8cc1Swenshuai.xi // (c) conferring any license or right under any intellectual property right. 64*53ee8cc1Swenshuai.xi // 65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws 66*53ee8cc1Swenshuai.xi // of Taiwan, R.O.C., excluding its conflict of law rules. 67*53ee8cc1Swenshuai.xi // Any and all dispute arising out hereof or related hereto shall be finally 68*53ee8cc1Swenshuai.xi // settled by arbitration referred to the Chinese Arbitration Association, 69*53ee8cc1Swenshuai.xi // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70*53ee8cc1Swenshuai.xi // Rules of the Association by three (3) arbitrators appointed in accordance 71*53ee8cc1Swenshuai.xi // with the said Rules. 72*53ee8cc1Swenshuai.xi // The place of arbitration shall be in Taipei, Taiwan and the language shall 73*53ee8cc1Swenshuai.xi // be English. 74*53ee8cc1Swenshuai.xi // The arbitration award shall be final and binding to both parties. 75*53ee8cc1Swenshuai.xi // 76*53ee8cc1Swenshuai.xi //****************************************************************************** 77*53ee8cc1Swenshuai.xi //<MStar Software> 78*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 79*53ee8cc1Swenshuai.xi // 80*53ee8cc1Swenshuai.xi // Copyright (c) 2006-2009 MStar Semiconductor, Inc. 81*53ee8cc1Swenshuai.xi // All rights reserved. 82*53ee8cc1Swenshuai.xi // 83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained 84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of 85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence 86*53ee8cc1Swenshuai.xi // (¡§MStar Confidential Information¡¨) by the recipient. 87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure, 88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling, 89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential 90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the 91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom. 92*53ee8cc1Swenshuai.xi // 93*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 94*53ee8cc1Swenshuai.xi 95*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////////////////////////// 96*53ee8cc1Swenshuai.xi // 97*53ee8cc1Swenshuai.xi // File name: regAESDMA.h 98*53ee8cc1Swenshuai.xi // Description: AESDMA Register Definition 99*53ee8cc1Swenshuai.xi // 100*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////////////////////////// 101*53ee8cc1Swenshuai.xi 102*53ee8cc1Swenshuai.xi #ifndef _AESDMA_REG_MCU_H_ 103*53ee8cc1Swenshuai.xi #define _AESDMA_REG_MCU_H_ 104*53ee8cc1Swenshuai.xi 105*53ee8cc1Swenshuai.xi 106*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 107*53ee8cc1Swenshuai.xi // Abbreviation 108*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 109*53ee8cc1Swenshuai.xi // Addr Address 110*53ee8cc1Swenshuai.xi // Buf Buffer 111*53ee8cc1Swenshuai.xi // Clr Clear 112*53ee8cc1Swenshuai.xi // CmdQ Command queue 113*53ee8cc1Swenshuai.xi // Cnt Count 114*53ee8cc1Swenshuai.xi // Ctrl Control 115*53ee8cc1Swenshuai.xi // Flt Filter 116*53ee8cc1Swenshuai.xi // Hw Hardware 117*53ee8cc1Swenshuai.xi // Int Interrupt 118*53ee8cc1Swenshuai.xi // Len Length 119*53ee8cc1Swenshuai.xi // Ovfw Overflow 120*53ee8cc1Swenshuai.xi // Pkt Packet 121*53ee8cc1Swenshuai.xi // Rec Record 122*53ee8cc1Swenshuai.xi // Recv Receive 123*53ee8cc1Swenshuai.xi // Rmn Remain 124*53ee8cc1Swenshuai.xi // Reg Register 125*53ee8cc1Swenshuai.xi // Req Request 126*53ee8cc1Swenshuai.xi // Rst Reset 127*53ee8cc1Swenshuai.xi // Scmb Scramble 128*53ee8cc1Swenshuai.xi // Sec Section 129*53ee8cc1Swenshuai.xi // Stat Status 130*53ee8cc1Swenshuai.xi // Sw Software 131*53ee8cc1Swenshuai.xi // Ts Transport Stream 132*53ee8cc1Swenshuai.xi 133*53ee8cc1Swenshuai.xi 134*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 135*53ee8cc1Swenshuai.xi // Global Definition 136*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 137*53ee8cc1Swenshuai.xi 138*53ee8cc1Swenshuai.xi 139*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 140*53ee8cc1Swenshuai.xi // Compliation Option 141*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 142*53ee8cc1Swenshuai.xi 143*53ee8cc1Swenshuai.xi 144*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 145*53ee8cc1Swenshuai.xi // Harware Capability 146*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 147*53ee8cc1Swenshuai.xi 148*53ee8cc1Swenshuai.xi 149*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 150*53ee8cc1Swenshuai.xi // Type and Structure 151*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 152*53ee8cc1Swenshuai.xi #if (defined(CONFIG_NUTTX) || defined(CONFIG_OPTEE)) 153*53ee8cc1Swenshuai.xi #define REG_AESDMACTRL_BASE 0x27B40UL //(0x13D00/2 + 0x50) * 4 154*53ee8cc1Swenshuai.xi #define REG_SHARNGCTRL_BASE 0x27A00UL //(0x13D00/2 + 0x0) * 4 155*53ee8cc1Swenshuai.xi #define AESDMS_SECURED_BANK_EN 1 156*53ee8cc1Swenshuai.xi #else 157*53ee8cc1Swenshuai.xi #define REG_AESDMACTRL_BASE 0x47940UL //(0x23C00/2 + 0x50) * 4 158*53ee8cc1Swenshuai.xi #define REG_SHARNGCTRL_BASE 0x47800UL //(0x23C00/2 + 0x0) * 4 159*53ee8cc1Swenshuai.xi #define AESDMS_SECURED_BANK_EN 0 160*53ee8cc1Swenshuai.xi #endif //#if (defined(CONFIG_NUTTX) || defined(CONFIG_OPTEE)) 161*53ee8cc1Swenshuai.xi 162*53ee8cc1Swenshuai.xi #define REG_DMASECURE_CTRL_BASE 0x27A00UL //(0x13D00/2 + 0x00) * 4 163*53ee8cc1Swenshuai.xi #define REG_DMASECURE_BASE 0x27B40UL //(0x13D00/2 + 0x50) * 4 164*53ee8cc1Swenshuai.xi #define REG_AESDMACLK_BASE 0x1460UL //(0x0A00/2 + 0x18) * 4 165*53ee8cc1Swenshuai.xi //#define REG_AESDMAMBX_BASE 0x17F8 //(0x0B00/2 + 0x7F) * 4 166*53ee8cc1Swenshuai.xi #define REG_AESDMAMBX_BASE 0x7B84UL //(0x3D00/2 + 0x61) * 4 167*53ee8cc1Swenshuai.xi #define REG_PARSERCTRL_BASE 0x45800UL //(0x22C00/2 + 0x00) * 4 168*53ee8cc1Swenshuai.xi #define REG_CIPHERCTRL_BASE 0x45840UL //(0x22C00/2 + 0x10) * 4 169*53ee8cc1Swenshuai.xi #define REG_AESDMAEXT_BASE 0x45980UL //(0x22C00/2 + 0x60) * 4 170*53ee8cc1Swenshuai.xi #define REG_TZPC_NONPM_BASE 0x47200UL //(0x23900/2 + 0x00) * 4 171*53ee8cc1Swenshuai.xi #define REG_AES_DSCMB6_BASE 0xE7A00UL //(0x73D00/2 + 0x00) * 4 172*53ee8cc1Swenshuai.xi #define REG_AES_DSCMB7_BASE 0xE7B00UL //(0x73D00/2 + 0x40) * 4 173*53ee8cc1Swenshuai.xi 174*53ee8cc1Swenshuai.xi 175*53ee8cc1Swenshuai.xi //Used for Random Number Gen, Manhattan only 176*53ee8cc1Swenshuai.xi #define REG_ANA_MISC_BASE 0x21840UL //(0x10C00/2 + 0x10) * 4 177*53ee8cc1Swenshuai.xi 178*53ee8cc1Swenshuai.xi #define RSA_E_BASE_ADDR (0x00UL) 179*53ee8cc1Swenshuai.xi #define RSA_N_BASE_ADDR (0x40UL) 180*53ee8cc1Swenshuai.xi #define RSA_A_BASE_ADDR (0x80UL) 181*53ee8cc1Swenshuai.xi #define RSA_Z_BASE_ADDR (0xC0UL) 182*53ee8cc1Swenshuai.xi #define REG_HDCP22_BASE 0xE74C0UL //(0x73A00/2 + 0x30) * 4 183*53ee8cc1Swenshuai.xi #define REG_HDCP22_SEK 0xE2538UL //(0x71200/2 + 0x4E) * 4 184*53ee8cc1Swenshuai.xi #define REG_HDCP14_BASE 0xE2438UL //(0x71200 + 0x1C) * 2 185*53ee8cc1Swenshuai.xi 186*53ee8cc1Swenshuai.xi typedef struct _REG32 187*53ee8cc1Swenshuai.xi { 188*53ee8cc1Swenshuai.xi volatile MS_U16 L; 189*53ee8cc1Swenshuai.xi volatile MS_U16 empty_L; 190*53ee8cc1Swenshuai.xi volatile MS_U16 H; 191*53ee8cc1Swenshuai.xi volatile MS_U16 empty_H; 192*53ee8cc1Swenshuai.xi } REG32; 193*53ee8cc1Swenshuai.xi 194*53ee8cc1Swenshuai.xi typedef struct _REG_CipherKey 195*53ee8cc1Swenshuai.xi { 196*53ee8cc1Swenshuai.xi REG32 Key_L; 197*53ee8cc1Swenshuai.xi REG32 Key_H; 198*53ee8cc1Swenshuai.xi } REG_CipherKey; 199*53ee8cc1Swenshuai.xi 200*53ee8cc1Swenshuai.xi typedef struct _REG_InitVector 201*53ee8cc1Swenshuai.xi { 202*53ee8cc1Swenshuai.xi REG32 IV_L; 203*53ee8cc1Swenshuai.xi REG32 IV_H; 204*53ee8cc1Swenshuai.xi } REG_InitVector; 205*53ee8cc1Swenshuai.xi 206*53ee8cc1Swenshuai.xi typedef struct _REG_AESDMACtrl 207*53ee8cc1Swenshuai.xi { 208*53ee8cc1Swenshuai.xi REG32 Dma_Ctrl; //0x50 209*53ee8cc1Swenshuai.xi #define AESDMA_CTRL_FILEIN_START 0x00000100UL 210*53ee8cc1Swenshuai.xi #define AESDMA_CTRL_FILEOUT_START 0x00000001UL 211*53ee8cc1Swenshuai.xi #define AESDMA_CTRL_SW_RST 0x00000080UL 212*53ee8cc1Swenshuai.xi #define AESDMA_CTRL_BURST_LENGTH 0x00001000UL 213*53ee8cc1Swenshuai.xi 214*53ee8cc1Swenshuai.xi #define AESDMA_ENG_PS_RELEASE 0x00010000UL 215*53ee8cc1Swenshuai.xi #define AESDMA_ENG_PS_IN_EN 0x00100000UL 216*53ee8cc1Swenshuai.xi #define AESDMA_ENG_PS_OUT_EN 0x00200000UL 217*53ee8cc1Swenshuai.xi #define AESDMA_ENG_AES_EN 0x01000000UL 218*53ee8cc1Swenshuai.xi #define AESDMA_ENG_DES_EN 0x00040000UL 219*53ee8cc1Swenshuai.xi #define AESDMA_ENG_TDES_EN 0x00080000UL 220*53ee8cc1Swenshuai.xi #define AESDMA_ENG_DESCRYPT 0x02000000UL // 0:encrypt, 1:decrypt 221*53ee8cc1Swenshuai.xi #define AESDMA_ENG_CTR_MODE 0x10000000UL 222*53ee8cc1Swenshuai.xi #define AESDMA_ENG_CBC_MODE 0x20000000UL 223*53ee8cc1Swenshuai.xi #define AESDMA_ENG_CTS_CBC_MODE 0x40000000UL 224*53ee8cc1Swenshuai.xi #define AESDMA_ENG_CTS_ECB_MODE 0x00000002UL 225*53ee8cc1Swenshuai.xi #define AESDMA_ECO_FIX_LAST_BYTE 0x80000000UL // when (output address + length)/8=1 the last byte maybe no output 226*53ee8cc1Swenshuai.xi 227*53ee8cc1Swenshuai.xi REG32 Dma_Filein_Addr; //0x52 228*53ee8cc1Swenshuai.xi REG32 Dma_Filein_Num; //0x54 229*53ee8cc1Swenshuai.xi REG32 Dma_Fileout_SAddr; //0x56 230*53ee8cc1Swenshuai.xi REG32 Dma_Fileout_EAddr; //0x58 231*53ee8cc1Swenshuai.xi REG32 Dma_PS_Pattern; //0x5a 232*53ee8cc1Swenshuai.xi REG32 Dma_PS_Pattern_Mask; //0x5c 233*53ee8cc1Swenshuai.xi #define AESDMA_CTR_IV_LSB64 0x01000000UL //0X5d[8]: reg_ctr_iv_lsb64 234*53ee8cc1Swenshuai.xi REG32 Dma_Ctrl2; //0x5e 235*53ee8cc1Swenshuai.xi #define AESDMA_DMA_USE_TDES_EN 0x00000100UL // DES/TDES path switch 236*53ee8cc1Swenshuai.xi #define AESDMA_CTRL_BANK_R_H 0x00002000UL 237*53ee8cc1Swenshuai.xi #define AESDMA_CTRL_BANK_W_H 0x00004000UL 238*53ee8cc1Swenshuai.xi #define AESDMA_CTRL_BANK_R 0x00000010UL 239*53ee8cc1Swenshuai.xi #define AESDMA_CTRL_BANK_W 0x00000020UL 240*53ee8cc1Swenshuai.xi #define AESDMA_INT_EN 0x00000080UL 241*53ee8cc1Swenshuai.xi #if AESDMS_SECURED_BANK_EN 242*53ee8cc1Swenshuai.xi #define AESDMA_USE_SECRET_KEY 0x00200000UL //0x79[6:5]=01, Enable Efuse Key1 243*53ee8cc1Swenshuai.xi #define AESDMA_USE_SECRET_KEY2 0x00400000UL //0x79[6:5]=10, Enable Efuse Key2 244*53ee8cc1Swenshuai.xi #else 245*53ee8cc1Swenshuai.xi #define AESDMA_USE_SECRET_KEY 0x00001000UL //0x5E[12], Enable Efuse Key1 246*53ee8cc1Swenshuai.xi #define AESDMA_USE_SECRET_KEY2 0x00001200UL //0x5E[9]+0x5E[12], Enable Efuse Key2 247*53ee8cc1Swenshuai.xi #endif 248*53ee8cc1Swenshuai.xi #define AESDMA_WADR_ERR_CLR 0x00000001UL 249*53ee8cc1Swenshuai.xi 250*53ee8cc1Swenshuai.xi REG_CipherKey Dma_CipherKey_L; //0x60 251*53ee8cc1Swenshuai.xi REG_CipherKey Dma_CipherKey_H; //0x64 252*53ee8cc1Swenshuai.xi REG_InitVector Dma_InitVector_L; //0x68 253*53ee8cc1Swenshuai.xi REG_InitVector Dma_InitVector_H; //0x6C 254*53ee8cc1Swenshuai.xi REG32 Dma_Matched_Btyecnt; //0x70 255*53ee8cc1Swenshuai.xi REG32 Dma_Matched_Pat; //0x72 256*53ee8cc1Swenshuai.xi #define AESDMA_GEN_INTERNALKEY 0x00000001UL 257*53ee8cc1Swenshuai.xi #define AESDMA_GEN_INTERNALKEY2 0x00000002UL 258*53ee8cc1Swenshuai.xi #define AESDMA_HWKEY_EN 0x00000020UL 259*53ee8cc1Swenshuai.xi #define AESDMA_HWKEY2_EN 0x00000040UL 260*53ee8cc1Swenshuai.xi REG32 Dma_Err_Wadr; //0x74 261*53ee8cc1Swenshuai.xi REG32 Dma_Eng3_Ctrl; //0x76 262*53ee8cc1Swenshuai.xi #define AESDMA_ENG_SPEEDUP 0x03BF0000UL 263*53ee8cc1Swenshuai.xi REG32 Dma_Ctrl3_Secure; //0x78 264*53ee8cc1Swenshuai.xi REG32 _xbf808fd8[2]; //0x7a~0x7c 265*53ee8cc1Swenshuai.xi REG32 Dma_PVR_Status; //0x7e 266*53ee8cc1Swenshuai.xi #define AESDMA_IS_FINISHED 0x00010000UL 267*53ee8cc1Swenshuai.xi /* 268*53ee8cc1Swenshuai.xi #define AESDMA_PS_DONE 0x00000001 269*53ee8cc1Swenshuai.xi #define AESDMA_PS_STOP 0x00000002 270*53ee8cc1Swenshuai.xi #define AESDMA_DMA_DONE 0x00010000 271*53ee8cc1Swenshuai.xi #define AESDMA_DMA_PAUSE 0x00020000 272*53ee8cc1Swenshuai.xi #define AESDMA_STATES_GROUP (AESDMA_PS_DONE | \ 273*53ee8cc1Swenshuai.xi AESDMA_PS_STOP | \ 274*53ee8cc1Swenshuai.xi AESDMA_DMA_DONE | \ 275*53ee8cc1Swenshuai.xi AESDMA_DMA_PAUSE ) 276*53ee8cc1Swenshuai.xi */ 277*53ee8cc1Swenshuai.xi }REG_AESDMACtrl; 278*53ee8cc1Swenshuai.xi 279*53ee8cc1Swenshuai.xi #define DmaCtrlSet (AESDMA_ENG_AES_EN | \ 280*53ee8cc1Swenshuai.xi AESDMA_ENG_DES_EN | \ 281*53ee8cc1Swenshuai.xi AESDMA_ENG_TDES_EN | \ 282*53ee8cc1Swenshuai.xi AESDMA_ENG_DESCRYPT | \ 283*53ee8cc1Swenshuai.xi AESDMA_ENG_CTR_MODE | \ 284*53ee8cc1Swenshuai.xi AESDMA_ENG_CBC_MODE | \ 285*53ee8cc1Swenshuai.xi AESDMA_ENG_CTS_CBC_MODE | \ 286*53ee8cc1Swenshuai.xi AESDMA_ENG_CTS_ECB_MODE) 287*53ee8cc1Swenshuai.xi 288*53ee8cc1Swenshuai.xi typedef struct _REG_SHARNGCtrl 289*53ee8cc1Swenshuai.xi { 290*53ee8cc1Swenshuai.xi REG32 Rng_Ctrl; //0x00 291*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_RNG_SW_RST 0x00000080UL 292*53ee8cc1Swenshuai.xi #define MOBF_IN_MIU_READ_EN 0x00010000UL 293*53ee8cc1Swenshuai.xi #define MOBF_IN_MIU_WRITE_EN 0x00020000UL 294*53ee8cc1Swenshuai.xi #define AES_FILE_IN_MIU_NS 0x00100000UL 295*53ee8cc1Swenshuai.xi #define AES_FILE_OUT_MIU_NS 0x00200000UL 296*53ee8cc1Swenshuai.xi #define MOBF_ONEWAY_EN 0x01000000UL 297*53ee8cc1Swenshuai.xi 298*53ee8cc1Swenshuai.xi #define SECRET_KEY_IN_NORMAL_BANK 0x08000000UL 299*53ee8cc1Swenshuai.xi 300*53ee8cc1Swenshuai.xi 301*53ee8cc1Swenshuai.xi REG32 Rng_Out; //0x02 302*53ee8cc1Swenshuai.xi REG32 MOBF_KeyR; //0x04 303*53ee8cc1Swenshuai.xi REG32 MOBF_KeyW; //0x06 304*53ee8cc1Swenshuai.xi REG32 Sha_Ctrl; //0x08 305*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_SHA_FIRE_ONCE 0x00000001UL 306*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_SHA_CLR 0x00000040UL 307*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_SHA_RST 0x00000080UL 308*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_SHA_INT 0x00000100UL 309*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_SHA_SEL_SHA256 0x00000200UL 310*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_SHA_MSG_INVERSE 0x00040000UL 311*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_SHA_MSG_BLOCK_NUM 0x00010000UL /* Always be 1 */ 312*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_SPEED_MODE_N 0x00000010UL 313*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_REMOVE_SCATTER_GATHER 0x00000800UL 314*53ee8cc1Swenshuai.xi 315*53ee8cc1Swenshuai.xi REG32 Sha_Start; //0x0a 316*53ee8cc1Swenshuai.xi REG32 Sha_Length; //0x0c 317*53ee8cc1Swenshuai.xi REG32 Sha_Status; //0x0e 318*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_SHA_BUSY 0x00020000UL 319*53ee8cc1Swenshuai.xi #define SHARNG_CTRL_SHA_READY 0x00010000UL 320*53ee8cc1Swenshuai.xi 321*53ee8cc1Swenshuai.xi REG32 Sha_Out[8]; //0x10~0x1E 322*53ee8cc1Swenshuai.xi REG32 Rsa_Ind32_Start; //0x20 323*53ee8cc1Swenshuai.xi #define RSA_INDIRECT_START 0x00000001UL 324*53ee8cc1Swenshuai.xi #define RSA_IND32_CTRL_DIRECTION_WRITE 0x00020000UL 325*53ee8cc1Swenshuai.xi #define RSA_IND32_CTRL_ADDR_AUTO_INC 0x00040000UL 326*53ee8cc1Swenshuai.xi #define RSA_IND32_CTRL_ACCESS_AUTO_START 0x00080000UL 327*53ee8cc1Swenshuai.xi REG32 Rsa_Ind32_Addr; //0x22 328*53ee8cc1Swenshuai.xi #define RSA_ADDRESS_MASK 0x0000FFFFUL 329*53ee8cc1Swenshuai.xi #define RSA_WDATA_MASK_L 0xFFFF0000UL 330*53ee8cc1Swenshuai.xi REG32 Rsa_Ind32_WData; //0x24 331*53ee8cc1Swenshuai.xi #define RSA_WDATA_MASK_H 0x0000FFFFUL 332*53ee8cc1Swenshuai.xi #define RSA_RDATA_MASK_L 0xFFFF0000UL 333*53ee8cc1Swenshuai.xi REG32 Rsa_Ind32_RData; //0x26 334*53ee8cc1Swenshuai.xi #define RSA_RDATA_MASK_H 0x0000FFFFUL 335*53ee8cc1Swenshuai.xi #define RSA_EXP_START 0x00010000UL 336*53ee8cc1Swenshuai.xi #define RSA_INT_CLR 0x00020000UL 337*53ee8cc1Swenshuai.xi REG32 Rsa_Ctrl; //0x28 338*53ee8cc1Swenshuai.xi #define RSA_CTRL_RSA_RST 0x00000001UL 339*53ee8cc1Swenshuai.xi #define RSA_CTRL_SEL_HW_KEY 0x00000002UL 340*53ee8cc1Swenshuai.xi #define RSA_CTRL_SEL_PUBLIC_KEY 0x00000004UL 341*53ee8cc1Swenshuai.xi #define RSA_CTRL_KEY_LENGTH_MASK 0x00003F00UL 342*53ee8cc1Swenshuai.xi #define RSA_STATUS_RSA_BUSY 0x00010000UL 343*53ee8cc1Swenshuai.xi #define RSA_STATUS_MASK 0x00FF0000UL 344*53ee8cc1Swenshuai.xi }REG_SHARNGCtrl; 345*53ee8cc1Swenshuai.xi 346*53ee8cc1Swenshuai.xi typedef struct _REG_DMASECURECtrl 347*53ee8cc1Swenshuai.xi { 348*53ee8cc1Swenshuai.xi REG32 Secure_file_st; //0x50 349*53ee8cc1Swenshuai.xi //#define AESDMA_SECURE_FILEIN_START 0x00000001 350*53ee8cc1Swenshuai.xi REG32 reserved52; //0x52 351*53ee8cc1Swenshuai.xi REG32 reserved54; //0x54 352*53ee8cc1Swenshuai.xi REG32 reserved56; //0x56 353*53ee8cc1Swenshuai.xi REG32 reserved58; //0x58 354*53ee8cc1Swenshuai.xi REG32 reserved5a; //0x5a 355*53ee8cc1Swenshuai.xi REG32 reserved5c; //0x5c 356*53ee8cc1Swenshuai.xi REG32 reserved5e; //0x5e 357*53ee8cc1Swenshuai.xi REG_CipherKey Secure_CipherKey_L; //0x60 358*53ee8cc1Swenshuai.xi REG_CipherKey Secure_CipherKey_H; //0x64 359*53ee8cc1Swenshuai.xi REG_InitVector Secure_InitVector_L; //0x68 360*53ee8cc1Swenshuai.xi REG_InitVector Secure_InitVector_H; //0x6C 361*53ee8cc1Swenshuai.xi REG32 reserved70; //0x70 362*53ee8cc1Swenshuai.xi REG32 reserved72; //0x72 363*53ee8cc1Swenshuai.xi REG32 reserved74; //0x74 364*53ee8cc1Swenshuai.xi REG32 reserved76; //0x76 365*53ee8cc1Swenshuai.xi REG32 Secure_dma3_ctrl; //0x78 366*53ee8cc1Swenshuai.xi #define AESDMA_SECURE_PROTECT_S 0x00010000UL 367*53ee8cc1Swenshuai.xi #define AESDMA_SECURE_PROTECT_SHA_S 0x00020000UL 368*53ee8cc1Swenshuai.xi #define AESDMA_SECURE_PROTECT_RSA_S 0x00040000UL 369*53ee8cc1Swenshuai.xi #define AESDMA_USE_SECRET_KEY0 0x00200000UL 370*53ee8cc1Swenshuai.xi #define AESDMA_USE_SECRET_KEY1 0x00400000UL 371*53ee8cc1Swenshuai.xi REG32 reserved7a; //0x7a 372*53ee8cc1Swenshuai.xi REG32 reserved7c; //0x7c 373*53ee8cc1Swenshuai.xi REG32 Secure_dma3_status; //0x7e 374*53ee8cc1Swenshuai.xi //#define AESDMA_DONE_S 0x00010000 375*53ee8cc1Swenshuai.xi }REG_DMASECURECtrl; 376*53ee8cc1Swenshuai.xi 377*53ee8cc1Swenshuai.xi typedef struct _REG_CKG_AESDMA 378*53ee8cc1Swenshuai.xi { 379*53ee8cc1Swenshuai.xi REG32 Reg_Gate_Clk_AESDMA; //0x18 380*53ee8cc1Swenshuai.xi #define AESDMA_CLK_OFF_EN 0x00010000UL //0x19[0] 381*53ee8cc1Swenshuai.xi #define AESDMA_CLK_INV 0x00020000UL //0x19[1] 382*53ee8cc1Swenshuai.xi #define AESDMA_CLK_172M 0x00000000UL //0x19[3:2] 383*53ee8cc1Swenshuai.xi #define AESDMA_CLK_144M 0x00040000UL //0x19[3:2] 384*53ee8cc1Swenshuai.xi #define AESDMA_CLK_288M 0x00040000UL //0x19[3:2] 385*53ee8cc1Swenshuai.xi #define AESDMA_CLK_108M 0x00080000UL //0x19[3:2] 386*53ee8cc1Swenshuai.xi #define AESDMA_CLK_XTAL 0x000C0000UL //0x19[3:2] 387*53ee8cc1Swenshuai.xi 388*53ee8cc1Swenshuai.xi }REG_AESDMAClk; 389*53ee8cc1Swenshuai.xi 390*53ee8cc1Swenshuai.xi typedef struct _REG_MBX_AESDMA 391*53ee8cc1Swenshuai.xi { 392*53ee8cc1Swenshuai.xi REG32 Reg_Et_Rpd; //0x61 393*53ee8cc1Swenshuai.xi #define AESDMA_SEM_USED 0x00000100UL 394*53ee8cc1Swenshuai.xi #define AESDMA_CLK_USED 0x00000200UL 395*53ee8cc1Swenshuai.xi #define TSP_CLK_USED 0x00000400UL 396*53ee8cc1Swenshuai.xi }REG_AESDMAMbx; 397*53ee8cc1Swenshuai.xi 398*53ee8cc1Swenshuai.xi 399*53ee8cc1Swenshuai.xi typedef struct _REG_PARSERCtrl 400*53ee8cc1Swenshuai.xi { 401*53ee8cc1Swenshuai.xi REG32 Parser_Ctrl; //0x00 402*53ee8cc1Swenshuai.xi #define HDCP20_MODE 0x00000001UL 403*53ee8cc1Swenshuai.xi #define PKT192_MODE 0x00000002UL 404*53ee8cc1Swenshuai.xi #define AUTO_MODE 0x00000004UL 405*53ee8cc1Swenshuai.xi #define TRIGGER_MODE 0x00000008UL 406*53ee8cc1Swenshuai.xi #define INIT_TRUST 0x00000010UL 407*53ee8cc1Swenshuai.xi #define CLEAR_MODE 0x00000020UL 408*53ee8cc1Swenshuai.xi #define REMOVE_SCRMB 0x00000040UL 409*53ee8cc1Swenshuai.xi #define INSERT_SCRMB 0x00000080UL 410*53ee8cc1Swenshuai.xi #define SCRMB_PATTERN10 0x00000400UL 411*53ee8cc1Swenshuai.xi #define SCRMB_PATTERN11 0x00000600UL 412*53ee8cc1Swenshuai.xi #define SCRMB_INITVALUE 0x00000600UL 413*53ee8cc1Swenshuai.xi #define HW_PARSER_MODE 0x00000100UL 414*53ee8cc1Swenshuai.xi #define TS_SCRMB_MASK 0x00000800UL 415*53ee8cc1Swenshuai.xi #define TS_MODE 0x00008000UL 416*53ee8cc1Swenshuai.xi #define PARSER_PID0_MASK 0x1FFF0000UL 417*53ee8cc1Swenshuai.xi REG32 Parser_Pid1; //0x02 418*53ee8cc1Swenshuai.xi #define PARSER_PID1_MASK 0x00001FFFUL 419*53ee8cc1Swenshuai.xi #define BYPASS_PID 0x00080000UL 420*53ee8cc1Swenshuai.xi #define SCRMB_PATTERN10_ADD 0x00200000UL 421*53ee8cc1Swenshuai.xi #define SCRMB_PATTERN11_ADD 0x00300000UL 422*53ee8cc1Swenshuai.xi #define SCRMB_INITVALUE_ADD 0x00300000UL 423*53ee8cc1Swenshuai.xi #define SCRMB_ENABLE_TWO_KEY 0x00400000UL 424*53ee8cc1Swenshuai.xi #define ENABLE_LG_PATCH 0x01000000UL 425*53ee8cc1Swenshuai.xi REG32 Parser_Status; //0x04 426*53ee8cc1Swenshuai.xi 427*53ee8cc1Swenshuai.xi }REG_PARSERCtrl; 428*53ee8cc1Swenshuai.xi 429*53ee8cc1Swenshuai.xi typedef struct _REG_CIPHERCtrl 430*53ee8cc1Swenshuai.xi { 431*53ee8cc1Swenshuai.xi REG32 Cipher_Ctrl; //0x00 432*53ee8cc1Swenshuai.xi #define CC_CTRL_BY_ACPU 0x00000080UL 433*53ee8cc1Swenshuai.xi REG32 Cipher_len; //0x02 434*53ee8cc1Swenshuai.xi REG32 Parser_Status; //0x04 435*53ee8cc1Swenshuai.xi 436*53ee8cc1Swenshuai.xi }REG_CIPHERCtrl; 437*53ee8cc1Swenshuai.xi 438*53ee8cc1Swenshuai.xi #define ParserCtrlSet (HDCP20_MODE | \ 439*53ee8cc1Swenshuai.xi PKT192_MODE | \ 440*53ee8cc1Swenshuai.xi AUTO_MODE | \ 441*53ee8cc1Swenshuai.xi TRIGGER_MODE | \ 442*53ee8cc1Swenshuai.xi INIT_TRUST | \ 443*53ee8cc1Swenshuai.xi CLEAR_MODE | \ 444*53ee8cc1Swenshuai.xi HW_PARSER_MODE | \ 445*53ee8cc1Swenshuai.xi TS_MODE ) 446*53ee8cc1Swenshuai.xi 447*53ee8cc1Swenshuai.xi typedef struct _REG_AESDMACtrlEx 448*53ee8cc1Swenshuai.xi { 449*53ee8cc1Swenshuai.xi REG_CipherKey Dma_CipherKey_L; //0x60 450*53ee8cc1Swenshuai.xi REG_CipherKey Dma_CipherKey_H; //0x64 451*53ee8cc1Swenshuai.xi REG_InitVector Dma_InitVector_L; //0x68 452*53ee8cc1Swenshuai.xi REG_InitVector Dma_InitVector_H; //0x6C 453*53ee8cc1Swenshuai.xi }REG_AESDMACtrlEx; 454*53ee8cc1Swenshuai.xi 455*53ee8cc1Swenshuai.xi typedef struct _REG_HDCP22Data 456*53ee8cc1Swenshuai.xi { 457*53ee8cc1Swenshuai.xi REG32 Hdcp22_ContentKey[4]; 458*53ee8cc1Swenshuai.xi REG32 Hdcp22_Riv[2]; 459*53ee8cc1Swenshuai.xi }REG_HDCP22Data; 460*53ee8cc1Swenshuai.xi 461*53ee8cc1Swenshuai.xi typedef struct _REG_HDCP22SEKCtrl 462*53ee8cc1Swenshuai.xi { 463*53ee8cc1Swenshuai.xi REG32 SEK; //0x9C 464*53ee8cc1Swenshuai.xi #define HDCP_SEK_BIT0 0x00000001 465*53ee8cc1Swenshuai.xi }REG_HDCP22SEKCtrl; 466*53ee8cc1Swenshuai.xi 467*53ee8cc1Swenshuai.xi typedef struct _REG_GENERAL_STRUCT 468*53ee8cc1Swenshuai.xi { 469*53ee8cc1Swenshuai.xi REG32 Reg0001; //0x00 470*53ee8cc1Swenshuai.xi REG32 Reg0203; //0x02 471*53ee8cc1Swenshuai.xi REG32 Reg0405; //0x04 472*53ee8cc1Swenshuai.xi REG32 Reg0607; //0x06 473*53ee8cc1Swenshuai.xi REG32 Reg0809; //0x08 474*53ee8cc1Swenshuai.xi }REG_GENERAL_STRUCT; 475*53ee8cc1Swenshuai.xi 476*53ee8cc1Swenshuai.xi typedef struct _REG_HDCP14SEKCtrl 477*53ee8cc1Swenshuai.xi { 478*53ee8cc1Swenshuai.xi REG32 REG_0001; //0x0E 479*53ee8cc1Swenshuai.xi #define HDCP14_SEK_BIT0 0x00000001 480*53ee8cc1Swenshuai.xi }REG_HDCP14SEKCtrl; 481*53ee8cc1Swenshuai.xi 482*53ee8cc1Swenshuai.xi typedef REG_GENERAL_STRUCT REG_TZPCCtrl; //BANK: 0x1239 483*53ee8cc1Swenshuai.xi #define REG_TZPC2NONPM_RNG_SOURCE_EN 0x000F0000UL //0x03[3:0] 484*53ee8cc1Swenshuai.xi 485*53ee8cc1Swenshuai.xi typedef REG_GENERAL_STRUCT REG_SECUREBASECtrl; //BANK: 0x113D 486*53ee8cc1Swenshuai.xi #define REG_RNG_EN 0x00000080UL //0x00[7] 487*53ee8cc1Swenshuai.xi 488*53ee8cc1Swenshuai.xi typedef REG_GENERAL_STRUCT REG_ANAMISCBASECtrl; //BANK: 0x110C_10 489*53ee8cc1Swenshuai.xi #define REG_MIPSPLL_OCCCLK2_EN 0x02000000UL //0x11[9] 490*53ee8cc1Swenshuai.xi 491*53ee8cc1Swenshuai.xi typedef REG_GENERAL_STRUCT REG_AES_DSCMB6Ctrl; //BANK: 0x173D_0 492*53ee8cc1Swenshuai.xi #define AESDMA_DSCRMB6_KSLOT_INDEX_DEFAULT 0x00000201UL 493*53ee8cc1Swenshuai.xi #define AESDMA_DSCRMB6_KSLOT_INDEX_USE_INTERNAL_KEY2 0x00000206UL 494*53ee8cc1Swenshuai.xi #define AESDMA_DSCRMB3_HW_PASER_EN 0x04000000UL //0x01[10] = 1:DESCRMB3/0:DESCRMB5, [11:10] reg_who_use_hwparser 495*53ee8cc1Swenshuai.xi typedef REG_GENERAL_STRUCT REG_AES_DSCMB7Ctrl; //BANK: 0x173D_40 496*53ee8cc1Swenshuai.xi #define AESDMA_ISR_CLR 0x00010000UL //0x01[0] 497*53ee8cc1Swenshuai.xi 498*53ee8cc1Swenshuai.xi #endif // #ifndef _AESDMA_REG_MCU_H_ 499