Hello NVIDIA Developers,
I am unable to communicate with a Marvell 88E1512 ethernet transceiver on a custom carrier board for an Xavier device.
These are the messages of interest from a dmesg:
[ 7.158662] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 7.273559] eth0: Could not attach to PHY
[ 7.273703] net eth0: eqos_open: Cannot attach to PHY (error: -19)
The custom board is different than the Xavier development kit, as the 88E1512 device connects to an onboard switch via SGMII.
A few attempts have been made at editing hardware/nvidia/platform/t19x/common/kernel-dts/t19x-common-platforms/tegra194-platforms-eqos.dtsi and flashing the Xavier, but the error continues to occur. Since it is not using copper-mode
, a few attempts have been made to change it, including commenting out the reg-init
value. These changes have not fixed the issue. The code below is just the file’s current state, including commented out mode settings.
#include <dt-bindings/gpio/tegra194-gpio.h>
/ {
ether_qos@2490000 {
/* PTP_ref clock speed in MHz */
nvidia,ptp_ref_clock_speed = <312500000>;
/* rxq_enable_ctrl = <rx0 rx1 rx2 rx3>
* 0x0 = Not enabled, 0x1 = Enabled for AV
* 0x2 = Enabled for Legacy, 0x3 = Reserved
*/
nvidia,rxq_enable_ctrl = <2 2 2 2>;
nvidia,queue_prio = <0 1 2 3>;
nvidia,use_tagged_ptp;
nvidia,ptp_dma_ch = <3>;
nvidia,chan_napi_quota = <64 64 64 64>;
nvidia,pause_frames = <0>; /*0=enable, 1=disable */
nvidia,phy-reset-gpio = <&tegra_main_gpio TEGRA194_MAIN_GPIO(G, 5) 0>;
nvidia,phy-max-frame-size = <16>; /* size in kbytes */
nvidia,eth_iso_enable = <1>; /*0=enable, 1=disable */
phy-mode = "rgmii-id";
phy-handle = <&phy0>;
mdio {
compatible = "nvidia,eqos-mdio";
#address-cells = <1>;
#size-cells = <0>;
phy0: ethernet-phy@0 {
reg = <0>;
interrupt-parent = <&tegra_main_gpio>;
interrupts = <TEGRA194_MAIN_GPIO(G, 4) IRQ_TYPE_LEVEL_LOW>;
//marvell,sgmii-mode;
marvell,fiber-mode;
// marvell,copper-mode;
/* Setup LED[2] as interrupt pin (active low) */
// marvell,reg-init = <0x03 0x12 0x7fff 0x880>;
};
};
};
thermal-zones {
CPU-therm {
trips {
MAKE_EQOS_TRIP(m40, -40000, 5000);
MAKE_EQOS_TRIP(m5, -5000, 5000);
MAKE_EQOS_TRIP(p30, 30000, 5000);
MAKE_EQOS_TRIP(p65, 65000, 5000);
MAKE_EQOS_TRIP(p100, 100000, 5000);
};
cooling-maps {
MAP_EQOS(m40, 1);
MAP_EQOS(m5, 2);
MAP_EQOS(p30, 3);
MAP_EQOS(p65, 4);
MAP_EQOS(p100, 5);
};
};
};
};
Files attached for boot messages obtained over serial and full dmesg output. Any advice here would be appreciated.
Thanks!
Ian
dmesg_phy-eth0-err_20210623.txt (63.6 KB)
serial-boot-log_phy-eth0-err_20210623.txt (31.5 KB)