SPRUIM2H May 2020 – October 2023 AM2431 , AM2432 , AM2434 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442
The CTRL_MMR0 memory space is divided into several partitions. There are Kick and Proxy registers associated with each partition. This section describes the Kick registers. For information about the Proxy registers see Section 5.1.1.3.1.3
The CTRL_MMR0 module has a protection mechanism which prevents spurious writes from changing the values of its registers. The LOCKi_KICK0 and LOCKi_KICK1 registers are used for this purpose. A write is required first to the LOCKi_KICK0[31-1] KEY field and then to the LOCKi_KICK1[31-0] KEY field with exact data values to unlock the protection mechanism. Once released then all registers within Partition "i" having write permissions can be written to. The read only registers are still read only. An indication for unlocked Partition "i" is when the LOCKi_KICK0[0] UNLOCKED bit is set to 1h. When the protection mechanism is locked (indicated by LOCKi_KICK0[0] UNLOCKED = 0h) none of the registers within Partition "i" can be written to. They can only be read.
Table 5-5 shows the values that must be written to the LOCKi_KICK0 and LOCKi_KICK1 registers to unlock each partition. Writing any other data value to either of these registers locks the protection mechanism and blocks any writes to the registers that reside in Partition "i".
The PADCFG_CTRL0_CFG0 module also has kick protection registers.
Register | Partition | Unlock Value | Proxy0 Offset Range | Proxy1 Offset Range |
---|---|---|---|---|
CTRLMMR_LOCK0_KICK0 | Partition 0 | 68EF 3490h | 0000h to 1FFFh | 2000h to 3FFFh |
CTRLMMR_LOCK0_KICK1 | Partition 0 | D172 BC5Ah | ||
CTRLMMR_LOCK1_KICK0 | Partition 1 | 68EF 3490h | 4000h to 5FFFh | 6000h to 7FFFh |
CTRLMMR_LOCK1_KICK1 | Partition 1 | D172 BC5Ah | ||
CTRLMMR_LOCK2_KICK0 | Partition 2 | 68EF 3490h | 8000h to 9FFFh | A000h to BFFFh |
CTRLMMR_LOCK2_KICK1 | Partition 2 | D172 BC5Ah | ||
CTRLMMR_LOCK3_KICK0 | Partition 3 | 68EF 3490h | C000h to DFFFh | E000h to FFFFh |
CTRLMMR_LOCK3_KICK1 | Partition 3 | D172 BC5Ah | ||
CTRLMMR_LOCK5_KICK0 | Partition 5 | 68EF 3490h | 1 4000h to 1 5FFFh | 1 6000h to 1 7FFFh |
CTRLMMR_LOCK5_KICK1 | Partition 5 | D172 BC5Ah | ||
CTRLMMR_LOCK6_KICK0 | Partition 6 | 68EF 3490h | 1 8000h to 1 9FFFh | 1 A000h to 1 BFFFh |
CTRLMMR_LOCK6_KICK1 | Partition 6 | D172 BC5Ah | ||
PADMMR_LOCK0_KICK0 | Partition 0 | 68EF 3490h | 0000h to 1FFFh | 2000h to 3FFFh |
PADMMR_LOCK0_KICK1 | Partition 0 | D172 BC5Ah | ||
PADMMR_LOCK1_KICK0 | Partition 1 | 68EF 3490h | 4000h to 5FFFh | 6000h to 7FFFh |
PADMMR_LOCK1_KICK1 | Partition 1 | D172 BC5Ah |
In order to ensure that all registers from all partitions are write protected, software must always re-lock the protection mechanism after completing the register writes.
The kick protection registers described in this section are an exception and are not write protected by the protection mechanism.