bmips: add basic BCM6358 ethernet support

The MDIO bus is supported but there are errors when trying to probe and
configure the external BCM5325E switch through B53 DSA.
Therefore, let's add basic ethernet (but working) support for now.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This commit is contained in:
Álvaro Fernández Rojas 2022-05-24 11:14:21 +02:00
parent 414ca70684
commit 1c552eb44d
6 changed files with 1732 additions and 0 deletions

View File

@ -10,6 +10,7 @@ CONFIG_B53_MMAP_DRIVER=y
CONFIG_B53_SPI_DRIVER=y
CONFIG_BCM6345_EXT_IRQ=y
CONFIG_BCM6345_L1_IRQ=y
CONFIG_BCM6348_ENET=y
CONFIG_BCM6368_ENETSW=y
CONFIG_BCM63XX_POWER=y
CONFIG_BCM7038_WDT=y

View File

@ -140,6 +140,17 @@
status = "okay";
};
&ethernet1 {
status = "okay";
nvmem-cells = <&macaddr_cfe_6a0>;
nvmem-cell-names = "mac-address";
};
&iudma {
status = "okay";
};
&ohci {
status = "okay";
};

View File

@ -346,5 +346,84 @@
status = "disabled";
};
ethernet0: ethernet@fffe4000 {
compatible = "brcm,bcm6358-emac";
reg = <0xfffe4000 0x2dc>;
clocks = <&periph_clk BCM6358_CLK_ENET0>;
interrupt-parent = <&periph_intc>;
interrupts = <BCM6358_IRQ_EMAC0>,
<BCM6358_IRQ_EMAC0_RX_DMA>,
<BCM6358_IRQ_EMAC0_TX_DMA>;
interrupt-names = "emac",
"rx",
"tx";
brcm,iudma = <&iudma>;
dma-rx = <0>;
dma-tx = <1>;
status = "disabled";
mdio0: mdio {
#address-cells = <1>;
#size-cells = <0>;
};
};
ethernet1: ethernet@fffe4800 {
compatible = "brcm,bcm6358-emac";
reg = <0xfffe4800 0x2dc>;
clocks = <&periph_clk BCM6358_CLK_ENET1>;
interrupt-parent = <&periph_intc>;
interrupts = <BCM6358_IRQ_EMAC1>,
<BCM6358_IRQ_EMAC1_RX_DMA>,
<BCM6358_IRQ_EMAC1_TX_DMA>;
interrupt-names = "emac",
"rx",
"tx";
brcm,iudma = <&iudma>;
brcm,external-mii;
dma-rx = <2>;
dma-tx = <3>;
status = "disabled";
mdio1: mdio {
#address-cells = <1>;
#size-cells = <0>;
};
};
iudma: dma@fffe5000 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "brcm,bcm6358-iudma";
reg = <0xfffe5000 0x24>,
<0xfffe5100 0x80>,
<0xfffe5200 0x80>;
reg-names = "dma",
"dma-channels",
"dma-sram";
dma-channels = <8>;
clocks = <&periph_clk BCM6358_CLK_EMUSB>,
<&periph_clk BCM6358_CLK_USBSU>,
<&periph_clk BCM6358_CLK_EPHY>,
<&periph_clk BCM6358_CLK_ENET>;
resets = <&periph_rst BCM6358_RST_ENET>,
<&periph_rst BCM6358_RST_EPHY>;
status = "disabled";
};
};
};

File diff suppressed because it is too large Load Diff

View File

@ -11,6 +11,9 @@ comtrend,vr-3025u)
ucidef_set_bridge_device switch
ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
;;
huawei,hg556a-b)
ucidef_set_interface_lan "eth0"
;;
esac
board_config_flush

View File

@ -0,0 +1,44 @@
From 590b60fb08cb1e70fe02d3f407c6b3dbe9ad06ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Mon, 1 Mar 2021 07:34:39 +0100
Subject: [PATCH] net: broadcom: add BCM6348 enetsw controller driver
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This controller is present on BCM6338, BCM6348 and BCM6358 SoCs.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
drivers/net/ethernet/broadcom/Kconfig | 8 +
drivers/net/ethernet/broadcom/Makefile | 1 +
3 files changed, 1120 insertions(+)
create mode 100644 drivers/net/ethernet/broadcom/bcm6368-enetsw.c
--- a/drivers/net/ethernet/broadcom/Kconfig
+++ b/drivers/net/ethernet/broadcom/Kconfig
@@ -68,6 +68,14 @@ config BCM63XX_ENET
This driver supports the ethernet MACs in the Broadcom 63xx
MIPS chipset family (BCM63XX).
+config BCM6348_ENET
+ tristate "Broadcom BCM6348 internal mac support"
+ depends on BMIPS_GENERIC || COMPILE_TEST
+ default y
+ help
+ This driver supports Ethernet controller integrated into Broadcom
+ BCM6348 family SoCs.
+
config BCM6368_ENETSW
tristate "Broadcom BCM6368 internal mac support"
depends on BMIPS_GENERIC || COMPILE_TEST
--- a/drivers/net/ethernet/broadcom/Makefile
+++ b/drivers/net/ethernet/broadcom/Makefile
@@ -6,6 +6,7 @@
obj-$(CONFIG_B44) += b44.o
obj-$(CONFIG_BCM4908_ENET) += bcm4908_enet.o
obj-$(CONFIG_BCM63XX_ENET) += bcm63xx_enet.o
+obj-$(CONFIG_BCM6348_ENET) += bcm6348-enet.o
obj-$(CONFIG_BCM6368_ENETSW) += bcm6368-enetsw.o
obj-$(CONFIG_BCMGENET) += genet/
obj-$(CONFIG_BNX2) += bnx2.o