AS_Cryptographic co-processor (C3)
RM0082
362/844
Doc ID 018672 Rev 1
21.5 Processing
overview
This section outlines the main steps involved in setting up C3 for processing.
●
The host processor creates a program and stores it in memory.
●
The program contains C3 instructions and their arguments (usually pointers to data
buffers in system memory).
●
The host processor writes the base address of the program in the Instruction Pointer
Register of one of the Instruction Dispatcher (ID).
●
Instruction Dispatchers (IDs) work independently from each other and each ID can
handle a C3 instruction flow.
●
From the system/software standpoint, each logical device (associated to an Instruction
Dispatcher) can be managed by an independent software task, which is to say that a
C3 with 4 dispatchers is equivalent to 4 logical co-processors.
●
The selected Instruction Dispatcher starts fetching the program from system memory
and fills its instruction queue. It then process the instruction flow sequentially, one
instruction at a time.
●
The ID either executes the instruction itself (in case of Flow Type instruction) or it
dispatches the instruction to the specified channel (in case of application specific
instruction).
●
The channel executes the instruction
●
The channel generally performs DMA access request for reading input data and
parameters from system memory, but it may be set-up to receive data from another
channel.
●
The channel Core block (CB) performs the actual data processing, which is specific to
the implemented algorithm.
●
The channel generally then performs DMA access request for writing the output data to
system memory, but it may be set-up to send data to another channel too.
●
When the ID hits the end of program it signals completion by rising an interrupt
●
Interrupt generation may be disabled, in which case polling by the host processor of the
C3 status register can be used to determine the end of processing.
21.6 Programming
model
21.6.1 Register
map
Most components of C3 have registers mapped in AHB address space starting at the base
address 0xD900_0000. Registers are accessed using the C3 AHB Slave Interface (SIF). An
address space of 1 KB is allocated for each of these components. The total AHB address
window of C3 is 32 KB permitting the mapping of up to 32 components. All registers are 32
bit wide and access to them must be done using aligned 32 bit words read and writes. The
current mapping is listed in the
Table 311.
C3 components system register summary
Symbol
Name
Offset
Reset Value
C3_SYS
System Registers
0x0000
32’h400
C3_HIF
Master Interfaced Registers
0x0400
32’h400