[PATCH v2 05/14] rockchip: rk3308: Enable random generator
Quentin Schulz
quentin.schulz at theobroma-systems.com
Wed Apr 10 10:43:55 CEST 2024
Hi Jonas,
On 4/9/24 18:21, Jonas Karlman wrote:
> Hi Quentin,
>
> On 2024-04-09 17:45, Quentin Schulz wrote:
>> Hi Jonas,
>>
>> On 4/8/24 20:14, Jonas Karlman wrote:
>>> The RK3308 SoC contain a crypto engine block that can generate random
>>> numbers.
>>>
>>> Add rng node to 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/rk3308-u-boot.dtsi | 5 +++++
>>> arch/arm/mach-rockchip/Kconfig | 2 ++
>>> 2 files changed, 7 insertions(+)
>>>
>>> diff --git a/arch/arm/dts/rk3308-u-boot.dtsi b/arch/arm/dts/rk3308-u-boot.dtsi
>>> index 436f66d1b87d..fa31c838d34d 100644
>>> --- a/arch/arm/dts/rk3308-u-boot.dtsi
>>> +++ b/arch/arm/dts/rk3308-u-boot.dtsi
>>> @@ -26,6 +26,11 @@
>>> reg = <0x07 0x10>;
>>> };
>>> };
>>> +
>>> + rng: rng at ff2f0000 {
>>> + compatible = "rockchip,cryptov2-rng";
>>> + reg = <0x0 0xff2f0000 0x0 0x4000>;
>>
>> Downstream says something different:
>>
>> https://github.com/rockchip-linux/kernel/blob/develop-5.10/arch/arm64/boot/dts/rockchip/rk3308.dtsi#L1007-L1020
>>
>> I couldn't quickly find the TRM for the RK3308 so cannot check myself :/
>
> RK3308TRM Part1 mention following under address mapping:
>
> ff2f0000 CRYPTO 64K
>
> And RK3308TRM Part2 mention following under crypto regs:
>
> CRYPTO_CLK_CTL 0x0000 W 0x00000001 Clock Control Register
> [...]
> CRYPTO_RNG_CTL 0x0400 W 0x0000000c RNG Control Register
> [...]
> CRYPTO_SRAM_ADDR 0x1000 W 0x00000000 SRAM Base Address
>
> And the U-Boot driver:
>
> /* start of CRYPTO V2 register define */
> #define CRYPTO_V2_RNG_CTL 0x0400
>
> So 0xff2f0000 should be correct for the crypto block on RK3308. And the
> rng cmd also gives me proper random numbers on my Rock Pi S board.
>
Could verify with the TRM Dragan shared, thanks.
>>
>> Also seems to be missing clocks and resets?
>
> Yeah, this is just a minimal node to get the rng driver in U-Boot
> working and like most other clocks they are enabled and running at an
> acceptable rate by default.
>
Considering that the clocks and resets all seem to be crypto block
specific and that the kernel doesn't seem to be doing runtime PM on
Rockchip clocks, I guess this is good enough for now?
Reviewed-by: Quentin Schulz <quentin.schulz at theobroma-systems.com>
Thanks,
Quentin
More information about the U-Boot
mailing list