All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/22] SMMU enablement for NXP LS1043A and LS1046A
@ 2018-10-10 12:07 ` laurentiu.tudor at nxp.com
  0 siblings, 0 replies; 40+ messages in thread
From: laurentiu.tudor @ 2018-10-10 12:07 UTC (permalink / raw)
  To: devicetree, netdev, linux-kernel, linux-arm-kernel, arm
  Cc: roy.pledge, madalin.bucur, davem, shawnguo, leoyang.li,
	robin.murphy, bharat.bhushan, arnd, Laurentiu Tudor

From: Laurentiu Tudor <laurentiu.tudor@nxp.com>

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


^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2018-10-10 12:10 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-10 12:07 [PATCH v3 00/22] SMMU enablement for NXP LS1043A and LS1046A laurentiu.tudor
2018-10-10 12:07 ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 01/22] soc/fsl/qman: fixup liodns only on ppc targets laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 02/22] soc/fsl/bman: map FBPR area in the iommu laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 03/22] soc/fsl/qman: map FQD and PFDR areas " laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 04/22] soc/fsl/qman-portal: map CENA area " laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 08/22] soc/fsl/qbman_portals: add APIs to retrieve the probing status laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 09/22] fsl/fman: backup and restore ICID registers laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 10/22] fsl/fman: add API to get the device behind a fman port laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 11/22] dpaa_eth: defer probing after qbman laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 12/22] dpaa_eth: base dma mappings on the fman rx port laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 13/22] dpaa_eth: fix iova handling for contiguous frames laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 14/22] dpaa_eth: fix iova handling for sg frames laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 15/22] dpaa_eth: fix SG frame cleanup laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 16/22] arm64: dts: ls1046a: add smmu node laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 17/22] arm64: dts: ls1043a: " laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 18/22] arm64: dts: ls104xa: set mask to drop TBU ID from StreamID laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 19/22] arm64: dts: ls104x: add missing dma ranges property laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 20/22] arm64: dts: ls104x: add iommu-map to pci controllers laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 21/22] arm64: dts: ls104x: make dma-coherent global to the SoC laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com
2018-10-10 12:07 ` [PATCH v3 22/22] arm64: dts: ls104x: use a pseudo-bus to constrain usb dma size laurentiu.tudor
2018-10-10 12:07   ` laurentiu.tudor at nxp.com

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.