Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp548898pxu; Tue, 1 Dec 2020 19:09:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJwr+SkN0AdA/LFo7S9Ermv6n9NtsEV+fBsFCKa4LBpQa7FL+tV3gX5lkv8vq03cJwrC5G1Q X-Received: by 2002:aa7:d711:: with SMTP id t17mr615939edq.83.1606878579719; Tue, 01 Dec 2020 19:09:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606878579; cv=none; d=google.com; s=arc-20160816; b=IAXcqrAiWXzLtsR0AFf3Y+R67iQGBOedYxJx9ek+QK2vBzMdw0CpI6HmED0RoZfTdD zWjnnl9vKnQtBJvo1WdXAzi9ZIyojqgDrw6LrpF80yKU2eZkBQcnzQEH+v/JEU2sPG/R 6bVB8yoLghea4ip/sFuXbilLa8X8rkQ8gLnIDFdhdgupk2SGkNDQmqhOZLWSlAu71g/0 edbUgptUik1A1Vu6YGZKqpXPmGuxowpHeaRe5vbvTxboap5bGP1rNQ9BFIWrB8eXZefY hSGy3wSFNqlpZwILKjWs8NMWLYsar3l9YooosgpCw2mbo19KFs5OBFDgqko58bY0zqjL iCIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :ironport-sdr:ironport-sdr; bh=84ktVdXpWQTtHudf7VXA1zMbuOBM3wOL6ItKrRmb5us=; b=TToyBNV0AzeToAuHVvGpADrvgpX0L5TJWExNk/n9tQtBzcSntIFeqIf4EmO48ZfQFn /N/5S+Lb+trr3vdp6cgzqdlziw9676gLn8ir+PsaMRRyLO4DAAQlFDjnRynW4ol7Sl+L EPjZH/gcGzLhl1jWzrHEB3zjZ1562DBGRUdWnAQFDPMagqEVkqJvjemFOZ0HAKGVEx7+ ZIn8zqBGANrTNTmEBNJUUMb1DS9jI6qbgAZgBSIW9qv9OhNV/CC4PCMinanOQRbcDCWd OUPdnY2o7in/xMTD4DoXGudQz/TEJxamd7Vnu15V46tvYxxmKPhAF11IJ0S41tA5O7Q6 UsUA== 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 l20si53721eje.737.2020.12.01.19.09.16; Tue, 01 Dec 2020 19:09:39 -0800 (PST) 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 S1727033AbgLBDFs (ORCPT + 99 others); Tue, 1 Dec 2020 22:05:48 -0500 Received: from mga03.intel.com ([134.134.136.65]:37973 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726441AbgLBDFr (ORCPT ); Tue, 1 Dec 2020 22:05:47 -0500 IronPort-SDR: KpvNgF/FhCjUUVsWF7bHwJH9cEsWGgKKeEPfiPs0vXnfZ4oonIep0YuWDzfe0uAB8+xId8lwMN 8+zSYgf8A1yA== X-IronPort-AV: E=McAfee;i="6000,8403,9822"; a="173041944" X-IronPort-AV: E=Sophos;i="5.78,385,1599548400"; d="scan'208";a="173041944" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2020 19:04:57 -0800 IronPort-SDR: GBCM2P7tgqOK8o7TvMfXOZ+BefCxHQCn7xcH9OAKNbNSwNraesLQiiwx2iBK7mq5DGaa2Aq8Lp uCgOvMAd1pfA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,385,1599548400"; d="scan'208";a="539490975" Received: from yilunxu-optiplex-7050.sh.intel.com (HELO localhost) ([10.239.159.141]) by fmsmga005.fm.intel.com with ESMTP; 01 Dec 2020 19:04:55 -0800 Date: Wed, 2 Dec 2020 11:00:26 +0800 From: Xu Yilun To: Sonal Santan Cc: linux-kernel@vger.kernel.org, linux-fpga@vger.kernel.org, maxz@xilinx.com, lizhih@xilinx.com, michal.simek@xilinx.com, stefanos@xilinx.com, devicetree@vger.kernel.org Subject: Re: [PATCH Xilinx Alveo 7/8] fpga: xrt: Alveo management physical function driver Message-ID: <20201202030026.GD22103@yilunxu-OptiPlex-7050> References: <20201129000040.24777-1-sonals@xilinx.com> <20201129000040.24777-8-sonals@xilinx.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20201129000040.24777-8-sonals@xilinx.com> User-Agent: Mutt/1.5.24 (2015-08-30) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > +static int xmgmt_main_event_cb(struct platform_device *pdev, > + enum xrt_events evt, void *arg) > +{ > + struct xmgmt_main *xmm = platform_get_drvdata(pdev); > + struct xrt_event_arg_subdev *esd = (struct xrt_event_arg_subdev *)arg; > + enum xrt_subdev_id id; > + int instance; > + size_t fwlen; > + > + switch (evt) { > + case XRT_EVENT_POST_CREATION: { > + id = esd->xevt_subdev_id; > + instance = esd->xevt_subdev_instance; > + xrt_info(pdev, "processing event %d for (%d, %d)", > + evt, id, instance); > + > + if (id == XRT_SUBDEV_GPIO) > + xmm->gpio_ready = true; > + else if (id == XRT_SUBDEV_QSPI) > + xmm->flash_ready = true; > + else > + BUG_ON(1); > + > + if (xmm->gpio_ready && xmm->flash_ready) { > + int rc; > + > + rc = load_firmware_from_disk(pdev, &xmm->firmware_blp, > + &fwlen); > + if (rc != 0) { > + rc = load_firmware_from_flash(pdev, > + &xmm->firmware_blp, &fwlen); I'm curious that before the shell metadata is loaded, how the QSPI subdev is enumerated and get to work? The QSPI DT info itself is stored in metadata, is it? I didn't find the creation of leaf platform devices, maybe I can find the answer in the missing Patch #5? Thanks, Yilun > + } > + if (rc == 0 && is_valid_firmware(pdev, > + xmm->firmware_blp, fwlen)) > + (void) xmgmt_create_blp(xmm); > + else > + xrt_err(pdev, > + "failed to find firmware, giving up"); > + xmm->evt_hdl = NULL; > + } > + break; > + }