Re: [Linux-stm32] [PATCH] ARM: dts: stm32: enable STM32MP1 crypto/CRC accelerators unconditionally

From: Ahmad Fatoum
Date: Mon Jan 25 2021 - 07:25:04 EST


Hello Lionel,

On 19.01.21 11:50, Lionel DEBIEVE wrote:
> Hi Ahmad,
>
> These IPs could be enabled in the secure side. To avoid any concurrency access, I prefer to keep all that crypto IPs status disable.
> For examples, RNG can be managed in OP-TEE, so it will remain disable in Linux.
You could extend that reasoning (OP-TEE might use them) to all peripherals.
As the device tree is supposed to describe the hardware., I'd assume whether
something is enabled in Linux or OP-TEE should be project-specific configuration
(or fixed up by boot firmware).

But I don't feel too strongly about it. Please dismiss and thanks for the clarification.

Cheers,
Ahmad


> BR,
>
> Lionel
>
> On 1/19/21 10:52 AM, Ahmad Fatoum wrote:
>> There is no SoC-external hardware support needed for the hash1, rng1,
>> crc1 and cryp1 IP blocks to function. Enable them thus unconditionally
>> instead of replicating their enablement in board device trees.
>>
>> Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx>
>> ---
>>   arch/arm/boot/dts/stm32mp151.dtsi              |  3 ---
>>   arch/arm/boot/dts/stm32mp157a-stinger96.dtsi   |  4 ----
>>   arch/arm/boot/dts/stm32mp157c-dk2.dts          |  4 ----
>>   arch/arm/boot/dts/stm32mp157c-ed1.dts          | 16 ----------------
>>   arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi |  4 ----
>>   arch/arm/boot/dts/stm32mp15xc.dtsi             |  1 -
>>   arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi   |  8 --------
>>   arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi   |  4 ----
>>   arch/arm/boot/dts/stm32mp15xx-dkx.dtsi         | 12 ------------
>>   arch/arm/boot/dts/stm32mp15xx-osd32.dtsi       |  4 ----
>>   10 files changed, 60 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/stm32mp151.dtsi b/arch/arm/boot/dts/stm32mp151.dtsi
>> index 3c75abacb374..c2d998343b6a 100644
>> --- a/arch/arm/boot/dts/stm32mp151.dtsi
>> +++ b/arch/arm/boot/dts/stm32mp151.dtsi
>> @@ -1297,7 +1297,6 @@ hash1: hash@54002000 {
>>               dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
>>               dma-names = "in";
>>               dma-maxburst = <2>;
>> -            status = "disabled";
>>           };
>>             rng1: rng@54003000 {
>> @@ -1305,7 +1304,6 @@ rng1: rng@54003000 {
>>               reg = <0x54003000 0x400>;
>>               clocks = <&rcc RNG1_K>;
>>               resets = <&rcc RNG1_R>;
>> -            status = "disabled";
>>           };
>>             mdma1: dma-controller@58000000 {
>> @@ -1402,7 +1400,6 @@ crc1: crc@58009000 {
>>               compatible = "st,stm32f7-crc";
>>               reg = <0x58009000 0x400>;
>>               clocks = <&rcc CRC1>;
>> -            status = "disabled";
>>           };
>>             stmmac_axi_config_0: stmmac-axi-config {
>> diff --git a/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi b/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi
>> index 58275bcf9e26..268a99291d79 100644
>> --- a/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi
>> +++ b/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi
>> @@ -253,10 +253,6 @@ &pwr_regulators {
>>       vdd_3v3_usbfs-supply = <&vdd_usb>;
>>   };
>>   -&rng1 {
>> -    status = "okay";
>> -};
>> -
>>   &rtc {
>>       status = "okay";
>>   };
>> diff --git a/arch/arm/boot/dts/stm32mp157c-dk2.dts b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>> index 2bc92ef3aeb9..045636555ddd 100644
>> --- a/arch/arm/boot/dts/stm32mp157c-dk2.dts
>> +++ b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>> @@ -29,10 +29,6 @@ chosen {
>>       };
>>   };
>>   -&cryp1 {
>> -    status = "okay";
>> -};
>> -
>>   &dsi {
>>       status = "okay";
>>       phy-dsi-supply = <&reg18>;
>> diff --git a/arch/arm/boot/dts/stm32mp157c-ed1.dts b/arch/arm/boot/dts/stm32mp157c-ed1.dts
>> index 81a7d5849db4..f69622097e89 100644
>> --- a/arch/arm/boot/dts/stm32mp157c-ed1.dts
>> +++ b/arch/arm/boot/dts/stm32mp157c-ed1.dts
>> @@ -115,14 +115,6 @@ adc1: adc@0 {
>>       };
>>   };
>>   -&crc1 {
>> -    status = "okay";
>> -};
>> -
>> -&cryp1 {
>> -    status = "okay";
>> -};
>> -
>>   &dac {
>>       pinctrl-names = "default";
>>       pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
>> @@ -144,10 +136,6 @@ &gpu {
>>       contiguous-area = <&gpu_reserved>;
>>   };
>>   -&hash1 {
>> -    status = "okay";
>> -};
>> -
>>   &i2c4 {
>>       pinctrl-names = "default", "sleep";
>>       pinctrl-0 = <&i2c4_pins_a>;
>> @@ -325,10 +313,6 @@ &pwr_regulators {
>>       vdd_3v3_usbfs-supply = <&vdd_usb>;
>>   };
>>   -&rng1 {
>> -    status = "okay";
>> -};
>> -
>>   &rtc {
>>       status = "okay";
>>   };
>> diff --git a/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi b/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi
>> index 6cf49a0a9e69..a2aca1982bf6 100644
>> --- a/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi
>> +++ b/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi
>> @@ -250,10 +250,6 @@ &m4_rproc {
>>       status = "okay";
>>   };
>>   -&rng1 {
>> -    status = "okay";
>> -};
>> -
>>   &rtc {
>>       status = "okay";
>>   };
>> diff --git a/arch/arm/boot/dts/stm32mp15xc.dtsi b/arch/arm/boot/dts/stm32mp15xc.dtsi
>> index b06a55a2fa18..86953d7ddde0 100644
>> --- a/arch/arm/boot/dts/stm32mp15xc.dtsi
>> +++ b/arch/arm/boot/dts/stm32mp15xc.dtsi
>> @@ -12,7 +12,6 @@ cryp1: cryp@54001000 {
>>               interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
>>               clocks = <&rcc CRYP1>;
>>               resets = <&rcc CRYP1_R>;
>> -            status = "disabled";
>>           };
>>       };
>>   };
>> diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi b/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
>> index ac46ab363e1b..603c14054509 100644
>> --- a/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
>> +++ b/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
>> @@ -377,14 +377,6 @@ flash0: mx66l51235l@0 {
>>       };
>>   };
>>   -&rng1 {
>> -    status = "okay";
>> -};
>> -
>> -&rtc {
>> -    status = "okay";
>> -};
>> -
>>   &sdmmc1 {
>>       pinctrl-names = "default", "opendrain", "sleep";
>>       pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
>> diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi b/arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi
>> index 803eb8bc9c85..3f4af430aaf4 100644
>> --- a/arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi
>> +++ b/arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi
>> @@ -204,10 +204,6 @@ flash0: spi-flash@0 {
>>       };
>>   };
>>   -&rng1 {
>> -    status = "okay";
>> -};
>> -
>>   &rtc {
>>       status = "okay";
>>   };
>> diff --git a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
>> index 89c0e1ddc387..0cca6c3ff4a0 100644
>> --- a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
>> +++ b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
>> @@ -124,10 +124,6 @@ &cec {
>>       status = "okay";
>>   };
>>   -&crc1 {
>> -    status = "okay";
>> -};
>> -
>>   &dts {
>>       status = "okay";
>>   };
>> @@ -155,10 +151,6 @@ &gpu {
>>       contiguous-area = <&gpu_reserved>;
>>   };
>>   -&hash1 {
>> -    status = "okay";
>> -};
>> -
>>   &i2c1 {
>>       pinctrl-names = "default", "sleep";
>>       pinctrl-0 = <&i2c1_pins_a>;
>> @@ -482,10 +474,6 @@ &pwr_regulators {
>>       vdd_3v3_usbfs-supply = <&vdd_usb>;
>>   };
>>   -&rng1 {
>> -    status = "okay";
>> -};
>> -
>>   &rtc {
>>       status = "okay";
>>   };
>> diff --git a/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi b/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi
>> index 713485a95795..d03d4d12133c 100644
>> --- a/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi
>> +++ b/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi
>> @@ -224,7 +224,3 @@ &m4_rproc {
>>       interrupts = <68 1>;
>>       status = "okay";
>>   };
>> -
>> -&rng1 {
>> -    status = "okay";
>> -};
>

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |