AnsweredAssumed Answered

Reading writing CAAM MCFGR, DECORR from Linux when TrustZone is enabled

Question asked by Bryan O'Donoghue on Dec 20, 2017
Latest reply on Jan 11, 2018 by Bryan O'Donoghue
Branched to a new discussion



On an i.MX7Solo I find that when TrustZone is enabled MCFGR, DECORR return zeros instead of valid data when read/written from the upstream Linux CAAM driver.


The problem is described here : Kernel panic with CAAM on IMX6UL EVK? · Issue #1408 · OP-TEE/optee_os · GitHub  and you can see I've added my own input.


The only description of this behaviour I can find similar in "Security Reference Manual for i.MX 7Dual and 7Solo Applications Processors, Rev. 0, 03/2017" is at 9.9 SNVS Register Descriptions which states


"Privileged read/write accessible registers can only be accessed for read/write by
privileged software. Unauthorized write accesses are ignored, and unauthorized read
accesses return zero"


I can confirm however that the SNVS Command Register has the "Non-Privileged Software Access Enable" bit set to 1.


HPCOMPR = 0x80002100


It is possible to read valid data from the alias registers later on in the memory map. For example CAAM Status (CSTA) @ 0xFD4 returns valid and expected data.


Could NXP provide some guidance on how and why the MCFGR and DECORR registers are returning zero to Linux when TrustZone is enabled and how to correctly map those registers into a non-TrustZone context ?