[PATCH v2 07/23] rockchip: rk35xx: Enable random generator

Dragan Simic dsimic at manjaro.org
Mon Apr 15 10:21:14 CEST 2024


On 2024-04-15 10:03, Jonas Karlman wrote:
> On 2024-04-15 08:37, Dragan Simic wrote:
>> Please see a couple of comments below.
>> 
>> On 2024-04-13 20:13, Jonas Karlman wrote:
>>> The RK35xx SoCs contain a crypto engine block that can generate 
>>> random
>>> numbers.
>>> 
>>> Enable rng node in soc u-boot.dtsi and enable Kconfig options to take
>>> advantage of the random generator.
>>> 
>>> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
>>> ---
>>> v2: No change
>>> ---
>>>  arch/arm/dts/rk3566-anbernic-rgxx3-u-boot.dtsi | 6 ------
>>>  arch/arm/dts/rk356x-u-boot.dtsi                | 5 +++++
>>>  arch/arm/dts/rk3588s-u-boot.dtsi               | 1 -
>>>  arch/arm/mach-rockchip/Kconfig                 | 4 ++++
>>>  configs/anbernic-rgxx3-rk3566_defconfig        | 2 --
>>>  5 files changed, 9 insertions(+), 9 deletions(-)
>>> 
>>> diff --git a/arch/arm/dts/rk3566-anbernic-rgxx3-u-boot.dtsi
>>> b/arch/arm/dts/rk3566-anbernic-rgxx3-u-boot.dtsi
>>> index 791f16b206f2..793ed4ae8ae0 100644
>>> --- a/arch/arm/dts/rk3566-anbernic-rgxx3-u-boot.dtsi
>>> +++ b/arch/arm/dts/rk3566-anbernic-rgxx3-u-boot.dtsi
>>> @@ -6,12 +6,6 @@
>>>  	chosen {
>>>  		u-boot,spl-boot-order = "same-as-spl", &sdmmc1, &sdmmc0;
>>>  	};
>>> -
>>> -	rng: rng at fe388000 {
>>> -		compatible = "rockchip,cryptov2-rng";
>>> -		reg = <0x0 0xfe388000 0x0 0x2000>;
>>> -		status = "okay";
>>> -	};
>>>  };
>>> 
>>>  &dsi_dphy0 {
>>> diff --git a/arch/arm/dts/rk356x-u-boot.dtsi
>>> b/arch/arm/dts/rk356x-u-boot.dtsi
>>> index d347080577d9..05367216e118 100644
>>> --- a/arch/arm/dts/rk356x-u-boot.dtsi
>>> +++ b/arch/arm/dts/rk356x-u-boot.dtsi
>>> @@ -21,6 +21,11 @@
>>>  		bootph-all;
>>>  	};
>>> 
>>> +	rng: rng at fe388000 {
>>> +		compatible = "rockchip,cryptov2-rng";
>>> +		reg = <0x0 0xfe388000 0x0 0x2000>;
>> 
>> Shouldn't
>> 
>>   +		status = "okay";
>> 
>> also be specified here?
> 
> It is not needed as "okay" is the implied status when status prop is
> undefined, and my understanding is that DT maintainers prefer not to
> include status = "okay" where the initial node is defined.
> 
> More correctly if status prop is defined it must explicitly have "okay"
> anything else result in a disabled node, removing the status prop
> entirely has the same effect as status = "okay" in a board file.

I see, thanks for the clarification.  In that case, there seem to be
a few redundant instances of 'status = "okay";' in various U-Boot dtsi
files, which should probably be deleted.

>>> +	};
>>> +
>>>  	otp: nvmem at fe38c000 {
>>>  		compatible = "rockchip,rk3568-otp";
>>>  		reg = <0x0 0xfe38c000 0x0 0x4000>;
>>> diff --git a/arch/arm/dts/rk3588s-u-boot.dtsi
>>> b/arch/arm/dts/rk3588s-u-boot.dtsi
>>> index ac67c777adea..233eb79d9ba2 100644
>>> --- a/arch/arm/dts/rk3588s-u-boot.dtsi
>>> +++ b/arch/arm/dts/rk3588s-u-boot.dtsi
>>> @@ -91,7 +91,6 @@
>>>  	rng: rng at fe378000 {
>>>  		compatible = "rockchip,trngv1";
>>>  		reg = <0x0 0xfe378000 0x0 0x200>;
>>> -		status = "disabled";
>> 
>> Shouldn't it be enabled instead?
> 
> Same as above, not defining any status prop result in node being 
> enabled.
> 
> Board u-boot.dtsi-files could disable the node with status = "disabled"
> if they absolutely do not want to have the rng node in U-Boot.

Thanks once again for the clarification.  Please include this tag:

Reviewed-by: Dragan Simic <dsimic at manjaro.org>

>> 
>>>  	};
>>> 
>>>  	usbdp_phy0: phy at fed80000 {
>>> diff --git a/arch/arm/mach-rockchip/Kconfig
>>> b/arch/arm/mach-rockchip/Kconfig
>>> index 649c22618f36..247b9a3146c2 100644
>>> --- a/arch/arm/mach-rockchip/Kconfig
>>> +++ b/arch/arm/mach-rockchip/Kconfig
>>> @@ -305,9 +305,11 @@ config ROCKCHIP_RK3568
>>>  	select BOARD_LATE_INIT
>>>  	select DM_REGULATOR_FIXED
>>>  	select DM_RESET
>>> +	imply DM_RNG
>>>  	imply MISC_INIT_R
>>>  	imply MMC_HS200_SUPPORT if MMC_SDHCI_ROCKCHIP
>>>  	imply OF_LIBFDT_OVERLAY
>>> +	imply RNG_ROCKCHIP
>>>  	imply ROCKCHIP_COMMON_BOARD
>>>  	imply ROCKCHIP_OTP
>>>  	imply SPL_ATF_NO_PLATFORM_PARAM if SPL_ATF
>>> @@ -334,9 +336,11 @@ config ROCKCHIP_RK3588
>>>  	select DM_RESET
>>>  	imply BOOTSTD_FULL
>>>  	imply CLK_SCMI
>>> +	imply DM_RNG
>>>  	imply MISC_INIT_R
>>>  	imply MMC_HS200_SUPPORT if MMC_SDHCI_ROCKCHIP
>>>  	imply OF_LIBFDT_OVERLAY
>>> +	imply RNG_ROCKCHIP
>>>  	imply ROCKCHIP_COMMON_BOARD
>>>  	imply ROCKCHIP_OTP
>>>  	imply SCMI_FIRMWARE
>>> diff --git a/configs/anbernic-rgxx3-rk3566_defconfig
>>> b/configs/anbernic-rgxx3-rk3566_defconfig
>>> index 24b050c59b53..110237e798f9 100644
>>> --- a/configs/anbernic-rgxx3-rk3566_defconfig
>>> +++ b/configs/anbernic-rgxx3-rk3566_defconfig
>>> @@ -68,8 +68,6 @@ CONFIG_REGULATOR_RK8XX=y
>>>  CONFIG_PWM_ROCKCHIP=y
>>>  CONFIG_SPL_RAM=y
>>>  # CONFIG_RAM_ROCKCHIP_DEBUG is not set
>>> -CONFIG_DM_RNG=y
>>> -CONFIG_RNG_ROCKCHIP=y
>>>  # CONFIG_RNG_SMCCC_TRNG is not set
>>>  CONFIG_BAUDRATE=1500000
>>>  CONFIG_DEBUG_UART_SHIFT=2


More information about the U-Boot mailing list