Received: by 10.192.165.148 with SMTP id m20csp597211imm; Fri, 20 Apr 2018 11:56:06 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/BMP6QWQgrwhDzKdVq7RqSD4ciLALu/BOvLzv3Xm2F4dJcULoaCws4WpsYkYH5zBBpthhV X-Received: by 10.101.66.6 with SMTP id c6mr9379842pgq.133.1524250566302; Fri, 20 Apr 2018 11:56:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524250566; cv=none; d=google.com; s=arc-20160816; b=XkLyU9Ff5gFLKuSkmkWMnKTwow4ECaKGW1h4JQomKb9e7UC3hdFcCqHWdCSfYAyN9T 6lx2a0kc8sjLZGajydHyK0ZKP4rsZAdAbOKtajGXzL4pmu/8Hk19avjdBgujnt1qmQgy b9qxp41vaU5VTCHsPU5tkPYO3gSY8QF7fopjVj40bDzNDMOy2SU0bglX9Hw2VQLLGwFk MXFOLnmlCKhdNbp6FGOKz/gwT44JfkkM0gD4HaJXNpY+qyJl1W5anXYM+rFFXYURX5JX YLJDv3fR1kE1uPq8x3ALDOouwMJMXeo+uRRmI47YHJBB2xiEqjteTleNLIfl4QNJ7KnJ t4kA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:message-id:references :in-reply-to:subject:cc:to:from:date:content-transfer-encoding :mime-version:dkim-signature:dkim-signature :arc-authentication-results; bh=42QdMJyGABi2U1p8OX7cVQWWl2TUf8Q/xw1PRmFOIHY=; b=XR8ceCiTnDNNpLiSj7x1jGZW7CDdJU66scfG+s7BT8i7ihuj5UGd3mbl8uX6UVxSyI 6Es78FX/QAmMn9lMMjVp/mfRr0sI4T130sSjgVP9Wl/iBzQSd+o4MzscUE4aWMkkIPdH SNaCh9CXPSaGNJ8Yv9gPUaxbfuVZqeejp9HJiJ7ThpiWX07+RgzRvsSR11BtYMKjih5V MSOE/GEsBO2nLMdXu56dC0rYeJJaTaBMVwShM+eehvnCUZWAT32xPCfJST8nGBoCoVtM 9mDiwqJz3AF3X10gyWrBZgt3KKyIEfXH7fZG/kWVtx+NKHmRRSzozXBLDSOPYKMAYL/u nquQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=KE2xSPhW; dkim=pass header.i=@codeaurora.org header.s=default header.b=hsB5Eub1; 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 q4-v6si6058586pll.261.2018.04.20.11.55.28; Fri, 20 Apr 2018 11:56:06 -0700 (PDT) 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; dkim=pass header.i=@codeaurora.org header.s=default header.b=KE2xSPhW; dkim=pass header.i=@codeaurora.org header.s=default header.b=hsB5Eub1; 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 S1752785AbeDTSvp (ORCPT + 99 others); Fri, 20 Apr 2018 14:51:45 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:44662 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750927AbeDTSvm (ORCPT ); Fri, 20 Apr 2018 14:51:42 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 95EC26032D; Fri, 20 Apr 2018 18:51:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1524250301; bh=SKa6LPeFRih7REmtyNcowLh7uiykb+9Kpe4C2hO2vjY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=KE2xSPhWnZI3qVA64uMRU/HKBAMopZJZOF5YO0r32YXzem+QdouEew4kqL9v4RxZm qKVvK9jCyxCY1oncD6ot7kooaNuO5gikXa+aDMjiJ7UKyTaoviCicfdQg6rz7Kz07+ fRO4c1d86H9W0J//6o/mjeNcqRN5e6v1yT6yhipw= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.codeaurora.org (Postfix) with ESMTP id 7437860310; Fri, 20 Apr 2018 18:51:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1524250300; bh=SKa6LPeFRih7REmtyNcowLh7uiykb+9Kpe4C2hO2vjY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=hsB5Eub1TaJcPHyPuIgf1mY3kswLUgyPhch0nLtGV4QE/kj/WoBuNjeFRZoKPK+gi +g6M9ZbqjnqJgD92HyqFKyXMS3p2mMVfyu8Zt31FQG3P+F+d+Y7jtXzJtxk2Xk0yAv SPwg6KOV/6KIfWEyEUlrxkkKsRrw3XcMLvhhxE7g= MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Fri, 20 Apr 2018 11:51:40 -0700 From: Channa To: Rob Herring Cc: Rishabh Bhatnagar , "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" , linux-arm-msm , devicetree@vger.kernel.org, linux-arm@lists.infradead.org, linux-kernel@vger.kernel.org, Trilok Soni , Kyle Yan , Stanimir Varbanov , Evan Green , linux-kernel-owner@vger.kernel.org Subject: Re: [PATCH v4 1/2] Documentation: Documentation for qcom, llcc In-Reply-To: <589e84221ca7723c1739f713216abce5@codeaurora.org> References: <1523390893-10904-1-git-send-email-rishabhb@codeaurora.org> <1523390893-10904-2-git-send-email-rishabhb@codeaurora.org> <20180416145912.ja7d2xd2kqiukrgl@rob-hp-laptop> <9a9ffe61f85dd28199bcc2d449097059@codeaurora.org> <1d31f2d727d32922aaf98c345723229e@codeaurora.org> <589e84221ca7723c1739f713216abce5@codeaurora.org> Message-ID: <8cb9bd887d94bedfb43225569647337e@codeaurora.org> X-Sender: ckadabi@codeaurora.org User-Agent: Roundcube Webmail/1.2.5 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2018-04-18 11:11, Channa wrote: > On 2018-04-18 07:52, Rob Herring wrote: >> On Tue, Apr 17, 2018 at 5:12 PM, wrote: >>> On 2018-04-17 10:43, rishabhb@codeaurora.org wrote: >>>> >>>> On 2018-04-16 07:59, Rob Herring wrote: >>>>> >>>>> On Tue, Apr 10, 2018 at 01:08:12PM -0700, Rishabh Bhatnagar wrote: >>>>>> >>>>>> Documentation for last level cache controller device tree >>>>>> bindings, >>>>>> client bindings usage examples. >>>>> >>>>> >>>>> "Documentation: Documentation ..."? That wastes a lot of the >>>>> subject >>>>> line... The preferred prefix is "dt-bindings: ..." >>>>> >>>>>> >>>>>> Signed-off-by: Channagoud Kadabi >>>>>> Signed-off-by: Rishabh Bhatnagar >>>>>> --- >>>>>> .../devicetree/bindings/arm/msm/qcom,llcc.txt | 58 >>>>>> ++++++++++++++++++++++ >>>>>> 1 file changed, 58 insertions(+) >>>>>> create mode 100644 >>>>>> Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt >>>>>> >>>>>> diff --git >>>>>> a/Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt >>>>>> b/Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt >>>>>> new file mode 100644 >>>>>> index 0000000..497cf0f >>>>>> --- /dev/null >>>>>> +++ b/Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt >>>>>> @@ -0,0 +1,58 @@ >>>>>> +== Introduction== >>>>>> + >>>>>> +LLCC (Last Level Cache Controller) provides last level of cache >>>>>> memory >>>>>> in SOC, >>>>>> +that can be shared by multiple clients. Clients here are >>>>>> different >>>>>> cores in the >>>>>> +SOC, the idea is to minimize the local caches at the clients and >>>>>> migrate to >>>>>> +common pool of memory >>>>>> + >>>>>> +Properties: >>>>>> +- compatible: >>>>>> + Usage: required >>>>>> + Value type: >>>>>> + Definition: must be "qcom,sdm845-llcc" >>>>>> + >>>>>> +- reg: >>>>>> + Usage: required >>>>>> + Value Type: >>>>>> + Definition: must be addresses and sizes of the LLCC >>>>>> registers >>>>> >>>>> >>>>> How many address ranges? >>>>> >>>> It consists of just one address range. I'll edit the definition to >>>> make >>>> it more clear. >>>>>> >>>>>> + >>>>>> +- #cache-cells: >>>>> >>>>> >>>>> This is all written as it is a common binding, but it is not one. >>>>> >>>>> You already have most of the configuration data for each client in >>>>> the >>>>> driver, I think I'd just put the client connection there too. Is >>>>> there >>>>> any variation of this for a given SoC? >>>>> >>>> #cache-cells and max-slices won't change for a given SOC. So you >>>> want me >>>> to hard-code in the driver itself? >>>> >>> I can use of_parse_phandle_with_fixed_args function and fix the >>> number of >>> args as 1 instead of keeping #cache-cells here in DT. Does that look >>> fine? >> >> No, I'm saying why even put cache-slices properties in DT to begin >> with? You could just define client id's within the kernel and clients >> can use those instead of getting the id from the DT. > > The reason to add cache-slices here is to establish a connection > between > client and system cache. For example if we have multiple instances of > system cache blocks and client wants to choose a system cache instance > based on the usecase then its easier to establish this connection using > device tree than hard coding in the driver. > >> >> I have a couple of hesitations with putting this into the DT. First, I >> think a cache is just one aspect of describing the interconnect >> between masters and memory (and there's been discussions on >> interconnect bindings too) and any binding needs to consider all of >> the aspects of the interconnect. Second, I'd expect this cache >> architecture will change SoC to SoC and the binding here is pretty >> closely tied to the current cache implementation (e.g. slices). If >> there were a bunch of SoCs with the same design and just different >> client IDs (like interrupt IDs), then I'd feel differently. > > This is partially true, a bunch of SoCs would support this design but > clients IDs are not expected to change. So Ideally client drivers could > hard code these IDs. > > However I have other concerns of moving the client Ids in the driver. > The way the APIs implemented today are as follows: > #1. Client calls into system cache driver to get cache slice handle > with the usecase Id as input. > #2. System cache driver gets the phandle of system cache instance from > the client device to obtain the private data. > #3. Based on the usecase Id perform look up in the private data to get > cache slice handle. > #4. Return the cache slice handle to client > > If we don't have the connection between client & system cache then the > private data needs to declared as static global in the system cache > driver, > that limits us to have just once instance of system cache block. > > >> >> Rob Hi Rob: Can you please provide your opinion on the approach here? Thanks, Channa -- -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project