Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp2596276imb; Mon, 4 Mar 2019 09:03:04 -0800 (PST) X-Google-Smtp-Source: APXvYqyruoutiTMVw1pBNJ4EnKKOA/Fcm3sMj/FGJhJv0cQV1jUHyKC61IVF4cw7gh/qYK+fwH6w X-Received: by 2002:aa7:8051:: with SMTP id y17mr20818627pfm.92.1551718983985; Mon, 04 Mar 2019 09:03:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551718983; cv=none; d=google.com; s=arc-20160816; b=jeJd6q9ta4YXSJnOc+iiIgM0HmLtNmLjPL28RfGaDRfDB+DXr6PNw5p4Bg0zNNdtec irC2Ynp0Pxfm++NxmYNPXUQh1FvlYbdNhNJbz/DqXp4tek/DNTcXhHX4wi8UxFCJV5y0 akZHv1o5JxETj+IQ4Gu3RBDY/4VecFoRosirYvTH78WQnTsDeOqskWGdE6YHxXUkfSp5 iuAX7wxrHZkpc5ITuL3L24LTTNa68DkdK9ISvXv8jJJd/AqWr684IL+u+Gw42eZWv6N5 nt+O0CZ5SCCF/CaFs4cPT3+UnzTK7ba5pQPZ0yRUa60kfobD95ryLqHBj1++LE46FwKT EbQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=Vodb2oC9+lnSHW39BoqMx07yP0YdfPcB59ZYKSEDkzg=; b=A7pr4Lpj+7uQVvjC6NFU7pdH5VsfusjqGBw60cjjN/Q6+Ib6wPgy6Yedq0uyNskXwO dPJj8CJdbtk6anKp+YKK2w7zjI+nmxsgQai/WNSCG5qOeeOGF05Q5wN7cu5hh8gBhOyW bJAzinXX3moPqGeo606mfaZfltvcjIx0CgYlF9JT035C60Zsgoi6sDApDW8QY/PeOH1e bqN8E0Sh2GesnYE73NU9jB9yN83LLU76aFlTD0t40QcFPpewG/fs2VlazqcB65rp53t8 IHa6WafsdRLisz/EpKRPL17CV45qEnZkaPbkpCLQBg7qa1Nbbrik4f6VqL3s9nqR6rkR 9bWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=fygITPh8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g98si6192070plb.11.2019.03.04.09.02.43; Mon, 04 Mar 2019 09:03:03 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=fygITPh8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727305AbfCDQbV (ORCPT + 99 others); Mon, 4 Mar 2019 11:31:21 -0500 Received: from mail.kernel.org ([198.145.29.99]:51206 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726409AbfCDQbU (ORCPT ); Mon, 4 Mar 2019 11:31:20 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id B4546206B8; Mon, 4 Mar 2019 16:31:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1551717079; bh=VdwxNfcuV21nc1D0FGer1/LK/x/aa74mq3t4qb2R6mE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=fygITPh8jPqKGBKYYz5ZE0QNLkqecS7zHw/dPtLmlgVv89q/uFuFF5ehzIs79baow 4iym4f0LrDdQmEqqD25ij0apjZlUGhKfGENO+DUWonKlN1EvjQKjJbiZB8PJ1vzA2n 20pv1MSraS9Lf6OpUqJvD/tcKDYDi8JkAO99I7G0= Date: Mon, 4 Mar 2019 17:31:16 +0100 From: Greg Kroah-Hartman To: Patrick Venture Cc: Andrew Jeffery , Arnd Bergmann , Joel Stanley , Linux Kernel Mailing List , linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org Subject: Re: [PATCH v5 2/2] drivers/misc: Add Aspeed P2A control driver Message-ID: <20190304163116.GC2301@kroah.com> References: <20190228015223.34563-1-venture@google.com> <19097a78-7066-4fcd-aa79-aca4a8c3cb0c@www.fastmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.11.3 (2019-02-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 04, 2019 at 07:45:31AM -0800, Patrick Venture wrote: > On Sun, Mar 3, 2019 at 4:04 PM Andrew Jeffery wrote: > > > > Hi Patrick. > > > > I've got some minor comments, otherwise it looks reasonable to me. > > > > On Thu, 28 Feb 2019, at 12:22, Patrick Venture wrote: > > > The ASPEED AST2400, and AST2500 in some configurations include a > > > PCI-to-AHB MMIO bridge. This bridge allows a server to read and write > > > in the BMC's physical address space. This feature is especially useful > > > when using this bridge to send large files to the BMC. > > > > > > The host may use this to send down a firmware image by staging data at a > > > specific memory address, and in a coordinated effort with the BMC's > > > software stack and kernel, transmit the bytes. > > > > > > This driver enables the BMC to unlock the PCI bridge on demand, and > > > configure it via ioctl to allow the host to write bytes to an agreed > > > upon location. In the primary use-case, the region to use is known > > > apriori on the BMC, and the host requests this information. Once this > > > request is received, the BMC's software stack will enable the bridge and > > > the region and then using some software flow control (possibly via IPMI > > > packets), copy the bytes down. Once the process is complete, the BMC > > > will disable the bridge and unset any region involved. > > > > > > The default behavior of this bridge when present is: enabled and all > > > regions marked read-write. This driver will fix the regions to be > > > read-only and then disable the bridge entirely. > > > > > > The memory regions protected are: > > > * BMC flash MMIO window > > > * System flash MMIO windows > > > * SOC IO (peripheral MMIO) > > > * DRAM > > > > > > The DRAM region itself is all of DRAM and cannot be further specified. > > > Once the PCI bridge is enabled, the host can read all of DRAM, and if > > > the DRAM section is write-enabled, then it can write to all of it. > > > > > > Signed-off-by: Patrick Venture > > > --- > > > Changes for v5: > > > - Fixup missing exit condition and remove extra jump. > > > Changes for v4: > > > - Added ioctl for reading back the memory-region configuration. > > > - Cleaned up some unused variables. > > > Changes for v3: > > > - Deleted unused read and write methods. > > > Changes for v2: > > > - Dropped unused reads. > > > - Moved call to disable bridge to before registering device. > > > - Switch from using regs to using a syscon regmap. <<< IN PROGRESS > > > - Updated the commit message. <<< TODO > > > - Updated the bit flipped for SCU180_ENP2A > > > - Dropped boolean region_specified variable. > > > - Renamed p2a_ctrl in _probe to misc_ctrl per suggestion. > > > - Renamed aspeed_p2a_region_search to aspeed_p2a_region_acquire > > > - Updated commit message. > > > --- > > > drivers/misc/Kconfig | 8 + > > > drivers/misc/Makefile | 1 + > > > drivers/misc/aspeed-p2a-ctrl.c | 456 +++++++++++++++++++++++++++ > > > include/uapi/linux/aspeed-p2a-ctrl.h | 59 ++++ > > > 4 files changed, 524 insertions(+) > > > create mode 100644 drivers/misc/aspeed-p2a-ctrl.c > > > create mode 100644 include/uapi/linux/aspeed-p2a-ctrl.h > > > > > > diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig > > > index f417b06e11c5..9de1bafe5606 100644 > > > --- a/drivers/misc/Kconfig > > > +++ b/drivers/misc/Kconfig > > > @@ -485,6 +485,14 @@ config VEXPRESS_SYSCFG > > > bus. System Configuration interface is one of the possible means > > > of generating transactions on this bus. > > > > > > +config ASPEED_P2A_CTRL > > > + depends on (ARCH_ASPEED || COMPILE_TEST) && REGMAP && MFD_SYSCON > > > + tristate "Aspeed ast2400/2500 HOST P2A VGA MMIO to BMC bridge control" > > > + help > > > + Control Aspeed ast2400/2500 HOST P2A VGA MMIO to BMC mappings > > > through > > > + ioctl()s, the driver also provides an interface for userspace > > > mappings to > > > + a pre-defined region. > > > + > > > config ASPEED_LPC_CTRL > > > depends on (ARCH_ASPEED || COMPILE_TEST) && REGMAP && MFD_SYSCON > > > tristate "Aspeed ast2400/2500 HOST LPC to BMC bridge control" > > > diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile > > > index e39ccbbc1b3a..57577aee354f 100644 > > > --- a/drivers/misc/Makefile > > > +++ b/drivers/misc/Makefile > > > @@ -55,6 +55,7 @@ obj-$(CONFIG_VEXPRESS_SYSCFG) += vexpress-syscfg.o > > > obj-$(CONFIG_CXL_BASE) += cxl/ > > > obj-$(CONFIG_ASPEED_LPC_CTRL) += aspeed-lpc-ctrl.o > > > obj-$(CONFIG_ASPEED_LPC_SNOOP) += aspeed-lpc-snoop.o > > > +obj-$(CONFIG_ASPEED_P2A_CTRL) += aspeed-p2a-ctrl.o > > > obj-$(CONFIG_PCI_ENDPOINT_TEST) += pci_endpoint_test.o > > > obj-$(CONFIG_OCXL) += ocxl/ > > > obj-y += cardreader/ > > > diff --git a/drivers/misc/aspeed-p2a-ctrl.c > > > b/drivers/misc/aspeed-p2a-ctrl.c > > > new file mode 100644 > > > index 000000000000..6bde4f64632d > > > --- /dev/null > > > +++ b/drivers/misc/aspeed-p2a-ctrl.c > > > @@ -0,0 +1,456 @@ > > > +/* > > > + * Copyright 2019 Google Inc > > > + * > > > + * This program is free software; you can redistribute it and/or > > > + * modify it under the terms of the GNU General Public License > > > + * as published by the Free Software Foundation; either version > > > + * 2 of the License, or (at your option) any later version. > > > > Should be a SPDX header instead. > > Ok, so delete the above and drop in: > > """ > /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ > """ No no no no no no! > Or just add that to the top above the Google GNU copyright line? (I'm > not a lawyer). Please go read Documentation/process/license-rules.txt, it should explain everything. And if not, go talk to your legal council, they know all about this and what is needed. thanks, greg k-h