Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp3093031pxb; Sat, 9 Oct 2021 01:19:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxyrOB/CB3lY5lkYoPHT1ASwOUzTn0VqukPHzmNCRUGimokGx9Na0fwm1xIeaa54oLBGRmy X-Received: by 2002:a05:6402:1d04:: with SMTP id dg4mr22070133edb.183.1633767551311; Sat, 09 Oct 2021 01:19:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633767551; cv=none; d=google.com; s=arc-20160816; b=ONW2JZu1nTKgEgWyyfQujzwUR+j/yq8HgxbVM18W1057nLczx9SLy1SQh1j5QBNfmp EfVDKjZCcJ+flsDrX0o57RLmxWjYmYX00yAvafBBXEi3fwjAF9ucrDs25gWcceSEYs3i X8IjvlHaz1BQuZOE/Kwamzet6swEbpQ652MJ3qWCMTpMUSyTUvPyhbkTAq8SozxNolUl cEVL5+iSwQHPTqMK9d38frN+BLapYKvJROVugmC2oLAfQ9SH080ZF7yvuy3ysNWOkogz jlUosuCBrjJKh8X8GSQUypJZwzfdqTLAShiEZKRNrpqDLD7Nkp6ok/Frb6Dj2wkSFs0Y 4Www== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=CmIFL+tuRteOfISfH4gVkBwYJ+rRbYBiS+8W4upwdug=; b=K93H/d1Sr6dgMUavbsBDXMMBoyZ7Xyr3BS6gWuDat/EQQS7jaFyPjnyL+WPmLcBs5H ED/smJG4SX5cYv9Dd9Ed94aJaB6r2jvs8lxMRa5ekarQJmCz768To6Y274oZK1BsQM49 RF/VStIoQJQU97k2OPpTF0ylaij4R8l2fexokWVhrFLRWbWrTcADTIAz88waqVvCmSs7 XedyXgkzRwS5caBXbYcIJFRm4SD9zViVBLWhskvFnobFAfIle8C3dL1XMvR2ryAue+3l YVnmFUNXNjS4RCSvdJUh9ERXIO+0yd/9TqeoMW+Wtf4EsDRdrrIz+j7PG/+SMUwlOqeI fV2Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b5si806664edf.402.2021.10.09.01.18.46; Sat, 09 Oct 2021 01:19:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-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-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230472AbhJIIR1 (ORCPT + 99 others); Sat, 9 Oct 2021 04:17:27 -0400 Received: from mga05.intel.com ([192.55.52.43]:64484 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230430AbhJIIR0 (ORCPT ); Sat, 9 Oct 2021 04:17:26 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10131"; a="312843197" X-IronPort-AV: E=Sophos;i="5.85,360,1624345200"; d="scan'208";a="312843197" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2021 01:15:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,360,1624345200"; d="scan'208";a="590785544" Received: from yilunxu-optiplex-7050.sh.intel.com (HELO localhost) ([10.239.159.162]) by orsmga004.jf.intel.com with ESMTP; 09 Oct 2021 01:15:19 -0700 Date: Sat, 9 Oct 2021 16:08:59 +0800 From: Xu Yilun To: Russ Weight Cc: mdf@kernel.org, linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org, trix@redhat.com, lgoncalv@redhat.com, hao.wu@intel.com, matthew.gerlach@intel.com Subject: Re: [PATCH v17 0/5] FPGA Image Load (previously Security Manager) Message-ID: <20211009080859.GA85181@yilunxu-OptiPlex-7050> References: <20210929230025.68961-1-russell.h.weight@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210929230025.68961-1-russell.h.weight@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 29, 2021 at 04:00:20PM -0700, Russ Weight wrote: > The FPGA Image Load framework provides an API to upload image > files to an FPGA device. Image files are self-describing. They could > contain FPGA images, BMC images, Root Entry Hashes, or other device > specific files. It is up to the lower-level device driver and the > target device to authenticate and disposition the file data. I've reconsider the FPGA persistent image update again, and think we may include it in FPGA manager framework. Sorry I raised this topic again when it is already at patch v17, but now I need to consider more seriously than before. We have consensus the FPGA persistent image update is just like a normal firmware update which finally writes the nvmem like flash or eeprom, while the current FPGA manager deals with the active FPGA region update and re-activation. Could we just expand the FPGA manager and let it handle the nvmem update as well? Many FPGA cards have nvmem and downloaders supports updating both FPGA region and nvmem. According to the patchset, the basic workflow of the 2 update types are quite similar, get the data, prepare for the HW, write and complete. They are already implemented in FPGA manager. We've discussed some differences like threading or canceling the update, which are not provided by FPGA manager but they may also nice to have for FPGA region update. An FPGA region update may also last for a long time?? So I think having 2 sets of similar frameworks in FPGA is unnecessary. My quick mind is that we add some flags in struct fpga_mgr & struct fpga_image_info to indicate the HW capability (support FPGA region update or nvmem update or both) of the download engine and the provided image type. Then the low-level driver knows how to download if it supports both image types. An char device could be added for each fpga manager dev, providing the user APIs for nvmem update. We may not use the char dev for FPGA region update cause it changes the system HW devices and needs device hotplug in FPGA region. We'd better leave it to FPGA region class, this is another topic. More discussion is appreciated. Thanks, Yilun