From patchwork Tue Jun 18 20:45:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Protsenko X-Patchwork-Id: 13703002 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A59A9C2BA1A for ; Tue, 18 Jun 2024 20:45:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=JhcEpUixYW1NlD8vTPxrTj/5Uvw5ZqhDNkVhL4sqgko=; b=Gd/ZVlX2d6Wz2dTTzv04l3l8m8 Zi02tG5NIagWBpf4Rh8EgKoUjsu0FfJaizT4Awsc4FAiQKAvtSLSWA5ak8qY0ZLWRYKXR2jKlf5NI g/huvj+FsKKvgRolEfCvPxs8mpN8c4k6seCMSY6TOufR7op/6kxODYyOtanenUVe7j7W5Sm001+0f CcTWZnMXXy9AwB1ar3CCaHngbjRQQFeyLkyukEX8Ti/0uipprjGGct1R799WDX+gx2gQq314NM1lV LkTKrnh+aJ00KmKUN+V/xLPNCdOxtVZk5S5lhfEh9C+IWiiXozXY8ca8AaVcjSMOwh2R0lkX/uU8b Wkj32gpQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sJfhr-0000000GWvg-0Wn3; Tue, 18 Jun 2024 20:45:31 +0000 Received: from mail-oi1-x236.google.com ([2607:f8b0:4864:20::236]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sJfhn-0000000GWtC-1Z82 for linux-arm-kernel@lists.infradead.org; Tue, 18 Jun 2024 20:45:29 +0000 Received: by mail-oi1-x236.google.com with SMTP id 5614622812f47-3c9c36db8eeso3190764b6e.0 for ; Tue, 18 Jun 2024 13:45:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1718743524; x=1719348324; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=JhcEpUixYW1NlD8vTPxrTj/5Uvw5ZqhDNkVhL4sqgko=; b=rvM6piC/7anZoasNzAoVxdotcPMz2K/HBe/apTao2IrcYQq3bBiU4MOxWtbgXlnATa k1t5EJsHfq3LY1AqeJj352TZ6TFDT+LhOcxKisM1LB+ovOSvy2uuQ189j4piAEg3yeLI eWfCS5zDBOg1QkIcbOeDY88t16qKoOudfAbZbzV3B7NUBb5TKHcOQ8WiOf1HiEI6ExAd 9CYXr9mJlmgK7jDz685gODWyvd1+hLwZX9jqtnW3gzVfxAcCjgwRRxS4t+XBmi0z40wG 2FXuacvUssxezUhTVO7Vz2WRr3okhH2vfwI3gIg5ThYliEpMoaQ9KwA+62yN0UyKyD52 PANA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718743524; x=1719348324; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=JhcEpUixYW1NlD8vTPxrTj/5Uvw5ZqhDNkVhL4sqgko=; b=uS5oHLi7IEf+QlxN5diFBEKBdTZKlJXmeiUkIfWV5BUt2sYjnxm208T92vJb3U+K/x jvG0YaaVSaWiOFStquULBewbG2sJG5vqaGCqO5j4GnxjC6+nib3nKDpm+wXtTwMsvMpf o9t6gPXIPRi2lz/JCiAiGAjFuMfkUS9hlOirIWAUKEgVK6xit0FYt8Fz8cFRQZsWp1fq OeSscgWOkatlZKUap6pD87rFntquQVkwBvkQion7sU1XP2my5RqAULbL+j/TTJInIpqt VlYP15VAGKdLeUg+55HGE+5d+AYhcfavelH5HiVd3ey9o8upWPXEQBBIKyNZMO9z2Fh2 yzzw== X-Forwarded-Encrypted: i=1; AJvYcCVzAvP+ER1v3pNS3uhUrPw/wy1T1/pwc3mCZyTppQIlvFws4fQvsOyjYFuR9zIZWW+0NJHAWx22bWJuzA7mXxx5ZweWvo1BThA1Xs1Rrn2cRglTl0g= X-Gm-Message-State: AOJu0YxWZ2/JXOVG1FrnLKheyzCfPMJmQrpZXTNZVwrSU1eQk1rgQhR/ fXe1JiTfBkT0Wmur4ELmnw0H3lhiAtCK+zNKCeCTSl4K3qO0bYIMV8q37dGUf6Q= X-Google-Smtp-Source: AGHT+IF2pnET8e+kKpto1cAvMwXd1n2tX30Z+TpufXJVT8R7Pig00Ik8aCpU+HEcP1N7AhulSTEWpw== X-Received: by 2002:a05:6870:7013:b0:254:a778:6fbd with SMTP id 586e51a60fabf-25c94901c85mr1114518fac.6.1718743524442; Tue, 18 Jun 2024 13:45:24 -0700 (PDT) Received: from localhost ([136.62.192.75]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-6fb5b1f57a1sm1971383a34.46.2024.06.18.13.45.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 13:45:24 -0700 (PDT) From: Sam Protsenko To: =?utf-8?q?=C5=81ukasz_Stelmach?= , Krzysztof Kozlowski , Rob Herring , Conor Dooley Cc: Anand Moon , Olivia Mackall , Herbert Xu , Alim Akhtar , linux-samsung-soc@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 0/7] hwrng: exynos: Add support for Exynos850 Date: Tue, 18 Jun 2024 15:45:16 -0500 Message-Id: <20240618204523.9563-1-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240618_134527_628629_90FE7C97 X-CRM114-Status: GOOD ( 14.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Exynos850 has True Random Number Generator (TRNG) block which is very similar to Exynos5250 for which the driver already exists (exynos-trng.c). There are two differences though: 1. Additional SSS PCLK clock has to be enabled to make TRNG registers accessible. 2. All SSS registers (including TRNG area) are protected with TrustZone and can only be accessed from EL3 monitor. So the corresponding SMC calls have to be used instead to interact with TRNG block. This patch series enables TRNG support on Exynos850 SoC. It was tested on the E850-96 board running Debian rootfs like this: 8<-------------------------------------------------------------->8 # cat /sys/devices/virtual/misc/hw_random/rng_current 12081400.rng # dd if=/dev/hwrng bs=100000 count=1 > /dev/null ... 122KB/s # apt install rng-tools5 # rngtest -c 1000 < /dev/hwrng ... rngtest: starting FIPS tests... rngtest: bits received from input: 20000032 rngtest: FIPS 140-2 successes: 1000 rngtest: FIPS 140-2 failures: 0 rngtest: FIPS 140-2(2001-10-10) Monobit: 0 rngtest: FIPS 140-2(2001-10-10) Poker: 0 rngtest: FIPS 140-2(2001-10-10) Runs: 0 rngtest: FIPS 140-2(2001-10-10) Long run: 0 rngtest: FIPS 140-2(2001-10-10) Continuous run: 0 rngtest: input channel speed: (min=941.855; avg=965.515; max=968.236)Kibits/s rngtest: FIPS tests speed: (min=49.542; avg=52.886; max=53.577)Mibits/s rngtest: Program run time: 20590194 microseconds 8<-------------------------------------------------------------->8 Changes in v2: - Removed the patch for renaming the dt-bindings doc file - Added the patch for using devm_clk_get_enabled() to get the clock - Addressed all review comments for v1 series Sam Protsenko (7): dt-bindings: rng: Add Exynos850 support to exynos-trng hwrng: exynos: Improve coding style hwrng: exynos: Use devm_clk_get_enabled() to get the clock hwrng: exynos: Implement bus clock control hwrng: exynos: Add SMC based TRNG operation hwrng: exynos: Enable Exynos850 support arm64: dts: exynos850: Enable TRNG .../bindings/rng/samsung,exynos5250-trng.yaml | 40 +++- arch/arm64/boot/dts/exynos/exynos850.dtsi | 8 + drivers/char/hw_random/exynos-trng.c | 216 +++++++++++++----- 3 files changed, 206 insertions(+), 58 deletions(-)