From patchwork Wed Sep 26 13:22:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurentiu Tudor X-Patchwork-Id: 10616017 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 96B9914BD for ; Wed, 26 Sep 2018 13:50:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8F1692AF65 for ; Wed, 26 Sep 2018 13:50:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8CF472AF87; Wed, 26 Sep 2018 13:50:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 8AB4F2AF91 for ; Wed, 26 Sep 2018 13:50:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=87d4Btr0AdZgt+UnE3/TsEtTZ3u+Ai2IR/4vDwMpPAA=; b=GPi eSewNOcLg2/flkDVs3YjSmpJq0YCV5eGC+oDy5//JEDPnStXG03oQ4k4S3f2+YMuIa4W9E75Cjarp jeehV778z9WyhPPcyY+18ECVEvH9HbJfD5Uy9kjfq9icd0Seg6EfEAofTT+WZ0ysjx1HfDwG0YhT2 109s1jqgDWWHrwi0wtG2ExnWGGwS8KoU5NHFuAoPUjGZ0JsvoLt9rUB3HBTvaezS9MuWTKZHXfLRs /LUiUYur2IloRV8wF/KDSkUpOXxul46eovjqTqVSZ/RIe/uFlJQ4o0MeNi8Tu3HLgWm30rvwN9KJH 2Xigxa9yIevFNtqEkgsJf8N3lbIfNNQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1g5ACf-000235-Bq; Wed, 26 Sep 2018 13:50:09 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1g5A7T-0007Ao-6m for linux-arm-kernel@bombadil.infradead.org; Wed, 26 Sep 2018 13:44:47 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=3J5dMxsd0DMwVCaQZBkXwxQviZzYE+i5IvecRIzhvC4=; b=iHUyLpNHDQ8J/vUj07T+UUAXL rXJLX6CmZsoG1ciTjvEKC1V4kmzl7EJWJcrxU7BUNMLLs6vlMSWawelN5RvHUkdVpJUlIHZ+j08A0 iEaAx2LsR/jkYdxugQbCmtYP83tTbjOruCCV6Uqo79zc1QBSPeM9eTtzQQLtcr9wqPB5dKKhiVbwb w7E9vFqB2SELQUbv+v1ox1k4HH3tDab+HkVKmv3SUPWreyXdmZ8FqVAgBWysytSD1mFaUV0dYT32w 6ewMX4ICX84BeTmKfizwtsM/Z/mnOo4cZ9NguBokYxYaGqxeLuZNFhjkWBpvJWQH1UP9pyfyjmPu7 GTg1MKSWg==; Received: from inva021.nxp.com ([92.121.34.21]) by casper.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1g59nB-0008ND-OF for linux-arm-kernel@lists.infradead.org; Wed, 26 Sep 2018 13:23:52 +0000 Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 588D9200015; Wed, 26 Sep 2018 15:22:49 +0200 (CEST) Received: from inva024.eu-rdc02.nxp.com (inva024.eu-rdc02.nxp.com [134.27.226.22]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 4A393200254; Wed, 26 Sep 2018 15:22:49 +0200 (CEST) Received: from fsr-ub1864-101.ea.freescale.net (fsr-ub1864-101.ea.freescale.net [10.171.82.97]) by inva024.eu-rdc02.nxp.com (Postfix) with ESMTP id A3FFF203C2; Wed, 26 Sep 2018 15:22:48 +0200 (CEST) From: laurentiu.tudor@nxp.com To: devicetree@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 00/22] SMMU enablement for NXP LS1043A and LS1046A Date: Wed, 26 Sep 2018 16:22:25 +0300 Message-Id: <20180926132247.10971-1-laurentiu.tudor@nxp.com> X-Mailer: git-send-email 2.17.1 X-Virus-Scanned: ClamAV using ClamSMTP X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180926_142349_914575_0E6EBF4C X-CRM114-Status: GOOD ( 13.91 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: bharat.bhushan@nxp.com, madalin.bucur@nxp.com, shawnguo@kernel.org, roy.pledge@nxp.com, leoyang.li@nxp.com, robin.murphy@arm.com, davem@davemloft.net, Laurentiu Tudor MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP From: Laurentiu Tudor This patch series adds SMMU support for NXP LS1043A and LS1046A chips and consists mostly in important driver fixes and the required device tree updates. It touches several subsystems and consists of three main parts: - changes in soc/drivers/fsl/qbman drivers adding iommu mapping of reserved memory areas, fixes and defered probe support - changes in drivers/net/ethernet/freescale/dpaa_eth drivers consisting in misc dma mapping related fixes and probe ordering - addition of the actual arm smmu device tree node together with various adjustments to the device trees Performance impact Running iperf benchmarks in a back-to-back setup (both sides having smmu enabled) on a 10GBps port show an important networking performance degradation of around 40% (9.48Gbps linerate vs 5.45Gbps) and around 30%-35% with iommu.strict=1. If you need performance but without SMMU support you can use "iommu.passthrough=1" to disable SMMU. The patch set is based on net-next so, if generally agreed, I'd suggest to get the patches through the netdev tree after getting all the Acks. Changes in v2: - dropped confusing comments in smmu interrupt property (Robin) - add an intermediate simple-bus for usb to fix dma size issue (Robin) - use defines instead of numbers in smmu interrupt definition - drop redundant double iommu_get_domain_for_dev() call in few qbman patches Laurentiu Tudor (22): soc/fsl/qman: fixup liodns only on ppc targets soc/fsl/bman: map FBPR area in the iommu soc/fsl/qman: map FQD and PFDR areas in the iommu soc/fsl/qman-portal: map CENA area in the iommu soc/fsl/qbman: add APIs to retrieve the probing status soc/fsl/qman_portals: defer probe after qman's probe soc/fsl/bman_portals: defer probe after bman's probe soc/fsl/qbman_portals: add APIs to retrieve the probing status fsl/fman: backup and restore ICID registers fsl/fman: add API to get the device behind a fman port dpaa_eth: defer probing after qbman dpaa_eth: base dma mappings on the fman rx port dpaa_eth: fix iova handling for contiguous frames dpaa_eth: fix iova handling for sg frames dpaa_eth: fix SG frame cleanup arm64: dts: ls1046a: add smmu node arm64: dts: ls1043a: add smmu node arm64: dts: ls104xa: set mask to drop TBU ID from StreamID arm64: dts: ls104x: add missing dma ranges property arm64: dts: ls104x: add iommu-map to pci controllers arm64: dts: ls104x: make dma-coherent global to the SoC arm64: dts: ls104x: use a pseudo-bus to constrain usb dma size .../arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 106 ++++++++++---- .../arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 102 ++++++++++--- .../net/ethernet/freescale/dpaa/dpaa_eth.c | 136 ++++++++++++------ drivers/net/ethernet/freescale/fman/fman.c | 35 ++++- drivers/net/ethernet/freescale/fman/fman.h | 4 + .../net/ethernet/freescale/fman/fman_port.c | 14 ++ .../net/ethernet/freescale/fman/fman_port.h | 2 + drivers/soc/fsl/qbman/bman_ccsr.c | 22 +++ drivers/soc/fsl/qbman/bman_portal.c | 20 ++- drivers/soc/fsl/qbman/qman_ccsr.c | 28 ++++ drivers/soc/fsl/qbman/qman_portal.c | 35 +++++ include/soc/fsl/bman.h | 16 +++ include/soc/fsl/qman.h | 17 +++ 13 files changed, 438 insertions(+), 99 deletions(-) Acked-by: Madalin Bucur