102 lines
4.5 KiB
Plaintext
102 lines
4.5 KiB
Plaintext
|
XILINX AXI ETHERNET Device Tree Bindings
|
||
|
--------------------------------------------------------
|
||
|
|
||
|
Also called AXI 1G/2.5G Ethernet Subsystem, the xilinx axi ethernet IP core
|
||
|
provides connectivity to an external ethernet PHY supporting different
|
||
|
interfaces: MII, GMII, RGMII, SGMII, 1000BaseX. It also includes two
|
||
|
segments of memory for buffering TX and RX, as well as the capability of
|
||
|
offloading TX/RX checksum calculation off the processor.
|
||
|
|
||
|
Management configuration is done through the AXI interface, while payload is
|
||
|
sent and received through means of an AXI DMA controller. This driver
|
||
|
includes the DMA driver code, so this driver is incompatible with AXI DMA
|
||
|
driver.
|
||
|
|
||
|
For more details about mdio please refer phy.txt file in the same directory.
|
||
|
|
||
|
Required properties:
|
||
|
- compatible : Must be one of "xlnx,axi-ethernet-1.00.a",
|
||
|
"xlnx,axi-ethernet-1.01.a", "xlnx,axi-ethernet-2.01.a"
|
||
|
- reg : Address and length of the IO space, as well as the address
|
||
|
and length of the AXI DMA controller IO space, unless
|
||
|
axistream-connected is specified, in which case the reg
|
||
|
attribute of the node referenced by it is used.
|
||
|
- interrupts : Should be a list of 2 or 3 interrupts: TX DMA, RX DMA,
|
||
|
and optionally Ethernet core. If axistream-connected is
|
||
|
specified, the TX/RX DMA interrupts should be on that node
|
||
|
instead, and only the Ethernet core interrupt is optionally
|
||
|
specified here.
|
||
|
- phy-handle : Should point to the external phy device if exists. Pointing
|
||
|
this to the PCS/PMA PHY is deprecated and should be avoided.
|
||
|
See ethernet.txt file in the same directory.
|
||
|
- xlnx,rxmem : Set to allocated memory buffer for Rx/Tx in the hardware
|
||
|
|
||
|
Optional properties:
|
||
|
- phy-mode : See ethernet.txt
|
||
|
- xlnx,phy-type : Deprecated, do not use, but still accepted in preference
|
||
|
to phy-mode.
|
||
|
- xlnx,txcsum : 0 or empty for disabling TX checksum offload,
|
||
|
1 to enable partial TX checksum offload,
|
||
|
2 to enable full TX checksum offload
|
||
|
- xlnx,rxcsum : Same values as xlnx,txcsum but for RX checksum offload
|
||
|
- xlnx,switch-x-sgmii : Boolean to indicate the Ethernet core is configured to
|
||
|
support both 1000BaseX and SGMII modes. If set, the phy-mode
|
||
|
should be set to match the mode selected on core reset (i.e.
|
||
|
by the basex_or_sgmii core input line).
|
||
|
- clock-names: Tuple listing input clock names. Possible clocks:
|
||
|
s_axi_lite_clk: Clock for AXI register slave interface
|
||
|
axis_clk: AXI4-Stream clock for TXD RXD TXC and RXS interfaces
|
||
|
ref_clk: Ethernet reference clock, used by signal delay
|
||
|
primitives and transceivers
|
||
|
mgt_clk: MGT reference clock (used by optional internal
|
||
|
PCS/PMA PHY)
|
||
|
|
||
|
Note that if s_axi_lite_clk is not specified by name, the
|
||
|
first clock of any name is used for this. If that is also not
|
||
|
specified, the clock rate is auto-detected from the CPU clock
|
||
|
(but only on platforms where this is possible). New device
|
||
|
trees should specify all applicable clocks by name - the
|
||
|
fallbacks to an unnamed clock or to CPU clock are only for
|
||
|
backward compatibility.
|
||
|
- clocks: Phandles to input clocks matching clock-names. Refer to common
|
||
|
clock bindings.
|
||
|
- axistream-connected: Reference to another node which contains the resources
|
||
|
for the AXI DMA controller used by this device.
|
||
|
If this is specified, the DMA-related resources from that
|
||
|
device (DMA registers and DMA TX/RX interrupts) rather
|
||
|
than this one will be used.
|
||
|
- mdio : Child node for MDIO bus. Must be defined if PHY access is
|
||
|
required through the core's MDIO interface (i.e. always,
|
||
|
unless the PHY is accessed through a different bus).
|
||
|
Non-standard MDIO bus frequency is supported via
|
||
|
"clock-frequency", see mdio.yaml.
|
||
|
|
||
|
- pcs-handle: Phandle to the internal PCS/PMA PHY in SGMII or 1000Base-X
|
||
|
modes, where "pcs-handle" should be used to point
|
||
|
to the PCS/PMA PHY, and "phy-handle" should point to an
|
||
|
external PHY if exists.
|
||
|
|
||
|
Example:
|
||
|
axi_ethernet_eth: ethernet@40c00000 {
|
||
|
compatible = "xlnx,axi-ethernet-1.00.a";
|
||
|
device_type = "network";
|
||
|
interrupt-parent = <µblaze_0_axi_intc>;
|
||
|
interrupts = <2 0 1>;
|
||
|
clock-names = "s_axi_lite_clk", "axis_clk", "ref_clk", "mgt_clk";
|
||
|
clocks = <&axi_clk>, <&axi_clk>, <&pl_enet_ref_clk>, <&mgt_clk>;
|
||
|
phy-mode = "mii";
|
||
|
reg = <0x40c00000 0x40000 0x50c00000 0x40000>;
|
||
|
xlnx,rxcsum = <0x2>;
|
||
|
xlnx,rxmem = <0x800>;
|
||
|
xlnx,txcsum = <0x2>;
|
||
|
phy-handle = <&phy0>;
|
||
|
axi_ethernetlite_0_mdio: mdio {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
phy0: phy@0 {
|
||
|
device_type = "ethernet-phy";
|
||
|
reg = <1>;
|
||
|
};
|
||
|
};
|
||
|
};
|