]> oss.titaniummirror.com Git - msp430-libc.git/blobdiff - include/msp430/aes.h
Imported msp430-libc-20100207
[msp430-libc.git] / include / msp430 / aes.h
diff --git a/include/msp430/aes.h b/include/msp430/aes.h
new file mode 100644 (file)
index 0000000..fdf60cc
--- /dev/null
@@ -0,0 +1,120 @@
+#ifndef __MSP430_HEADERS_AES_H
+#define __MSP430_HEADERS_AES_H
+
+/* aes.h
+*
+* mspgcc project: MSP430 device headers
+* Advanced Enscription Standard module
+* Based on cc430x613x.h version 1.5 by Texas Instruments
+*
+* Peter A. Bigot <pab@peoplepowerco.com>
+*/
+
+/* Switches:
+
+__MSP430_AES_BASE__ - base address of the port mapping control module, present if defined
+
+*/
+
+#if defined(__MSP430_AES_BASE__)
+
+/************************************************************
+* AES Accelerator
+************************************************************/
+#define __MSP430_HAS_AES__                    /* Definition to show that Module is available */
+
+#define AESACTL0_                __MSP430_AES_BASE__ + 0x00  /* AES accelerator control register 0 */
+sfrw(AESACTL0, AESACTL0_);
+#define AESACTL0_L_              __MSP430_AES_BASE__ + 0x00  
+sfrb(AESACTL0_L, AESACTL0_L_);
+#define AESACTL0_H_              __MSP430_AES_BASE__ + 0x01  
+sfrb(AESACTL0_H, AESACTL0_H_);
+#define AESASTAT_                __MSP430_AES_BASE__ + 0x04  /* AES accelerator status register */
+sfrw(AESASTAT, AESASTAT_);
+#define AESASTAT_L_              __MSP430_AES_BASE__ + 0x04  
+sfrb(AESASTAT_L, AESASTAT_L_);
+#define AESASTAT_H_              __MSP430_AES_BASE__ + 0x05  
+sfrb(AESASTAT_H, AESASTAT_H_);
+#define AESAKEY_                 __MSP430_AES_BASE__ + 0x06  /* AES accelerator key register */
+sfrw(AESAKEY, AESAKEY_);
+#define AESAKEY_L_               __MSP430_AES_BASE__ + 0x06  
+sfrb(AESAKEY_L, AESAKEY_L_);
+#define AESAKEY_H_               __MSP430_AES_BASE__ + 0x07  
+sfrb(AESAKEY_H, AESAKEY_H_);
+#define AESADIN_                 __MSP430_AES_BASE__ + 0x08  /* AES accelerator data in register */
+sfrw(AESADIN, AESADIN_);
+#define AESADIN_L_               __MSP430_AES_BASE__ + 0x08  
+sfrb(AESADIN_L, AESADIN_L_);
+#define AESADIN_H_               __MSP430_AES_BASE__ + 0x09  
+sfrb(AESADIN_H, AESADIN_H_);
+#define AESADOUT_                __MSP430_AES_BASE__ + 0x0a  /* AES accelerator data out register  */
+sfrw(AESADOUT, AESADOUT_);
+#define AESADOUT_L_              __MSP430_AES_BASE__ + 0x0a  
+sfrb(AESADOUT_L, AESADOUT_L_);
+#define AESADOUT_H_              __MSP430_AES_BASE__ + 0x0b  
+sfrb(AESADOUT_H, AESADOUT_H_);
+
+/* AESACTL0 Control Bits */
+#define AESOP0                 (0x0001)       /* AES Operation Bit: 0 */
+#define AESOP1                 (0x0002)       /* AES Operation Bit: 1 */
+#define AESSWRST               (0x0080)       /* AES Software Reset */
+#define AESRDYIFG              (0x0100)       /* AES ready interrupt flag */
+#define AESERRFG               (0x0800)       /* AES Error Flag */
+#define AESRDYIE               (0x1000)       /* AES ready interrupt enable*/
+
+/* AESACTL0 Control Bits */
+#define AESOP0_L               (0x0001)       /* AES Operation Bit: 0 */
+#define AESOP1_L               (0x0002)       /* AES Operation Bit: 1 */
+#define AESSWRST_L             (0x0080)       /* AES Software Reset */
+
+/* AESACTL0 Control Bits */
+#define AESRDYIFG_H            (0x0001)       /* AES ready interrupt flag */
+#define AESERRFG_H             (0x0008)       /* AES Error Flag */
+#define AESRDYIE_H             (0x0010)       /* AES ready interrupt enable*/
+
+#define AESOP_0                (0x0000)       /* AES Operation: Encrypt */
+#define AESOP_1                (0x0001)       /* AES Operation: Decrypt (same Key) */
+#define AESOP_2                (0x0002)       /* AES Operation: Decrypt (frist round Key) */
+#define AESOP_3                (0x0003)       /* AES Operation: Generate first round Key */
+
+/* AESASTAT Control Bits */
+#define AESBUSY                (0x0001)       /* AES Busy */
+#define AESKEYWR               (0x0002)       /* AES All 16 bytes written to AESAKEY */
+#define AESDINWR               (0x0004)       /* AES All 16 bytes written to AESADIN */
+#define AESDOUTRD              (0x0008)       /* AES All 16 bytes read from AESADOUT */
+#define AESKEYCNT0             (0x0010)       /* AES Bytes written via AESAKEY Bit: 0 */
+#define AESKEYCNT1             (0x0020)       /* AES Bytes written via AESAKEY Bit: 1 */
+#define AESKEYCNT2             (0x0040)       /* AES Bytes written via AESAKEY Bit: 2 */
+#define AESKEYCNT3             (0x0080)       /* AES Bytes written via AESAKEY Bit: 3 */
+#define AESDINCNT0             (0x0100)       /* AES Bytes written via AESADIN Bit: 0 */
+#define AESDINCNT1             (0x0200)       /* AES Bytes written via AESADIN Bit: 1 */
+#define AESDINCNT2             (0x0400)       /* AES Bytes written via AESADIN Bit: 2 */
+#define AESDINCNT3             (0x0800)       /* AES Bytes written via AESADIN Bit: 3 */
+#define AESDOUTCNT0            (0x1000)       /* AES Bytes read via AESADOUT Bit: 0 */
+#define AESDOUTCNT1            (0x2000)       /* AES Bytes read via AESADOUT Bit: 1 */
+#define AESDOUTCNT2            (0x4000)       /* AES Bytes read via AESADOUT Bit: 2 */
+#define AESDOUTCNT3            (0x8000)       /* AES Bytes read via AESADOUT Bit: 3 */
+
+/* AESASTAT Control Bits */
+#define AESBUSY_L              (0x0001)       /* AES Busy */
+#define AESKEYWR_L             (0x0002)       /* AES All 16 bytes written to AESAKEY */
+#define AESDINWR_L             (0x0004)       /* AES All 16 bytes written to AESADIN */
+#define AESDOUTRD_L            (0x0008)       /* AES All 16 bytes read from AESADOUT */
+#define AESKEYCNT0_L           (0x0010)       /* AES Bytes written via AESAKEY Bit: 0 */
+#define AESKEYCNT1_L           (0x0020)       /* AES Bytes written via AESAKEY Bit: 1 */
+#define AESKEYCNT2_L           (0x0040)       /* AES Bytes written via AESAKEY Bit: 2 */
+#define AESKEYCNT3_L           (0x0080)       /* AES Bytes written via AESAKEY Bit: 3 */
+
+/* AESASTAT Control Bits */
+#define AESDINCNT0_H           (0x0001)       /* AES Bytes written via AESADIN Bit: 0 */
+#define AESDINCNT1_H           (0x0002)       /* AES Bytes written via AESADIN Bit: 1 */
+#define AESDINCNT2_H           (0x0004)       /* AES Bytes written via AESADIN Bit: 2 */
+#define AESDINCNT3_H           (0x0008)       /* AES Bytes written via AESADIN Bit: 3 */
+#define AESDOUTCNT0_H          (0x0010)       /* AES Bytes read via AESADOUT Bit: 0 */
+#define AESDOUTCNT1_H          (0x0020)       /* AES Bytes read via AESADOUT Bit: 1 */
+#define AESDOUTCNT2_H          (0x0040)       /* AES Bytes read via AESADOUT Bit: 2 */
+#define AESDOUTCNT3_H          (0x0080)       /* AES Bytes read via AESADOUT Bit: 3 */
+
+#endif /* __MSP430_AES_BASE__ */
+
+#endif /* __MSP430_HEADERS_AES_H */