Received: by 10.223.176.5 with SMTP id f5csp2043226wra; Thu, 8 Feb 2018 07:34:43 -0800 (PST) X-Google-Smtp-Source: AH8x227lzlaP7S3dvp0bLtCTruhSt6sEEo0wjMqwnTGbKHEXsFAZp03NKlO7DRqldiQt61GmKaKC X-Received: by 10.98.49.199 with SMTP id x190mr1083032pfx.1.1518104083129; Thu, 08 Feb 2018 07:34:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518104083; cv=none; d=google.com; s=arc-20160816; b=ubSbTePV+C3zxQLMncKDObugDRfgF+Wu1xQirwqFPB9frppBQ2wtQqXa8hHQXOVw4j kGvaUs5fsuvrMPIvbwowkDY+i/CWMPgF/QMVK8/3eQ1NjBpE/Q7gFykRnI53WdLtAjmj xQL6DKjeLHvKHtDoK+j1/Dmxai041TyGtFhYhNciLEm2g75t7BIn7xrDXZCYegYFOhOR 8yf5gkblnaThIHRTpacRoxpZjRM++uTfK7ytws9s1tG8cN+1PZiJ1aIUe9v82NRE2YZf Im2SK57UlJc9NiFKsc7F56FwMl37tYhwX98fHDSC4chr6Y5ipfMkSokukjarijAsQ8CI 1/Fg== 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:arc-authentication-results; bh=wi+VP5Xoa2R72WnwZTDsbQ9YRDbuNtudF4y/9Alclck=; b=gax7udaBFlOrqHp3z0Q1w0Tbh29cbGA55WagbsnRGt75L9tiphLob3zZecuetgyPGc H2W5AzduAGA3WOjrNSewiaEs4XtIrcVQ53D8oeSWLiBg299YSwHColkIHsFWteOdg7Uw MkfIfVvOQBQgx9MYwFu+SsmopfeLyc9OVIJc3tZtjYWAQ6vIDbj+tdDsFyKfpRYIhW7l 0ffyG+0L3os4QYhn1wxfyheUCVoHhd1ZVPIi8rqszA+cekzYR6mkRP9Qlv9yzhfmGrjV +zJYNraQYCHwr4chlSOacY78MND/E78xQDwnEEk90DW6JTzQRdJeKPfOsiuLA8wgraIJ sZfg== ARC-Authentication-Results: i=1; mx.google.com; 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 v67si135340pfj.77.2018.02.08.07.34.28; Thu, 08 Feb 2018 07:34:43 -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; 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 S1752091AbeBHPdS (ORCPT + 99 others); Thu, 8 Feb 2018 10:33:18 -0500 Received: from bastet.se.axis.com ([195.60.68.11]:44926 "EHLO bastet.se.axis.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750882AbeBHPdQ (ORCPT ); Thu, 8 Feb 2018 10:33:16 -0500 Received: from localhost (localhost [127.0.0.1]) by bastet.se.axis.com (Postfix) with ESMTP id 32934188A2; Thu, 8 Feb 2018 16:33:15 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at bastet.se.axis.com Received: from bastet.se.axis.com ([IPv6:::ffff:127.0.0.1]) by localhost (bastet.se.axis.com [::ffff:127.0.0.1]) (amavisd-new, port 10024) with LMTP id vBOEHYitlIy3; Thu, 8 Feb 2018 16:33:11 +0100 (CET) Received: from boulder03.se.axis.com (boulder03.se.axis.com [10.0.8.17]) by bastet.se.axis.com (Postfix) with ESMTPS id 6042B188CA; Thu, 8 Feb 2018 16:33:10 +0100 (CET) Received: from boulder03.se.axis.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2E7151E07F; Thu, 8 Feb 2018 16:33:10 +0100 (CET) Received: from boulder03.se.axis.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 30FA41E0B8; Thu, 8 Feb 2018 16:18:00 +0100 (CET) Received: from seth.se.axis.com (unknown [10.0.2.172]) by boulder03.se.axis.com (Postfix) with ESMTP; Thu, 8 Feb 2018 16:18:00 +0100 (CET) Received: from lnxartpec1.se.axis.com (lnxartpec1.se.axis.com [10.88.4.10]) by seth.se.axis.com (Postfix) with ESMTP id 242772A9F; Thu, 8 Feb 2018 16:18:00 +0100 (CET) Received: by lnxartpec1.se.axis.com (Postfix, from userid 20283) id 1DCA5401B8; Thu, 8 Feb 2018 16:18:00 +0100 (CET) Date: Thu, 8 Feb 2018 16:18:00 +0100 From: Niklas Cassel To: Kishon Vijay Abraham I Cc: Lorenzo Pieralisi , Bjorn Helgaas , Sekhar Nori , Cyrille Pitchen , Shawn Lin , John Keeping , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/3] PCI: endpoint: Handle 64-bit BARs properly Message-ID: <20180208151759.GB13618@axis.com> References: <20180208123346.20784-1-niklas.cassel@axis.com> <20180208123346.20784-2-niklas.cassel@axis.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.1+16 (8a41d1c2f267) (2017-09-22) X-TM-AS-GCONF: 00 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Feb 08, 2018 at 06:17:32PM +0530, Kishon Vijay Abraham I wrote: > Hi, > > On Thursday 08 February 2018 06:03 PM, Niklas Cassel wrote: > > A 64-bit BAR uses the succeeding BAR for the upper bits, therefore > > we cannot call pci_epc_set_bar() on a BAR that follows a 64-bit BAR. > > > > If pci_epc_set_bar() is called with flag PCI_BASE_ADDRESS_MEM_TYPE_64, > > Not related to $patch. But I have a query on when PCI_BASE_ADDRESS_MEM_TYPE_64 > should be set. Whether if the size is > 4G or if the address can be mapped > anywhere in the 64-bit PCIe address space or both? Hello Kishon, Since 32-bit BARs work fine on 64-bit CPUs, and since 64-bit BARs work fine on 32 bit CPUs (as long as we assign them an address <4G, and their (combined) size is not too big), perhaps the best way would be if pci-epf-test always defaults to 32-bit BARs, and a module parameter says if we should test 64-bit BARs. Just because a 64-bit BAR can be assigned an address >4G, and have a size >4G, doesn't mean that we have to give it those properties. This way we can have some testing of 64-bit BARs on 32-bit CPUs, even though more extensive testing (e.g. having a BAR with a size >4G) would require a 64-bit CPU. Regards, Niklas > > Thanks > Kishon > > it has to be up to the controller driver to write both BAR[x] and BAR[x+1] > > (and BAR_mask[x] and BAR_mask[x+1]). > > > > Signed-off-by: Niklas Cassel > > --- > > drivers/pci/endpoint/functions/pci-epf-test.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c > > index 800da09d9005..eef85820f59e 100644 > > --- a/drivers/pci/endpoint/functions/pci-epf-test.c > > +++ b/drivers/pci/endpoint/functions/pci-epf-test.c > > @@ -382,6 +382,8 @@ static int pci_epf_test_set_bar(struct pci_epf *epf) > > if (bar == test_reg_bar) > > return ret; > > } > > + if (flags & PCI_BASE_ADDRESS_MEM_TYPE_64) > > + bar++; > > } > > > > return 0; > >