From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B43D0C432C0 for ; Tue, 3 Dec 2019 11:51:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 88C7920684 for ; Tue, 3 Dec 2019 11:51:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575373876; bh=zrwFlvXIoyYXgEDfGx6efgE7yp3Q9uDLj44V2/s7VgM=; h=To:Subject:Date:From:Cc:In-Reply-To:References:List-ID:From; b=tCOLPYfL3QpD5VsnkGUXk90zfOZ8KxU+1o5ulsYsgDDIa8pmnZfq/GO7t01lGKPmt FMN+NEiLuaUcsWNKU37h0LnHZheFFNFbc350Sh5etEz05DN2qh3+KVjBGr7qzEOAXe 2y7NAzQV3gAG6jtwKxkAJwgC9d63xhrSxfvWe3vQ= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725954AbfLCLvM (ORCPT ); Tue, 3 Dec 2019 06:51:12 -0500 Received: from inca-roads.misterjones.org ([213.251.177.50]:39275 "EHLO inca-roads.misterjones.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725907AbfLCLvM (ORCPT ); Tue, 3 Dec 2019 06:51:12 -0500 Received: from www-data by cheepnis.misterjones.org with local (Exim 4.80) (envelope-from ) id 1ic6hv-0004Si-8u; Tue, 03 Dec 2019 12:51:07 +0100 To: Xiaowei Bao Subject: RE: [PATCH] PCI: layerscape: Add the SRIOV support in host side X-PHP-Originating-Script: 0:main.inc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Tue, 03 Dec 2019 11:51:07 +0000 From: Marc Zyngier Cc: , , "M.h. Lian" , Mingkai Hu , Roy Zang , , , , , , , , "Z.q. Hou" In-Reply-To: References: <20191202104506.27916-1-xiaowei.bao@nxp.com> <606a00a2edcf077aa868319e0daa4dbc@www.loen.fr> Message-ID: <3dcdf44eb76390730658e3f4d932620c@www.loen.fr> X-Sender: maz@kernel.org User-Agent: Roundcube Webmail/0.7.2 X-SA-Exim-Connect-IP: X-SA-Exim-Rcpt-To: xiaowei.bao@nxp.com, robh+dt@kernel.org, frowand.list@gmail.com, minghuan.lian@nxp.com, mingkai.hu@nxp.com, roy.zang@nxp.com, lorenzo.pieralisi@arm.com, andrew.murray@arm.com, bhelgaas@google.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, zhiqiang.hou@nxp.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on cheepnis.misterjones.org); SAEximRunCond expanded to false Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org On 2019-12-03 01:42, Xiaowei Bao wrote: >> -----Original Message----- >> From: Marc Zyngier >> Sent: 2019年12月2日 20:48 >> To: Xiaowei Bao >> Cc: robh+dt@kernel.org; frowand.list@gmail.com; M.h. Lian >> ; Mingkai Hu ; Roy Zang >> ; lorenzo.pieralisi@arm.com; >> andrew.murray@arm.com; >> bhelgaas@google.com; devicetree@vger.kernel.org; >> linux-kernel@vger.kernel.org; linux-pci@vger.kernel.org; >> linux-arm-kernel@lists.infradead.org; Z.q. Hou >> >> Subject: Re: [PATCH] PCI: layerscape: Add the SRIOV support in host >> side >> >> On 2019-12-02 10:45, Xiaowei Bao wrote: >> > GIC get the map relations of devid and stream id from the msi-map >> > property of DTS, our platform add this property in u-boot base on >> the >> > PCIe device in the bus, but if enable the vf device in kernel, the >> vf >> > device msi-map will not set, so the vf device can't work, this >> patch >> > purpose is that manage the stream id and device id map relations >> > dynamically in kernel, and make the new PCIe device work in >> kernel. >> > >> > Signed-off-by: Xiaowei Bao >> > --- >> > drivers/of/irq.c | 9 +++ >> > drivers/pci/controller/dwc/pci-layerscape.c | 94 >> > +++++++++++++++++++++++++++++ >> > drivers/pci/probe.c | 6 ++ >> > drivers/pci/remove.c | 6 ++ >> > 4 files changed, 115 insertions(+) >> > >> > diff --git a/drivers/of/irq.c b/drivers/of/irq.c index >> > a296eaf..791e609 100644 >> > --- a/drivers/of/irq.c >> > +++ b/drivers/of/irq.c >> > @@ -576,6 +576,11 @@ void __init of_irq_init(const struct >> of_device_id >> > *matches) >> > } >> > } >> > >> > +u32 __weak ls_pcie_streamid_fix(struct device *dev, u32 rid) { >> > + return rid; >> > +} >> > + >> > static u32 __of_msi_map_rid(struct device *dev, struct >> device_node >> > **np, >> > u32 rid_in) >> > { >> > @@ -590,6 +595,10 @@ static u32 __of_msi_map_rid(struct device >> *dev, >> > struct device_node **np, >> > if (!of_map_rid(parent_dev->of_node, rid_in, "msi-map", >> > "msi-map-mask", np, &rid_out)) >> > break; >> > + >> > + if (rid_out == rid_in) >> > + rid_out = ls_pcie_streamid_fix(parent_dev, rid_in); >> >> Over my dead body. Get your firmware to properly program the LUT so >> that it >> presents the ITS with a reasonable topology. There is absolutely no >> way this >> kind of change makes it into the kernel. > > Sorry for this, I know it is not reasonable, but I have no other way, > as I know, ARM > get the mapping of stream ID to request ID from the msi-map property > of DTS, if > add a new device which need the stream ID and try to get it from the > msi-map of DTS, > it will failed and not work, yes? So could you give me a better > advice to fix this issue, > I would really appreciate any comments or suggestions, thanks a lot. Why can't firmware expose an msi-map/msi-map-mask that has a large enough range to ensure mapping of VFs? What are the limitations of the LUT that would prevent this from being configured before the kernel boots? Thanks, M. -- Jazz is not dead. It just smells funny...