des3des.h

来自「OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI」· C头文件 代码 · 共 364 行

H
364
字号
//========================================================================
//          TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION  
//   Property of Texas Instruments
//   For Unrestricted Internal Use Only
//   Unauthorized reprofuction and/or distribution is strictly prohibited.
//   This product is protected under copyright law and trade secret law
//   as an unpublished work
//   Created 2000,  (C) Copyright 2000 Texas Instruments. All rights reserved
//
//
//   Filename           :des3des.h
//
//   Date of Module Modification:4/13/02
//   Date of Generation :4/13/02
//
//
//========================================================================
#include "mapping.h"
#include "global_types.h"
#include "errorcodes.h"
#include "test.h"
#include "omap_32_clkrst.h"
#include "configuration.h"
#include "interrupt_mapping.h"
#include "dmareq_mapping.h"
#include "gdmatest_omap32.h"
#include "gdma_omap32.h"
#include "inth2.h"
#include "reset.h"

#ifndef _DES3DES__H
#define _DES3DES__H


//BEGIN INC GENERATION
//--------------------------------------


//Register Offset
//-------------------
#define            DES3DES_DES_KEY3_L_OFFSET               0x00
#define            DES3DES_DES_KEY3_H_OFFSET               0x04
#define            DES3DES_DES_KEY2_L_OFFSET               0x08
#define            DES3DES_DES_KEY2_H_OFFSET               0x0C
#define            DES3DES_DES_KEY1_L_OFFSET               0x10
#define            DES3DES_DES_KEY1_H_OFFSET               0x14
#define            DES3DES_DES_IV_L_OFFSET                 0x18
#define            DES3DES_DES_IV_H_OFFSET                 0x1c
#define            DES3DES_DES_CTRL_OFFSET                 0x20
#define            DES3DES_DES_DATA_L_OFFSET               0x24
#define            DES3DES_DES_DATA_H_OFFSET               0x28
#define            DES3DES_DES_REV_OFFSET                  0x2C
#define            DES3DES_DES_MASK_OFFSET                 0x30
#define            DES3DES_DES_SYSSTATUS_OFFSET            0x34




//DES3DES_DES_KEY3_L
//-------------------
#define            DES3DES_DES_KEY3_L                      REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_KEY3_L_OFFSET)


#define            DES3DES_DES_KEY3_L_DES_KEY3_L_POS         0
#define            DES3DES_DES_KEY3_L_DES_KEY3_L_NUMB        32
#define            DES3DES_DES_KEY3_L_DES_KEY3_L_RES_VAL     0x0
//R/W


//DES3DES_DES_KEY3_H
//-------------------
#define            DES3DES_DES_KEY3_H                      REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_KEY3_H_OFFSET)


#define            DES3DES_DES_KEY3_H_DES_KEY3_H_POS         0
#define            DES3DES_DES_KEY3_H_DES_KEY3_H_NUMB        32
#define            DES3DES_DES_KEY3_H_DES_KEY3_H_RES_VAL     0x0
//R/W


//DES3DES_DES_KEY2_L
//-------------------
#define            DES3DES_DES_KEY2_L                      REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_KEY2_L_OFFSET)


#define            DES3DES_DES_KEY2_L_DES_KEY2_L_POS         0
#define            DES3DES_DES_KEY2_L_DES_KEY2_L_NUMB        32
#define            DES3DES_DES_KEY2_L_DES_KEY2_L_RES_VAL     0x0
//R/W


//DES3DES_DES_KEY2_H
//-------------------
#define            DES3DES_DES_KEY2_H                      REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_KEY2_H_OFFSET)


#define            DES3DES_DES_KEY2_H_DES_KEY2_H_POS         0
#define            DES3DES_DES_KEY2_H_DES_KEY2_H_NUMB        32
#define            DES3DES_DES_KEY2_H_DES_KEY2_H_RES_VAL     0x0
//R/W


//DES3DES_DES_KEY1_L
//-------------------
#define            DES3DES_DES_KEY1_L                      REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_KEY1_L_OFFSET)


#define            DES3DES_DES_KEY1_L_DES_KEY1_L_POS         0
#define            DES3DES_DES_KEY1_L_DES_KEY1_L_NUMB        32
#define            DES3DES_DES_KEY1_L_DES_KEY1_L_RES_VAL     0x0
//R/W


//DES3DES_DES_KEY1_H
//-------------------
#define            DES3DES_DES_KEY1_H                      REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_KEY1_H_OFFSET)


#define            DES3DES_DES_KEY1_H_DES_KEY1_H_POS         0
#define            DES3DES_DES_KEY1_H_DES_KEY1_H_NUMB        32
#define            DES3DES_DES_KEY1_H_DES_KEY1_H_RES_VAL     0x0
//R/W


//DES3DES_DES_IV_L
//-------------------
#define            DES3DES_DES_IV_L                        REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_IV_L_OFFSET)


#define            DES3DES_DES_IV_L_DES_IV_L_POS             0
#define            DES3DES_DES_IV_L_DES_IV_L_NUMB            32
#define            DES3DES_DES_IV_L_DES_IV_L_RES_VAL         0x0
//R/W


//DES3DES_DES_IV_H
//-------------------
#define            DES3DES_DES_IV_H                        REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_IV_H_OFFSET)


#define            DES3DES_DES_IV_H_DES_IV_H_POS             0
#define            DES3DES_DES_IV_H_DES_IV_H_NUMB            32
#define            DES3DES_DES_IV_H_DES_IV_H_RES_VAL         0x0
//R/W


//DES3DES_DES_CTRL
//-------------------
#define            DES3DES_DES_CTRL                        REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_CTRL_OFFSET)


//#define            DES3DES_DES_CTRL_RESERVED_POS             5
//#define            DES3DES_DES_CTRL_RESERVED_NUMB            27
//#define            DES3DES_DES_CTRL_RESERVED_RES_VAL         0x0
//R/W

#define            DES3DES_DES_CTRL_CBC_POS                  4
#define            DES3DES_DES_CTRL_CBC_NUMB                 1
#define            DES3DES_DES_CTRL_CBC_RES_VAL              0x0
//R/W

#define            DES3DES_DES_CTRL_TDES_POS                 3
#define            DES3DES_DES_CTRL_TDES_NUMB                1
#define            DES3DES_DES_CTRL_TDES_RES_VAL             0x0
//R/W

#define            DES3DES_DES_CTRL_DIRECTION_POS            2
#define            DES3DES_DES_CTRL_DIRECTION_NUMB           1
#define            DES3DES_DES_CTRL_DIRECTION_RES_VAL        0x0
//R/W

#define            DES3DES_DES_CTRL_INPUT_READY_POS          1
#define            DES3DES_DES_CTRL_INPUT_READY_NUMB         1
#define            DES3DES_DES_CTRL_INPUT_READY_RES_VAL      0x1
//R

#define            DES3DES_DES_CTRL_OUTPUT_READY_POS         0
#define            DES3DES_DES_CTRL_OUTPUT_READY_NUMB        1
#define            DES3DES_DES_CTRL_OUTPUT_READY_RES_VAL     0x0
//R


//DES3DES_DES_DATA_L
//-------------------
#define            DES3DES_DES_DATA_L                      REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_DATA_L_OFFSET)


#define            DES3DES_DES_DATA_L_DES_DATA_L_POS         0
#define            DES3DES_DES_DATA_L_DES_DATA_L_NUMB        32
#define            DES3DES_DES_DATA_L_DES_DATA_L_RES_VAL     0x0
//R/W


//DES3DES_DES_DATA_H
//-------------------
#define            DES3DES_DES_DATA_H                      REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_DATA_H_OFFSET)


#define            DES3DES_DES_DATA_H_DES_DATA_H_POS         0
#define            DES3DES_DES_DATA_H_DES_DATA_H_NUMB        32
#define            DES3DES_DES_DATA_H_DES_DATA_H_RES_VAL     0x0
//R/W


//DES3DES_DES_REV
//-------------------
#define            DES3DES_DES_REV                         REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_REV_OFFSET)


//#define            DES3DES_DES_REV_RESERVED_POS              8
//#define            DES3DES_DES_REV_RESERVED_NUMB             24
//#define            DES3DES_DES_REV_RESERVED_RES_VAL          0x0
//R/W

#define            DES3DES_DES_REV_REV_NB_POS                0
#define            DES3DES_DES_REV_REV_NB_NUMB               8
#define            DES3DES_DES_REV_REV_NB_RES_VAL            0x14
//R


//DES3DES_DES_MASK
//-------------------
#define            DES3DES_DES_MASK                        REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_MASK_OFFSET)


//#define            DES3DES_DES_MASK_RESERVED_POS             6
//#define            DES3DES_DES_MASK_RESERVED_NUMB            26
//#define            DES3DES_DES_MASK_RESERVED_RES_VAL         0x0
//R/W

#define            DES3DES_DES_MASK_START_POS                5
#define            DES3DES_DES_MASK_START_NUMB               1
#define            DES3DES_DES_MASK_START_RES_VAL            0x0
//W

#define            DES3DES_DES_MASK_DIRECT_BUS_EN_POS        4
#define            DES3DES_DES_MASK_DIRECT_BUS_EN_NUMB       1
#define            DES3DES_DES_MASK_DIRECT_BUS_EN_RES_VAL    0x0
//R/W

#define            DES3DES_DES_MASK_DMA_REQ_OUT_EN_POS       3
#define            DES3DES_DES_MASK_DMA_REQ_OUT_EN_NUMB      1
#define            DES3DES_DES_MASK_DMA_REQ_OUT_EN_RES_VAL   0x0
//R/W

#define            DES3DES_DES_MASK_DMA_REQ_IN_EN_POS        2
#define            DES3DES_DES_MASK_DMA_REQ_IN_EN_NUMB       1
#define            DES3DES_DES_MASK_DMA_REQ_IN_EN_RES_VAL    0x0
//R/W

#define            DES3DES_DES_MASK_SOFTRESET_POS            1
#define            DES3DES_DES_MASK_SOFTRESET_NUMB           1
#define            DES3DES_DES_MASK_SOFTRESET_RES_VAL        0x0
//R/W

#define            DES3DES_DES_MASK_AUTOIDLE_POS             0
#define            DES3DES_DES_MASK_AUTOIDLE_NUMB            1
#define            DES3DES_DES_MASK_AUTOIDLE_RES_VAL         0x0
//R/W


//DES3DES_DES_SYSSTATUS
//-------------------
#define            DES3DES_DES_SYSSTATUS                   REG32(DES3DES_BASE_ADDR_ARM+DES3DES_DES_SYSSTATUS_OFFSET)


//#define            DES3DES_DES_SYSSTATUS_RESERVED_POS        1
//#define            DES3DES_DES_SYSSTATUS_RESERVED_NUMB       31
//#define            DES3DES_DES_SYSSTATUS_RESERVED_RES_VAL    0x0
//R

#define            DES3DES_DES_SYSSTATUS_RESETDONE_POS       0
#define            DES3DES_DES_SYSSTATUS_RESETDONE_NUMB      1
#define            DES3DES_DES_SYSSTATUS_RESETDONE_RES_VAL   0x0 
//R


#define TIME_OUT 0x200 

/* ERROR CODES, transfert to errorcodes.h asap */
#define DES3DES_BAD_MASK_CONF 0x9201
#define DES3DES_BAD_LOADKEY   0x9202
#define DES3DES_BAD_CTRL_CONF 0x9203
#define DES3DES_BAD_DATA_LOAD 0x9204
#define DES3DES_BAD_START     0x9205
#define DES3DES_BAD_READ      0x9206
#define DES3DES_BAD_COPY      0x9207
#define DES3DES_TEST_WRONG    0x9208



/* End Error Codes */

//#define DES_MASK_DIRECT_BUS_EN    0x10   // bit 4
#define SDRAM_Srcdata_add 0x1000A004
#define SDRAM_Resdata_add 0x1000C004


struct Key_struct {
  UWORD32 Key1L;
  UWORD32 Key1H;
  UWORD32 Key2L;
  UWORD32 Key2H;
  UWORD32 Key3L;
  UWORD32 Key3H;
  BIT     desmode;
};

struct Des_Struct {
  BIT dmaMode;
  BIT cbcMode;
  BIT clkMode;
  BIT desMode;
  BIT direction;
  BIT directBusMode;
  struct Key_struct *KeyBunchPtr;    // 1 key needed if desmode = 0, 3 keys if desmode == 1
  UWORD32 data_Loc;
  UWORD32 data_Dest;
  UWORD16 data_Size;
};

/**********************************************************/
/*    prototypes here ....                                */
/**********************************************************/


// Secure part - 
void SecureEntry(void);
void entry(void);

//Des3Des part

int  DES_SetClock();
int  DES_SetCtrlReg(const BIT desMode, const BIT cbcMode, const BIT direction);
int  DES_SetMaskReg(const BIT directBusConf, const BIT dmaConf, const BIT clkConf); 
int  DES_LoadKey(struct Key_struct *aBunch);
int  DES_Load8Bytes(UWORD32 *Data);
int  DES_Read8Bytes(UWORD32 *Data);
int  DES_Start();
int  DES_Soft_Reset();
int  DES_PIO_Test(BIT desmode, 
		  BIT direction , 
		  UWORD32 data_Loc, 
		  UWORD32 data_Dest, 
		  UWORD16 data_Size, 
		  struct Key_struct *DesKeys);
void W32copy(UWORD32 dataSrc[], UWORD32 dataDest[], UWORD16 length );
int  DES_DoDmaFetchAndFeed(UWORD32 aSource, UWORD32 aDest, UWORD16 aSize);
int  DES_DMA_Test(BIT desMode, 
		  BIT direction, 
		  UWORD32 data_Loc, 
		  UWORD32 data_Dest, 
		  UWORD16 data_Size, 
		  struct Key_struct *DesKeys);
int hw_des3des_start(struct Des_Struct* myStruct);






#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?