Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3748400pxv; Mon, 26 Jul 2021 10:57:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzpvZ9qtKqj2KFcx1AAnWfUnJ+3V/JtKaZkEI4+uEnBH2DePMlCLd1Rjk8H7hpOf3Cj/Qa/ X-Received: by 2002:a17:906:3a19:: with SMTP id z25mr18181669eje.536.1627322274877; Mon, 26 Jul 2021 10:57:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627322274; cv=none; d=google.com; s=arc-20160816; b=IDkxRWKkvbEy83rlUid7d1KgQMrhHuB+9Aw+6C6ZShShpXkYegHw+qd3bynJ6l0Xdq 3bufNM9rmANFAxY5Jw6KRt9L4wIT/ArKOgQUWwuzkzJPJqgKm9oxdQiP/XkgDR3rmkc5 BPsmoUSUzpI/u+ztui2+9I+aWWQWd+8aAB7NPI1MPCw18IzhzXjRgJZuihJsYi7PH0ad eb8xBjb+EilTP8d39B6t00iR/4c9PsCDaGu1Zqy9gQKvJaOXOARZ06m5RGnmsQu+LVUa vZ4WnRoJAv3fVCeXIU9ikfMT0B1M2dj4i0VPWlm95vkX0ED/Q851zMoQI+B/jN3ts3a7 t1kg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=zGK++mvOAv3IP7SF8voMj/V4/nx38gKsbEiGfIPBbBg=; b=MfO8uTaiWdcc/Gkd8I5Ua9fC42tHcxrKNrMh+mEz9zpr5tYnESL3rUwtXkxB3552cx lnmYhmlUQXdnMibnli9LjKKWL7OcNCpfvLP4uljK6C0n0dWrWGhsqF2hiGNUxTgq9eWJ 4o10yxDBa5ml/dfFm73PL4/kxU/8QjOi1uJ2kFkzzhyLQQm//nO9eRy4EhLmjqGwtDAU 3f5eqhZPFlt6LfRpmhA48XO/phn4bRnrQDl7p+iACu/iMmMhDdsoKKBcoRV8xElr7E8Z jNMTpeWQvwM+vaVxceI34Di38itfteqOBRzwU35KmFeYcTaReaQYs9RmjbjJ8Ey7CFyS f5Yg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id la14si512619ejc.142.2021.07.26.10.57.29; Mon, 26 Jul 2021 10:57:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231207AbhGZRQ1 (ORCPT + 99 others); Mon, 26 Jul 2021 13:16:27 -0400 Received: from foss.arm.com ([217.140.110.172]:57156 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231926AbhGZRQ0 (ORCPT ); Mon, 26 Jul 2021 13:16:26 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 039CC31B; Mon, 26 Jul 2021 10:56:55 -0700 (PDT) Received: from localhost.localdomain (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DFBFC3F66F; Mon, 26 Jul 2021 10:56:52 -0700 (PDT) From: Andre Przywara To: Matt Mackall , Herbert Xu , Mark Rutland , Lorenzo Pieralisi , Sudeep Holla Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Benjamin Herrenschmidt , Ard Biesheuvel , Mark Brown , Will Deacon , Ali Saidi , Jon Nettleton Subject: [PATCH v3 1/2] firmware: smccc: Register smccc_trng platform device Date: Mon, 26 Jul 2021 18:56:09 +0100 Message-Id: <20210726175610.3311-2-andre.przywara@arm.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20210726175610.3311-1-andre.przywara@arm.com> References: <20210726175610.3311-1-andre.przywara@arm.com> Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org At the moment we probe for the Random Number Generator SMCCC service, and use that in the core code (arch_get_random). However the hardware entropy can also be useful to access from userland, and be it to assess its quality. Register a platform device when the SMCCC TRNG service is detected, to allow a hw_random driver to hook onto this. The function registering the device is deliberately made in a way which allows expansion, so other services that could be exposed via a platform device (or some other interface), can be added here easily. Signed-off-by: Andre Przywara --- drivers/firmware/smccc/smccc.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/firmware/smccc/smccc.c b/drivers/firmware/smccc/smccc.c index 9f937b125ab0..60ccf3e90d7d 100644 --- a/drivers/firmware/smccc/smccc.c +++ b/drivers/firmware/smccc/smccc.c @@ -9,6 +9,7 @@ #include #include #include +#include #include static u32 smccc_version = ARM_SMCCC_VERSION_1_0; @@ -42,3 +43,19 @@ u32 arm_smccc_get_version(void) return smccc_version; } EXPORT_SYMBOL_GPL(arm_smccc_get_version); + +static int __init smccc_devices_init(void) +{ + struct platform_device *pdev; + + if (smccc_trng_available) { + pdev = platform_device_register_simple("smccc_trng", -1, + NULL, 0); + if (IS_ERR(pdev)) + pr_err("smccc_trng: could not register device: %ld\n", + PTR_ERR(pdev)); + } + + return 0; +} +device_initcall(smccc_devices_init); -- 2.17.6