aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files/crypto/ocf/kirkwood/cesa/mvCesa.h
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/files/crypto/ocf/kirkwood/cesa/mvCesa.h')
-rw-r--r--target/linux/generic/files/crypto/ocf/kirkwood/cesa/mvCesa.h412
1 files changed, 0 insertions, 412 deletions
diff --git a/target/linux/generic/files/crypto/ocf/kirkwood/cesa/mvCesa.h b/target/linux/generic/files/crypto/ocf/kirkwood/cesa/mvCesa.h
deleted file mode 100644
index c0abc9b7ea..0000000000
--- a/target/linux/generic/files/crypto/ocf/kirkwood/cesa/mvCesa.h
+++ /dev/null
@@ -1,412 +0,0 @@
-/*******************************************************************************
-Copyright (C) Marvell International Ltd. and its affiliates
-
-This software file (the "File") is owned and distributed by Marvell
-International Ltd. and/or its affiliates ("Marvell") under the following
-alternative licensing terms. Once you have made an election to distribute the
-File under one of the following license alternatives, please (i) delete this
-introductory statement regarding license alternatives, (ii) delete the two
-license alternatives that you have not elected to use and (iii) preserve the
-Marvell copyright notice above.
-
-********************************************************************************
-Marvell Commercial License Option
-
-If you received this File from Marvell and you have entered into a commercial
-license agreement (a "Commercial License") with Marvell, the File is licensed
-to you under the terms of the applicable Commercial License.
-
-********************************************************************************
-Marvell GPL License Option
-
-If you received this File from Marvell, you may opt to use, redistribute and/or
-modify this File in accordance with the terms and conditions of the General
-Public License Version 2, June 1991 (the "GPL License"), a copy of which is
-available along with the File in the license.txt file or by writing to the Free
-Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
-on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
-
-THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
-WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
-DISCLAIMED. The GPL License provides additional details about this warranty
-disclaimer.
-********************************************************************************
-Marvell BSD License Option
-
-If you received this File from Marvell, you may opt to use, redistribute and/or
-modify this File under the following licensing terms.
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the name of Marvell nor the names of its contributors may be
- used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-*******************************************************************************/
-
-/*******************************************************************************
-* mvCesa.h - Header File for Cryptographic Engines and Security Accelerator
-*
-* DESCRIPTION:
-* This header file contains macros typedefs and function declaration for
-* the Marvell Cryptographic Engines and Security Accelerator.
-*
-*******************************************************************************/
-
-#ifndef __mvCesa_h__
-#define __mvCesa_h__
-
-#include "mvOs.h"
-#include "mvCommon.h"
-#include "mvDebug.h"
-
-#include "ctrlEnv/mvCtrlEnvSpec.h"
-
-#include "cesa/mvMD5.h"
-#include "cesa/mvSHA1.h"
-
-#include "cesa/mvCesa.h"
-#include "cesa/AES/mvAes.h"
-#include "mvSysHwConfig.h"
-
-#ifdef MV_INCLUDE_IDMA
-#include "idma/mvIdma.h"
-#include "idma/mvIdmaRegs.h"
-#else
-/* Redefine MV_DMA_DESC structure */
-typedef struct _mvDmaDesc
-{
- MV_U32 byteCnt; /* The total number of bytes to transfer */
- MV_U32 phySrcAdd; /* The physical source address */
- MV_U32 phyDestAdd; /* The physical destination address */
- MV_U32 phyNextDescPtr; /* If we are using chain mode DMA transfer, */
- /* then this pointer should point to the */
- /* physical address of the next descriptor, */
- /* otherwise it should be NULL. */
-}MV_DMA_DESC;
-#endif /* MV_INCLUDE_IDMA */
-
-#include "cesa/mvCesaRegs.h"
-
-#define MV_CESA_AUTH_BLOCK_SIZE 64 /* bytes */
-
-#define MV_CESA_MD5_DIGEST_SIZE 16 /* bytes */
-#define MV_CESA_SHA1_DIGEST_SIZE 20 /* bytes */
-
-#define MV_CESA_MAX_DIGEST_SIZE MV_CESA_SHA1_DIGEST_SIZE
-
-#define MV_CESA_DES_KEY_LENGTH 8 /* bytes = 64 bits */
-#define MV_CESA_3DES_KEY_LENGTH 24 /* bytes = 192 bits */
-#define MV_CESA_AES_128_KEY_LENGTH 16 /* bytes = 128 bits */
-#define MV_CESA_AES_192_KEY_LENGTH 24 /* bytes = 192 bits */
-#define MV_CESA_AES_256_KEY_LENGTH 32 /* bytes = 256 bits */
-
-#define MV_CESA_MAX_CRYPTO_KEY_LENGTH MV_CESA_AES_256_KEY_LENGTH
-
-#define MV_CESA_DES_BLOCK_SIZE 8 /* bytes = 64 bits */
-#define MV_CESA_3DES_BLOCK_SIZE 8 /* bytes = 64 bits */
-
-#define MV_CESA_AES_BLOCK_SIZE 16 /* bytes = 128 bits */
-
-#define MV_CESA_MAX_IV_LENGTH MV_CESA_AES_BLOCK_SIZE
-
-#define MV_CESA_MAX_MAC_KEY_LENGTH 64 /* bytes */
-
-typedef struct
-{
- MV_U8 cryptoKey[MV_CESA_MAX_CRYPTO_KEY_LENGTH];
- MV_U8 macKey[MV_CESA_MAX_MAC_KEY_LENGTH];
- MV_CESA_OPERATION operation;
- MV_CESA_DIRECTION direction;
- MV_CESA_CRYPTO_ALG cryptoAlgorithm;
- MV_CESA_CRYPTO_MODE cryptoMode;
- MV_U8 cryptoKeyLength;
- MV_CESA_MAC_MODE macMode;
- MV_U8 macKeyLength;
- MV_U8 digestSize;
-
-} MV_CESA_OPEN_SESSION;
-
-typedef struct
-{
- MV_BUF_INFO *pFrags;
- MV_U16 numFrags;
- MV_U16 mbufSize;
-
-} MV_CESA_MBUF;
-
-typedef struct
-{
- void* pReqPrv; /* instead of reqId */
- MV_U32 retCode;
- MV_16 sessionId;
-
-} MV_CESA_RESULT;
-
-typedef void (*MV_CESA_CALLBACK) (MV_CESA_RESULT* pResult);
-
-
-typedef struct
-{
- void* pReqPrv; /* instead of reqId */
- MV_CESA_MBUF* pSrc;
- MV_CESA_MBUF* pDst;
- MV_CESA_CALLBACK* pFuncCB;
- MV_16 sessionId;
- MV_U16 ivFromUser;
- MV_U16 ivOffset;
- MV_U16 cryptoOffset;
- MV_U16 cryptoLength;
- MV_U16 digestOffset;
- MV_U16 macOffset;
- MV_U16 macLength;
- MV_BOOL skipFlush;
-} MV_CESA_COMMAND;
-
-
-
-MV_STATUS mvCesaHalInit (int numOfSession, int queueDepth, char* pSramBase, MV_U32 cryptEngBase, void *osHandle);
-MV_STATUS mvCesaFinish (void);
-MV_STATUS mvCesaSessionOpen(MV_CESA_OPEN_SESSION *pSession, short* pSid);
-MV_STATUS mvCesaSessionClose(short sid);
-MV_STATUS mvCesaCryptoIvSet(MV_U8* pIV, int ivSize);
-
-MV_STATUS mvCesaAction (MV_CESA_COMMAND* pCmd);
-
-MV_U32 mvCesaInProcessGet(void);
-MV_STATUS mvCesaReadyDispatch(void);
-MV_STATUS mvCesaReadyGet(MV_CESA_RESULT* pResult);
-MV_BOOL mvCesaIsReady(void);
-
-int mvCesaMbufOffset(MV_CESA_MBUF* pMbuf, int offset, int* pBufOffset);
-MV_STATUS mvCesaCopyFromMbuf(MV_U8* pDst, MV_CESA_MBUF* pSrcMbuf,
- int offset, int size);
-MV_STATUS mvCesaCopyToMbuf(MV_U8* pSrc, MV_CESA_MBUF* pDstMbuf,
- int offset, int size);
-MV_STATUS mvCesaMbufCopy(MV_CESA_MBUF* pMbufDst, int dstMbufOffset,
- MV_CESA_MBUF* pMbufSrc, int srcMbufOffset, int size);
-
-/********** Debug functions ********/
-
-void mvCesaDebugMbuf(const char* str, MV_CESA_MBUF *pMbuf, int offset, int size);
-void mvCesaDebugSA(short sid, int mode);
-void mvCesaDebugStats(void);
-void mvCesaDebugStatsClear(void);
-void mvCesaDebugRegs(void);
-void mvCesaDebugStatus(void);
-void mvCesaDebugQueue(int mode);
-void mvCesaDebugSram(int mode);
-void mvCesaDebugSAD(int mode);
-
-
-/******** CESA Private definitions ********/
-#if (MV_CESA_VERSION >= 2)
-#if (MV_CACHE_COHERENCY == MV_CACHE_COHER_SW)
-#define MV_CESA_TDMA_CTRL_VALUE MV_CESA_TDMA_DST_BURST_MASK(MV_CESA_TDMA_BURST_128B) \
- | MV_CESA_TDMA_SRC_BURST_MASK(MV_CESA_TDMA_BURST_128B) \
- | MV_CESA_TDMA_OUTSTAND_READ_EN_MASK \
- | MV_CESA_TDMA_NO_BYTE_SWAP_MASK \
- | MV_CESA_TDMA_ENABLE_MASK
-#else
-#define MV_CESA_TDMA_CTRL_VALUE MV_CESA_TDMA_DST_BURST_MASK(MV_CESA_TDMA_BURST_32B) \
- | MV_CESA_TDMA_SRC_BURST_MASK(MV_CESA_TDMA_BURST_128B) \
- /*| MV_CESA_TDMA_OUTSTAND_READ_EN_MASK */\
- | MV_CESA_TDMA_ENABLE_MASK
-
-#endif
-#else
-#define MV_CESA_IDMA_CTRL_LOW_VALUE ICCLR_DST_BURST_LIM_128BYTE \
- | ICCLR_SRC_BURST_LIM_128BYTE \
- | ICCLR_INT_MODE_MASK \
- | ICCLR_BLOCK_MODE \
- | ICCLR_CHAN_ENABLE \
- | ICCLR_DESC_MODE_16M
-#endif /* MV_CESA_VERSION >= 2 */
-
-#define MV_CESA_MAX_PKT_SIZE (64 * 1024)
-#define MV_CESA_MAX_MBUF_FRAGS 20
-
-#define MV_CESA_MAX_REQ_FRAGS ( (MV_CESA_MAX_PKT_SIZE / MV_CESA_MAX_BUF_SIZE) + 1)
-
-#define MV_CESA_MAX_DMA_DESC (MV_CESA_MAX_MBUF_FRAGS*2 + 5)
-
-#define MAX_CESA_CHAIN_LENGTH 20
-
-typedef enum
-{
- MV_CESA_IDLE = 0,
- MV_CESA_PENDING,
- MV_CESA_PROCESS,
- MV_CESA_READY,
-#if (MV_CESA_VERSION >= 3)
- MV_CESA_CHAIN,
-#endif
-} MV_CESA_STATE;
-
-
-/* Session database */
-
-/* Map of Key materials of the session in SRAM.
- * Each field must be 8 byte aligned
- * Total size: 32 + 24 + 24 = 80 bytes
- */
-typedef struct
-{
- MV_U8 cryptoKey[MV_CESA_MAX_CRYPTO_KEY_LENGTH];
- MV_U8 macInnerIV[MV_CESA_MAX_DIGEST_SIZE];
- MV_U8 reservedInner[4];
- MV_U8 macOuterIV[MV_CESA_MAX_DIGEST_SIZE];
- MV_U8 reservedOuter[4];
-
-} MV_CESA_SRAM_SA;
-
-typedef struct
-{
- MV_CESA_SRAM_SA* pSramSA;
- MV_U32 config;
- MV_U8 cryptoKeyLength;
- MV_U8 cryptoIvSize;
- MV_U8 cryptoBlockSize;
- MV_U8 digestSize;
- MV_U8 macKeyLength;
- MV_U8 valid;
- MV_U8 ctrMode;
- MV_U32 count;
-
-} MV_CESA_SA;
-
-/* DMA list management */
-typedef struct
-{
- MV_DMA_DESC* pDmaFirst;
- MV_DMA_DESC* pDmaLast;
-
-} MV_CESA_DMA;
-
-
-typedef struct
-{
- MV_U8 numFrag;
- MV_U8 nextFrag;
- int bufOffset;
- int cryptoSize;
- int macSize;
- int newDigestOffset;
- MV_U8 orgDigest[MV_CESA_MAX_DIGEST_SIZE];
-
-} MV_CESA_FRAGS;
-
-/* Request queue */
-typedef struct
-{
- MV_U8 state;
- MV_U8 fragMode;
- MV_U8 fixOffset;
- MV_CESA_COMMAND* pCmd;
- MV_CESA_COMMAND* pOrgCmd;
- MV_BUF_INFO dmaDescBuf;
- MV_CESA_DMA dma[MV_CESA_MAX_REQ_FRAGS];
- MV_BUF_INFO cesaDescBuf;
- MV_CESA_DESC* pCesaDesc;
- MV_CESA_FRAGS frags;
-
-
-} MV_CESA_REQ;
-
-
-/* SRAM map */
-/* Total SRAM size calculation */
-/* SRAM size =
- * MV_CESA_MAX_BUF_SIZE +
- * sizeof(MV_CESA_DESC) +
- * MV_CESA_MAX_IV_LENGTH +
- * MV_CESA_MAX_IV_LENGTH +
- * MV_CESA_MAX_DIGEST_SIZE +
- * sizeof(MV_CESA_SRAM_SA)
- * = 1600 + 32 + 16 + 16 + 24 + 80 + 280 (reserved) = 2048 bytes
- * = 3200 + 32 + 16 + 16 + 24 + 80 + 728 (reserved) = 4096 bytes
- */
-typedef struct
-{
- MV_U8 buf[MV_CESA_MAX_BUF_SIZE];
- MV_CESA_DESC desc;
- MV_U8 cryptoIV[MV_CESA_MAX_IV_LENGTH];
- MV_U8 tempCryptoIV[MV_CESA_MAX_IV_LENGTH];
- MV_U8 tempDigest[MV_CESA_MAX_DIGEST_SIZE+4];
- MV_CESA_SRAM_SA sramSA;
-
-} MV_CESA_SRAM_MAP;
-
-
-typedef struct
-{
- MV_U32 openedCount;
- MV_U32 closedCount;
- MV_U32 fragCount;
- MV_U32 reqCount;
- MV_U32 maxReqCount;
- MV_U32 procCount;
- MV_U32 readyCount;
- MV_U32 notReadyCount;
- MV_U32 startCount;
-#if (MV_CESA_VERSION >= 3)
- MV_U32 maxChainUsage;
-#endif
-
-} MV_CESA_STATS;
-
-
-/* External variables */
-
-extern MV_CESA_STATS cesaStats;
-extern MV_CESA_FRAGS cesaFrags;
-
-extern MV_BUF_INFO cesaSramSaBuf;
-
-extern MV_CESA_SA* pCesaSAD;
-extern MV_U16 cesaMaxSA;
-
-extern MV_CESA_REQ* pCesaReqFirst;
-extern MV_CESA_REQ* pCesaReqLast;
-extern MV_CESA_REQ* pCesaReqEmpty;
-extern MV_CESA_REQ* pCesaReqProcess;
-extern int cesaQueueDepth;
-extern int cesaReqResources;
-#if (MV_CESA_VERSION>= 3)
-extern MV_U32 cesaChainLength;
-#endif
-
-extern MV_CESA_SRAM_MAP* cesaSramVirtPtr;
-extern MV_U32 cesaSramPhysAddr;
-
-static INLINE MV_ULONG mvCesaVirtToPhys(MV_BUF_INFO* pBufInfo, void* pVirt)
-{
- return (pBufInfo->bufPhysAddr + ((MV_U8*)pVirt - pBufInfo->bufVirtPtr));
-}
-
-/* Additional DEBUG functions */
-void mvCesaDebugSramSA(MV_CESA_SRAM_SA* pSramSA, int mode);
-void mvCesaDebugCmd(MV_CESA_COMMAND* pCmd, int mode);
-void mvCesaDebugDescriptor(MV_CESA_DESC* pDesc);
-
-
-
-#endif /* __mvCesa_h__ */