Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp99534pxb; Tue, 12 Jan 2021 21:32:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJzWsS3O6zUqXPEunsclzuAsmdTGWiXjRfOfpxH/JcvUiRE/YTmeJMWO/G0t25/zkh2eSz9V X-Received: by 2002:a17:906:1393:: with SMTP id f19mr306616ejc.431.1610515927368; Tue, 12 Jan 2021 21:32:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610515927; cv=none; d=google.com; s=arc-20160816; b=zYF8ujI5IweMB4zgQbErV6Sxh680afnRZvpY9hUZubzHH0xW+do506erQ5Te72gueM Gzfry1D9rjbss6WUSsJ1CSPcCpVf1TzyY33mMOXrUKMYc8j+kSQM/iOXZXZFW983A8DG 9/25tVuFFhkWBhAM1tqvqpzrRwsdKRUwQn4PA/fnvN5vOevAn8gmPRwTBo3/edLWEwJV jfReMfMnj2lLKHqxj/gg4ERCxjInUQ0iOP1ZEarNnqlJS44Kr//N0xRk+YCaVp2i4mjz S51N4rC58f2fEM1Sq6vrWjCNr86H/PHT79WpPxh2Z5DHRzF8ujuPbk8swldFwmvcqekJ UphQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=2NaZcbwSAFQ15OW65EbbMjqTmOC5Pf2iFjcyvx6UbnA=; b=ZWww2fMMsLsUdz/mkc+09fCuA+fwz1LiMX3OohPZNZ/VruJiBGiO9seiUeq3oRp6g1 zpB8CpVkvZ66SK3bfvJz5AxUpaAL7sw6CY09OMnJEf31WHVMLMWKVL/CM5lsUnwciIwc z85Hd8TQTBMvhPJYXIBt9YspiFnxdpwvmmus/dnJ3fKH3CghZCftu4MgUv16px6aQxzQ SlXTUigyuWuVamP0cT/g3f0KiT8lRMwVUGAXOJErwskFJTUPk4yQsFcWnVnkOKvbXINO WE2rhRnExHJdl7yvAjcvkxE/mglA3qz3Gs1hfRN1dv7tRJ46C1EB9Wjb8hE2sIyZRXRu 6wtg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=SkyiyzJ2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bt22si433995ejb.107.2021.01.12.21.31.43; Tue, 12 Jan 2021 21:32:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=SkyiyzJ2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726030AbhAMFac (ORCPT + 99 others); Wed, 13 Jan 2021 00:30:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34104 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725988AbhAMFab (ORCPT ); Wed, 13 Jan 2021 00:30:31 -0500 Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com [IPv6:2a00:1450:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 99678C061575 for ; Tue, 12 Jan 2021 21:29:50 -0800 (PST) Received: by mail-ej1-x633.google.com with SMTP id q22so1329139eja.2 for ; Tue, 12 Jan 2021 21:29:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2NaZcbwSAFQ15OW65EbbMjqTmOC5Pf2iFjcyvx6UbnA=; b=SkyiyzJ28uSjHS90XLoXBBlIMxeQbmNuAEQ8qW3qG/lEq4KSFJGvKCe2uo6om+eCht oHNmuAbEj1wylSDgYYohrZowWD1TI2mPSkvtOcj1vM82/8Tsr+ruktT1iu//pIsXdvzB +NLLMVs4Ps2w7DhXFnSO9Nbs5cVRzog+Vam+g= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2NaZcbwSAFQ15OW65EbbMjqTmOC5Pf2iFjcyvx6UbnA=; b=qWwGPrMSwuNgpogOLMmvbo07cTdVRBjIxlXxJopvmdP4Lwt5GyX1Rd1F3j/TugUics uuwqmNy9E/MwDKxofKKKiZz4GHZNaUtRfc63hhES7+LYqKInObC156yRvFWBmkJ29RFo rQe60sti1cyS3RrmzUvVENwKMabrx36EPG2GPynL5WRu17rxkgOi97xo/g6wDSRcczke Ve83bmW5ynG0diif0uTolOHlwHQhoYLPuq0G8+e3MhxcUzpF5Bet8ZESUQIsp50sct5y IPpp7sShdTSV1A0sRf/fZSkE2HIU/81P5br/05o320RLJ/4zfACa/c+73TPY2uuNyFpl 0zMg== X-Gm-Message-State: AOAM532d4mCpcM21TSne41XANLdxWBk0uu6198R1RXjfEpsEmNNHOOI1 H0zF2DfumfiN2rhjObGljZ5KHh+H43Ks6m7O X-Received: by 2002:a17:906:f905:: with SMTP id lc5mr320248ejb.177.1610515788991; Tue, 12 Jan 2021 21:29:48 -0800 (PST) Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com. [209.85.128.50]) by smtp.gmail.com with ESMTPSA id j22sm243148ejy.106.2021.01.12.21.29.48 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 12 Jan 2021 21:29:48 -0800 (PST) Received: by mail-wm1-f50.google.com with SMTP id k10so400794wmi.3 for ; Tue, 12 Jan 2021 21:29:48 -0800 (PST) X-Received: by 2002:a1c:c308:: with SMTP id t8mr409738wmf.22.1610515383125; Tue, 12 Jan 2021 21:23:03 -0800 (PST) MIME-Version: 1.0 References: <20201209080102.26626-1-yong.wu@mediatek.com> <20201209080102.26626-5-yong.wu@mediatek.com> <1608809212.26323.258.camel@mhfsdcap03> In-Reply-To: <1608809212.26323.258.camel@mhfsdcap03> From: Tomasz Figa Date: Wed, 13 Jan 2021 14:22:50 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v5 04/27] dt-bindings: memory: mediatek: Add domain definition To: Yong Wu Cc: Joerg Roedel , Matthias Brugger , Rob Herring , Will Deacon , Robin Murphy , youlin.pei@mediatek.com, linux-devicetree , Nicolas Boichat , srv_heupstream , chao.hao@mediatek.com, Linux Kernel Mailing List , Evan Green , "open list:IOMMU DRIVERS" , "moderated list:ARM/Mediatek SoC support" , Krzysztof Kozlowski , anan.sun@mediatek.com, "list@263.net:IOMMU DRIVERS , Joerg Roedel ," Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Dec 24, 2020 at 8:27 PM Yong Wu wrote: > > On Wed, 2020-12-23 at 17:15 +0900, Tomasz Figa wrote: > > Hi Yong, > > > > On Wed, Dec 09, 2020 at 04:00:39PM +0800, Yong Wu wrote: > > > In the latest SoC, there are several HW IP require a sepecial iova > > > range, mainly CCU and VPU has this requirement. Take CCU as a example, > > > CCU require its iova locate in the range(0x4000_0000 ~ 0x43ff_ffff). > > > > Is this really a domain? Does the address range come from the design of > > the IOMMU? > > It is not a really a domain. The address range comes from CCU HW > requirement. That HW can only access this iova range. thus I create a > special iommu domain for it. > I guess it's the IOMMU/DT maintainers who have the last word here, but shouldn't DT just specify the hardware characteristics and then the kernel configure the hardware appropriately, possibly based on some other configuration interface (e.g. command line parameters or sysfs)? How I'd do this is rather than enforcing those arbitrary decisions onto the DT bindings, I'd add properties to the master devices (e.g. CCU) that specify which IOVA range they can operate on. Then, the exact split of the complete address space would be done at runtime, based on kernel configuration, command line parameters and possibly sysfs attributes if things could be reconfigured dynamically. Best regards, Tomasz > > > > Best regards, > > Tomasz > > > > > > > > In this patch we add a domain definition for the special port. In the > > > example of CCU, If we preassign CCU port in domain1, then iommu driver > > > will prepare a independent iommu domain of the special iova range for it, > > > then the iova got from dma_alloc_attrs(ccu-dev) will locate in its special > > > range. > > > > > > This is a preparing patch for multi-domain support. > > > > > > Signed-off-by: Yong Wu > > > Acked-by: Krzysztof Kozlowski > > > Acked-by: Rob Herring > > > --- > > > include/dt-bindings/memory/mtk-smi-larb-port.h | 9 ++++++++- > > > 1 file changed, 8 insertions(+), 1 deletion(-) > > > > > > diff --git a/include/dt-bindings/memory/mtk-smi-larb-port.h b/include/dt-bindings/memory/mtk-smi-larb-port.h > > > index 7d64103209af..2d4c973c174f 100644 > > > --- a/include/dt-bindings/memory/mtk-smi-larb-port.h > > > +++ b/include/dt-bindings/memory/mtk-smi-larb-port.h > > > @@ -7,9 +7,16 @@ > > > #define __DT_BINDINGS_MEMORY_MTK_MEMORY_PORT_H_ > > > > > > #define MTK_LARB_NR_MAX 32 > > > +#define MTK_M4U_DOM_NR_MAX 8 > > > + > > > +#define MTK_M4U_DOM_ID(domid, larb, port) \ > > > + (((domid) & 0x7) << 16 | (((larb) & 0x1f) << 5) | ((port) & 0x1f)) > > > + > > > +/* The default dom id is 0. */ > > > +#define MTK_M4U_ID(larb, port) MTK_M4U_DOM_ID(0, larb, port) > > > > > > -#define MTK_M4U_ID(larb, port) (((larb) << 5) | (port)) > > > #define MTK_M4U_TO_LARB(id) (((id) >> 5) & 0x1f) > > > #define MTK_M4U_TO_PORT(id) ((id) & 0x1f) > > > +#define MTK_M4U_TO_DOM(id) (((id) >> 16) & 0x7) > > > > > > #endif > > > -- > > > 2.18.0 > > > > > > _______________________________________________ > > > iommu mailing list > > > iommu@lists.linux-foundation.org > > > https://lists.linuxfoundation.org/mailman/listinfo/iommu >