Received: by 2002:ac0:aa62:0:0:0:0:0 with SMTP id w31-v6csp4036881ima; Tue, 23 Oct 2018 15:53:50 -0700 (PDT) X-Google-Smtp-Source: AJdET5fKFRAcLLRwYgGw0SOqFwy1jstM8rKi8mqd5PADh1a4V+peWPdRE/8roOWy5RGVjHpjAN+C X-Received: by 2002:a63:4b42:: with SMTP id k2-v6mr175155pgl.51.1540335230466; Tue, 23 Oct 2018 15:53:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540335230; cv=none; d=google.com; s=arc-20160816; b=GcT78iX/tFDmLjOxfWTXubi3pLlJ/G+cNIIHpyenJ7xpyl5rnOv24ODo90rUOjkZnV p5QNFFYFn22urrq+Rl2iJm+0Y5mV+2GAj/r5zwh/tHRccFKxiTwYq+CundStGCAzWgIi mNaWOi16YeeAAMxQMSJ5t9xYQNe+Q4irEl7AVYmVVCDmZKvUdn7gurbmbGT0CnUl1/cq XZ/F9RJTstU2gcLIg5ku6jYKF71fFpWH20F28sXomRthDcIaV5khulKUvAcsgKy69bBC T4fx/L2ESthD1xzxCtydTxi2v6ABIUDMtqwPjB58QuzI3D3LScDKcXNuYymFXZMMdfDZ 7FEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:dkim-signature:mime-version:message-id :date:subject:cc:to:from; bh=dXkqI3kipmqmY/E4Vk6BKX5LPVnWoHTIBDi0dsrwJBo=; b=kJNItu88A9nHS0+Ne/tGBJ41Irxc/YYHPfDRQn14nuh2iwWrGaSDmCuFrnWkZmQVD/ jiLTPORKu+VaRPaSuaLBpyKp7p/h8CfslFuhA1hFdPYLaF+oU4WBO/8jX8j9TP5r0Bsh u9S8kpIIXOIAtoBQLblnDy+5QMpdZnENuEc19fFx+Ji4T036qRgu421sPOInyAQ7j/7D YlbaYnPb1sZXAgYc9p9MYIqBqLHwlylaBj5s1jiLlfoXwckrsg6Bk3FZNmQLk8Qke7N9 1KW57bB+8a3HL+RKImyykvNRzGr0PhzOu9fFb3hbHb+YEjMyp1uiwW+bK5de0IicuARc MxbQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=mWHIFQyi; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x4-v6si2590089plv.129.2018.10.23.15.53.32; Tue, 23 Oct 2018 15:53:50 -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=@nvidia.com header.s=n1 header.b=mWHIFQyi; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728575AbeJXHE1 (ORCPT + 99 others); Wed, 24 Oct 2018 03:04:27 -0400 Received: from hqemgate14.nvidia.com ([216.228.121.143]:7825 "EHLO hqemgate14.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725787AbeJXHE0 (ORCPT ); Wed, 24 Oct 2018 03:04:26 -0400 Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqemgate14.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Tue, 23 Oct 2018 15:38:53 -0700 Received: from HQMAIL103.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Tue, 23 Oct 2018 15:39:02 -0700 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Tue, 23 Oct 2018 15:39:02 -0700 Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL103.nvidia.com (172.20.187.11) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 23 Oct 2018 22:39:02 +0000 Received: from HQMAIL101.nvidia.com (172.20.187.10) by HQMAIL109.nvidia.com (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 23 Oct 2018 22:39:02 +0000 Received: from hqnvemgw02.nvidia.com (172.16.227.111) by HQMAIL101.nvidia.com (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Tue, 23 Oct 2018 22:39:02 +0000 Received: from vdumpa-ubuntu.nvidia.com (Not Verified[172.17.173.140]) by hqnvemgw02.nvidia.com with Trustwave SEG (v7,5,8,10121) id ; Tue, 23 Oct 2018 15:39:02 -0700 From: Krishna Reddy To: , , CC: , , , , , , , , , , Krishna Reddy Subject: [PATCH 0/3] Add Tegra194 Dual ARM SMMU driver Date: Tue, 23 Oct 2018 15:39:04 -0700 Message-ID: <1540334347-7178-1-git-send-email-vdumpa@nvidia.com> X-Mailer: git-send-email 2.1.4 X-NVConfidentiality: public MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1540334333; bh=dXkqI3kipmqmY/E4Vk6BKX5LPVnWoHTIBDi0dsrwJBo=; h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: X-NVConfidentiality:MIME-Version:Content-Type; b=mWHIFQyi+0Ug65CaPVd0pzCtMPgBPm+Wkm4PCkXvusZEESzj92cZGFXdrSfCpXZkG bS6bZU2KValPNoxpAqkU1lWDequidUGTJxxdb1N5yf1WQxmSdcl6igWYScceDSDAS2 gzA+Rd7b7A/+3eLNz2fYofAe+Qf7P+GxLHuyEaFFVg4aSVcEh/9buW7FYhtVnRiW80 mBbG5o3ARSh7FYPWNC5oe5Dib+snU+tNerBbr6Uykro4+3jkt0RS7T3sO1T/hutpe+ V+/oSX7MFkorAgBwoZzp1IMkO6lwSczIhSEHPmDgU7au+FvWltVMCqHCDBFAtBN1jb uEkfnl1vBLcyQ== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org NVIDIA's Xavier (Tegra194) SOC has three ARM SMMU(MMU-500) instances. Two of the SMMU instances are used to interleave IOVA accesses across them. The IOVA accesses from HW devices are interleaved across these two SMMU instances and they need to be programmed identical. The existing ARM SMMU driver can't be used in its current form for programming the two SMMU instances identically. But, most of the code can be shared between ARM SMMU driver and Tegra194 SMMU driver. Page fault handling and TLB sync operations need to know about specific instance of SMMU for correct fault handling and optimal TLB sync wait. Rest of the code doesn't need to know about number of SMMU instances. Based on this fact, The patch series here rearranges the arm-smmu.c code to allow sharing most of the ARM SMMU programming/iommu_ops code between ARM SMMU driver and Tegra194 SMMU driver and transparently handles programming of two SMMU instances. The third SMMU instance would use the existing ARM SMMU driver. Krishna Reddy (3): iommu/arm-smmu: rearrange arm-smmu.c code iommu/arm-smmu: Prepare fault, probe, sync functions for sharing code iommu/tegra194_smmu: Add Tegra194 SMMU driver drivers/iommu/Makefile | 1 + drivers/iommu/arm-smmu-common.c | 1971 +++++++++++++++++++++++++++++++++++ drivers/iommu/arm-smmu-common.h | 256 +++++ drivers/iommu/arm-smmu.c | 2167 +-------------------------------------- drivers/iommu/tegra194-smmu.c | 201 ++++ 5 files changed, 2436 insertions(+), 2160 deletions(-) create mode 100644 drivers/iommu/arm-smmu-common.c create mode 100644 drivers/iommu/arm-smmu-common.h create mode 100644 drivers/iommu/tegra194-smmu.c -- 2.1.4