
On Wed, 2018-01-24 at 19:41 +0000, Bryan O'Donoghue wrote:
On 24/01/18 17:41, Auer, Lukas wrote:
Thanks for adding me to the CC list. I have experienced the same thing regarding the dec0 registers. However, I don't understand why you want to detect secure mode in the kernel driver to skip RNG instantiation instead of instantiating all RNG state handles in the u-boot driver.
That's what we are doing though.
This set instantiates everything in u-boot and then detects and skips in the kernel if-and-only if
- Trust zone is detected
- It looks to the Linux CAAM driver as if u-boot has initialised the
h/w
For #2 I actually have to variants
- Which passes a DT parameter which indicates the kernel should
skip RNG init
- A module parameter which indicates the kernel should skip rng init
Could we discuss the kernel changes in the kernel thread ?
I believe we agree the u-boot side is right ?
Sorry, I haven't explained what I mean very well.
You are right in that sec_init() must be called to instantiate the RNG, however the CAAM u-boot driver only partially does so. If you look at function instantiate_rng() in both u-boot (drivers/crypto/fsl/jr.c) and the kernel (drivers/crypto/caam/ctrl.c), you'll see that the kernel loops over all available state handles whereas u-boot does not.
Fixing this in u-boot should mean that you can drop patch 5 and 6 from your kernel series since the kernel should then skip over all state handles.
I can send out a patch later today to fix this on the u-boot side.
Thanks, Lukas