Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp835595imm; Wed, 10 Oct 2018 05:12:00 -0700 (PDT) X-Google-Smtp-Source: ACcGV61P0aIUHeuFIEf/H8gfAn15SGP2brCREy7Gpl6s8PzSGXj6J+UzIA5Q/1w2Cj285qmHcnNS X-Received: by 2002:a17:902:1121:: with SMTP id d30-v6mr31848551pla.250.1539173520016; Wed, 10 Oct 2018 05:12:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539173519; cv=none; d=google.com; s=arc-20160816; b=n0nx/hPoZIKcEEXlZAJ+1tQ3ZXlPkTuvRv32oczRIn96gkzV9tABuNkUc3oeSccJSH MU9DMsHMkvMXm+vsmlcm1CUJR2Xk8biRaNOeXVptuCy5GMG0Q2t15CEqD2/TFaH6+kKl GgMJ5TqrBnTXuwZr8jI5yvLb3WmtQq9ppdZA8Qp61UBL8mFgv/LONimttcED0zMoB7UD 3PKBhpo9COl8hxtcrPISQ+W3/Vcl+Djbq4k+8y3+f5P88kAErkOkOpMBvpkMwC63aLoE 09a2Qx6lWIOsf9LkkWCNTN/taHRRDDhzWmPLajFL9+6rJVHyemND2O2jyUIxds2L37Gh Nwwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=m566y3vnnnW/IHx2gGcB0W5TFOPg4YrYVnrcSF3Utw0=; b=Ls5IpSmnj7tV31B81kBgESxH2aHslhMvToAResA+i7m46l5gds/KFfoR/+grG70DLL o7kVBvVOkZ+E0ZLfilTXo0AuOIA97QM+/656GL8FMHw930UNdLpTzsMcGuGAh2/VdeeF yfuo63IofLPh4KV1LVL+QW5NkzFZ4lZ8cNGixn994E5SyGtPFFHKmybccPP6B9rIBwHR kPRbZcg5b6yvJBim6u70t5+jmfyvrF1MBsAVKGTTWwad9zd2Azo/R3DXRAQ8zGlkH68F crqUQ0uBC0a65UxT/vxksy86vMZl52y2O474vQtQG2bAPDUheCJZ8Y3i0tncA+XeN7/i h7xQ== ARC-Authentication-Results: i=1; mx.google.com; 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=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i61-v6si24990443plb.193.2018.10.10.05.11.45; Wed, 10 Oct 2018 05:11:59 -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; 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=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726791AbeJJT3m (ORCPT + 99 others); Wed, 10 Oct 2018 15:29:42 -0400 Received: from inva020.nxp.com ([92.121.34.13]:32962 "EHLO inva020.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726503AbeJJT3m (ORCPT ); Wed, 10 Oct 2018 15:29:42 -0400 Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 7D5401A013B; Wed, 10 Oct 2018 14:07:48 +0200 (CEST) Received: from inva024.eu-rdc02.nxp.com (inva024.eu-rdc02.nxp.com [134.27.226.22]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 7A03B1A017F; Wed, 10 Oct 2018 14:07:48 +0200 (CEST) Received: from fsr-ub1864-101.ea.freescale.net (fsr-ub1864-101.ea.freescale.net [10.171.82.46]) by inva024.eu-rdc02.nxp.com (Postfix) with ESMTP id C0C3620619; Wed, 10 Oct 2018 14:07:47 +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, arm@kernel.org Cc: roy.pledge@nxp.com, madalin.bucur@nxp.com, davem@davemloft.net, shawnguo@kernel.org, leoyang.li@nxp.com, robin.murphy@arm.com, bharat.bhushan@nxp.com, arnd@arndb.de, Laurentiu Tudor Subject: [PATCH v3 00/22] SMMU enablement for NXP LS1043A and LS1046A Date: Wed, 10 Oct 2018 15:07:18 +0300 Message-Id: <20181010120737.30300-1-laurentiu.tudor@nxp.com> X-Mailer: git-send-email 2.17.1 X-Virus-Scanned: ClamAV using ClamSMTP Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 v3: - redesigned the badly broken logic behind qbman portal probe checking APIs. Updated commit message with details - dropped few patches that were picked through arm-soc tree [2] - added Madalin's Ack [1] for fsl/fman and dpaa_eth [1] https://lkml.org/lkml/2018/9/27/831 [2] [PATCH 05/23] soc/fsl/qbman: add APIs to retrieve the probing status [PATCH 06/23] soc/fsl/qman_portals: defer probe after qman's probe [PATCH 07/23] soc/fsl/bman_portals: defer probe after bman's probe Changes in v2: - dropped confusing comments in smmu interrupt property (Robin) - add an intermediate usb simple-bus to fix dma size issue (Robin) - use defines instead of numbers in smmu interrupt definition - drop 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 | 32 ++++- drivers/soc/fsl/qbman/qman_ccsr.c | 28 ++++ drivers/soc/fsl/qbman/qman_portal.c | 48 ++++++- include/soc/fsl/bman.h | 16 +++ include/soc/fsl/qman.h | 17 +++ 13 files changed, 455 insertions(+), 107 deletions(-) -- 2.17.1