Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp7685511imu; Mon, 3 Dec 2018 17:37:46 -0800 (PST) X-Google-Smtp-Source: AFSGD/VM1n+Fsf8jXlcXEVd3SC5aAela2vM+cmWNMiiJKmPwrBiSN9BAe/HUvdYFJF4FHFH7BON1 X-Received: by 2002:a17:902:d905:: with SMTP id c5mr17652091plz.43.1543887466935; Mon, 03 Dec 2018 17:37:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543887466; cv=none; d=google.com; s=arc-20160816; b=RUTo+eyLXBwvYq2ZrHlAsgvwu/HA84ePxOJ5bjm+M+0s7X3hsdPfX1mYzKYmCWbKa1 j2g9szKiZM2Iz49J34frNPUxE8iKBgOrgQH1P/F+gOPyef0n0slIOcYBqUt72/GdqrkN 7wnyq6vvtq0tQckQ6ldahN1TDS0N7IS3sZArlvt4uAaChVENaFYQ1aCGTrJFHaYcs5fF vRuPrXbzHXb5+TXtscCFOvkbH/Lhy/brsqbLRZqpNyj1hJRglSfKvtscXEVGnd5DNs6O 4DstkOIv6RQ3RQm6/JWAUNvrEsl+8sppq2X7d/Zy8+okhVqK9uHF94XGrwBGFqV19QG4 ahFA== 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=GFFSVMThQMDSxoe7Z5jLRH73/5ZQ0+ad0JneajN89sY=; b=onhqC2w6PbeaVpeI0wRbRb9pdMi8goqJxiiQrZ3+iasHIsc2yRPUd+uy/BCmKuHVzC 6XZ93X1F1A1NSiOokG/MiexhaMLCzs0s5mRg4mQ837PNIdrOSpqbFnROoiYXUULhgxaS GGkGwk58TPbGN9cD2SRcWqRqoWE4Pqim+gRwq3RV5CA9/yJJkT+fJpNsYtJo80b0ROac +ZczBvt3m3NjG2aqUQZkLR1wzGdVYhAHegwuaKmCoIqeWsjJt1TCNQ5JqGcQsNMvEPSr /+GRm/yyV/Mu7hG61ZUEqnKLD/SSe0AzmMLjPjPeX51A4Upshfd7bCBjI09BlcnYg+ck h3cQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b="gymUdo/y"; 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 3si16526586plo.102.2018.12.03.17.37.31; Mon, 03 Dec 2018 17:37:46 -0800 (PST) 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="gymUdo/y"; 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 S1726054AbeLDBgz (ORCPT + 99 others); Mon, 3 Dec 2018 20:36:55 -0500 Received: from hqemgate15.nvidia.com ([216.228.121.64]:14280 "EHLO hqemgate15.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726017AbeLDBgz (ORCPT ); Mon, 3 Dec 2018 20:36:55 -0500 Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqemgate15.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Mon, 03 Dec 2018 17:35:54 -0800 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Mon, 03 Dec 2018 17:36:54 -0800 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Mon, 03 Dec 2018 17:36:54 -0800 Received: from HQMAIL102.nvidia.com (172.18.146.10) by HQMAIL101.nvidia.com (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 4 Dec 2018 01:36:54 +0000 Received: from HQMAIL101.nvidia.com (172.20.187.10) by HQMAIL102.nvidia.com (172.18.146.10) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 4 Dec 2018 01:36:53 +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, 4 Dec 2018 01:36:53 +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 ; Mon, 03 Dec 2018 17:36:53 -0800 From: Krishna Reddy To: , , CC: , , , , , , , , , , , , , , Krishna Reddy Subject: [PATCH v3 0/5] Add Tegra194 Dual ARM SMMU driver Date: Mon, 3 Dec 2018 17:36:48 -0800 Message-ID: <1543887414-18209-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=1543887354; bh=GFFSVMThQMDSxoe7Z5jLRH73/5ZQ0+ad0JneajN89sY=; h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: X-NVConfidentiality:MIME-Version:Content-Type; b=gymUdo/yMdiRK5n1CAZNnDR/kUBgTFsPFxuHZz1n1hsWlcoqZA4dKc4gCtdXR8xgD 8uLKNRZwtqTHSWpL8QJn27XMm25vkp5+QcvmuWlL7NIPT/f06lxnSq41jDcQ8mJNQM ISbEoaXL9GoWE0248b9MJgJ30D8k4qABykwJrjUPDNa42/LwV1Mdg2dYOYbrAHxKkE bDBcpMNFI8YgREU0fFyUg0ES+cmmSLvWpx9YtzuRl7iUF/EXOvxpBoZSIQZxOC6hD6 V79brsd/wmU+75p9ex7W5foUPXkTx/g1GemUHNoSyQAlzgxQ8yU9SIw2CTOZ7jgOTA VDmFoiUIQdMOQ== 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 two ARM SMMU(MMU-500) instances, which are used as one SMMU device in HW. The IOVA accesses from HW devices are interleaved across these two SMMU instances and 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. To allow sharing the code, Created a libray based on the current ARM SMMU driver and added suppport to program multiple ARM SMMU Instances identically. Upated Current ARM SMMU driver and Tegra194 SMMU driver to use the library functions. Please review the patches and provide feedback. Changes in v2: * Added CONFIG_ARM_SMMU_TEGRA to protect Tegra194 SMMU driver compilation * Enabled CONFIG_ARM_SMMU_TEGRA in defconfig * Added SMMU nodes in Tegra194 device tree Changes in v3: * Created library for ARM SMMU based on arm-smmu.c * Added support to program multiple ARM SMMU instances identically * Updated arm-smmu.c/tegra194-smmu.c to use ARM SMMU library functions Krishna Reddy (6): iommu/arm-smmu: create library for ARM SMMU iommu/arm-smmu: Add support to program multiple ARM SMMU's identically iommu/arm-smmu: update arm-smmu.c to use ARM SMMU library iommu/tegra194_smmu: Add Tegra194 SMMU driver arm64: defconfig: Enable ARM_SMMU_TEGRA arm64: tegra: Add SMMU nodes to Tegra194 device tree arch/arm64/boot/dts/nvidia/tegra194.dtsi | 148 +++ arch/arm64/configs/defconfig | 1 + drivers/iommu/Kconfig | 11 + drivers/iommu/Makefile | 2 + drivers/iommu/arm-smmu.c | 1709 +---------------------------- drivers/iommu/lib-arm-smmu.c | 1768 ++++++++++++++++++++++++++++++ drivers/iommu/lib-arm-smmu.h | 161 +++ drivers/iommu/tegra194-smmu.c | 394 +++++++ 8 files changed, 2496 insertions(+), 1698 deletions(-) create mode 100644 drivers/iommu/lib-arm-smmu.c create mode 100644 drivers/iommu/lib-arm-smmu.h create mode 100644 drivers/iommu/tegra194-smmu.c -- 2.1.4