// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Device Tree file for Freescale Layerscape-1046A family SoC. * * Copyright 2025 Mono Technologies Inc. * * Author: Tomaz Zaman */ #include "mono-gateway-dk.dts" #include "qoriq-qman-portals-sdk.dtsi" #include "qoriq-bman-portals-sdk.dtsi" / { /* Boot memory regions for SDK DPAA driver */ bootmem0@a0000000 { reg = <0x00 0xa0000000 0x00 0x4000000 0x00 0xa4000000 0x00 0x6000000>; }; bootmem1@aa000000 { reg = <0x00 0xaa000000 0x00 0x4000000 0x00 0xae000000 0x00 0x6000000>; }; cpus { fman0-extended-args { cell-index = <0x00>; compatible = "fsl,fman-extended-args"; total-fifo-size = <0x3e500>; /* Offline ports for CDX - cell-index overridden for SDK compatibility: * fman0_oh_0x3 (port@83000) = cell-index 1 (SDK style) * fman0_oh_0x4 (port@84000) = cell-index 2 (SDK style) */ fman0_oh_0x3-extended-args { cell-index = <0x01>; /* matches port@83000 SDK cell-index */ compatible = "fsl,fman-port-op-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; }; fman0_oh_0x4-extended-args { cell-index = <0x02>; /* matches port@84000 SDK cell-index */ compatible = "fsl,fman-port-op-extended-args"; fifo-size = <0x900 0x00>; buffer-layout = <0x60 0x40>; }; /* All 1G ports need extended-args (SDK driver requirement) */ /* MAC1 (ethernet@e0000) - cell-index 0 - disabled but needed */ fman0_rx0-extended-args { cell-index = <0x00>; compatible = "fsl,fman-port-1g-rx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; vsp-window = <0x02 0x00>; }; fman0_tx0-extended-args { cell-index = <0x00>; compatible = "fsl,fman-port-1g-tx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; }; /* MAC2 (ethernet@e2000) - cell-index 1 */ fman0_rx1-extended-args { cell-index = <0x01>; compatible = "fsl,fman-port-1g-rx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; vsp-window = <0x02 0x00>; }; fman0_tx1-extended-args { cell-index = <0x01>; compatible = "fsl,fman-port-1g-tx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; }; /* MAC3 (ethernet@e4000) - cell-index 2 - disabled but needed */ fman0_rx2-extended-args { cell-index = <0x02>; compatible = "fsl,fman-port-1g-rx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; vsp-window = <0x02 0x00>; }; fman0_tx2-extended-args { cell-index = <0x02>; compatible = "fsl,fman-port-1g-tx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; }; /* MAC4 (ethernet@e6000) - cell-index 3 - disabled but needed */ fman0_rx3-extended-args { cell-index = <0x03>; compatible = "fsl,fman-port-1g-rx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; vsp-window = <0x02 0x00>; }; fman0_tx3-extended-args { cell-index = <0x03>; compatible = "fsl,fman-port-1g-tx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; }; /* MAC5 (ethernet@e8000) - cell-index 4 */ fman0_rx4-extended-args { cell-index = <0x04>; compatible = "fsl,fman-port-1g-rx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; vsp-window = <0x02 0x00>; }; fman0_tx4-extended-args { cell-index = <0x04>; compatible = "fsl,fman-port-1g-tx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; }; /* MAC6 (ethernet@ea000) - cell-index 5 */ fman0_rx5-extended-args { cell-index = <0x05>; compatible = "fsl,fman-port-1g-rx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; vsp-window = <0x02 0x00>; }; fman0_tx5-extended-args { cell-index = <0x05>; compatible = "fsl,fman-port-1g-tx-extended-args"; fifo-size = <0x3200 0x00>; buffer-layout = <0x60 0x40>; }; /* MAC9 (ethernet@f0000) - 10G cell-index 0 */ fman0_rx6-extended-args { cell-index = <0x00>; compatible = "fsl,fman-port-10g-rx-extended-args"; fifo-size = <0x6000 0x00>; buffer-layout = <0x60 0x40>; vsp-window = <0x02 0x00>; }; fman0_tx6-extended-args { cell-index = <0x00>; compatible = "fsl,fman-port-10g-tx-extended-args"; fifo-size = <0x4000 0x00>; buffer-layout = <0x60 0x40>; }; /* MAC10 (ethernet@f2000) - 10G cell-index 1 */ fman0_rx7-extended-args { cell-index = <0x01>; compatible = "fsl,fman-port-10g-rx-extended-args"; fifo-size = <0x6000 0x00>; buffer-layout = <0x60 0x40>; vsp-window = <0x02 0x00>; }; fman0_tx7-extended-args { cell-index = <0x01>; compatible = "fsl,fman-port-10g-tx-extended-args"; fifo-size = <0x4000 0x00>; buffer-layout = <0x60 0x40>; }; }; }; }; &bman_fbpr { compatible = "fsl,bman-fbpr"; alloc-ranges = <0 0 0x10000 0>; }; &qman_fqd { compatible = "fsl,qman-fqd"; alloc-ranges = <0 0 0x10000 0>; }; &qman_pfdr { compatible = "fsl,qman-pfdr"; alloc-ranges = <0 0 0x10000 0>; }; &soc { /delete-property/ dma-coherent; #include "qoriq-dpaa-eth.dtsi" /* Note: We override cell-index values in &fman0 section to match * SDK driver expectations (0-5 instead of mainline 2-7). * Port@82000 with cell-index=0 becomes the HC port for PCD. */ pcie@3400000 { /delete-property/ iommu-map; }; pcie@3500000 { /delete-property/ iommu-map; }; pcie@3600000 { /delete-property/ iommu-map; }; /delete-node/ iommu@9000000; }; &fsldpaa { ethernet@0 { status = "disabled"; /* MAC1 - not on Mono Gateway DK */ }; ethernet@2 { status = "disabled"; /* MAC3 - not on Mono Gateway DK */ }; ethernet@3 { status = "disabled"; /* MAC4 - not on Mono Gateway DK */ }; /* Enabled from qoriq-dpaa-eth.dtsi: * ethernet@1 = enet1 = MAC2 * ethernet@4 = enet4 = MAC5 * ethernet@5 = enet5 = MAC6 * ethernet@8 = enet6 = MAC9 (10G) */ /* Add MAC10 - not in qoriq-dpaa-eth.dtsi */ ethernet@9 { compatible = "fsl,dpa-ethernet"; fsl,fman-mac = <&enet7>; dma-coherent; }; }; &fman0 { compatible = "fsl,fman", "simple-bus"; /* Core FMan sub-modules */ muram@0 { compatible = "fsl,fman-muram"; reg = <0x0 0x60000>; }; bmi@80000 { compatible = "fsl,fman-bmi"; reg = <0x80000 0x400>; }; qmi@80400 { compatible = "fsl,fman-qmi"; reg = <0x80400 0x400>; }; /* PCD sub-modules required for FMC/CDX */ cc { compatible = "fsl,fman-cc"; }; policer@c0000 { compatible = "fsl,fman-policer"; reg = <0xc0000 0x1000>; }; keygen@c1000 { compatible = "fsl,fman-keygen"; reg = <0xc1000 0x1000>; }; dma@c2000 { compatible = "fsl,fman-dma"; reg = <0xc2000 0x1000>; }; fpm@c3000 { compatible = "fsl,fman-fpm"; reg = <0xc3000 0x1000>; }; parser@c7000 { compatible = "fsl,fman-parser"; reg = <0xc7000 0x1000>; }; vsps@dc000 { compatible = "fsl,fman-vsps"; reg = <0xdc000 0x1000>; }; ethernet@f0000 { /delete-property/ managed; fixed-link = <0 1 10000 0 0>; phy-connection-type = "xgmii"; }; ethernet@f2000 { /delete-property/ managed; fixed-link = <0 1 10000 0 0>; phy-connection-type = "xgmii"; }; /* DPA Offline port bindings - required for CDX. * Use phandles fman0_oh_0x3 (port@83000) and fman0_oh_0x4 (port@84000). * Cell-index overridden to SDK-style (1 and 2) in port nodes above. */ dpa-fman0-oh@2 { compatible = "fsl,dpa-oh"; fsl,qman-frame-queues-oh = <0x60 0x01 0x61 0x01>; fsl,fman-oh-port = <&fman0_oh_0x3>; }; dpa-fman0-oh@3 { compatible = "fsl,dpa-oh"; fsl,qman-frame-queues-oh = <0x62 0x01 0x63 0x01>; fsl,fman-oh-port = <&fman0_oh_0x4>; }; /* Override OH port cell-index values for SDK driver compatibility. * SDK driver expects cell-index 0 for HC (Host Command/PCD) port. * Mainline qoriq-fman3-0.dtsi uses cell-index 2-7, but SDK needs 0-5. */ port@82000 { cell-index = <0>; /* HC port - required for PCD initialization */ compatible = "fsl,fman-port-oh"; }; port@83000 { cell-index = <1>; compatible = "fsl,fman-port-oh"; }; port@84000 { cell-index = <2>; compatible = "fsl,fman-port-oh"; }; port@85000 { cell-index = <3>; compatible = "fsl,fman-port-oh"; }; port@86000 { cell-index = <4>; compatible = "fsl,fman-port-oh"; }; port@87000 { cell-index = <5>; compatible = "fsl,fman-port-oh"; }; }; &clockgen { dma-coherent; }; &scfg { dma-coherent; }; &crypto { dma-coherent; }; &dcfg { dma-coherent; }; &ifc { dma-coherent; }; &qspi { dma-coherent; }; &esdhc { dma-coherent; }; &ddr { dma-coherent; }; &tmu { dma-coherent; }; &qman { dma-coherent; }; &bman { dma-coherent; }; &bportals { dma-coherent; }; &qportals { dma-coherent; }; &dspi { dma-coherent; }; &i2c0 { dma-coherent; }; &i2c1 { dma-coherent; }; &i2c2 { dma-coherent; }; &i2c3 { dma-coherent; }; &duart0 { dma-coherent; }; &duart1 { dma-coherent; }; &duart2 { dma-coherent; }; &duart3 { dma-coherent; }; &gpio0 { dma-coherent; }; &gpio1 { dma-coherent; }; &gpio2 { dma-coherent; }; &gpio3 { dma-coherent; }; &lpuart0 { dma-coherent; }; &lpuart1 { dma-coherent; }; &lpuart2 { dma-coherent; }; &lpuart3 { dma-coherent; }; &lpuart4 { dma-coherent; }; &lpuart5 { dma-coherent; }; &ftm_alarm0 { dma-coherent; }; &wdog0 { dma-coherent; }; &edma0 { dma-coherent; }; &sata { dma-coherent; }; &qdma { dma-coherent; }; &msi1 { dma-coherent; }; &msi2 { dma-coherent; }; &msi3 { dma-coherent; }; &fman0 { dma-coherent; }; &ptp_timer0 { dma-coherent; }; &fsldpaa { dma-coherent; };