From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Osipenko Subject: Re: [PATCH v1 12/29] interconnect: Add memory interconnection providers for NVIDIA Tegra SoCs Date: Thu, 21 Nov 2019 20:33:58 +0300 Message-ID: References: <20191118200247.3567-1-digetx@gmail.com> <20191118200247.3567-13-digetx@gmail.com> <20191119063002.GE2462695@ulmo> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: Thierry Reding Cc: Jonathan Hunter , Peter De Schrijver , Mikko Perttunen , Georgi Djakov , Rob Herring , linux-tegra@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org 19.11.2019 19:58, Dmitry Osipenko пишет: > 19.11.2019 09:30, Thierry Reding пишет: >> On Mon, Nov 18, 2019 at 11:02:30PM +0300, Dmitry Osipenko wrote: >>> All NVIDIA Tegra SoCs have identical topology in regards to memory >>> interconnection between memory clients and memory controllers. >>> The memory controller (MC) and external memory controller (EMC) are >>> providing memory clients with required memory bandwidth. The memory >>> controller performs arbitration between memory clients, while the >>> external memory controller transfers data from/to DRAM and pipes that >>> data from/to memory controller. Memory controller interconnect provider >>> aggregates bandwidth requests from memory clients and sends the aggregated >>> request to EMC provider that scales DRAM frequency in order to satisfy the >>> bandwidth requirement. Memory controller provider could adjust hardware >>> configuration for a more optimal arbitration depending on bandwidth >>> requirements from memory clients, but this is unimplemented for now. >>> >>> Signed-off-by: Dmitry Osipenko >>> --- >>> drivers/interconnect/Kconfig | 1 + >>> drivers/interconnect/Makefile | 1 + >>> drivers/interconnect/tegra/Kconfig | 6 + >>> drivers/interconnect/tegra/Makefile | 4 + >>> drivers/interconnect/tegra/tegra-icc-emc.c | 138 +++++++++++++++++++++ >>> drivers/interconnect/tegra/tegra-icc-mc.c | 130 +++++++++++++++++++ >>> include/soc/tegra/mc.h | 26 ++++ >>> 7 files changed, 306 insertions(+) >>> create mode 100644 drivers/interconnect/tegra/Kconfig >>> create mode 100644 drivers/interconnect/tegra/Makefile >>> create mode 100644 drivers/interconnect/tegra/tegra-icc-emc.c >>> create mode 100644 drivers/interconnect/tegra/tegra-icc-mc.c >> >> Why does this have to be separate from the memory controller driver in >> drivers/memory/tegra? It seems like this requires a bunch of boilerplate >> just so that this code can live in the drivers/interconnect directory. > > It fits with the IOMMU separation. To me that it's a bit nicer to have > the separation for the ICC as well, but having ICC within memory > controller driver also will be fine. > > Indeed it looks like there is not much in the MC's provider code right > now, but maybe more stuff will be added later on. > >> If Georgi doesn't insist, I'd prefer if we carried this code directly in >> the drivers/memory/tegra directory so that we don't have so many >> indirections. >> >> Also, and I already briefly mentioned this in another reply, I think we >> don't need two providers here. The only one we're really interested in >> is the memory-client to memory-controller paths. The MC to EMC path is >> static. > > Perhaps it is fine to drop EMC path, I'll revisit it. > > [snip] One advantage of having both MC and EMC as ICC providers is that there won't be a need to mess with a custom coupling of MC-EMC drivers together because interconnect API naturally takes care of the coupling for us by telling ICC users to defer until both providers are registered. I'll take another look at this over the weekend, but for now my v1 variant looks appropriate in terms of a better hardware description and implementation in the code. 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=-5.0 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 85E34C432C3 for ; Fri, 22 Nov 2019 09:00:47 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 6397C20708 for ; Fri, 22 Nov 2019 09:00:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6397C20708 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BA8AD6E283; Fri, 22 Nov 2019 09:00:46 +0000 (UTC) Received: from mail-lf1-x142.google.com (mail-lf1-x142.google.com [IPv6:2a00:1450:4864:20::142]) by gabe.freedesktop.org (Postfix) with ESMTPS id 73F1E6F4B3 for ; Thu, 21 Nov 2019 17:34:02 +0000 (UTC) Received: by mail-lf1-x142.google.com with SMTP id l14so3282710lfh.10 for ; Thu, 21 Nov 2019 09:34:02 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=6J1piRgV0I8ZeSxFU2hLB+lhIu/EsMKbTjoUdKhBoh4=; b=sDBxUx8+p84oFHDTP1dwjejj1otK1ER+0nIcuI2EO1V6IpWOQrpW5w3gPYJPzeIpcB P1LF1uBeXPZwusXG5yzptt3TB8+Os8XJ1vG5+b1NVXul1+r5sadgsdVPr25xWOgTiyN+ /OF54zAWA9jhcOa9hTVtsxd/gA2gAGEkkfmauJHEirboLNd6Wxf4hJXa/wgJ/wPgthXa 6Aketz/4a7U3RBqnkaGwsnq0C4K30qSVR+VbDx9d12ehkZaI2sYpYfcfhVgtXJ28cgLD IpOx0Kqw+pvLeRsiGoq9BHkodytzg1TUr3kD/F//mF/7/smna3AvLa0nA+c/nBenuqop eAwg== X-Gm-Message-State: APjAAAU7sFDgKlrcLpGP9XYuMY2MdRIpcQYU18hUuY4LwDVdTpAoF/y5 N5CfbXKJn7S0tX/fpVzzHUY= X-Google-Smtp-Source: APXvYqzI4efW+jpylCKcwwlKWAScScn1OR7oGncmwtojSpUNDIX2q6OMNOWDFnG0E3FBtdAKJO/UzA== X-Received: by 2002:ac2:5dcc:: with SMTP id x12mr8758634lfq.163.1574357640859; Thu, 21 Nov 2019 09:34:00 -0800 (PST) Received: from [192.168.2.145] (79-139-233-37.dynamic.spd-mgts.ru. [79.139.233.37]) by smtp.googlemail.com with ESMTPSA id y7sm1738852lfb.75.2019.11.21.09.33.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 Nov 2019 09:34:00 -0800 (PST) Subject: Re: [PATCH v1 12/29] interconnect: Add memory interconnection providers for NVIDIA Tegra SoCs From: Dmitry Osipenko To: Thierry Reding References: <20191118200247.3567-1-digetx@gmail.com> <20191118200247.3567-13-digetx@gmail.com> <20191119063002.GE2462695@ulmo> Message-ID: Date: Thu, 21 Nov 2019 20:33:58 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Mailman-Approved-At: Fri, 22 Nov 2019 09:00:44 +0000 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=6J1piRgV0I8ZeSxFU2hLB+lhIu/EsMKbTjoUdKhBoh4=; b=cI7WavVQXW6YTTsx24kyro2bKraJeez/5xvP+u/FCt+8IEeH++xRr7bppVVaMcdStl VqYxOPhucE+noi9PVTucRx3xce0OO49s9ls3Rn0f9DRBFLG6X54uc7hLeS10i4nF8zW1 vuqLnHyIWSOvQTAvI4OJmhjUiY1gpB1znoS71dGYEKG5c26PdBdXjfB9+3tj8FSe1rlq smug1wpdMdRqaG6e0+o44KHpGF9s9eBS5+SP7KBhUOEvIakX82SUDuzGwQOlKU2wAIuo Tc4AiK8LReNqyA9rHaQQkFQxFrOOMP1aSH1H1iqDr3iROHhqGnFIYNZ6wnBnJV6FlKXk Lb0A== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-pm@vger.kernel.org, Peter De Schrijver , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Mikko Perttunen , Rob Herring , linux-tegra@vger.kernel.org, Jonathan Hunter , Georgi Djakov Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191121173358.TDAj1fcRa1B0XITKXdBM9HJH146yThYOlT0TLGDBLo8@z> MTkuMTEuMjAxOSAxOTo1OCwgRG1pdHJ5IE9zaXBlbmtvINC/0LjRiNC10YI6Cj4gMTkuMTEuMjAx OSAwOTozMCwgVGhpZXJyeSBSZWRpbmcg0L/QuNGI0LXRgjoKPj4gT24gTW9uLCBOb3YgMTgsIDIw MTkgYXQgMTE6MDI6MzBQTSArMDMwMCwgRG1pdHJ5IE9zaXBlbmtvIHdyb3RlOgo+Pj4gQWxsIE5W SURJQSBUZWdyYSBTb0NzIGhhdmUgaWRlbnRpY2FsIHRvcG9sb2d5IGluIHJlZ2FyZHMgdG8gbWVt b3J5Cj4+PiBpbnRlcmNvbm5lY3Rpb24gYmV0d2VlbiBtZW1vcnkgY2xpZW50cyBhbmQgbWVtb3J5 IGNvbnRyb2xsZXJzLgo+Pj4gVGhlIG1lbW9yeSBjb250cm9sbGVyIChNQykgYW5kIGV4dGVybmFs IG1lbW9yeSBjb250cm9sbGVyIChFTUMpIGFyZQo+Pj4gcHJvdmlkaW5nIG1lbW9yeSBjbGllbnRz IHdpdGggcmVxdWlyZWQgbWVtb3J5IGJhbmR3aWR0aC4gVGhlIG1lbW9yeQo+Pj4gY29udHJvbGxl ciBwZXJmb3JtcyBhcmJpdHJhdGlvbiBiZXR3ZWVuIG1lbW9yeSBjbGllbnRzLCB3aGlsZSB0aGUK Pj4+IGV4dGVybmFsIG1lbW9yeSBjb250cm9sbGVyIHRyYW5zZmVycyBkYXRhIGZyb20vdG8gRFJB TSBhbmQgcGlwZXMgdGhhdAo+Pj4gZGF0YSBmcm9tL3RvIG1lbW9yeSBjb250cm9sbGVyLiBNZW1v cnkgY29udHJvbGxlciBpbnRlcmNvbm5lY3QgcHJvdmlkZXIKPj4+IGFnZ3JlZ2F0ZXMgYmFuZHdp ZHRoIHJlcXVlc3RzIGZyb20gbWVtb3J5IGNsaWVudHMgYW5kIHNlbmRzIHRoZSBhZ2dyZWdhdGVk Cj4+PiByZXF1ZXN0IHRvIEVNQyBwcm92aWRlciB0aGF0IHNjYWxlcyBEUkFNIGZyZXF1ZW5jeSBp biBvcmRlciB0byBzYXRpc2Z5IHRoZQo+Pj4gYmFuZHdpZHRoIHJlcXVpcmVtZW50LiBNZW1vcnkg Y29udHJvbGxlciBwcm92aWRlciBjb3VsZCBhZGp1c3QgaGFyZHdhcmUKPj4+IGNvbmZpZ3VyYXRp b24gZm9yIGEgbW9yZSBvcHRpbWFsIGFyYml0cmF0aW9uIGRlcGVuZGluZyBvbiBiYW5kd2lkdGgK Pj4+IHJlcXVpcmVtZW50cyBmcm9tIG1lbW9yeSBjbGllbnRzLCBidXQgdGhpcyBpcyB1bmltcGxl bWVudGVkIGZvciBub3cuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogRG1pdHJ5IE9zaXBlbmtvIDxk aWdldHhAZ21haWwuY29tPgo+Pj4gLS0tCj4+PiAgZHJpdmVycy9pbnRlcmNvbm5lY3QvS2NvbmZp ZyAgICAgICAgICAgICAgIHwgICAxICsKPj4+ICBkcml2ZXJzL2ludGVyY29ubmVjdC9NYWtlZmls ZSAgICAgICAgICAgICAgfCAgIDEgKwo+Pj4gIGRyaXZlcnMvaW50ZXJjb25uZWN0L3RlZ3JhL0tj b25maWcgICAgICAgICB8ICAgNiArCj4+PiAgZHJpdmVycy9pbnRlcmNvbm5lY3QvdGVncmEvTWFr ZWZpbGUgICAgICAgIHwgICA0ICsKPj4+ICBkcml2ZXJzL2ludGVyY29ubmVjdC90ZWdyYS90ZWdy YS1pY2MtZW1jLmMgfCAxMzggKysrKysrKysrKysrKysrKysrKysrCj4+PiAgZHJpdmVycy9pbnRl cmNvbm5lY3QvdGVncmEvdGVncmEtaWNjLW1jLmMgIHwgMTMwICsrKysrKysrKysrKysrKysrKysK Pj4+ICBpbmNsdWRlL3NvYy90ZWdyYS9tYy5oICAgICAgICAgICAgICAgICAgICAgfCAgMjYgKysr Kwo+Pj4gIDcgZmlsZXMgY2hhbmdlZCwgMzA2IGluc2VydGlvbnMoKykKPj4+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9pbnRlcmNvbm5lY3QvdGVncmEvS2NvbmZpZwo+Pj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2ludGVyY29ubmVjdC90ZWdyYS9NYWtlZmlsZQo+Pj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2ludGVyY29ubmVjdC90ZWdyYS90ZWdyYS1pY2MtZW1jLmMK Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9pbnRlcmNvbm5lY3QvdGVncmEvdGVncmEt aWNjLW1jLmMKPj4KPj4gV2h5IGRvZXMgdGhpcyBoYXZlIHRvIGJlIHNlcGFyYXRlIGZyb20gdGhl IG1lbW9yeSBjb250cm9sbGVyIGRyaXZlciBpbgo+PiBkcml2ZXJzL21lbW9yeS90ZWdyYT8gSXQg c2VlbXMgbGlrZSB0aGlzIHJlcXVpcmVzIGEgYnVuY2ggb2YgYm9pbGVycGxhdGUKPj4ganVzdCBz byB0aGF0IHRoaXMgY29kZSBjYW4gbGl2ZSBpbiB0aGUgZHJpdmVycy9pbnRlcmNvbm5lY3QgZGly ZWN0b3J5Lgo+IAo+IEl0IGZpdHMgd2l0aCB0aGUgSU9NTVUgc2VwYXJhdGlvbi4gVG8gbWUgdGhh dCBpdCdzIGEgYml0IG5pY2VyIHRvIGhhdmUKPiB0aGUgc2VwYXJhdGlvbiBmb3IgdGhlIElDQyBh cyB3ZWxsLCBidXQgaGF2aW5nIElDQyB3aXRoaW4gbWVtb3J5Cj4gY29udHJvbGxlciBkcml2ZXIg YWxzbyB3aWxsIGJlIGZpbmUuCj4gCj4gSW5kZWVkIGl0IGxvb2tzIGxpa2UgdGhlcmUgaXMgbm90 IG11Y2ggaW4gdGhlIE1DJ3MgcHJvdmlkZXIgY29kZSByaWdodAo+IG5vdywgYnV0IG1heWJlIG1v cmUgc3R1ZmYgd2lsbCBiZSBhZGRlZCBsYXRlciBvbi4KPiAKPj4gSWYgR2VvcmdpIGRvZXNuJ3Qg aW5zaXN0LCBJJ2QgcHJlZmVyIGlmIHdlIGNhcnJpZWQgdGhpcyBjb2RlIGRpcmVjdGx5IGluCj4+ IHRoZSBkcml2ZXJzL21lbW9yeS90ZWdyYSBkaXJlY3Rvcnkgc28gdGhhdCB3ZSBkb24ndCBoYXZl IHNvIG1hbnkKPj4gaW5kaXJlY3Rpb25zLgo+Pgo+PiBBbHNvLCBhbmQgSSBhbHJlYWR5IGJyaWVm bHkgbWVudGlvbmVkIHRoaXMgaW4gYW5vdGhlciByZXBseSwgSSB0aGluayB3ZQo+PiBkb24ndCBu ZWVkIHR3byBwcm92aWRlcnMgaGVyZS4gVGhlIG9ubHkgb25lIHdlJ3JlIHJlYWxseSBpbnRlcmVz dGVkIGluCj4+IGlzIHRoZSBtZW1vcnktY2xpZW50IHRvIG1lbW9yeS1jb250cm9sbGVyIHBhdGhz LiBUaGUgTUMgdG8gRU1DIHBhdGggaXMKPj4gc3RhdGljLgo+IAo+IFBlcmhhcHMgaXQgaXMgZmlu ZSB0byBkcm9wIEVNQyBwYXRoLCBJJ2xsIHJldmlzaXQgaXQuCj4gCj4gW3NuaXBdCgpPbmUgYWR2 YW50YWdlIG9mIGhhdmluZyBib3RoIE1DIGFuZCBFTUMgYXMgSUNDIHByb3ZpZGVycyBpcyB0aGF0 IHRoZXJlCndvbid0IGJlIGEgbmVlZCB0byBtZXNzIHdpdGggYSBjdXN0b20gY291cGxpbmcgb2Yg TUMtRU1DIGRyaXZlcnMKdG9nZXRoZXIgYmVjYXVzZSBpbnRlcmNvbm5lY3QgQVBJIG5hdHVyYWxs eSB0YWtlcyBjYXJlIG9mIHRoZSBjb3VwbGluZwpmb3IgdXMgYnkgdGVsbGluZyBJQ0MgdXNlcnMg dG8gZGVmZXIgdW50aWwgYm90aCBwcm92aWRlcnMgYXJlIHJlZ2lzdGVyZWQuCgpJJ2xsIHRha2Ug YW5vdGhlciBsb29rIGF0IHRoaXMgb3ZlciB0aGUgd2Vla2VuZCwgYnV0IGZvciBub3cgbXkgdjEK dmFyaWFudCBsb29rcyBhcHByb3ByaWF0ZSBpbiB0ZXJtcyBvZiBhIGJldHRlciBoYXJkd2FyZSBk ZXNjcmlwdGlvbiBhbmQKaW1wbGVtZW50YXRpb24gaW4gdGhlIGNvZGUuCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==