Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp7570667rdb; Thu, 4 Jan 2024 00:02:50 -0800 (PST) X-Google-Smtp-Source: AGHT+IE+0LzM4Vb9r+WM3tLvPoG9B+SsLGt7GHhenBbGRRtwUlShUvKRNz3i7uI65QDuYB5SFIYP X-Received: by 2002:a05:6e02:20c8:b0:35f:f25b:6bba with SMTP id 8-20020a056e0220c800b0035ff25b6bbamr214578ilq.13.1704355370481; Thu, 04 Jan 2024 00:02:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704355370; cv=none; d=google.com; s=arc-20160816; b=f2uPDV7Wmb+a9gE7wjDA4BcNO1s2IpFjvlp49U1mMkfFT5K0fRy/CVZgdDNXBguGhk XylrvpIc6p9rY53DWCdWOegfal3u3GMLmkDLMnluv4fugy4PpiGdbJwXCI+F5UktlUb4 ojCBv5cllvP3cuvA3ubJmP9BGEqvY+XFMAFSAF055l6v/5bf5okSgC7J9xGzlZqiszJc V89/qX/OUbuOj2ui1V6+srpXF3p6vu4ZCXKbYkHRlSTw4tlCi9gfGubsfiEXijdFl8sh UXRZLqHOSyB+eE01PmwLUEWlBPOnxl1ve2dwHOBZalgEwk4UrI9m5fkkKg++DUYP+91S kV7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date:dkim-signature; bh=EQHpZRRXdunNypQ2I6o8tC3yLk4eRhRrKbs2TBAMG7A=; fh=+gLzxRLJnDNdszLOGAJUThsl7ZuVaVZ0ocREsFdzxF8=; b=MJVLXGNocFl7fE26uN2qYOzmGfIkePmuk04Dt+LI73EJK9/7ReGM/HAKIzAXFLARAf ksEDJWLbNljg5vm+4sYo8RwkSEz1vs4GKvBhlv37cisl6OnK+xm5bvfB5oWJCVWs8m2S sRxWAczXP2ARwpKsH1rNL7bqxa4Oc+Fjsy7CA5fHRgsL15+MmbS57FMAPHPp3G+ycFd3 Sd1gY9nHEb9YRp1/CNp4GGR4+PCdwY9plp47ekA+xTZHR3pMpQsdQJYqKHjrL3ojgejG GGg56l82bD7xhAh443hKqgx5U0y3sXDAtTiggfN75w9tRavXZS5460hYW8rfPinkX6Hz wygA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ZT148dVL; spf=pass (google.com: domain of linux-kernel+bounces-16348-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-16348-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id x66-20020a636345000000b005ce02ada455si19500705pgb.656.2024.01.04.00.02.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jan 2024 00:02:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-16348-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ZT148dVL; spf=pass (google.com: domain of linux-kernel+bounces-16348-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-16348-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 1C2C62861AE for ; Thu, 4 Jan 2024 08:02:50 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E3018200C1; Thu, 4 Jan 2024 08:02:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="ZT148dVL" X-Original-To: linux-kernel@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1509C200AC; Thu, 4 Jan 2024 08:02:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0D555C433C7; Thu, 4 Jan 2024 08:02:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1704355362; bh=pp0So8gs5MkuWez0uSmAaEFSV4iDlUOwU5mnTRXt3yU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ZT148dVL8fyl//AMobk+iTX7hdxXTXCLo7CI1q4rQ/2nxySks0j8rIhnNRbrD7ix8 aqt1yPlxzziKE9MaIi7S/Y5UZXc3lW2V4j7QhjzoINuNOOZRoWv4ZB2oeYupmi1bKs xEqpHLIequJul/pMBeBEHX195HAeP+OqS7/hRc68= Date: Thu, 4 Jan 2024 09:02:39 +0100 From: "gregkh@linuxfoundation.org" To: "Manne, Nava kishore" Cc: "mdf@kernel.org" , "hao.wu@intel.com" , "yilun.xu@intel.com" , "trix@redhat.com" , "peter.colberg@intel.com" , "conor.dooley@microchip.com" , "v.georgiev@metrotek.ru" , "Simek, Michal" , Marco Pagani , "ruanjinjie@huawei.com" , "linux-fpga@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "git (AMD-Xilinx)" Subject: Re: [RFC] FPGA Subsystem User Space Interface Proposal Message-ID: <2024010451-syrup-obituary-3388@gregkh> References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Thu, Jan 04, 2024 at 04:52:15AM +0000, Manne, Nava kishore wrote: > ======================================================================= > | Introduction | > ======================================================================= > This document provides a detailed overview of the proposed Kernel feature for FPGA Manager subsystem user interface. > It describes the problem statement behind the proposal, the problem to be solved, a top-level solution design. > > Table of Contents: > ------------------ > A. Problem Statement and Background > B. Scope and Out of scope of the proposal > B.1 Scope > B.2 Out of scope > C. Proposed Solution > D. Proposed User Interface Details > ======================================================================= > | A. Problem Statement and Background | > ======================================================================= > The existing FPGA manager subsystem didn't have any user space interface (other than the status/state in sysfs) in Kernel. > Basically, FPGAs are semiconductor devices that can be reprogrammed for desired hardware functionality. > FPGAs can be reprogrammed at runtime with different types of logic and IPs as per user need and hence there is a need to use device tree overlays for removing/updating/adding the devices at runtime for the IPs/controllers that are present in FPGA. > But we don't have any user interface in kernel for updating the device tree at runtime. Can you line-wrap your emails to make them easier to read? Also, something went wrong here: > . --------------------------------------. .-----------------------------------------. > | | | | > | .------------------| |---------------------. | > | | sysfs_load() |<=======> |Overaly_apply()| | > .---------------------------------. | '------------------| |---------------------' | > | | | | | | > | New Sysfs interface | ====> | of-fpga-region .c | | DT Overlay.c | > | load/unload | | | | | > '--------------------------------' | .---------------------| |-------------------------. | > | | sysfs_unload() |<=======> | Overlay_remove() | | > | '-------------------- | |-------------------------' | > | | | | > '----------------------------------- --' '------------------------------------------' And here: > .-----------------------. .--------------------------------------------. > | Host CPU | | FPGA | > | | | | > | -- -| | ----------- --------- | > | | H | | |==>| Bridge0 |<==>| PRR0 | | > | | W| | | ----------- -------- | > | | | | | | > | | B |<=====> |<== | ----------- -------- | > | | R | | |==>| Bridge1 |<==>| PRR1| | > | | I | | | ----------- -------- | > | | D | | | | > | | G | | | ----------- ------- | > | | E | | |==>| Bridge2 |<==>| PRR2 || > | ----| | ----------- -------- | > | | | | > '-----------------------' '---------------------------------------------' Your spaces all seem too big, making this really hard to read. But really, we need to see some code before we can go further. "proposals" are great, but that's not how kernel development works, we need actual patches to be able to evaluate anything, as that shows you at least have a working implementation to start with, and that you have resolved any of the obvious issues ahead of time. thanks, greg k-h