Re: [PATCH] crypto: caam: disable pkc for non-E SoCs

From: Michael Walle
Date: Wed Sep 22 2021 - 13:55:33 EST


Am 22. September 2021 17:51:23 MESZ schrieb "Horia Geantă" <horia.geanta@xxxxxxx>:
>On 9/16/2021 1:03 AM, Michael Walle wrote:
>> On newer CAAM versions, not all accelerators are disabled if the SoC is
>> a non-E variant. While the driver checks most of the modules for
>> availability, there is one - PKHA - which sticks out. On non-E variants
>Currently there's no dedicated support for "partially disabled" non-E
>(export-controlled) parts in Linux kernel caam driver(s).
>
>Up until recently firmware (U-boot) was deleting the "crypto" DT node
>for all non-E parts [1].
>Modifying the f/w indeed triggers changes across the s/w stack.

Well, it does check if a module is available or not. And this seem to be the only module which have "something in between". I.e. the number of available modules is not zero but it also doesn't work as expected.

>Since you are modifying only the caam code handling PKHA, is it correct
>to assume that everything else is working fine?

Everything else is skipped because the "number of instances" is zero.

>For example: is the number of AES accelerators (AESA_VERSION[AESA_NUM])
>being reported as 0 on non-E parts?

yes, see above.

>> it is still reported as available, that is the number of instances is
>> non-zero, but it has limited functionality. In particular it doesn't
>> support encryption and decryption, but just signing and verifying. This
>> is indicated by a bit in the PKHA_MISC field. Take this bit into account
>> if we are checking for availablitly.
>typo: ^ availability

If there is nothing else wrong, could this be fixed while applying?

>>
>> This will the following error:
>> [ 8.167817] caam_jr 8020000.jr: 20000b0f: CCB: desc idx 11: : Invalid CHA selected.
>>
>> Tested on an NXP LS1028A (non-E) SoC.
>Thanks.
>Unfortunately I don't have a non-E part to test on.

You can take a look at the ls1028a RM where this bit is. described to verify what the patch is doing ;)

Thanks for taking a look.

-michael

>
>Horia
>
>[1] https://lore.kernel.org/u-boot/ff146322-e8c7-2418-ceb1-a3c0d4cee1a1@xxxxxxx
>4eecc6f1a104 ("armv8: layerscape: don't remove crypto node if just partially disabled")