The address space of the PKA module is divided into two parts:
- The first part is used for the PKA configuration and operation registers. It
starts at offset 0x0000 from the beginning of the PKA address range (base memory
address), which is shown in PKA_MEMORY_MAP.
- The second part is reserved for the Program RAM/PKA RAM memory.
- The PKA RAM and the Program RAM share the same address location, which starts
at offset 0x4000 from the PKA base memory address. Depending on the
PKA_SEQ_CTRL[31] RESET register bit setting, either the PKA RAM or the
Program RAM is accessible.
- The PKA RAM memory is used to store the large numbers that are used and generated by the PKA Engine. If the Sequencer program is stored in RAM, this PKA RAM starts in the address space at the same location of the PKA Program RAM. The total size of the PKA RAM memory space is 8K Byte. The PKA RAM is accessible when the RESET register bit = 0. The PKA RAM that is integrated in the PKA module is 4K bytes in total (offset 0x4000 – 0x4FFC). The remaining 4K bytes of this memory space is reserved as PKA RAM extension (offset 0x5000 – 0x5FFC).
- The Program RAM is mapped to the PKA RAM space and is accessible for loading the Sequencer program when the Sequencer is held under reset, which is achieved by setting the RESET register bit to 1.
The complete set of control registers provides access to the PKA control/status registers, PKCP, LNME, GF2m modules and the HW revision/configuration registers.
For all Sequencer based PKA operations, the GF2m Engine registers should not be accessed. Access to these registers is only for debugging purposes or when the GF2m Engine is directly controlled from the Host, without using any firmware (not recommended).