]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm: exynos: Enable TRNG on E850-96 board
authorSam Protsenko <semen.protsenko@linaro.org>
Tue, 23 Jul 2024 18:14:39 +0000 (13:14 -0500)
committerMinkyu Kang <mk7.kang@samsung.com>
Wed, 24 Jul 2024 07:37:09 +0000 (16:37 +0900)
Enable True Random Number Generator (TRNG) on E850-96 board. To do so:
  1. Enable DM_RNG and RNG_EXYNOS for TARGET_E850_96
  2. Add TRNG node to E850-96 device tree
  3. Enable 'rng' command support for easy TRNG testing

TRNG node is already applied in Linux kernel device tree, but it hasn't
appeared in upstream dts yet. Add it in U-Boot override dtsi file
temporarily; it can be removed once it appears in upstream dts.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
arch/arm/dts/exynos850-e850-96-u-boot.dtsi
arch/arm/mach-exynos/Kconfig
configs/e850-96_defconfig

index 6d7148f7264ab9cf62ce90605662fb6eac2b7fcb..3aa5d8bb10d0ce16a3e3f95e399008764320ac59 100644 (file)
@@ -3,6 +3,17 @@
  * Copyright (c) 2023 Linaro Ltd.
  */
 
+&soc {
+       /* TODO: Remove this node once it appears in upstream dts */
+       trng: rng@12081400 {
+               compatible = "samsung,exynos850-trng";
+               reg = <0x12081400 0x100>;
+               clocks = <&cmu_core CLK_GOUT_SSS_ACLK>,
+                        <&cmu_core CLK_GOUT_SSS_PCLK>;
+               clock-names = "secss", "pclk";
+       };
+};
+
 &pmu_system_controller {
        bootph-all;
        samsung,uart-debug-1;
index cad8bb044cf0b19f9889868963e38d03eee6e0f5..3fee5a4299b8580a1f0679863d455ad8c212c566 100644 (file)
@@ -250,6 +250,8 @@ config TARGET_E850_96
        select PINCTRL
        select PINCTRL_EXYNOS850
        imply OF_UPSTREAM
+       imply DM_RNG
+       imply RNG_EXYNOS
 
 endchoice
 endif
index 38b9968c1671036853f56b4f0794b38609707f18..2949da24267f5306b7b81a36209179d1777f15eb 100644 (file)
@@ -11,6 +11,7 @@ CONFIG_DEFAULT_DEVICE_TREE="exynos/exynos850-e850-96"
 CONFIG_SYS_LOAD_ADDR=0x80000000
 # CONFIG_AUTOBOOT is not set
 # CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_CMD_RNG=y
 # CONFIG_NET is not set
 CONFIG_CLK_EXYNOS850=y
 # CONFIG_MMC is not set