diff --git a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml index e0267223887ec2..351d26ab19563a 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml +++ b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml @@ -63,6 +63,7 @@ properties: - eswin,eic7700-plic - microchip,pic64gx-plic - sifive,fu540-c000-plic + - sifive,fu740-c000-plic - spacemit,k1-plic - starfive,jh7100-plic - starfive,jh7110-plic diff --git a/Documentation/devicetree/bindings/net/cdns,macb.yaml b/Documentation/devicetree/bindings/net/cdns,macb.yaml index cb14c35ba99693..b46dde1da17088 100644 --- a/Documentation/devicetree/bindings/net/cdns,macb.yaml +++ b/Documentation/devicetree/bindings/net/cdns,macb.yaml @@ -63,6 +63,7 @@ properties: - mobileye,eyeq5-gem # Mobileye EyeQ5 SoCs - raspberrypi,rp1-gem # Raspberry Pi RP1 gigabit ethernet interface - sifive,fu540-c000-gem # SiFive FU540-C000 SoC + - sifive,fu740-c000-gem # SiFive FU740-C000 SoC - items: - enum: @@ -74,7 +75,7 @@ properties: minItems: 1 items: - description: Basic register set - - description: GEMGXL Management block registers on SiFive FU540-C000 SoC + - description: GEMGXL Management block registers on SiFive FU540/FU740 SoCs interrupts: minItems: 1 @@ -181,7 +182,9 @@ allOf: properties: compatible: contains: - const: sifive,fu540-c000-gem + enum: + - sifive,fu540-c000-gem + - sifive,fu740-c000-gem then: properties: reg: diff --git a/arch/riscv/boot/dts/sifive/fu740-c000.dtsi b/arch/riscv/boot/dts/sifive/fu740-c000.dtsi index 6150f3397bff92..a44ccbf4822b9c 100644 --- a/arch/riscv/boot/dts/sifive/fu740-c000.dtsi +++ b/arch/riscv/boot/dts/sifive/fu740-c000.dtsi @@ -182,7 +182,7 @@ plic0: interrupt-controller@c000000 { #interrupt-cells = <1>; #address-cells = <0>; - compatible = "sifive,fu540-c000-plic", "sifive,plic-1.0.0"; + compatible = "sifive,fu740-c000-plic", "sifive,plic-1.0.0"; reg = <0x0 0xc000000 0x0 0x4000000>; riscv,ndev = <69>; interrupt-controller; @@ -273,7 +273,7 @@ status = "disabled"; }; eth0: ethernet@10090000 { - compatible = "sifive,fu540-c000-gem"; + compatible = "sifive,fu740-c000-gem"; interrupt-parent = <&plic0>; interrupts = <55>; reg = <0x0 0x10090000 0x0 0x2000>, diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index 43cd013bb70e6b..10d049391a73f8 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -39,8 +39,8 @@ #include #include "macb.h" -/* This structure is only used for MACB on SiFive FU540 devices */ -struct sifive_fu540_macb_mgmt { +/* This structure is used for MACB on SiFive FU540/FU740 devices */ +struct sifive_macb_mgmt { void __iomem *reg; unsigned long rate; struct clk_hw hw; @@ -4650,7 +4650,7 @@ static const struct macb_usrio_config macb_default_usrio = { /* max number of receive buffers */ #define AT91ETHER_MAX_RX_DESCR 9 -static struct sifive_fu540_macb_mgmt *mgmt; +static struct sifive_macb_mgmt *mgmt; static int at91ether_alloc_coherent(struct macb *lp) { @@ -5236,6 +5236,16 @@ static const struct macb_config fu540_c000_config = { .usrio = &macb_default_usrio, }; +static const struct macb_config fu740_c000_config = { + .caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_JUMBO | + MACB_CAPS_GEM_HAS_PTP, + .dma_burst_length = 16, + .clk_init = fu540_c000_clk_init, + .init = fu540_c000_init, + .jumbo_max_len = 10240, + .usrio = &macb_default_usrio, +}; + static const struct macb_config at91sam9260_config = { .caps = MACB_CAPS_USRIO_HAS_CLKEN | MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII, .clk_init = macb_clk_init, @@ -5411,6 +5421,7 @@ static const struct of_device_id macb_dt_ids[] = { { .compatible = "cdns,zynqmp-gem", .data = &zynqmp_config}, /* deprecated */ { .compatible = "cdns,zynq-gem", .data = &zynq_config }, /* deprecated */ { .compatible = "sifive,fu540-c000-gem", .data = &fu540_c000_config }, + { .compatible = "sifive,fu740-c000-gem", .data = &fu740_c000_config }, { .compatible = "microchip,mpfs-macb", .data = &mpfs_config }, { .compatible = "microchip,sama7g5-gem", .data = &sama7g5_gem_config }, { .compatible = "microchip,sama7g5-emac", .data = &sama7g5_emac_config },