From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 649D5C48BD1 for ; Fri, 11 Jun 2021 17:00:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 45ECB613CA for ; Fri, 11 Jun 2021 17:00:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230460AbhFKRCV (ORCPT ); Fri, 11 Jun 2021 13:02:21 -0400 Received: from foss.arm.com ([217.140.110.172]:35476 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229540AbhFKRCU (ORCPT ); Fri, 11 Jun 2021 13:02:20 -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 05F00D6E; Fri, 11 Jun 2021 10:00:22 -0700 (PDT) Received: from e120937-lin.home (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E762C3F719; Fri, 11 Jun 2021 10:00:18 -0700 (PDT) From: Cristian Marussi To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, virtualization@lists.linux-foundation.org, virtio-dev@lists.oasis-open.org Cc: sudeep.holla@arm.com, james.quinlan@broadcom.com, Jonathan.Cameron@Huawei.com, f.fainelli@gmail.com, etienne.carriere@linaro.org, vincent.guittot@linaro.org, souvik.chakravarty@arm.com, cristian.marussi@arm.com, igor.skalkin@opensynergy.com, peter.hilber@opensynergy.com, alex.bennee@linaro.org, jean-philippe@linaro.org, mikhail.golubev@opensynergy.com, anton.yakovlev@opensynergy.com, Vasyl.Vavrychuk@opensynergy.com, Andriy.Tryshnivskyy@opensynergy.com Subject: [PATCH v4 00/16] Introduce SCMI VirtIO transport Date: Fri, 11 Jun 2021 17:59:21 +0100 Message-Id: <20210611165937.701-1-cristian.marussi@arm.com> X-Mailer: git-send-email 2.17.1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi all, I'm posting this V4 series starting from the work done up to V3 by OpenSynergy. I kept original autorship and mailing list distribution unchanged, even though I'm not really sure if I'm allowed to post to all the original MLs. The main aim of this rework is to simplify where possible the SCMI VirtIO support added in V3 by adding upfront and then using some new mechanisms in the SCMI Core Transport layer. Indeed patches 01,02,03,04,05 add such additional mechanisms to the SCMI core; these were previously posted separately in a distinct patchset, I will retire that series and continue posting those here to ease testing. In terms of rework I dropped original V3 patches 02,08,12 as no more needed while keeping for now the rework distinct marking such patches as [RFC][REWORK] in order to easily spot changes. (they will be squashed into related original V3 patches next) DT bindings patch has been ported on top of freshly YAML converted arm,scmi bindings. Patch 16 adds support for polling mode to virtio-scmi. Known/open issues in V4: - possible violation by virtio-scmi transport of the order constraints on correlated response/delayed_response messages: this will be addressed next with changes in the SCMI core. - probing sequence simplification (if possible) As such this series is anyway still work in progress, needing also some general cleanup. Moreover SCMI core reworks about atomicity and polling, posted as a distinct series, is not included here either (even though tested against) and it will kept separate instead for now, to avoid mixing too much stuff together since not strictly needed for this series. This V4 series is based on top of next20210610 in order to include all the recent DT YAML-conversion changes and all the fixes queued as of today in sudeep/for-next/scmi. The series has been tested using an emulated fake SCMI device and also a proper SCP-fw stack running through QEMU vhost-users, with the SCMI stack compiled, in both cases, as builtin and as s loadable module, running tests against mocked SCMI Sensors using HWMON and IIO interfaces to check the functionality of notifications and sync/async commands. Any feedback/testing is welcome :D Thanks, Cristian --- V3 --> V4: - dropped V3 patches 02,08,12 - using new delegated xfers support and monotonically increasing tokens - ported SCMI virtio transport DT bindings to YAML format - added virtio-scmi polling support Cristian Marussi (8): firmware: arm_scmi: Fix max pending messages boundary check firmware: arm_scmi: Add support for type handling in common functions firmware: arm_scmi: Add transport optional init/exit support firmware: arm_scmi: Introduce monotonically increasing tokens firmware: arm_scmi: Introduce delegated xfers support [RFC][REWORK] firmware: arm_scmi: Add op to override max message # [RFC][REWORK] firmware: arm_scmi: make virtio-scmi use delegated xfers firmware: arm_scmi: Add polling mode to virtio transport Igor Skalkin (4): firmware: arm_scmi, smccc, mailbox: Make shmem based transports optional firmware: arm_scmi: Add op to override max message # dt-bindings: arm: Add virtio transport for SCMI firmware: arm_scmi: Add virtio transport Peter Hilber (4): firmware: arm_scmi: Add optional link_supplier() transport op firmware: arm_scmi: Add per-device transport private info firmware: arm_scmi: Add is_scmi_protocol_device() firmware: arm_scmi: Add message passing abstractions for transports .../bindings/firmware/arm,scmi.yaml | 8 +- MAINTAINERS | 1 + drivers/firmware/Kconfig | 26 +- drivers/firmware/arm_scmi/Makefile | 4 +- drivers/firmware/arm_scmi/bus.c | 5 + drivers/firmware/arm_scmi/common.h | 91 ++- drivers/firmware/arm_scmi/driver.c | 520 +++++++++++++++-- drivers/firmware/arm_scmi/msg.c | 148 +++++ drivers/firmware/arm_scmi/virtio.c | 541 ++++++++++++++++++ drivers/firmware/smccc/Kconfig | 1 + drivers/mailbox/Kconfig | 1 + include/uapi/linux/virtio_ids.h | 1 + include/uapi/linux/virtio_scmi.h | 25 + 13 files changed, 1326 insertions(+), 46 deletions(-) create mode 100644 drivers/firmware/arm_scmi/msg.c create mode 100644 drivers/firmware/arm_scmi/virtio.c create mode 100644 include/uapi/linux/virtio_scmi.h -- 2.17.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3D39CC48BD1 for ; Fri, 11 Jun 2021 17:02:36 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 0FCB360C40 for ; Fri, 11 Jun 2021 17:02:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0FCB360C40 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date:Subject:Cc:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=9coc/MIcS+Xtgop+YStDudFfxlC0aVT55K5UsZzgcro=; b=KG9qwtWwsJY0Mm 1rtZuVgIZmhyQVD0POn1VGmrH7bxZepsgfyty6fh7KtkWUklLG+O0tsRqTFUnbE4tFvwNOwV/9ULj eYvKgKFmsJbmp2z8gNZtJ2hpoIVjWBgnP2L/YhGQxju3cbXB0eFidfIRoAPWA5gI1v4bgX//7Hg0J 7/5K+moRt9Exqm15+oV6gUr/Eo7m2z9jdqV3nnyNohloKqvJiqts+HZl95ohAqzte+/m15zu2HLXE kGqGp20vFzKN/bWXVNIpPmrLAvRZhh7Rjcg/N71AxytR4+xhmo8JwfmBv+5Ao1NvxLazPSmRhEHgm oh9Ib0T6l3zf4KnutciA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lrkWF-006Beb-At; Fri, 11 Jun 2021 17:00:31 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lrkWA-006BcC-Fl for linux-arm-kernel@lists.infradead.org; Fri, 11 Jun 2021 17:00:28 +0000 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 05F00D6E; Fri, 11 Jun 2021 10:00:22 -0700 (PDT) Received: from e120937-lin.home (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E762C3F719; Fri, 11 Jun 2021 10:00:18 -0700 (PDT) From: Cristian Marussi To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, virtualization@lists.linux-foundation.org, virtio-dev@lists.oasis-open.org Cc: sudeep.holla@arm.com, james.quinlan@broadcom.com, Jonathan.Cameron@Huawei.com, f.fainelli@gmail.com, etienne.carriere@linaro.org, vincent.guittot@linaro.org, souvik.chakravarty@arm.com, cristian.marussi@arm.com, igor.skalkin@opensynergy.com, peter.hilber@opensynergy.com, alex.bennee@linaro.org, jean-philippe@linaro.org, mikhail.golubev@opensynergy.com, anton.yakovlev@opensynergy.com, Vasyl.Vavrychuk@opensynergy.com, Andriy.Tryshnivskyy@opensynergy.com Subject: [PATCH v4 00/16] Introduce SCMI VirtIO transport Date: Fri, 11 Jun 2021 17:59:21 +0100 Message-Id: <20210611165937.701-1-cristian.marussi@arm.com> X-Mailer: git-send-email 2.17.1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210611_100026_651422_A009107E X-CRM114-Status: GOOD ( 16.37 ) 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: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi all, I'm posting this V4 series starting from the work done up to V3 by OpenSynergy. I kept original autorship and mailing list distribution unchanged, even though I'm not really sure if I'm allowed to post to all the original MLs. The main aim of this rework is to simplify where possible the SCMI VirtIO support added in V3 by adding upfront and then using some new mechanisms in the SCMI Core Transport layer. Indeed patches 01,02,03,04,05 add such additional mechanisms to the SCMI core; these were previously posted separately in a distinct patchset, I will retire that series and continue posting those here to ease testing. In terms of rework I dropped original V3 patches 02,08,12 as no more needed while keeping for now the rework distinct marking such patches as [RFC][REWORK] in order to easily spot changes. (they will be squashed into related original V3 patches next) DT bindings patch has been ported on top of freshly YAML converted arm,scmi bindings. Patch 16 adds support for polling mode to virtio-scmi. Known/open issues in V4: - possible violation by virtio-scmi transport of the order constraints on correlated response/delayed_response messages: this will be addressed next with changes in the SCMI core. - probing sequence simplification (if possible) As such this series is anyway still work in progress, needing also some general cleanup. Moreover SCMI core reworks about atomicity and polling, posted as a distinct series, is not included here either (even though tested against) and it will kept separate instead for now, to avoid mixing too much stuff together since not strictly needed for this series. This V4 series is based on top of next20210610 in order to include all the recent DT YAML-conversion changes and all the fixes queued as of today in sudeep/for-next/scmi. The series has been tested using an emulated fake SCMI device and also a proper SCP-fw stack running through QEMU vhost-users, with the SCMI stack compiled, in both cases, as builtin and as s loadable module, running tests against mocked SCMI Sensors using HWMON and IIO interfaces to check the functionality of notifications and sync/async commands. Any feedback/testing is welcome :D Thanks, Cristian --- V3 --> V4: - dropped V3 patches 02,08,12 - using new delegated xfers support and monotonically increasing tokens - ported SCMI virtio transport DT bindings to YAML format - added virtio-scmi polling support Cristian Marussi (8): firmware: arm_scmi: Fix max pending messages boundary check firmware: arm_scmi: Add support for type handling in common functions firmware: arm_scmi: Add transport optional init/exit support firmware: arm_scmi: Introduce monotonically increasing tokens firmware: arm_scmi: Introduce delegated xfers support [RFC][REWORK] firmware: arm_scmi: Add op to override max message # [RFC][REWORK] firmware: arm_scmi: make virtio-scmi use delegated xfers firmware: arm_scmi: Add polling mode to virtio transport Igor Skalkin (4): firmware: arm_scmi, smccc, mailbox: Make shmem based transports optional firmware: arm_scmi: Add op to override max message # dt-bindings: arm: Add virtio transport for SCMI firmware: arm_scmi: Add virtio transport Peter Hilber (4): firmware: arm_scmi: Add optional link_supplier() transport op firmware: arm_scmi: Add per-device transport private info firmware: arm_scmi: Add is_scmi_protocol_device() firmware: arm_scmi: Add message passing abstractions for transports .../bindings/firmware/arm,scmi.yaml | 8 +- MAINTAINERS | 1 + drivers/firmware/Kconfig | 26 +- drivers/firmware/arm_scmi/Makefile | 4 +- drivers/firmware/arm_scmi/bus.c | 5 + drivers/firmware/arm_scmi/common.h | 91 ++- drivers/firmware/arm_scmi/driver.c | 520 +++++++++++++++-- drivers/firmware/arm_scmi/msg.c | 148 +++++ drivers/firmware/arm_scmi/virtio.c | 541 ++++++++++++++++++ drivers/firmware/smccc/Kconfig | 1 + drivers/mailbox/Kconfig | 1 + include/uapi/linux/virtio_ids.h | 1 + include/uapi/linux/virtio_scmi.h | 25 + 13 files changed, 1326 insertions(+), 46 deletions(-) create mode 100644 drivers/firmware/arm_scmi/msg.c create mode 100644 drivers/firmware/arm_scmi/virtio.c create mode 100644 include/uapi/linux/virtio_scmi.h -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel