Received: by 10.192.165.156 with SMTP id m28csp1537403imm; Wed, 18 Apr 2018 11:13:28 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/F/k2HykLWxk6qK6MHL96WfhTP/F0q7Bi7dXnJCF67IuQ90SzBg/EzQUhYRFFJ7XnKwmiX X-Received: by 2002:a17:902:aa94:: with SMTP id d20-v6mr3105699plr.323.1524075208364; Wed, 18 Apr 2018 11:13:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524075208; cv=none; d=google.com; s=arc-20160816; b=jaPrmAghHuiYXaAzgXKHUmqIN3MxgqnyyiSC6z8egNAM+IunG5LdEfJCpTtiUikeKX 5pFWWiC/FlzWzNgFKsY4lD6az06Tj3WTE8wUZK6JoodJXEgz14uMAl5EtDw5B21Tva2o qcbci3rEQswADff+As6xCOUqgMKtyjRk+O6UVajTS/SNiCNCBltbrTgzQHNI71RbvUHB xH9c5elDkLobW0d05mr080wykIxtf/x+tu0FPR4eLcbSogp5bxi5keGbz4IiuOFmIdOs MP/VooV5sSFNG31NCygffyoSlR4Ve7E3ujuzJOu2pk6LXHjm55d/d80Q36IZ/q8Jyk0s b6wA== 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=32zXoeeELf5ii+wR4Z5Ol8ajGbMnwWirZ/DLrK5swU0=; b=logZcoM5xAA5+3ducWbQQ4+XqxahD0ayEoJalLkPdZxu2LFSt5NzAsPj303tG+nUwB sGifClPTyXYIKPm9l+ZteaF2N1nuus/lw0gqoQXDhq9N2iTn+q0nPSolfN87NxpTVey+ x9vyo43yFciXmBc/BEgftZ3PJ9anwT691ofjMqWOIt9xgi/zGfOXIBSldO/dCrZJdMJy gBzNVnp+Gd2OIblJrygEVrNAajoeaQx0UII16ng4bTTnEBze+icAjTJy1p+9jevfJgvn hpbzWdYitehIZP6Cps4GDHWTxO7g6IlOFYEs9Fnq11OmtrQCsVF+jCDhzHz8BzdZtEWK Qhuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=dXpHwPIm; dkim=pass header.i=@codeaurora.org header.s=default header.b=dXpHwPIm; 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 a8-v6si2005835pln.349.2018.04.18.11.13.13; Wed, 18 Apr 2018 11:13:28 -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=dXpHwPIm; dkim=pass header.i=@codeaurora.org header.s=default header.b=dXpHwPIm; 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 S1752514AbeDRSMC (ORCPT + 99 others); Wed, 18 Apr 2018 14:12:02 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:57846 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751692AbeDRSMA (ORCPT ); Wed, 18 Apr 2018 14:12:00 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id E6DE16076C; Wed, 18 Apr 2018 18:11:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1524075119; bh=cM2/SStOvxjG/AptgKBCNboU+yU1UkaExpRKcQhc/vo=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=dXpHwPImtHQeLx6CTPhVLrWt+allv2h74dIKEzcZ/s4QiIzfRFXb0TjydnH1WMtAv Uy154hMOEmFaMlcnxVxZhoOuNL1Bo3sNUGHuOUcKdfVqfX7APjfrbKiUCJpH/6gYW5 cbegQOvoeViD1aC36OAr/XcUYRQcn1FBGXn5Kcgo= 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 F374B606AC; Wed, 18 Apr 2018 18:11:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1524075119; bh=cM2/SStOvxjG/AptgKBCNboU+yU1UkaExpRKcQhc/vo=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=dXpHwPImtHQeLx6CTPhVLrWt+allv2h74dIKEzcZ/s4QiIzfRFXb0TjydnH1WMtAv Uy154hMOEmFaMlcnxVxZhoOuNL1Bo3sNUGHuOUcKdfVqfX7APjfrbKiUCJpH/6gYW5 cbegQOvoeViD1aC36OAr/XcUYRQcn1FBGXn5Kcgo= MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Wed, 18 Apr 2018 11:11:58 -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 Subject: Re: [PATCH v4 1/2] Documentation: Documentation for qcom, llcc In-Reply-To: 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> Message-ID: <589e84221ca7723c1739f713216abce5@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 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 -- -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project