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.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED 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 9DB7EC43381 for ; Fri, 1 Mar 2019 01:58:46 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6469320842 for ; Fri, 1 Mar 2019 01:58:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="WJ/3ibJ4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6469320842 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=vZj3igTGhM3P9SMcqdOEiLSBuX5CACPoFsHo+sXe/18=; b=WJ/3ibJ4IlDA3s IoRPG6vCjGuC05Ql/TjMym337xChw8wBJK6MWCaoNxFct8jUb2DyDNsJHDIylaQ2t5uqBwFVun7DY rIOeRN6kxjEtG8Jd1Yuu6lyttN+Gh3gX9EhC+S7U9gxmWdXp8crv7oSpqwRZ9//QZENNdFUBB0zQ6 Q5z/ulphBKAoVyFqavlB/q0OLbEahv+cTJ+s3j6rbVxb1KC1xY+/815QGBkv05i8sZGTpAAYeXG3I udkwyzzeewvjg0qR0dDCRWFqHa74SuIEi/Xh+hFJ7mBHnaA1xk1g0WLFT1wgbWBXsM9BtNb53riau 3+dMVwCSaBtUuJKvaPKA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gzXRi-0004UM-L4; Fri, 01 Mar 2019 01:58:42 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gzXRe-0004TG-PJ; Fri, 01 Mar 2019 01:58:40 +0000 X-UUID: c164dfb059184335ae884ebc65d3d439-20190228 X-UUID: c164dfb059184335ae884ebc65d3d439-20190228 Received: from mtkcas67.mediatek.inc [(172.29.193.45)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 1866512668; Thu, 28 Feb 2019 17:58:31 -0800 Received: from MTKMBS31N2.mediatek.inc (172.27.4.87) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 28 Feb 2019 17:58:30 -0800 Received: from MTKCAS32.mediatek.inc (172.27.4.184) by MTKMBS31N2.mediatek.inc (172.27.4.87) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 1 Mar 2019 09:58:27 +0800 Received: from [10.17.3.153] (172.27.4.253) by MTKCAS32.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 1 Mar 2019 09:58:27 +0800 Message-ID: <1551405506.32061.18.camel@mhfsdcap03> Subject: Re: [PATCH v3 2/2] PCI: mediatek: Enlarge PCIe2AHB window size to support 4GB DRAM From: Honghui Zhang To: Lorenzo Pieralisi Date: Fri, 1 Mar 2019 09:58:26 +0800 In-Reply-To: <20190228174257.GA26501@e107981-ln.cambridge.arm.com> References: <1548999367-11733-1-git-send-email-honghui.zhang@mediatek.com> <1548999367-11733-3-git-send-email-honghui.zhang@mediatek.com> <20190228174257.GA26501@e107981-ln.cambridge.arm.com> X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190228_175838_860760_2EB20860 X-CRM114-Status: GOOD ( 21.60 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: youlin.pei@mediatek.com, ryder.lee@mediatek.com, poza@codeaurora.org, fred@fredlawl.com, linux-pci@vger.kernel.org, rafael.j.wysocki@intel.com, linux-kernel@vger.kernel.org, jianjun.wang@mediatek.com, linux-mediatek@lists.infradead.org, bhelgaas@google.com, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, 2019-02-28 at 17:42 +0000, Lorenzo Pieralisi wrote: > On Fri, Feb 01, 2019 at 01:36:07PM +0800, honghui.zhang@mediatek.com wrote: > > From: Honghui Zhang > > > > The PCIE_AXI_WINDOW0 defines the translate window size for the request > > from EP side. Request outside of this window will be treated as > > unsupported request. > > > > Enlarge this window size from fls(0xffffffff) to 2^33 to support 8GB > > translate address range then EP DMA is capable of fully access 4GB > > DRAM range(physical DRAM is start from 0x40000000). > > I have rewritten both patches logs with the aim of merging them even if > it is quite late in the cycle, first you have to explain something to > me. > Thanks very much for this. > fls(0xffffffff) = 0x1f, which by your logic -> 2^31 > > What does it mean given what you say above ? That PCI devices can't > do _any_ DMA in the current setting (given the DRAM start address) ? > I'm afraid so. >From the HW datasheet I got from our HW designer, the description for this pcie2axi_win_size filed is " Possible values are 12 to 36 which means 2^12 to 2^36 bytes, leaving this filed to 0 causes window to be disabled." Current setting set the window size as 2^31, which means the request from EP side could only access the address range from 0 to 0x8000_0000. Considering the DRAM start from 0x4000_0000, that means only the first 1GB(0x4000_0000 ~ 0x8000_0000) could be accessed by EP side DMA. This has not run into an error for our current usage, I guess because MT2712 and MT7622 have several type boards, most of are only have 2GB physical memory, and our test sample is not bigger enough to cover the case that EP DMA will access fully DRAM. Or most EP device does not have an built-in DMA engine, they may relay on the host side's MMIO(memory mapped IO) operations. Take MT2712 as example, in arch/arm64/boot/dts/mediatek/mt2712-evb.dts, the physical memory size is defined as 0x80000000 and is described by below node: memory@400000000 { device_type = "memory"; reg = <0 0x400000000 0 0x800000000> } Thanks. > Lorenzo > > > Reported-by: Bjorn Helgaas > > Signed-off-by: Honghui Zhang > > --- > > drivers/pci/controller/pcie-mediatek.c | 8 +++++++- > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c > > index c42fe5c..0b6c728 100644 > > --- a/drivers/pci/controller/pcie-mediatek.c > > +++ b/drivers/pci/controller/pcie-mediatek.c > > @@ -90,6 +90,12 @@ > > #define AHB2PCIE_SIZE(x) ((x) & GENMASK(4, 0)) > > #define PCIE_AXI_WINDOW0 0x448 > > #define WIN_ENABLE BIT(7) > > +/* > > + * Define PCIe to AHB window size as 2^33 to support max 8GB address space > > + * translate, support least 4GB DRAM size access from EP DMA(physical DRAM > > + * start from 0x40000000). > > + */ > > +#define PCIE2AHB_SIZE 0x21 > > > > /* PCIe V2 configuration transaction header */ > > #define PCIE_CFG_HEADER0 0x460 > > @@ -713,7 +719,7 @@ static int mtk_pcie_startup_port_v2(struct mtk_pcie_port *port) > > writel(val, port->base + PCIE_AHB_TRANS_BASE0_H); > > > > /* Set PCIe to AXI translation memory space.*/ > > - val = fls(0xffffffff) | WIN_ENABLE; > > + val = PCIE2AHB_SIZE | WIN_ENABLE; > > writel(val, port->base + PCIE_AXI_WINDOW0); > > > > return 0; > > -- > > 2.6.4 > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel