mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
dt-bindings: nvethernet: nvethernet DT binding doc
Captures the DT binding documentation for the nvethernet driver Bug 3837018 Change-Id: Ifd77ae28499e41d7134777f088063871b36f0e88 Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2911843 Reviewed-by: Narayan Reddy <narayanr@nvidia.com> Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
19de9797ba
commit
06d3a03630
@@ -0,0 +1,705 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
# Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/platform/tegra/tegra-nvethernet.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Device tree binding for NVIDIA Tegra Ethernet Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Revanth Kumar Uppala <ruppala@nvidia.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
The tegra nvethernet driver provides an interface for communication over ethernet.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- For EQOS: should be "nvidia,nveqos"
|
||||||
|
- FOR MGBE: should be "nvidia,nvmgbe"
|
||||||
|
|
||||||
|
reg:
|
||||||
|
description: |
|
||||||
|
Physical base address and size of register space.
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
description: |
|
||||||
|
Specifies the names of the registers.
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
description: |
|
||||||
|
An array of tuples specifying IRQ number for
|
||||||
|
each tx/rx queue in case of multi-queue, and
|
||||||
|
for the only tx/rx queue,in case of single queue
|
||||||
|
EQOS has a common interrupt for triggering any
|
||||||
|
non DMA channel interrupts like link up/down.
|
||||||
|
Order of interrupts need to be listed as common,
|
||||||
|
Tx followed by Rx interrupts.
|
||||||
|
|
||||||
|
interrupt-names:
|
||||||
|
description: |
|
||||||
|
Specifies the names of the interrupts.
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
description: |
|
||||||
|
Holds Phandle and clock specifiers in same
|
||||||
|
order for each entry in clock-names property.
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
description: |
|
||||||
|
Specifies the names of the needed clocks.
|
||||||
|
|
||||||
|
resets:
|
||||||
|
description: |
|
||||||
|
Holds Phandle and rest specifiers in the same
|
||||||
|
order for each entry in reset-names property.
|
||||||
|
|
||||||
|
reset-names:
|
||||||
|
description: |
|
||||||
|
Specifies the name of the reset line.
|
||||||
|
|
||||||
|
iommus:
|
||||||
|
description: |
|
||||||
|
A list of phandle and IOMMU specifier pairs that
|
||||||
|
describe the IOMMU master interfaces of the
|
||||||
|
device. IOMMU specifier points stream ID used
|
||||||
|
for IP which can be used for address translation.
|
||||||
|
|
||||||
|
interconnects :
|
||||||
|
description: |
|
||||||
|
Pairs of phandles and interconnect provider specifier to denote
|
||||||
|
the edge source and destination ports of the interconnect path.
|
||||||
|
An optional path tag value could specified as additional argument
|
||||||
|
to both endpoints and in such cases, this information will be
|
||||||
|
passed to the interconnect framework to do aggregation based on
|
||||||
|
the attached tag.
|
||||||
|
|
||||||
|
interconnect-names :
|
||||||
|
description: |
|
||||||
|
List of interconnect path name strings sorted in the same
|
||||||
|
order as the interconnects property. Consumers drivers will use
|
||||||
|
interconnect-names to match interconnect paths with interconnect
|
||||||
|
specifier pairs.
|
||||||
|
|
||||||
|
nvidia,num-dma-chans:
|
||||||
|
description: |
|
||||||
|
Number of DMA channels that need to be used.
|
||||||
|
For EQOS, Minimum value is 1 and Maximum value is 8.
|
||||||
|
For MGBE, Minimum value is 1 and Maximum value is 10.
|
||||||
|
|
||||||
|
nvidia,dma-chans:
|
||||||
|
description: |
|
||||||
|
The channel number of DMA channels to be used.
|
||||||
|
Number of channels provided here should be equal
|
||||||
|
to the value in nvidia,num-dma-chans property.
|
||||||
|
For EQOS, Valid numbers are 0,1,2,3,4,5,6,7
|
||||||
|
For MGBE, Valid numbers are 0,1,2,3,4,5,6,7,8,9
|
||||||
|
|
||||||
|
nvidia,num-mtl-queues:
|
||||||
|
description: |
|
||||||
|
Number of MTL Queues that need to be used.
|
||||||
|
For EQOS, Minimum value is 1 and Maximum value is 8.
|
||||||
|
For MGBE, Minimum value is 1 and Maximum value is 10.
|
||||||
|
|
||||||
|
nvidia,mtl-queues:
|
||||||
|
description: |
|
||||||
|
Queues that need to be filled based on the
|
||||||
|
nvidia,mtl-queues.
|
||||||
|
For EQOS, Valid numbers are 0,1,2,3,4,5,6,7
|
||||||
|
For MGBE, Valid numbers are 0,1,2,3,4,5,6,7,8,9
|
||||||
|
|
||||||
|
nvidia,tc-mapping:
|
||||||
|
description: |
|
||||||
|
Traffic class mapping for TxQ. This will map
|
||||||
|
Transmit queue to a traffic class. Default
|
||||||
|
mapping is 1:1 between TxQ and TC class. Valid
|
||||||
|
property for IP with more number queue than TC.
|
||||||
|
|
||||||
|
nvidia,residual-queue:
|
||||||
|
description: |
|
||||||
|
Residual Queue to receive untagged Preempted
|
||||||
|
fragments. RxQ0 can't be residual queue.
|
||||||
|
|
||||||
|
nvidia,rx-queue-prio:
|
||||||
|
description: |
|
||||||
|
When a bit is uniquely set in this property
|
||||||
|
i.e. same bit map shall not be set in multiple bytes of this
|
||||||
|
property, it means the tagged packet with that
|
||||||
|
priority will be routed to the Rx queue
|
||||||
|
specified in nvidia,mtl-queues property at the
|
||||||
|
same index position.
|
||||||
|
For EQOS, Each byte in this property is a bit map of
|
||||||
|
individual vlan priorities 0 to 7.
|
||||||
|
For MGBE, Each byte in this property is a bit map of
|
||||||
|
individual vlan priorities 0 to 9.
|
||||||
|
|
||||||
|
nvidia,tx-queue-prio:
|
||||||
|
description: |
|
||||||
|
When this is set, it means the packet with that priority
|
||||||
|
will be routed to the Tx queue specified in
|
||||||
|
nvidia,mtl-queues property at the same index
|
||||||
|
position.
|
||||||
|
For EQOS, Each byte in this property is a bit map of
|
||||||
|
individual vlan priorities 0 to 7.
|
||||||
|
For MGBE, Each byte in this property is a bit map of
|
||||||
|
individual vlan priorities 0 to 9.
|
||||||
|
|
||||||
|
nvidia,rxq_enable_ctrl:
|
||||||
|
description: |
|
||||||
|
Mode of the MTL Receive Queue to enable either
|
||||||
|
AV mode or legacy mode.
|
||||||
|
example - rxq_enable_ctrl = <rx0 rx1 rx2 rx3>
|
||||||
|
0x0 = Not enabled, 0x1 = Enabled for AV
|
||||||
|
0x2 = Enabled for Legacy, 0x3 = Reserved
|
||||||
|
|
||||||
|
nvidia,dcs-enable:
|
||||||
|
description: |
|
||||||
|
Enable this to dynamically select the most suitable channel
|
||||||
|
for data transmission when high interference is detected on
|
||||||
|
the current channel.
|
||||||
|
Dynamic Channel Selection enable(1) or
|
||||||
|
disable(0). This property is mutually
|
||||||
|
exclusive with rx-queue-prio i.e. if this is
|
||||||
|
enabled, then rx-queue-prio should not be
|
||||||
|
provided and vice versa.
|
||||||
|
|
||||||
|
nvidia,pad_calibration:
|
||||||
|
description: |
|
||||||
|
Specifies if pad calibration should be allowed
|
||||||
|
or not. Set to 1 to allow or 0 to disallow
|
||||||
|
pad calibration mode. Default is 1 (allowed).
|
||||||
|
|
||||||
|
nvidia,pad_auto_cal_pu_offset:
|
||||||
|
description: |
|
||||||
|
Specifies eqos ETHER_QOS_AUTO_CAL_CONFIG_0
|
||||||
|
reg, pad calibration 2's complement offset
|
||||||
|
for pull-up value. Allowed range 0x0-0x1F.
|
||||||
|
Default is 0 (allowed).
|
||||||
|
|
||||||
|
nvidia,pad_auto_cal_pd_offset:
|
||||||
|
description: |
|
||||||
|
Specifies eqos ETHER_QOS_AUTO_CAL_CONFIG_0
|
||||||
|
reg, pad calibration 2's complement offset
|
||||||
|
for pull-down value. Allowed range 0x0-0x1F.
|
||||||
|
Default is 0 (allowed).
|
||||||
|
|
||||||
|
nvidia,rx_riwt:
|
||||||
|
description: |
|
||||||
|
Specifies the RX wathcdog interrupt timeout in
|
||||||
|
usec.The RIWT field is programmed as
|
||||||
|
(<val> * 256) / 62.5. if rx_riwt is 0 then RIWT
|
||||||
|
is disabled and IOC will be enabled. Minimum
|
||||||
|
value is 3 and Maximum value is 1020.
|
||||||
|
|
||||||
|
nvidia,rx_frames:
|
||||||
|
description: |
|
||||||
|
Specifies the RX frame count for interrupt
|
||||||
|
coalescing. If rx_frames is 0 then RX frame
|
||||||
|
count based interrupt coalescing is disabled and
|
||||||
|
Rx interrupt will be triggered based on rx_riwt
|
||||||
|
value.
|
||||||
|
For EQOS, Minimum value for rx_frames is 1 and
|
||||||
|
Maximum value is 256.
|
||||||
|
For MGBE, Minimum value for rx_frames is 1 and
|
||||||
|
Maximum value is 4096.
|
||||||
|
|
||||||
|
nvidia,tx_usecs:
|
||||||
|
description: |
|
||||||
|
Specifies the TX software timer interrupt
|
||||||
|
timeout in usec. if tx_usecs is 0 then TX
|
||||||
|
software timer is disabled and Tx interrupt
|
||||||
|
will be triggered for each packet. Minimum
|
||||||
|
value is 32 and Maximum value is 1020.
|
||||||
|
|
||||||
|
nvidia,tx_frames:
|
||||||
|
description: |
|
||||||
|
Specifies the TX frame count for interrupt
|
||||||
|
coalescing. If tx_frames is 0 then TX frame
|
||||||
|
count based interrupt coalescing is disabled and
|
||||||
|
Tx interrupt will be triggered based on tx_usecs
|
||||||
|
value.
|
||||||
|
For EQOS, Minimum value for tx_frames is 1 and
|
||||||
|
Maximum value is 10.
|
||||||
|
For MGBE, Minimum value for tx_frames is 1 and
|
||||||
|
Maximum value is 170.
|
||||||
|
|
||||||
|
nvidia,promisc_mode:
|
||||||
|
description: |
|
||||||
|
Specifies if promiscuous mode should be allowed
|
||||||
|
or not. Set to 1 to allow or 0 to disallow
|
||||||
|
promiscuous mode. Default is 1 (allowed).
|
||||||
|
|
||||||
|
nvidia,slot_num_check:
|
||||||
|
description: |
|
||||||
|
List of flags (0x0 to disable, 0x1 to enable)
|
||||||
|
to configure slot function per DMA channel.
|
||||||
|
Once this flag is enabled the corresponding TX
|
||||||
|
queue will be configured in AVB Strict priority
|
||||||
|
mode, not in CBS mode. So it will starve
|
||||||
|
TX queue 0 hence it is recommended to enable
|
||||||
|
CBS to set bandwidth limits as per use case.
|
||||||
|
The TX queue 0 can't be programmed for AVB mode,
|
||||||
|
so the corresponding DMA channel can't be
|
||||||
|
configured for slot function.
|
||||||
|
|
||||||
|
nvidia,slot_intvl_vals:
|
||||||
|
description: |
|
||||||
|
List of slot intervals (with a range from 1usec
|
||||||
|
to 4096usec) for fetching the data from
|
||||||
|
system memory per DMA channel give in
|
||||||
|
the dma-chans property. If this is not
|
||||||
|
specified 125usec default will be used.
|
||||||
|
|
||||||
|
nvidia,ptp_ref_clock_speed:
|
||||||
|
description: |
|
||||||
|
This is reference for PTP clock frequency and
|
||||||
|
the value set for tegra is 312.5MHz.
|
||||||
|
The frequency of this clock is programmable and
|
||||||
|
can be configured based on the requirements.
|
||||||
|
The maximum frequency it can take is 312.5MHz
|
||||||
|
and minimum frequency is 25MHz
|
||||||
|
FOR EQOS, Value set is 208.3MHz
|
||||||
|
FOR MGBE, Value set is 312.5MHz.
|
||||||
|
|
||||||
|
nvidia,instance_id:
|
||||||
|
description: |
|
||||||
|
Ethernet interface instance id. Fixed id value
|
||||||
|
is used. For mgbe0 is 0, mgbe1 is 1,
|
||||||
|
mgbe2 is 2, mgbe3 is 3 and eqos is 4.
|
||||||
|
|
||||||
|
nvidia,ptp-rx-queue:
|
||||||
|
description: |
|
||||||
|
This field specifies the Rx queue on which the
|
||||||
|
untagged PTP packets sent over the Ethernet
|
||||||
|
payload (not over IPv4 or IPv6) are routed.
|
||||||
|
|
||||||
|
dma-coherent:
|
||||||
|
description: |
|
||||||
|
Present if dma operations are coherent.
|
||||||
|
|
||||||
|
nvidia,ptp_m2m_role:
|
||||||
|
description: |
|
||||||
|
Ethernet HW role in PTP MAC-TO-MAC time sync.
|
||||||
|
This DT property holds the value to identify
|
||||||
|
role of HW. Ethernet HW can act as primary
|
||||||
|
interface(1), secondary interface(2) or
|
||||||
|
inactive interface(0). By default all HW are
|
||||||
|
inactive interface if DT property not defined.
|
||||||
|
|
||||||
|
nvidia,skip_mac_reset:
|
||||||
|
description: |
|
||||||
|
Flag to skip MAC reset from driver.
|
||||||
|
1 = skip doing mac reset, 0 = okay to reset.
|
||||||
|
|
||||||
|
nvidia,mac-addr-idx:
|
||||||
|
description: |
|
||||||
|
Chosen node inside DT will updated with list of
|
||||||
|
MAC addresses in increasing order up to the
|
||||||
|
maximum MAC addresses based on platform
|
||||||
|
configuration.
|
||||||
|
This DT property holds the value (index)
|
||||||
|
to fetch from the MAC address list inside
|
||||||
|
chosen node. This is read only property for
|
||||||
|
a given platform.
|
||||||
|
example - If there is Ethernet controller DT node
|
||||||
|
with index 8, the controller MAC address
|
||||||
|
is at /chosen/nvidia,ether-mac8.
|
||||||
|
|
||||||
|
nvidia,dma_rx_ring_sz:
|
||||||
|
description: |
|
||||||
|
Specifies the RX ring size.
|
||||||
|
For EQOS values are 64, 128, 256, 512, and 1024.
|
||||||
|
For MGBE values are 64, 128, 256, 512, 1024, 2048, and 4096.
|
||||||
|
|
||||||
|
nvidia,dma_tx_ring_sz:
|
||||||
|
description: |
|
||||||
|
Specifies the TX ring size.
|
||||||
|
For EQOS values are 64, 128, 256, 512, and 1024.
|
||||||
|
For MGBE values are 64, 128, 256, 512, 1024, 2048, and 4096.
|
||||||
|
|
||||||
|
status:
|
||||||
|
description: |
|
||||||
|
To disable and enable the VF DT node.Values should
|
||||||
|
be okay/disable.
|
||||||
|
|
||||||
|
nvidia,if-name:
|
||||||
|
description: |
|
||||||
|
Specifies interface name of the VF.This will be derived from name
|
||||||
|
and uint as <<if name prefix>><<DMA channel no>>
|
||||||
|
If name prefix -
|
||||||
|
For EQOS use eoqs_
|
||||||
|
For MGBE0 use mgbe0_
|
||||||
|
For MGBE1 use mgbe1_
|
||||||
|
For MGBE2 use mgbe2_
|
||||||
|
For MGBE3 use mgbe3_
|
||||||
|
DMA channel no -
|
||||||
|
Use DMA channel number given in the DT node.
|
||||||
|
|
||||||
|
nvidia,uphy-gbe-mode:
|
||||||
|
description: |
|
||||||
|
Specifies Gigabit Ethernet mode for UPHY.
|
||||||
|
1 = 10G, 0 = 5G.
|
||||||
|
|
||||||
|
nvidia,phy-iface-mode:
|
||||||
|
description: |
|
||||||
|
Specifies PHY interface mode.
|
||||||
|
0 = XFI 10G, 1 = XFI 5G, 2 = USXGMII 10G, 3 = USXGMII 5G.
|
||||||
|
|
||||||
|
nvidia,mdio_addr:
|
||||||
|
description: |
|
||||||
|
Specifies the MDIO address of the PHY.
|
||||||
|
|
||||||
|
nvidia,phy:
|
||||||
|
description: |
|
||||||
|
Specifies the name of the PHY used by Ethernet controller.
|
||||||
|
For MGBE0, value is "88Q4364".
|
||||||
|
|
||||||
|
nvidia,max-platform-mtu:
|
||||||
|
description: |
|
||||||
|
Maximum MTU size supported for a platform.
|
||||||
|
currently it is set to 9000 for embedded
|
||||||
|
platforms. if DT entry is not
|
||||||
|
present then it will be set to 1500 for
|
||||||
|
automotive platforms. In case of automotive
|
||||||
|
platforms MAC is connected to a switch and not
|
||||||
|
to PHY directly. The switch limits the max MTU
|
||||||
|
to 1500B, hence this property is used to
|
||||||
|
prevent configuring MTU size greater than 1500B
|
||||||
|
for EQOS contoller as well. In case of
|
||||||
|
embedded platforms MAC is connected directly to
|
||||||
|
PHY and hence MTU size of up to 9018 is supported
|
||||||
|
(9022 in case of tagged frame).
|
||||||
|
|
||||||
|
nvidia,macsec-enable:
|
||||||
|
description: |
|
||||||
|
Initialization of the MACsec happens only if this property
|
||||||
|
is enabled.
|
||||||
|
0x1= enable, 0x0=disable.
|
||||||
|
|
||||||
|
nvidia,vm-irq-config:
|
||||||
|
description: |
|
||||||
|
Specifies IRQ data and IRQ numbers for different VMs.
|
||||||
|
|
||||||
|
nvidia,ptp-tsc-trig:
|
||||||
|
description: |
|
||||||
|
Specifies the trigger time interval in which PTP-TSC timestamp
|
||||||
|
capture is triggered.
|
||||||
|
0 = disable, 1 to UINT32_MAX = trigger time in ms.
|
||||||
|
pinctrl-names:
|
||||||
|
description: |
|
||||||
|
If we define this property, then we can control
|
||||||
|
EQOS pin-mux states dynamically so that we can
|
||||||
|
save power based on the Ethernet link.
|
||||||
|
|
||||||
|
pinctrl-0:
|
||||||
|
description: |
|
||||||
|
Valid only when "pictrl-names" is defined, this
|
||||||
|
property has the configuration that need to be
|
||||||
|
set to EQOS signals when Ethernet link is down.
|
||||||
|
|
||||||
|
pinctrl-1:
|
||||||
|
description: |
|
||||||
|
Valid only when "pinctrl-names" is defined, this
|
||||||
|
property has the configuration that need to be
|
||||||
|
set when Ethernet link is up.
|
||||||
|
|
||||||
|
phy-mode:
|
||||||
|
description: |
|
||||||
|
Operation mode of the PHY interface and it
|
||||||
|
should be "rgmii-id".
|
||||||
|
|
||||||
|
phy-handle:
|
||||||
|
description: |
|
||||||
|
Phandle, specifies a reference to a node
|
||||||
|
representing a PHY device.
|
||||||
|
|
||||||
|
#MDIO node
|
||||||
|
|
||||||
|
mdio:
|
||||||
|
description: |
|
||||||
|
Child of Ethernet controller which holds the PHY
|
||||||
|
devices connected via MDIO bus.
|
||||||
|
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- nvidia,eqos-mdio
|
||||||
|
|
||||||
|
#PHY nodes
|
||||||
|
|
||||||
|
reg:
|
||||||
|
description: |
|
||||||
|
PHY ID number.
|
||||||
|
|
||||||
|
#Fixed Link
|
||||||
|
|
||||||
|
fixed-link:
|
||||||
|
description: |
|
||||||
|
Some Ethernet MACs have a "fixed link", and are not connected
|
||||||
|
to a normal MDIO-managed PHY device. For those situations,
|
||||||
|
a Device Tree binding allows to describe a "fixed link".
|
||||||
|
|
||||||
|
speed:
|
||||||
|
description: |
|
||||||
|
Specifies the link speed.
|
||||||
|
Accepted values are 10, 100, 1000, 5000 and 10000.
|
||||||
|
|
||||||
|
full-duplex:
|
||||||
|
description: |
|
||||||
|
To indicate that full duplex is used.
|
||||||
|
When absent, half duplex is assumed.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- reg-names
|
||||||
|
- interrupts
|
||||||
|
- interrupt-names
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- resets
|
||||||
|
- reset-names
|
||||||
|
- iommus
|
||||||
|
- interconnects
|
||||||
|
- interconnect-names
|
||||||
|
- nvidia,num-dma-chans
|
||||||
|
- nvidia,dma-chans
|
||||||
|
- nvidia,num-mtl-queues
|
||||||
|
- nvidia,mtl-queues
|
||||||
|
- nvidia,tc-mapping
|
||||||
|
- nvidia,residual-queue
|
||||||
|
- nvidia,rx-queue-prio
|
||||||
|
- nvidia,tx-queue-prio
|
||||||
|
- nvidia,rxq_enable_ctrl
|
||||||
|
- nvidia,dcs-enable
|
||||||
|
- nvidia,pad_calibration
|
||||||
|
- nvidia,pad_auto_cal_pu_offset
|
||||||
|
- nvidia,pad_auto_cal_pd_offset
|
||||||
|
- nvidia,rx_riwt
|
||||||
|
- nvidia,rx_frames
|
||||||
|
- nvidia,tx_usecs
|
||||||
|
- nvidia,tx_frames
|
||||||
|
- nvidia,promisc_mode
|
||||||
|
- nvidia,slot_num_check
|
||||||
|
- nvidia,slot_intvl_vals
|
||||||
|
- nvidia,ptp_ref_clock_speed
|
||||||
|
- nvidia,instance_id
|
||||||
|
- nvidia,ptp-rx-queue
|
||||||
|
- dma-coherent
|
||||||
|
- nvidia,ptp_m2m_role
|
||||||
|
- nvidia,skip_mac_reset
|
||||||
|
- nvidia,mac-addr-idx
|
||||||
|
- nvidia,dma_rx_ring_sz
|
||||||
|
- nvidia,dma_tx_ring_sz
|
||||||
|
- status
|
||||||
|
- nvidia,if-name
|
||||||
|
- nvidia,uphy-gbe-mode
|
||||||
|
- nvidia,phy-iface-mode
|
||||||
|
- nvidia,mdio_addr
|
||||||
|
- nvidia,phy
|
||||||
|
- nvidia,max-platform-mtu
|
||||||
|
- nvidia,macsec-enable
|
||||||
|
- nvidia,vm-irq-config
|
||||||
|
- nvidia,ptp-tsc-trig
|
||||||
|
- pinctrl-names
|
||||||
|
- pinctrl-0
|
||||||
|
- pinctrl-1
|
||||||
|
- phy-mode
|
||||||
|
- phy-handle
|
||||||
|
- mdio
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- fixed-link
|
||||||
|
- speed
|
||||||
|
- full-duplex
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
#EQOS
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
ethernet@2310000 {
|
||||||
|
compatible = "nvidia,nveqos";
|
||||||
|
reg = <0x0 0x02310000 0x0 0x10000>, /* EQOS Base Register */
|
||||||
|
<0x0 0x023D0000 0x0 0x10000>, /* MACSEC Base Register */
|
||||||
|
<0x0 0x02300000 0x0 0x10000>; /* HV Base Register */
|
||||||
|
reg-names = "mac", "macsec-base", "hypervisor";
|
||||||
|
interrupts = <0 194 0x4>, /* common */
|
||||||
|
<0 186 0x4>, /* vm0 */
|
||||||
|
<0 187 0x4>, /* vm1 */
|
||||||
|
<0 188 0x4>, /* vm2 */
|
||||||
|
<0 189 0x4>, /* vm3 */
|
||||||
|
<0 190 0x4>, /* MACsec non-secure intr */
|
||||||
|
<0 191 0x4>; /* MACsec secure intr */
|
||||||
|
interrupt-names = "common", "vm0", "vm1", "vm2", "vm3",
|
||||||
|
"macsec-ns-irq", "macsec-s-irq";
|
||||||
|
resets = <&bpmp TEGRA234_RESET_EQOS>,
|
||||||
|
<&bpmp TEGRA234_RESET_EQOS_MACSEC>; /* MACsec non-secure reset */
|
||||||
|
reset-names = "mac", "macsec_ns_rst";
|
||||||
|
clocks = <&bpmp TEGRA234_CLK_PLLREFE_VCOOUT>,
|
||||||
|
<&bpmp TEGRA234_CLK_EQOS_AXI>,
|
||||||
|
<&bpmp TEGRA234_CLK_EQOS_RX>,
|
||||||
|
<&bpmp TEGRA234_CLK_EQOS_PTP_REF>,
|
||||||
|
<&bpmp TEGRA234_CLK_EQOS_TX>,
|
||||||
|
<&bpmp TEGRA234_CLK_AXI_CBB>,
|
||||||
|
<&bpmp TEGRA234_CLK_EQOS_RX_M>,
|
||||||
|
<&bpmp TEGRA234_CLK_EQOS_RX_INPUT>,
|
||||||
|
<&bpmp TEGRA234_CLK_EQOS_MACSEC_TX>,
|
||||||
|
<&bpmp TEGRA234_CLK_EQOS_TX_DIVIDER>,
|
||||||
|
<&bpmp TEGRA234_CLK_EQOS_MACSEC_RX>;
|
||||||
|
clock-names = "pllrefe_vcoout", "eqos_axi", "eqos_rx",
|
||||||
|
"eqos_ptp_ref", "eqos_tx", "axi_cbb",
|
||||||
|
"eqos_rx_m", "eqos_rx_input",
|
||||||
|
"eqos_macsec_tx", "eqos_tx_divider",
|
||||||
|
"eqos_macsec_rx";
|
||||||
|
#if TEGRA_IOMMU_DT_VERSION >= DT_VERSION_2
|
||||||
|
interconnects = <&mc TEGRA234_MEMORY_CLIENT_EQOSR>,
|
||||||
|
<&mc TEGRA234_MEMORY_CLIENT_EQOSW>;
|
||||||
|
interconnect-names = "dma-mem", "write";
|
||||||
|
#endif
|
||||||
|
iommus = <&smmu_niso1 TEGRA234_SID_EQOS>;
|
||||||
|
nvidia,num-dma-chans = <8>;
|
||||||
|
nvidia,num-mtl-queues = <8>;
|
||||||
|
nvidia,mtl-queues = <0 1 2 3 4 5 6 7>;
|
||||||
|
nvidia,dma-chans = <0 1 2 3 4 5 6 7>;
|
||||||
|
nvidia,tc-mapping = <0 1 2 3 4 5 6 7>;
|
||||||
|
/* Residual Queue can be any valid queue except RxQ0 */
|
||||||
|
nvidia,residual-queue = <1>;
|
||||||
|
nvidia,rx-queue-prio = <0x2 0x1 0x30 0x48 0x0 0x0 0x0 0x0>;
|
||||||
|
nvidia,tx-queue-prio = <0x0 0x7 0x2 0x3 0x0 0x0 0x0 0x0>;
|
||||||
|
nvidia,rxq_enable_ctrl = <2 2 2 2 2 2 2 2>;
|
||||||
|
nvidia,vm-irq-config = <&eqos_vm_irq_config>;
|
||||||
|
nvidia,dcs-enable = <0x1>;
|
||||||
|
nvidia,macsec-enable = <0x1>;
|
||||||
|
nvidia,pad_calibration = <0x1>;
|
||||||
|
/* pad calibration 2's complement offset for pull-down value */
|
||||||
|
nvidia,pad_auto_cal_pd_offset = <0x0>;
|
||||||
|
/* pad calibration 2's complement offset for pull-up value */
|
||||||
|
nvidia,pad_auto_cal_pu_offset = <0x0>;
|
||||||
|
nvidia,rx_riwt = <512>;
|
||||||
|
nvidia,rx_frames = <64>;
|
||||||
|
nvidia,tx_usecs = <256>;
|
||||||
|
nvidia,tx_frames = <5>;
|
||||||
|
nvidia,promisc_mode = <1>;
|
||||||
|
nvidia,slot_num_check = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
|
||||||
|
nvidia,slot_intvl_vals = <0x0 0x7D 0x7D 0x7D 0x7D 0x7D 0x7D 0x7D>;
|
||||||
|
nvidia,ptp_ref_clock_speed = <208333334>;
|
||||||
|
nvidia,instance_id = <4>; /* EQOS instance */
|
||||||
|
nvidia,ptp-rx-queue = <3>;
|
||||||
|
pinctrl-names = "mii_rx_disable", "mii_rx_enable";
|
||||||
|
pinctrl-0 = <&eqos_mii_rx_input_state_disable>;
|
||||||
|
pinctrl-1 = <&eqos_mii_rx_input_state_enable>;
|
||||||
|
nvidia,dma_rx_ring_sz = <1024>;
|
||||||
|
nvidia,dma_tx_ring_sz = <1024>;
|
||||||
|
dma-coherent;
|
||||||
|
nvidia,ptp_m2m_role = <2>;
|
||||||
|
status = "okay";
|
||||||
|
nvidia,if-name = "eqos_0";
|
||||||
|
nvidia,mac-addr-idx = <0>;
|
||||||
|
nvidia,skip_mac_reset = <1>;
|
||||||
|
phy-mode = "rgmii-id";
|
||||||
|
phy-handle = <&phy>;
|
||||||
|
nvidia,ptp-tsc-trig = <500>;
|
||||||
|
/delete-node/ fixed-link;
|
||||||
|
|
||||||
|
mdio {
|
||||||
|
compatible = "nvidia,eqos-mdio";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
phy: phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#MGBE
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
ethernet@6810000 {
|
||||||
|
compatible = "nvidia,nvmgbe";
|
||||||
|
reg = <0x0 0x06810000 0x0 0x10000>, /* MGBE base */
|
||||||
|
<0x0 0x068A0000 0x0 0x10000>, /* XPCS base */
|
||||||
|
<0x0 0x068D0000 0x0 0x10000>, /* MACsec RM base */
|
||||||
|
<0x0 0x06800000 0x0 0x10000>; /* HV base */
|
||||||
|
reg-names = "mac", "xpcs", "macsec-base", "hypervisor";
|
||||||
|
interrupts = <0 384 0x4>, /* common */
|
||||||
|
<0 385 0x4>, /* vm0 */
|
||||||
|
<0 386 0x4>, /* vm1 */
|
||||||
|
<0 387 0x4>, /* vm2 */
|
||||||
|
<0 388 0x4>, /* vm3 */
|
||||||
|
<0 389 0x4>, /* vm4 */
|
||||||
|
<0 390 0x4>, /* MACsec non-secure intr */
|
||||||
|
<0 391 0x4>; /* MACsec secure intr */
|
||||||
|
interrupt-names = "common", "vm0", "vm1", "vm2", "vm3", "vm4",
|
||||||
|
"macsec-ns-irq", "macsec-s-irq";
|
||||||
|
resets = <&bpmp TEGRA234_RESET_MGBE0_MAC>,
|
||||||
|
<&bpmp TEGRA234_RESET_MGBE0_PCS>,
|
||||||
|
<&bpmp TEGRA234_RESET_MGBE0_MACSEC>; /* MACsec non-secure reset */
|
||||||
|
reset-names = "mac", "pcs", "macsec_ns_rst";
|
||||||
|
clocks = <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT_M>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_RX_PCS_M>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_RX_PCS_INPUT>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_RX_PCS>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_TX>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_TX_PCS>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_MAC_DIVIDER>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_MAC>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_EEE_PCS>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_APP>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_PTP_REF>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_MACSEC>,
|
||||||
|
<&bpmp TEGRA234_CLK_MGBE0_RX_INPUT>;
|
||||||
|
clock-names = "rx-input-m", "rx-pcs-m", "rx-pcs-input",
|
||||||
|
"rx-pcs", "tx", "tx-pcs", "mac-divider",
|
||||||
|
"mac", "eee-pcs", "mgbe", "ptp-ref",
|
||||||
|
"mgbe_macsec", "rx-input";
|
||||||
|
#if TEGRA_IOMMU_DT_VERSION >= DT_VERSION_2
|
||||||
|
interconnects = <&mc TEGRA234_MEMORY_CLIENT_MGBEARD>,
|
||||||
|
<&mc TEGRA234_MEMORY_CLIENT_MGBEAWR>;
|
||||||
|
interconnect-names = "dma-mem", "write";
|
||||||
|
#endif
|
||||||
|
iommus = <&smmu_niso0 TEGRA_SID_NISO0_MGBE>;
|
||||||
|
nvidia,num-dma-chans = <10>;
|
||||||
|
nvidia,dma-chans = <0 1 2 3 4 5 6 7 8 9>;
|
||||||
|
nvidia,num-mtl-queues = <10>;
|
||||||
|
nvidia,mtl-queues = <0 1 2 3 4 5 6 7 8 9>;
|
||||||
|
nvidia,tc-mapping = <0 1 2 3 4 5 6 7 0 1>;
|
||||||
|
/* Residual Queue can be any valid queue except RxQ0 */
|
||||||
|
nvidia,residual-queue = <1>;
|
||||||
|
nvidia,rxq_enable_ctrl = <2 2 2 2 2 2 2 2 2 2>;
|
||||||
|
nvidia,vm-irq-config = <&mgbe_vm_irq_config>;
|
||||||
|
nvidia,tx-queue-prio = <0 1 2 3 4 5 6 7 0 0>;
|
||||||
|
nvidia,rx-queue-prio = <0x1 0x2 0x4 0x8 0x10 0x20 0x40 0x80 0x0 0x0>;
|
||||||
|
nvidia,dcs-enable = <0x1>;
|
||||||
|
nvidia,macsec-enable = <0x1>;
|
||||||
|
nvidia,rx_riwt = <512>;
|
||||||
|
nvidia,rx_frames = <64>;
|
||||||
|
nvidia,tx_usecs = <256>;
|
||||||
|
nvidia,tx_frames = <16>;
|
||||||
|
nvidia,promisc_mode = <1>;
|
||||||
|
nvidia,slot_num_check = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
|
||||||
|
nvidia,slot_intvl_vals = <0x0 0x7D 0x7D 0x7D 0x7D 0x7D 0x7D 0x7D 0x7D 0x7D>;
|
||||||
|
nvidia,ptp_ref_clock_speed = <312500000>;
|
||||||
|
nvidia,instance_id = <0>; /* MGBE0 instance */
|
||||||
|
nvidia,ptp-rx-queue = <3>;
|
||||||
|
nvidia,dma_rx_ring_sz = <4096>;
|
||||||
|
nvidia,dma_tx_ring_sz = <4096>;
|
||||||
|
dma-coherent;
|
||||||
|
status = "okay";
|
||||||
|
nvidia,if-name = "mgbe0_0";
|
||||||
|
nvidia,mac-addr-idx = <2>;
|
||||||
|
nvidia,skip_mac_reset = <1>;
|
||||||
|
nvidia,mdio_addr = <0>;
|
||||||
|
nvidia,phy = "88Q4364";
|
||||||
|
/* 1:10G, 0:5G */
|
||||||
|
nvidia,uphy-gbe-mode = <1>;
|
||||||
|
/* 0:XFI 10G, 1:XFI 5G, 2:USXGMII 10G, 3:USXGMII 5G */
|
||||||
|
nvidia,phy-iface-mode = <0>;
|
||||||
|
nvidia,max-platform-mtu = <9215>;
|
||||||
|
fixed-link {
|
||||||
|
speed = <10000>;
|
||||||
|
full-duplex;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
...
|
||||||
Reference in New Issue
Block a user