MCIMX286CVM4B Freescale Semiconductor, MCIMX286CVM4B Datasheet - Page 1023

no-image

MCIMX286CVM4B

Manufacturer Part Number
MCIMX286CVM4B
Description
IC MPU I.MX286 289MAPBGA
Manufacturer
Freescale Semiconductor
Series
i.MX28r

Specifications of MCIMX286CVM4B

Core Processor
ARM9
Core Size
32-Bit
Speed
454MHz
Connectivity
CAN, EBI/EMI, Ethernet, I²C, MMC, SmartCard, SPI, SSI, UART/USART, USB OTG
Peripherals
DMA, I²S, LCD, POR, PWM, WDT
Program Memory Size
128KB (32K x 32)
Program Memory Type
Mask ROM
Ram Size
32K x 32
Voltage - Supply (vcc/vdd)
1.25 V ~ 5.25 V
Data Converters
A/D 17x12b
Oscillator Type
External
Operating Temperature
-40°C ~ 85°C
Package / Case
289-LFBGA
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
Number Of I /o
-
Eeprom Size
-
Lead Free Status / Rohs Status
Compliant
Freescale Semiconductor, Inc.
payload2[1]=0x44556677;
payload2[2]=0x8899aabb;
payload2[3]=0xccddeeff;
payload2[3]=0xaabbccdd;
// set up control packet
dcp1.next = dcp2;
dcp1.ctrl0.U = 0;
dcp1.ctrl0.B.CIPHER_ENCRYPT = 1; // encryption operation
dcp1.ctrl0.B.CIPHER_INIT = 1;
dcp1.ctrl0.B.HASH_INIT = 1;
dcp1.ctrl0.B.ENABLE_CIPHER = 1;
dcp1.ctrl0.B.ENABLE_HASH = 1;
dcp1.ctrl0.B.DECR_SEMAPHORE = 1; // decrement semaphore
dcp1.ctrl0.B.CHAIN = 1;
dcp1.ctrl1.U = 0;
dcp1.ctrl1.B.CIPHER_MODE = BV_DCP_PACKET2_CIPHER_MODE_CBC; //select CBC mode of operation
dcp1.ctrl1.B.HASH_SELECT = BV_DCP_PACKET2_HASH_SELECT_SHA1;
dcp1.ctrl1.B.KEY_SELECT
dcp1.src = srcbuffer0;
dcp1.dst = dstbuffer;
dcp1.buf_size = 512;
dcp1.payload = payload0;
dcp1.status = 0;
// set up control packet
dcp2.next = dcp3;
dcp2.ctrl0.U = 0;
dcp2.ctrl0.B.CIPHER_ENCRYPT = 1; // encryption operation
dcp2.ctrl0.B.ENABLE_CIPHER = 1;
dcp2.ctrl0.B.ENABLE_HASH = 1;
dcp2.ctrl0.B.DECR_SEMAPHORE = 1; // decrement semaphore
dcp2.ctrl0.B.CHAIN = 1;
dcp2.ctrl1.U = 0;
dcp2.ctrl1.B.CIPHER_MODE = BV_DCP_PACKET2_CIPHER_MODE_CBC; //select CBC mode of operation
dcp2.ctrl1.B.HASH_SELECT = BV_DCP_PACKET2_HASH_SELECT_SHA1;
dcp2.ctrl1.B.KEY_SELECT
dcp2.src = srcbuffer1;
dcp2.dst = dstbuffer+512;
dcp2.buf_size = 512;
dcp2.payload = NULL;
dcp2.status = 0;
// set up control packet
dcp3.next = dcp3;
dcp3.ctrl0.U = 0;
dcp3.ctrl0.B.HASH_TERM
dcp3.ctrl0.B.HASH_CHECK
dcp3.ctrl0.B.CIPHER_ENCRYPT = 1; // encryption operation
dcp3.ctrl0.B.ENABLE_CIPHER = 1;
dcp3.ctrl0.B.ENABLE_HASH = 1;
dcp3.ctrl0.B.DECR_SEMAPHORE = 1; // decrement semaphore
dcp3.ctrl0.B.INTERRUPT = 1;
dcp3.ctrl1.U = 0;
dcp3.ctrl1.B.CIPHER_MODE = BV_DCP_PACKET2_CIPHER_MODE_CBC; //select CBC mode of operation
dcp3.ctrl1.B.HASH_SELECT = BV_DCP_PACKET2_HASH_SELECT_SHA1;
dcp3.ctrl1.B.KEY_SELECT
dcp3.src = srcbuffer1;
dcp3.dst = dstbuffer+1024;
dcp3.buf_size = 512;
dcp3.payload = payload2;
dcp3.status = 0;
// Enable channel 0
HW_DCP_CHnCMDPTR_WR(0, dcp1);
HW_DCP_CHnSEMA_WR(0, 3);
// now wait for interrupt or poll
i.MX28 Applications Processor Reference Manual, Rev. 1, 2010
= 2;
= 2;
= 2;
= 1; // terminate hash block
= 1; // check hash against payload value
// point to packet 2
// clear ctrl0 field
// init CBC for this block (from payload)
// init hash this block
// enable cipher
// enable cipher
// chain to next packet
// clear ctrl1
// select key #2
// destination buffer
// 512 bytes
// clear status
// point to packet 2
// clear ctrl0 field
// enable cipher
// enable cipher
// chain to next packet
// clear ctrl1
// select key #2
// source buffer
// destination buffer
// 512 bytes
// no payload required
// clear status
// point to packet 2
// clear ctrl0 field
// enable cipher
// enable cipher
// interrupt on completion
// clear ctrl1
// select key #2
// source buffer
// destination buffer
// 512 bytes
// payload is hash check value
// clear status
// write packet address to pointer register
// increment semaphore by 3 (for 3 packets)
// source buffer
// holds key/CBC init
Chapter 13 Data Co-Processor (DCP)
// select SHA1 hash
// select SHA1 hash
// select SHA1 hash
1023

Related parts for MCIMX286CVM4B