SPRUJ17H March 2022 – October 2024 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1
The PKA main interrupt output is inactive (low level) during module reset, going active (high level) within ten module clock cycles after starting up the Sequencer program (interrupt needs to be enabled via PKA_IRQENABLE[0] PKAIRQEN register bit). The Sequencer firmware must first be loaded. After that the Sequencer is taken out of reset (by writing a 0b to PKA_SEQ_CTRL[31] RESET register bit) to start the Sequencer program.
A normal operation sequence starts by writing input vectors in PKA RAM and vector pointers and length values to PKA module control registers (in principle, this can be done in any order). The actual operation is started with a write to the PKA_FUNCTION register, which results in dropping the main interrupt output inactive within four clock cycles after setting the [15] RUN register bit. When the PKA module has finished execution the requested operation, the main interrupt is activated again and result status can be read from status registers (if needed), while the result vector(s) can be read from PKA RAM.
The Host should not attempt to read or write the PKA RAM or GF2m Engine registers while an LNME operation is busy.
Make sure that the LNME has finished processing before attempting a Host access to the GF2m Engine, to avoid Host access blocking. See the PKA_STATUS[31] HOST_ACC_BLOCKED register bit description for more information.
Although the internal PKA engines such as the LNME, PKCP and GF2m Engine can be accessed and controlled directly by using the Host interface, it is advised to control the PKA engine via Sequencer controlled operations. Sequencer controlled operations use the PKCP registers for command submitting, in combination with the PKA RAM for vector storage. The Sequencer controlled operations are described in Section 7.3.4.4.1.7, PKA Sequencer Controlled Operations.