Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp4025898pxp; Tue, 15 Mar 2022 10:51:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwOQ1IDMT2uoxRXybPyzG42EgQ1XHAQwKvgOGJo7qXEMtDhSX970pVN2bwmOWdwJNrG3eJO X-Received: by 2002:a05:6402:26cf:b0:416:a2bd:de1 with SMTP id x15-20020a05640226cf00b00416a2bd0de1mr26740909edd.306.1647366717913; Tue, 15 Mar 2022 10:51:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647366717; cv=none; d=google.com; s=arc-20160816; b=cw/7dK5sPtOb629OGsFtvbS+amViE3+P4Gmj5jQs3J8CUjhLi1LzyuQDINV//1gc0+ MIA3dINVh4KYzstQhDFYTzY9152fhQi01VxWKhS8HVwNUGVPfp0NhS6DXBupd2ostgvL L/C2yegY7iXRQDMo3m5dELhWOktDe6g9ciu1fUMApFz2Dk0koy+4+mHOo8wiz+1M0stz 3FTFzDk6bnF/lcRuUWiysoqI3Zp+daxwiNFzl/LBqYE9ymEKrXGvtTKx5CW6Y20cKU5D 9SyzOPTjSCMgx/i2UCjMKvCyffD1edtLKD0bFilfaCuTU9txdEfa6/9k7hlupGChFs6Y 8vgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=FdgbXbbIob0VUo9uDWNJvJozkOm8ZjUabXR8n6veSEA=; b=jub1/ZQ/P95qPQVrvGP1ZL4zUkPbfV9laLcSrKxgpF58fP+iu7OAupansXgBUs1snl BWBx3z2nJbfzn/x1s5LZ+HIZ81dozkW7Tyv8i0gve8F+52prvyMnJO6DRXStR+OWcdtR R8+ye9vfhk80YsR/LKLiAsfdBm7Nsvt7IiH3sjzuTwmY70ZEJgaAXMEiaCENAd95pwee 11lMhXASh8MHAv7wNSHU8buDDODypuvxAgocz4K1zRWzbsd2pcgZEttbLfoFlefWMQ9r nb0mzb7ldrJEzDRcIWDUREqeRpXK78zjfLb754BPXdhVBDxbzNjjg97RJJcuWZNVsTwW YFRw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@foss.st.com header.s=selector1 header.b=TyUKP3Hz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=foss.st.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id me3-20020a170906aec300b006d6e5846a26si10860797ejb.736.2022.03.15.10.51.26; Tue, 15 Mar 2022 10:51:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@foss.st.com header.s=selector1 header.b=TyUKP3Hz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=foss.st.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237366AbiCNRDD (ORCPT + 99 others); Mon, 14 Mar 2022 13:03:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54016 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242178AbiCNRDA (ORCPT ); Mon, 14 Mar 2022 13:03:00 -0400 Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7D83212A93; Mon, 14 Mar 2022 10:01:50 -0700 (PDT) Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 22EFVXoY028181; Mon, 14 Mar 2022 18:01:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding : content-type; s=selector1; bh=FdgbXbbIob0VUo9uDWNJvJozkOm8ZjUabXR8n6veSEA=; b=TyUKP3Hz7s+pTYvoRAVFD9SumqzIA2nuCU+Lnd1yrFNNmVyPhAoKWhG247zCvVEbhIq/ ZK7FmC/KsfqxefRfhumH/IYCSyYKCcAPhJdTjIZA7yKieK23xjxvR8KovJhGh8oJ+g76 OtMx5DbIOs6tLKOeqhv7n52fQMBvD7KB50lDH0oQM6FPg8Ncx609SuWpxm5fvSd8ZQAs b78GTnElbMmP+4fJPnpFxlTGqHgu+WYGm4K5NDzF6D62uP/D0wXeKAlIkK0ziNJPX+Rb V8QpvGyIUw/fEfyOwroPqYfTS7pM4sMCNKewZz7Oty3QL5jVJ4E1BxKiLsDqBC0CYaxy zw== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3et89dgrhc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 14 Mar 2022 18:01:41 +0100 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 363DF10002A; Mon, 14 Mar 2022 18:01:41 +0100 (CET) Received: from Webmail-eu.st.com (sfhdag2node2.st.com [10.75.127.5]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 2A7A92309F1; Mon, 14 Mar 2022 18:01:41 +0100 (CET) Received: from localhost (10.75.127.51) by SFHDAG2NODE2.st.com (10.75.127.5) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Mon, 14 Mar 2022 18:01:40 +0100 From: Arnaud Pouliquen To: Bjorn Andersson , Mathieu Poirier CC: , , , Rob Herring , Christoph Hellwig , Stefano Stabellini , Bruce Ashfield , Subject: [RFC PATCH v4 0/4] remoteproc: restructure the remoteproc VirtIO device Date: Mon, 14 Mar 2022 18:01:22 +0100 Message-ID: <20220314170126.2333996-1-arnaud.pouliquen@foss.st.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.75.127.51] X-ClientProxiedBy: SFHDAG2NODE3.st.com (10.75.127.6) To SFHDAG2NODE2.st.com (10.75.127.5) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.850,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-14_12,2022-03-14_02,2022-02-23_01 X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Update from V3 [1]: Minor updates based on Mathieu's comments. Updates are listed in the commit message of each patch. [1] https://lkml.org/lkml/2022/1/26/799 Patchset description: This series is a part of the work initiated a long time ago in the series "remoteproc: Decorelate virtio from core"[2] Objective of the work: - Update the remoteproc VirtIO device creation (use platform device) - Allow to declare remoteproc VirtIO device in DT - declare resources associated to a remote proc VirtIO - declare a list of VirtIO supported by the platform. - Prepare the enhancement to more VirtIO devices (e.g I2C, audio, video, ...). For instance be able to declare a I2C device in a virtio-i2C node. - Keep the legacy working! - Try to improve the picture about concerns reported by Christoph Hellwing [3][4] [2] https://lkml.org/lkml/2020/4/16/1817 [3] https://lkml.org/lkml/2021/6/23/607 [4] https://patchwork.kernel.org/project/linux-remoteproc/patch/AOKowLclCbOCKxyiJ71WeNyuAAj2q8EUtxrXbyky5E@cp7-web-042.plabs.ch/ In term of device tree this would result in such hiearchy (stm32mp1 example with 2 virtio RPMSG): m4_rproc: m4@10000000 { compatible = "st,stm32mp1-m4"; reg = <0x10000000 0x40000>, <0x30000000 0x40000>, <0x38000000 0x10000>; memory-region = <&retram>, <&mcuram>,<&mcuram2>; mboxes = <&ipcc 2>, <&ipcc 3>; mbox-names = "shutdown", "detach"; status = "okay"; #address-cells = <1>; #size-cells = <0>; vdev@0 { compatible = "rproc-virtio"; reg = <0>; virtio,id = <7>; /* RPMSG */ memory-region = <&vdev0vring0>, <&vdev0vring1>, <&vdev0buffer>; mboxes = <&ipcc 0>, <&ipcc 1>; mbox-names = "vq0", "vq1"; status = "okay"; }; vdev@1 { compatible = "rproc-virtio"; reg = <1>; virtio,id = <7>; /*RPMSG */ memory-region = <&vdev1vring0>, <&vdev1vring1>, <&vdev1buffer>; mboxes = <&ipcc 4>, <&ipcc 5>; mbox-names = "vq0", "vq1"; status = "okay"; }; }; I have divided the work in 4 steps to simplify the review, This series implements only the step 1: step 1: redefine the remoteproc VirtIO device as a platform device - migrate rvdev management in remoteproc virtio.c, - create a remotproc virtio config ( can be disabled for platform that not use VirtIO IPC. step 2: add possibility to declare and probe a VirtIO sub node - VirtIO bindings declaration, - multi DT VirtIO devices support, - introduction of a remote proc virtio bind device mechanism , => https://github.com/arnopo/linux/commits/step2-virtio-in-DT step 3: Add memory declaration in VirtIO subnode => https://github.com/arnopo/linux/commits/step3-virtio-memories step 4: Add mailbox declaration in VirtIO subnode => https://github.com/arnopo/linux/commits/step4-virtio-mailboxes Arnaud Pouliquen (4): remoteproc: core: Introduce virtio device add/remove functions remoteproc: core: Introduce rproc_register_rvdev function remoteproc: Move rproc_vdev management to remoteproc_virtio.c remoteproc: virtio: Create platform device for the remoteproc_virtio drivers/remoteproc/remoteproc_core.c | 154 +++--------------- drivers/remoteproc/remoteproc_internal.h | 23 ++- drivers/remoteproc/remoteproc_virtio.c | 193 ++++++++++++++++++++--- include/linux/remoteproc.h | 6 +- 4 files changed, 215 insertions(+), 161 deletions(-) -- 2.25.1