Hello,
I have evm AM5728 board and ccs v8.1 and sdk rtos v5.01 installed on my PC. I was able to run gmac diag test successfully for 10 and 100 Mbit speeds. What I want to ask is that when I searched in the gmac_test.c source file I saw below speed change code part:
//change speed
if(speed==SPEED_LB)
{
speed=SPEED_10H;
if(phy_type==PHY_MICREL_KSZ9031RNX) //10H is failing now
speed=SPEED_10F;
}
else if(speed==SPEED_10H)
{
speed=SPEED_10F;
}
else if(speed==SPEED_10F)
{
speed=SPEED_100H;
}
else if(speed==SPEED_100H)
speed=SPEED_100F;
else if(speed==SPEED_100F)
{
if(fGig && (phy_type!=PHY_MICREL_KSZ9031RNX))
speed=SPEED_1000F;
else
fDone=TRUE;
}
else if(speed==SPEED_1000F)
fDone=TRUE;
this code implies that if the phy that is used in the evm AM5728 board is MICREL_KSZ9031RNX, than 1000 Mbit ethernet is not be supported. But I looked for the MICREL_KSZ9031RNX datasheet and this phy supports gigabit ethernet and also I found from evmAM572x Hardware user's guide(spruig1.pdf) from part 6.4:
6.4 10/100/1000 Ethernet
The AM572x GP EVM has two 10/100/1000 Ethernet transceiver from Micrel(KSZ9031RN) that is
connected to a dual RJ45 (P5) connector. The two Ethernet interfaces are connected to the switch inside
the AM572x processor.
The reset on the transceivers are driven by the board system reset signal ENET0/1_PORZ. A 25MHz
crystal drives the clock input of the KSZ9031RN Ethernet PHY.
The PHY address on the MDIO bus is set to 0x00h.
In the evmAM5728, MICREL_KSZ9031RNX phy exists and it supports gigabit ethernet. I thought that above "change speed" code is miswritten and I changed if(fGig && (phy_type!=PHY_MICREL_KSZ9031RNX)) line with if(fGig && (phy_type ==PHY_MICREL_KSZ9031RNX)) line and I ran the test. I also created two ethernet looper for gigabit ethernet for each port of evm AM5728 board. I have connected (shorted) 1(TX+) and 3(RX+) together; 2(TX-) and 6(RX-) together; 4(BI+) and 7(BI+) together; 5(BI-) and 8(BI-) together for this purpose.
But when speed changed to 1000F, test fails with "link down" error. The other speeds passed the test.
I have continued searching for the problem. I found
/* errata i880 "Ethernet RGMII2 Limited to 10/100 Mbps" */ &phy1 { max-speed = <100>;
from the AM57xx_beagle_x15.dts file from sdk linux files. But there is no mention about speed limit in the evmAM5728 dts file. I downloaded and installed my sdk rtos v5.01 for windows. Can this errata affect my board?
I want to execute gmac diag test with gigabit speed. Can you help me what I am missing here?
Any help will be appreciated.
Regards