| /* |
| * Header file for Advanced Crypto Engine - SFR definitions |
| * |
| * Copyright (c) 2011 Samsung Electronics |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| * |
| */ |
| |
| #ifndef __ACE_SFR_H__ |
| #define __ACE_SFR_H__ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| |
| /***************************************************************** |
| SFR Addresses |
| *****************************************************************/ |
| #if defined(CONFIG_ARCH_S5PV210) |
| #define ACE_SFR_BASE (0xEA000000) |
| #elif defined(CONFIG_ARCH_EXYNOS4) || defined(CONFIG_ARCH_EXYNOS5) |
| #define ACE_SFR_BASE (0x10830000) |
| #else |
| #error No ARCH is defined. |
| #endif |
| |
| #if defined(CONFIG_ARCH_S5PV210) |
| #define ACE_FC_OFFSET (0x0) |
| #define ACE_AES_OFFSET (0x4000) |
| #define ACE_TDES_OFFSET (0x5000) |
| #define ACE_HASH_OFFSET (0x6000) |
| #define ACE_PKA_OFFSET (0x7000) |
| #elif defined(CONFIG_ARCH_EXYNOS4) || defined(CONFIG_ARCH_EXYNOS5) |
| #define ACE_FC_OFFSET (0x0) |
| #define ACE_AES_OFFSET (0x200) |
| #define ACE_TDES_OFFSET (0x300) |
| #define ACE_HASH_OFFSET (0x400) |
| #define ACE_PKA_OFFSET (0x700) |
| #endif |
| |
| /* Feed control registers */ |
| #define ACE_FC_INTSTAT (ACE_FC_OFFSET + 0x00) |
| #define ACE_FC_INTENSET (ACE_FC_OFFSET + 0x04) |
| #define ACE_FC_INTENCLR (ACE_FC_OFFSET + 0x08) |
| #define ACE_FC_INTPEND (ACE_FC_OFFSET + 0x0C) |
| #define ACE_FC_FIFOSTAT (ACE_FC_OFFSET + 0x10) |
| #define ACE_FC_FIFOCTRL (ACE_FC_OFFSET + 0x14) |
| #define ACE_FC_GLOBAL (ACE_FC_OFFSET + 0x18) |
| #define ACE_FC_BRDMAS (ACE_FC_OFFSET + 0x20) |
| #define ACE_FC_BRDMAL (ACE_FC_OFFSET + 0x24) |
| #define ACE_FC_BRDMAC (ACE_FC_OFFSET + 0x28) |
| #define ACE_FC_BTDMAS (ACE_FC_OFFSET + 0x30) |
| #define ACE_FC_BTDMAL (ACE_FC_OFFSET + 0x34) |
| #define ACE_FC_BTDMAC (ACE_FC_OFFSET + 0x38) |
| #define ACE_FC_HRDMAS (ACE_FC_OFFSET + 0x40) |
| #define ACE_FC_HRDMAL (ACE_FC_OFFSET + 0x44) |
| #define ACE_FC_HRDMAC (ACE_FC_OFFSET + 0x48) |
| #define ACE_FC_PKDMAS (ACE_FC_OFFSET + 0x50) |
| #define ACE_FC_PKDMAL (ACE_FC_OFFSET + 0x54) |
| #define ACE_FC_PKDMAC (ACE_FC_OFFSET + 0x58) |
| #define ACE_FC_PKDMAO (ACE_FC_OFFSET + 0x5C) |
| |
| /* AES control registers */ |
| #define ACE_AES_CONTROL (ACE_AES_OFFSET + 0x00) |
| #define ACE_AES_STATUS (ACE_AES_OFFSET + 0x04) |
| |
| #define ACE_AES_IN1 (ACE_AES_OFFSET + 0x10) |
| #define ACE_AES_IN2 (ACE_AES_OFFSET + 0x14) |
| #define ACE_AES_IN3 (ACE_AES_OFFSET + 0x18) |
| #define ACE_AES_IN4 (ACE_AES_OFFSET + 0x1C) |
| |
| #define ACE_AES_OUT1 (ACE_AES_OFFSET + 0x20) |
| #define ACE_AES_OUT2 (ACE_AES_OFFSET + 0x24) |
| #define ACE_AES_OUT3 (ACE_AES_OFFSET + 0x28) |
| #define ACE_AES_OUT4 (ACE_AES_OFFSET + 0x2C) |
| |
| #define ACE_AES_IV1 (ACE_AES_OFFSET + 0x30) |
| #define ACE_AES_IV2 (ACE_AES_OFFSET + 0x34) |
| #define ACE_AES_IV3 (ACE_AES_OFFSET + 0x38) |
| #define ACE_AES_IV4 (ACE_AES_OFFSET + 0x3C) |
| |
| #define ACE_AES_CNT1 (ACE_AES_OFFSET + 0x40) |
| #define ACE_AES_CNT2 (ACE_AES_OFFSET + 0x44) |
| #define ACE_AES_CNT3 (ACE_AES_OFFSET + 0x48) |
| #define ACE_AES_CNT4 (ACE_AES_OFFSET + 0x4C) |
| |
| #define ACE_AES_KEY1 (ACE_AES_OFFSET + 0x80) |
| #define ACE_AES_KEY2 (ACE_AES_OFFSET + 0x84) |
| #define ACE_AES_KEY3 (ACE_AES_OFFSET + 0x88) |
| #define ACE_AES_KEY4 (ACE_AES_OFFSET + 0x8C) |
| #define ACE_AES_KEY5 (ACE_AES_OFFSET + 0x90) |
| #define ACE_AES_KEY6 (ACE_AES_OFFSET + 0x94) |
| #define ACE_AES_KEY7 (ACE_AES_OFFSET + 0x98) |
| #define ACE_AES_KEY8 (ACE_AES_OFFSET + 0x9C) |
| |
| /* TDES control registers */ |
| #define ACE_TDES_CONTROL (ACE_TDES_OFFSET + 0x00) |
| #define ACE_TDES_STATUS (ACE_TDES_OFFSET + 0x04) |
| |
| #define ACE_TDES_KEY11 (ACE_TDES_OFFSET + 0x10) |
| #define ACE_TDES_KEY12 (ACE_TDES_OFFSET + 0x14) |
| #define ACE_TDES_KEY21 (ACE_TDES_OFFSET + 0x18) |
| #define ACE_TDES_KEY22 (ACE_TDES_OFFSET + 0x1C) |
| #define ACE_TDES_KEY31 (ACE_TDES_OFFSET + 0x20) |
| #define ACE_TDES_KEY32 (ACE_TDES_OFFSET + 0x24) |
| |
| #define ACE_TDES_IV1 (ACE_TDES_OFFSET + 0x28) |
| #define ACE_TDES_IV2 (ACE_TDES_OFFSET + 0x2C) |
| |
| #define ACE_TDES_IN1 (ACE_TDES_OFFSET + 0x30) |
| #define ACE_TDES_IN2 (ACE_TDES_OFFSET + 0x34) |
| |
| #define ACE_TDES_OUT1 (ACE_TDES_OFFSET + 0x38) |
| #define ACE_TDES_OUT2 (ACE_TDES_OFFSET + 0x3C) |
| |
| /* HASH control registers */ |
| #if defined(CONFIG_ARCH_S5PV210) |
| #define ACE_HASH_CONTROL (ACE_HASH_OFFSET + 0x00) |
| #define ACE_HASH_CONTROL2 (ACE_HASH_OFFSET + 0x04) |
| #define ACE_HASH_FIFO_MODE (ACE_HASH_OFFSET + 0x08) |
| #define ACE_HASH_BYTESWAP (ACE_HASH_OFFSET + 0x0C) |
| #define ACE_HASH_STATUS (ACE_HASH_OFFSET + 0x10) |
| #define ACE_HASH_MSGSIZE_LOW (ACE_HASH_OFFSET + 0x14) |
| #define ACE_HASH_MSGSIZE_HIGH (ACE_HASH_OFFSET + 0x18) |
| |
| #define ACE_HASH_IN1 (ACE_HASH_OFFSET + 0x20) |
| #define ACE_HASH_IN2 (ACE_HASH_OFFSET + 0x24) |
| #define ACE_HASH_IN3 (ACE_HASH_OFFSET + 0x28) |
| #define ACE_HASH_IN4 (ACE_HASH_OFFSET + 0x2C) |
| #define ACE_HASH_IN5 (ACE_HASH_OFFSET + 0x30) |
| #define ACE_HASH_IN6 (ACE_HASH_OFFSET + 0x34) |
| #define ACE_HASH_IN7 (ACE_HASH_OFFSET + 0x38) |
| #define ACE_HASH_IN8 (ACE_HASH_OFFSET + 0x3C) |
| |
| #define ACE_HASH_SEED1 (ACE_HASH_OFFSET + 0x40) |
| #define ACE_HASH_SEED2 (ACE_HASH_OFFSET + 0x44) |
| #define ACE_HASH_SEED3 (ACE_HASH_OFFSET + 0x48) |
| #define ACE_HASH_SEED4 (ACE_HASH_OFFSET + 0x4C) |
| #define ACE_HASH_SEED5 (ACE_HASH_OFFSET + 0x50) |
| |
| #define ACE_HASH_RESULT1 (ACE_HASH_OFFSET + 0x60) |
| #define ACE_HASH_RESULT2 (ACE_HASH_OFFSET + 0x64) |
| #define ACE_HASH_RESULT3 (ACE_HASH_OFFSET + 0x68) |
| #define ACE_HASH_RESULT4 (ACE_HASH_OFFSET + 0x6C) |
| #define ACE_HASH_RESULT5 (ACE_HASH_OFFSET + 0x70) |
| |
| #define ACE_HASH_PRNG1 (ACE_HASH_OFFSET + 0x80) |
| #define ACE_HASH_PRNG2 (ACE_HASH_OFFSET + 0x84) |
| #define ACE_HASH_PRNG3 (ACE_HASH_OFFSET + 0x88) |
| #define ACE_HASH_PRNG4 (ACE_HASH_OFFSET + 0x8C) |
| #define ACE_HASH_PRNG5 (ACE_HASH_OFFSET + 0x90) |
| |
| #define ACE_HASH_IV1 (ACE_HASH_OFFSET + 0xA0) |
| #define ACE_HASH_IV2 (ACE_HASH_OFFSET + 0xA4) |
| #define ACE_HASH_IV3 (ACE_HASH_OFFSET + 0xA8) |
| #define ACE_HASH_IV4 (ACE_HASH_OFFSET + 0xAC) |
| #define ACE_HASH_IV5 (ACE_HASH_OFFSET + 0xB0) |
| |
| #define ACE_HASH_PRELEN_HIGH (ACE_HASH_OFFSET + 0xC0) |
| #define ACE_HASH_PRELEN_LOW (ACE_HASH_OFFSET + 0xC4) |
| #elif defined(CONFIG_ARCH_EXYNOS4) || defined(CONFIG_ARCH_EXYNOS5) |
| #define ACE_HASH_CONTROL (ACE_HASH_OFFSET + 0x00) |
| #define ACE_HASH_CONTROL2 (ACE_HASH_OFFSET + 0x04) |
| #define ACE_HASH_FIFO_MODE (ACE_HASH_OFFSET + 0x08) |
| #define ACE_HASH_BYTESWAP (ACE_HASH_OFFSET + 0x0C) |
| #define ACE_HASH_STATUS (ACE_HASH_OFFSET + 0x10) |
| #define ACE_HASH_MSGSIZE_LOW (ACE_HASH_OFFSET + 0x20) |
| #define ACE_HASH_MSGSIZE_HIGH (ACE_HASH_OFFSET + 0x24) |
| #define ACE_HASH_PRELEN_LOW (ACE_HASH_OFFSET + 0x28) |
| #define ACE_HASH_PRELEN_HIGH (ACE_HASH_OFFSET + 0x2C) |
| |
| #define ACE_HASH_IN1 (ACE_HASH_OFFSET + 0x30) |
| #define ACE_HASH_IN2 (ACE_HASH_OFFSET + 0x34) |
| #define ACE_HASH_IN3 (ACE_HASH_OFFSET + 0x38) |
| #define ACE_HASH_IN4 (ACE_HASH_OFFSET + 0x3C) |
| #define ACE_HASH_IN5 (ACE_HASH_OFFSET + 0x40) |
| #define ACE_HASH_IN6 (ACE_HASH_OFFSET + 0x44) |
| #define ACE_HASH_IN7 (ACE_HASH_OFFSET + 0x48) |
| #define ACE_HASH_IN8 (ACE_HASH_OFFSET + 0x4C) |
| #define ACE_HASH_IN9 (ACE_HASH_OFFSET + 0x50) |
| #define ACE_HASH_IN10 (ACE_HASH_OFFSET + 0x54) |
| #define ACE_HASH_IN11 (ACE_HASH_OFFSET + 0x58) |
| #define ACE_HASH_IN12 (ACE_HASH_OFFSET + 0x5C) |
| #define ACE_HASH_IN13 (ACE_HASH_OFFSET + 0x60) |
| #define ACE_HASH_IN14 (ACE_HASH_OFFSET + 0x64) |
| #define ACE_HASH_IN15 (ACE_HASH_OFFSET + 0x68) |
| #define ACE_HASH_IN16 (ACE_HASH_OFFSET + 0x6C) |
| |
| #define ACE_HASH_HMAC_KEY_IN1 (ACE_HASH_OFFSET + 0x70) |
| #define ACE_HASH_HMAC_KEY_IN2 (ACE_HASH_OFFSET + 0x74) |
| #define ACE_HASH_HMAC_KEY_IN3 (ACE_HASH_OFFSET + 0x78) |
| #define ACE_HASH_HMAC_KEY_IN4 (ACE_HASH_OFFSET + 0x7C) |
| #define ACE_HASH_HMAC_KEY_IN5 (ACE_HASH_OFFSET + 0x80) |
| #define ACE_HASH_HMAC_KEY_IN6 (ACE_HASH_OFFSET + 0x84) |
| #define ACE_HASH_HMAC_KEY_IN7 (ACE_HASH_OFFSET + 0x88) |
| #define ACE_HASH_HMAC_KEY_IN8 (ACE_HASH_OFFSET + 0x8C) |
| #define ACE_HASH_HMAC_KEY_IN9 (ACE_HASH_OFFSET + 0x90) |
| #define ACE_HASH_HMAC_KEY_IN10 (ACE_HASH_OFFSET + 0x94) |
| #define ACE_HASH_HMAC_KEY_IN11 (ACE_HASH_OFFSET + 0x98) |
| #define ACE_HASH_HMAC_KEY_IN12 (ACE_HASH_OFFSET + 0x9C) |
| #define ACE_HASH_HMAC_KEY_IN13 (ACE_HASH_OFFSET + 0xA0) |
| #define ACE_HASH_HMAC_KEY_IN14 (ACE_HASH_OFFSET + 0xA4) |
| #define ACE_HASH_HMAC_KEY_IN15 (ACE_HASH_OFFSET + 0xA8) |
| #define ACE_HASH_HMAC_KEY_IN16 (ACE_HASH_OFFSET + 0xAC) |
| |
| #define ACE_HASH_IV1 (ACE_HASH_OFFSET + 0xB0) |
| #define ACE_HASH_IV2 (ACE_HASH_OFFSET + 0xB4) |
| #define ACE_HASH_IV3 (ACE_HASH_OFFSET + 0xB8) |
| #define ACE_HASH_IV4 (ACE_HASH_OFFSET + 0xBC) |
| #define ACE_HASH_IV5 (ACE_HASH_OFFSET + 0xC0) |
| #define ACE_HASH_IV6 (ACE_HASH_OFFSET + 0xC4) |
| #define ACE_HASH_IV7 (ACE_HASH_OFFSET + 0xC8) |
| #define ACE_HASH_IV8 (ACE_HASH_OFFSET + 0xCC) |
| |
| #define ACE_HASH_RESULT1 (ACE_HASH_OFFSET + 0x100) |
| #define ACE_HASH_RESULT2 (ACE_HASH_OFFSET + 0x104) |
| #define ACE_HASH_RESULT3 (ACE_HASH_OFFSET + 0x108) |
| #define ACE_HASH_RESULT4 (ACE_HASH_OFFSET + 0x10C) |
| #define ACE_HASH_RESULT5 (ACE_HASH_OFFSET + 0x110) |
| #define ACE_HASH_RESULT6 (ACE_HASH_OFFSET + 0x114) |
| #define ACE_HASH_RESULT7 (ACE_HASH_OFFSET + 0x118) |
| #define ACE_HASH_RESULT8 (ACE_HASH_OFFSET + 0x11C) |
| |
| #define ACE_HASH_SEED1 (ACE_HASH_OFFSET + 0x140) |
| #define ACE_HASH_SEED2 (ACE_HASH_OFFSET + 0x144) |
| #define ACE_HASH_SEED3 (ACE_HASH_OFFSET + 0x148) |
| #define ACE_HASH_SEED4 (ACE_HASH_OFFSET + 0x14C) |
| #define ACE_HASH_SEED5 (ACE_HASH_OFFSET + 0x150) |
| |
| #define ACE_HASH_PRNG1 (ACE_HASH_OFFSET + 0x160) |
| #define ACE_HASH_PRNG2 (ACE_HASH_OFFSET + 0x164) |
| #define ACE_HASH_PRNG3 (ACE_HASH_OFFSET + 0x168) |
| #define ACE_HASH_PRNG4 (ACE_HASH_OFFSET + 0x16C) |
| #define ACE_HASH_PRNG5 (ACE_HASH_OFFSET + 0x170) |
| #endif |
| |
| /* PKA control registers */ |
| #define ACE_PKA_SFR0 (ACE_PKA_OFFSET + 0x00) |
| #define ACE_PKA_SFR1 (ACE_PKA_OFFSET + 0x04) |
| #define ACE_PKA_SFR2 (ACE_PKA_OFFSET + 0x08) |
| #define ACE_PKA_SFR3 (ACE_PKA_OFFSET + 0x0C) |
| #define ACE_PKA_SFR4 (ACE_PKA_OFFSET + 0x10) |
| |
| |
| /***************************************************************** |
| OFFSET |
| *****************************************************************/ |
| |
| /* ACE_FC_INT */ |
| #define ACE_FC_PKDMA (1 << 0) |
| #define ACE_FC_HRDMA (1 << 1) |
| #define ACE_FC_BTDMA (1 << 2) |
| #define ACE_FC_BRDMA (1 << 3) |
| #define ACE_FC_PRNG_ERROR (1 << 4) |
| #define ACE_FC_MSG_DONE (1 << 5) |
| #define ACE_FC_PRNG_DONE (1 << 6) |
| #define ACE_FC_PARTIAL_DONE (1 << 7) |
| |
| /* ACE_FC_FIFOSTAT */ |
| #define ACE_FC_PKFIFO_EMPTY (1 << 0) |
| #define ACE_FC_PKFIFO_FULL (1 << 1) |
| #define ACE_FC_HRFIFO_EMPTY (1 << 2) |
| #define ACE_FC_HRFIFO_FULL (1 << 3) |
| #define ACE_FC_BTFIFO_EMPTY (1 << 4) |
| #define ACE_FC_BTFIFO_FULL (1 << 5) |
| #define ACE_FC_BRFIFO_EMPTY (1 << 6) |
| #define ACE_FC_BRFIFO_FULL (1 << 7) |
| |
| /* ACE_FC_FIFOCTRL */ |
| #define ACE_FC_SELHASH_MASK (3 << 0) |
| #define ACE_FC_SELHASH_EXOUT (0 << 0) /*independent source*/ |
| #define ACE_FC_SELHASH_BCIN (1 << 0) /*block cipher input*/ |
| #define ACE_FC_SELHASH_BCOUT (2 << 0) /*block cipher output*/ |
| #define ACE_FC_SELBC_MASK (1 << 2) |
| #define ACE_FC_SELBC_AES (0 << 2) /* AES */ |
| #define ACE_FC_SELBC_DES (1 << 2) /* DES */ |
| |
| /* ACE_FC_GLOBAL */ |
| #define ACE_FC_SSS_RESET (1 << 0) |
| #define ACE_FC_DMA_RESET (1 << 1) |
| #define ACE_FC_AES_RESET (1 << 2) |
| #define ACE_FC_DES_RESET (1 << 3) |
| #define ACE_FC_HASH_RESET (1 << 4) |
| #define ACE_FC_AXI_ENDIAN_MASK (3 << 6) |
| #define ACE_FC_AXI_ENDIAN_LE (0 << 6) |
| #define ACE_FC_AXI_ENDIAN_BIBE (1 << 6) |
| #define ACE_FC_AXI_ENDIAN_WIBE (2 << 6) |
| |
| /* Feed control - BRDMA control */ |
| #define ACE_FC_BRDMACFLUSH_OFF (0 << 0) |
| #define ACE_FC_BRDMACFLUSH_ON (1 << 0) |
| #define ACE_FC_BRDMACSWAP_ON (1 << 1) |
| #define ACE_FC_BRDMACARPROT_MASK (0x7 << 2) |
| #define ACE_FC_BRDMACARPROT_OFS (2) |
| #define ACE_FC_BRDMACARCACHE_MASK (0xF << 5) |
| #define ACE_FC_BRDMACARCACHE_OFS (5) |
| |
| /* Feed control - BTDMA control */ |
| #define ACE_FC_BTDMACFLUSH_OFF (0 << 0) |
| #define ACE_FC_BTDMACFLUSH_ON (1 << 0) |
| #define ACE_FC_BTDMACSWAP_ON (1 << 1) |
| #define ACE_FC_BTDMACAWPROT_MASK (0x7 << 2) |
| #define ACE_FC_BTDMACAWPROT_OFS (2) |
| #define ACE_FC_BTDMACAWCACHE_MASK (0xF << 5) |
| #define ACE_FC_BTDMACAWCACHE_OFS (5) |
| |
| /* Feed control - HRDMA control */ |
| #define ACE_FC_HRDMACFLUSH_OFF (0 << 0) |
| #define ACE_FC_HRDMACFLUSH_ON (1 << 0) |
| #define ACE_FC_HRDMACSWAP_ON (1 << 1) |
| #define ACE_FC_HRDMACARPROT_MASK (0x7 << 2) |
| #define ACE_FC_HRDMACARPROT_OFS (2) |
| #define ACE_FC_HRDMACARCACHE_MASK (0xF << 5) |
| #define ACE_FC_HRDMACARCACHE_OFS (5) |
| |
| /* Feed control - PKDMA control */ |
| #define ACE_FC_PKDMACBYTESWAP_ON (1 << 3) |
| #define ACE_FC_PKDMACDESEND_ON (1 << 2) |
| #define ACE_FC_PKDMACTRANSMIT_ON (1 << 1) |
| #define ACE_FC_PKDMACFLUSH_ON (1 << 0) |
| |
| /* Feed control - PKDMA offset */ |
| #define ACE_FC_SRAMOFFSET_MASK (0xFFF) |
| |
| /* AES control */ |
| #define ACE_AES_MODE_MASK (1 << 0) |
| #define ACE_AES_MODE_ENC (0 << 0) |
| #define ACE_AES_MODE_DEC (1 << 0) |
| #define ACE_AES_OPERMODE_MASK (3 << 1) |
| #define ACE_AES_OPERMODE_ECB (0 << 1) |
| #define ACE_AES_OPERMODE_CBC (1 << 1) |
| #define ACE_AES_OPERMODE_CTR (2 << 1) |
| #define ACE_AES_FIFO_MASK (1 << 3) |
| #define ACE_AES_FIFO_OFF (0 << 3) /* CPU mode */ |
| #define ACE_AES_FIFO_ON (1 << 3) /* FIFO mode */ |
| #define ACE_AES_KEYSIZE_MASK (3 << 4) |
| #define ACE_AES_KEYSIZE_128 (0 << 4) |
| #define ACE_AES_KEYSIZE_192 (1 << 4) |
| #define ACE_AES_KEYSIZE_256 (2 << 4) |
| #define ACE_AES_KEYCNGMODE_MASK (1 << 6) |
| #define ACE_AES_KEYCNGMODE_OFF (0 << 6) |
| #define ACE_AES_KEYCNGMODE_ON (1 << 6) |
| #define ACE_AES_SWAP_MASK (0x1F << 7) |
| #define ACE_AES_SWAPKEY_OFF (0 << 7) |
| #define ACE_AES_SWAPKEY_ON (1 << 7) |
| #define ACE_AES_SWAPCNT_OFF (0 << 8) |
| #define ACE_AES_SWAPCNT_ON (1 << 8) |
| #define ACE_AES_SWAPIV_OFF (0 << 9) |
| #define ACE_AES_SWAPIV_ON (1 << 9) |
| #define ACE_AES_SWAPDO_OFF (0 << 10) |
| #define ACE_AES_SWAPDO_ON (1 << 10) |
| #define ACE_AES_SWAPDI_OFF (0 << 11) |
| #define ACE_AES_SWAPDI_ON (1 << 11) |
| #define ACE_AES_COUNTERSIZE_MASK (3 << 12) |
| #define ACE_AES_COUNTERSIZE_128 (0 << 12) |
| #define ACE_AES_COUNTERSIZE_64 (1 << 12) |
| #define ACE_AES_COUNTERSIZE_32 (2 << 12) |
| #define ACE_AES_COUNTERSIZE_16 (3 << 12) |
| |
| /* AES status */ |
| #define ACE_AES_OUTRDY_MASK (1 << 0) |
| #define ACE_AES_OUTRDY_OFF (0 << 0) |
| #define ACE_AES_OUTRDY_ON (1 << 0) |
| #define ACE_AES_INRDY_MASK (1 << 1) |
| #define ACE_AES_INRDY_OFF (0 << 1) |
| #define ACE_AES_INRDY_ON (1 << 1) |
| #define ACE_AES_BUSY_MASK (1 << 2) |
| #define ACE_AES_BUSY_OFF (0 << 2) |
| #define ACE_AES_BUSY_ON (1 << 2) |
| |
| /* TDES control */ |
| #define ACE_TDES_MODE_MASK (1 << 0) |
| #define ACE_TDES_MODE_ENC (0 << 0) |
| #define ACE_TDES_MODE_DEC (1 << 0) |
| #define ACE_TDES_OPERMODE_MASK (1 << 1) |
| #define ACE_TDES_OPERMODE_ECB (0 << 1) |
| #define ACE_TDES_OPERMODE_CBC (1 << 1) |
| #define ACE_TDES_SEL_MASK (3 << 3) |
| #define ACE_TDES_SEL_DES (0 << 3) |
| #define ACE_TDES_SEL_TDESEDE (1 << 3) /* TDES EDE mode */ |
| #define ACE_TDES_SEL_TDESEEE (3 << 3) /* TDES EEE mode */ |
| #define ACE_TDES_FIFO_MASK (1 << 5) |
| #define ACE_TDES_FIFO_OFF (0 << 5) /* CPU mode */ |
| #define ACE_TDES_FIFO_ON (1 << 5) /* FIFO mode */ |
| #define ACE_TDES_SWAP_MASK (0xF << 6) |
| #define ACE_TDES_SWAPKEY_OFF (0 << 6) |
| #define ACE_TDES_SWAPKEY_ON (1 << 6) |
| #define ACE_TDES_SWAPIV_OFF (0 << 7) |
| #define ACE_TDES_SWAPIV_ON (1 << 7) |
| #define ACE_TDES_SWAPDO_OFF (0 << 8) |
| #define ACE_TDES_SWAPDO_ON (1 << 8) |
| #define ACE_TDES_SWAPDI_OFF (0 << 9) |
| #define ACE_TDES_SWAPDI_ON (1 << 9) |
| |
| /* TDES status */ |
| #define ACE_TDES_OUTRDY_MASK (1 << 0) |
| #define ACE_TDES_OUTRDY_OFF (0 << 0) |
| #define ACE_TDES_OUTRDY_ON (1 << 0) |
| #define ACE_TDES_INRDY_MASK (1 << 1) |
| #define ACE_TDES_INRDY_OFF (0 << 1) |
| #define ACE_TDES_INRDY_ON (1 << 1) |
| #define ACE_TDES_BUSY_MASK (1 << 2) |
| #define ACE_TDES_BUSY_OFF (0 << 2) |
| #define ACE_TDES_BUSY_ON (1 << 2) |
| |
| /* Hash control */ |
| #define ACE_HASH_ENGSEL_MASK (0xF << 0) |
| #define ACE_HASH_ENGSEL_SHA1HASH (0x0 << 0) |
| #define ACE_HASH_ENGSEL_SHA1HMAC (0x1 << 0) |
| #define ACE_HASH_ENGSEL_SHA1HMACIN (0x1 << 0) |
| #define ACE_HASH_ENGSEL_SHA1HMACOUT (0x9 << 0) |
| #define ACE_HASH_ENGSEL_MD5HASH (0x2 << 0) |
| #define ACE_HASH_ENGSEL_MD5HMAC (0x3 << 0) |
| #define ACE_HASH_ENGSEL_MD5HMACIN (0x3 << 0) |
| #define ACE_HASH_ENGSEL_MD5HMACOUT (0xB << 0) |
| #define ACE_HASH_ENGSEL_SHA256HASH (0x4 << 0) |
| #define ACE_HASH_ENGSEL_SHA256HMAC (0x5 << 0) |
| #if defined(CONFIG_ARCH_S5PV210) |
| #define ACE_HASH_ENGSEL_PRNG (0x4 << 0) |
| #elif defined(CONFIG_ARCH_EXYNOS4) || defined(CONFIG_ARCH_EXYNOS5) |
| #define ACE_HASH_ENGSEL_PRNG (0x8 << 0) |
| #endif |
| #define ACE_HASH_STARTBIT_ON (1 << 4) |
| #define ACE_HASH_USERIV_EN (1 << 5) |
| |
| /* Hash control 2 */ |
| #if defined(CONFIG_ARCH_S5PV210) |
| #define ACE_HASH_PAUSE_ON (1 << 3) |
| #elif defined(CONFIG_ARCH_EXYNOS4) || defined(CONFIG_ARCH_EXYNOS5) |
| #define ACE_HASH_PAUSE_ON (1 << 0) |
| #endif |
| |
| /* Hash control - FIFO mode */ |
| #define ACE_HASH_FIFO_MASK (1 << 0) |
| #define ACE_HASH_FIFO_OFF (0 << 0) |
| #define ACE_HASH_FIFO_ON (1 << 0) |
| |
| /* Hash control - byte swap */ |
| #if defined(CONFIG_ARCH_S5PV210) |
| #define ACE_HASH_SWAP_MASK (0x7 << 1) |
| #elif defined(CONFIG_ARCH_EXYNOS4) || defined(CONFIG_ARCH_EXYNOS5) |
| #define ACE_HASH_SWAP_MASK (0xF << 0) |
| #endif |
| #define ACE_HASH_SWAPKEY_OFF (0 << 0) |
| #define ACE_HASH_SWAPKEY_ON (1 << 0) |
| #define ACE_HASH_SWAPIV_OFF (0 << 1) |
| #define ACE_HASH_SWAPIV_ON (1 << 1) |
| #define ACE_HASH_SWAPDO_OFF (0 << 2) |
| #define ACE_HASH_SWAPDO_ON (1 << 2) |
| #define ACE_HASH_SWAPDI_OFF (0 << 3) |
| #define ACE_HASH_SWAPDI_ON (1 << 3) |
| |
| /* Hash status */ |
| #define ACE_HASH_BUFRDY_MASK (1 << 0) |
| #define ACE_HASH_BUFRDY_OFF (0 << 0) |
| #define ACE_HASH_BUFRDY_ON (1 << 0) |
| #define ACE_HASH_SEEDSETTING_MASK (1 << 1) |
| #define ACE_HASH_SEEDSETTING_OFF (0 << 1) |
| #define ACE_HASH_SEEDSETTING_ON (1 << 1) |
| #define ACE_HASH_PRNGBUSY_MASK (1 << 2) |
| #define ACE_HASH_PRNGBUSY_OFF (0 << 2) |
| #define ACE_HASH_PRNGBUSY_ON (1 << 2) |
| #define ACE_HASH_PARTIALDONE_MASK (1 << 4) |
| #define ACE_HASH_PARTIALDONE_OFF (0 << 4) |
| #define ACE_HASH_PARTIALDONE_ON (1 << 4) |
| #define ACE_HASH_PRNGDONE_MASK (1 << 5) |
| #define ACE_HASH_PRNGDONE_OFF (0 << 5) |
| #define ACE_HASH_PRNGDONE_ON (1 << 5) |
| #define ACE_HASH_MSGDONE_MASK (1 << 6) |
| #define ACE_HASH_MSGDONE_OFF (0 << 6) |
| #define ACE_HASH_MSGDONE_ON (1 << 6) |
| #define ACE_HASH_PRNGERROR_MASK (1 << 7) |
| #define ACE_HASH_PRNGERROR_OFF (0 << 7) |
| #define ACE_HASH_PRNGERROR_ON (1 << 7) |
| |
| /* To Do: SFRs for PKA */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif |
| |