Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp2958577ybl; Thu, 29 Aug 2019 15:49:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqy4rBavZecXgJT3krQKv56Ib18n/r+JZl4Fx5mELw7UyjTT7g8+sZXz4G3tWQ9IEFjfWgvM X-Received: by 2002:a62:2aca:: with SMTP id q193mr14694369pfq.209.1567118951316; Thu, 29 Aug 2019 15:49:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567118951; cv=none; d=google.com; s=arc-20160816; b=MzBVVhLDbRvQ7K1nsUU4YE9DP4Wot0MX974deFl8EJcRpoWD50AbDbcBiiYp6dR3Cc vayOXzj38jeuEaD6jdKjHo7rQKoz+rRYjhrxA6r4UOJvtYMYCRgmGTOTLgTwZQpW5kcm dM3XV/6NnSGhGt0t+9/qxwpuUT1sj31cTXsIQVeDDMYcTllsxiiOyjLx1A5tOLKz5u39 PeAx3KIDVwlQELFyfDJJGpxuoXWstUD5+XGK7CoZADitFysHqMiEmY830XNJpzP69Y7Q 0OmejTQOlIfdnrBT6Qx/cwmH8L7V2aoiHTgcLcZnlloItqQ6VD8t7RfxUKCdwBQ5tuyb a9gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:dkim-signature:mime-version:message-id :date:subject:cc:from; bh=XViQuyFPXRUGjvQSy38KjNjazgSU9GgkmEMvuiC4IJI=; b=UG7UZ3kihmpsd4emEHehxO8/CUofxaglnGSbFqZDI5FjMBju07ej49GlUXHl1XP6Aq txGwMIQDEQ/cp+cmsRSZo1CrGfL/cwf4fmCaVPskwxGP4rqnq/z3lNd3Z32RUi5YLeN5 TVeRqLaOIWbN7x3W/jc+XPuvfTiRnII/rhvM/2rgwjixTkMOUo6qycQs5O6k/01/169a HdCQRx+ClfaZ//uns+q5EWkqCuvrB+///aOas0XGWNUt00Suv2zj2Icx9IeG3TgOvhUq 9l+sEPiYKkKJzuDnXDw8ZM8S1zuL7Qzt6lxDGNel7KU8H4vo7+kbzYSY2BIrTGovcgsP n0Bg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@nvidia.com header.s=n1 header.b=QpALE+ev; 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=fail (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 t3si3318750pjw.105.2019.08.29.15.48.55; Thu, 29 Aug 2019 15:49:11 -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=fail header.i=@nvidia.com header.s=n1 header.b=QpALE+ev; 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=fail (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728341AbfH2Wpo (ORCPT + 99 others); Thu, 29 Aug 2019 18:45:44 -0400 Received: from hqemgate16.nvidia.com ([216.228.121.65]:9632 "EHLO hqemgate16.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727826AbfH2Wpn (ORCPT ); Thu, 29 Aug 2019 18:45:43 -0400 Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqemgate16.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Thu, 29 Aug 2019 15:45:44 -0700 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Thu, 29 Aug 2019 15:45:42 -0700 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Thu, 29 Aug 2019 15:45:42 -0700 Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 29 Aug 2019 22:45:42 +0000 Received: from hqnvemgw02.nvidia.com (172.16.227.111) by HQMAIL109.nvidia.com (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Thu, 29 Aug 2019 22:45:42 +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 ; Thu, 29 Aug 2019 15:45:42 -0700 From: Krishna Reddy CC: , , , , , , , , , , , , , , Krishna Reddy Subject: [PATCH 0/7] Nvidia Arm SMMUv2 Implementation Date: Thu, 29 Aug 2019 15:47:00 -0700 Message-ID: <1567118827-26358-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=1567118744; bh=XViQuyFPXRUGjvQSy38KjNjazgSU9GgkmEMvuiC4IJI=; h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: X-NVConfidentiality:MIME-Version:Content-Type; b=QpALE+evxkvz2t8B5iHVtf2dNEUPUWPvjULE+doad73wTU+7rj0j6O1bdNpVgq578 1OBqgXS7PT0sQOHrrgIRx91SwEbqWNhDLPXLNxmmsZkZlTew9lHA6PnPoFunH0IP6i WzyjNcXU1WX7j0FiYtib2AjWSLhiWktGBh+jaIWE9bdZfsfnOSumlSntbGOE3QZbQu eJDuY3xzzQ7aj3Nb95YTQVgC8wLfW5X5ahSocRZGg+24yAVWrAhqnB1t4N7S50yTmG ywFwt6FKf7J4VgLBLFSQsq0n60zLBCYYwgYfgA4cHnqWmMpvguvVFuZGojRkOYs2qC gXhdlXukqQbCQ== To: unlisted-recipients:; (no To-header on input) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi All, Nvidia Arm SMMUv2 implementation has two ARM SMMU(MMU-500) instances that are used together for SMMU translations. The IOVA accesses from HW devices are interleaved across these two SMMU instances and need to be programmed identical except during tlb sync and fault handling. This patch set adds Nvidia Arm SMMUv2 Implementation on top of ARM SMMU driver to handle Nvidia specific implementation. It is also adding hooks for tlb sync and fault handling to allow vendor specific implementation for the same. Please review the patch set and provide the feedback. This patch set is based on the following branch as it is dependent on the Arm SMMU Refactor changes from Robin Murphy that are present in this branch. https://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git for-joerg/arm-smmu/updates Krishna Reddy (7): iommu/arm-smmu: add Nvidia SMMUv2 implementation dt-bindings: arm-smmu: Add binding for nvidia,smmu-v2 iommu/arm-smmu: Add tlb_sync implementation hook iommu/arm-smmu: Add global/context fault implementation hooks arm64: tegra: Add Memory controller DT node on T194 arm64: tegra: Add DT node for T194 SMMU arm64: tegra: enable SMMU for SDHCI and EQOS .../devicetree/bindings/iommu/arm,smmu.txt | 1 + MAINTAINERS | 2 + arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 4 + arch/arm64/boot/dts/nvidia/tegra194.dtsi | 86 +++++++ drivers/iommu/Makefile | 2 +- drivers/iommu/arm-smmu-impl.c | 2 + drivers/iommu/arm-smmu-nvidia.c | 256 +++++++++++++++++++++ drivers/iommu/arm-smmu.c | 16 +- drivers/iommu/arm-smmu.h | 10 + 9 files changed, 375 insertions(+), 4 deletions(-) create mode 100644 drivers/iommu/arm-smmu-nvidia.c -- 2.1.4