[PATCH 00/12] Enable networking support for StarFive JH7100 SoC

From: Cristian Ciocaltea
Date: Fri Feb 10 2023 - 22:18:44 EST


This patch series adds ethernet support for the StarFive JH7100 SoC and
makes it available for the StarFive VisionFive V1 and BeagleV Starlight
boards, although I could only validate on the former SBC.

The work is heavily based on the reference implementation [1] and requires
the non-coherent DMA support provided by Emil via the Sifive Composable
Cache controller.

Also note there is an overlap in "[PATCH 08/12] net: stmmac: Add glue layer
for StarFive JH7100 SoC" with the Yanhong Wang's upstreaming attempt [2]:
"[PATCH v4 5/7] net: stmmac: Add glue layer for StarFive JH7110 SoCs".

Since I cannot test the JH7110 SoC, I dropped the support for it from Emil's
variant of the stmmac glue layer. Hence, we might need a bit of coordination
in order to get this properly merged.

[1] https://github.com/starfive-tech/linux/commits/visionfive
[2] https://lore.kernel.org/linux-riscv/20230118061701.30047-6-yanhong.wang@xxxxxxxxxxxxxxxx/

Cristian Ciocaltea (7):
dt-bindings: riscv: sifive-ccache: Add compatible for StarFive JH7100
SoC
dt-bindings: riscv: sifive-ccache: Add 'uncached-offset' property
dt-bindings: net: Add StarFive JH7100 SoC
riscv: dts: starfive: Add dma-noncoherent for JH7100 SoC
riscv: dts: starfive: jh7100: Add ccache DT node
riscv: dts: starfive: jh7100: Add sysmain and gmac DT nodes
riscv: dts: starfive: jh7100-common: Setup pinmux and enable gmac

Emil Renner Berthing (5):
soc: sifive: ccache: Add StarFive JH7100 support
soc: sifive: ccache: Add non-coherent DMA handling
riscv: Implement non-coherent DMA support via SiFive cache flushing
dt-bindings: mfd: syscon: Add StarFive JH7100 sysmain compatible
net: stmmac: Add glue layer for StarFive JH7100 SoC

.../devicetree/bindings/mfd/syscon.yaml | 1 +
.../devicetree/bindings/net/snps,dwmac.yaml | 15 +-
.../bindings/net/starfive,jh7100-dwmac.yaml | 106 ++++++++++++
.../bindings/riscv/sifive,ccache0.yaml | 33 +++-
MAINTAINERS | 6 +
arch/riscv/Kconfig | 6 +-
.../boot/dts/starfive/jh7100-common.dtsi | 78 +++++++++
arch/riscv/boot/dts/starfive/jh7100.dtsi | 55 +++++++
arch/riscv/mm/dma-noncoherent.c | 37 ++++-
drivers/net/ethernet/stmicro/stmmac/Kconfig | 12 ++
drivers/net/ethernet/stmicro/stmmac/Makefile | 1 +
.../ethernet/stmicro/stmmac/dwmac-starfive.c | 155 ++++++++++++++++++
drivers/soc/sifive/Kconfig | 1 +
drivers/soc/sifive/sifive_ccache.c | 71 +++++++-
include/soc/sifive/sifive_ccache.h | 21 +++
15 files changed, 587 insertions(+), 11 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/starfive,jh7100-dwmac.yaml
create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c

--
2.39.1