I'm using AM335x MPU, i'm planing to use micrel KSZ9021RL gigabit PHY on AM335x.
is the ethernet device drive from AM335x EVM SDK is generic?
Ethernet driver is generic and doesn't depend on PHY. If the phy has no errata, then generic phy driver in the linux should work fine.
Mugunthan V N
the ethernet driver is generic in the linux, How about in u-boot ?
Thanks & Regards
U-Boot CPSW driver is also generic.
After I replace AR8031 phy with micrel KSZ9021RL phy,
in u-boot, when i enter "dhcp",
link up on port 1, speed 100, full duplex
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
.....until BOOTP broadcast 10 then repeat again
seen like the ethernet can't work properly and can't get IP address.
Why this will happen?
Do i need to change something in u-boot code, like the phy device id, phyaddr or others thing else?
U-Boot Supports only EMAC 0 by default. From the logs it shows that Ethernet is connected to EMAC 1.
Did you ported U-Boot to support EMAC 1 from the Porting guide Wiki.
If you have two eEthernet pinned out, can you try connecting with EMAC0.
The Micrel KSZ9021RL phy is connected to EMAC 0.
i think in u-boot, the EMAC 0 refer as port 1, EMAC 1 refer as port 2. same as i2c0 refer as i2c-1.
I'm using AM335x MPU, that have only one EMAC and two port, port 1 and port 2. The micrel KSZ9021RL phy was connected to the port 1.
Port 1 previously connected to Atheros AR8031 phy which is working properly, when i change to micrel KSZ9021RL phy, the ethernet not working anymore.
Can you confirm the connection in the Schematics, Because in U-Boot port 1 is referenced to EMAC 1 and not EMAC 0.
Also check if RGMII internal delay is taken care.
here is my connection,
For your info, I'm using AM335x EVM board and sdk.
How to check the internal delay?
Look at the gmii_sel register at 0x44e10650. Bits 1:0 select the mode for port1 (rgmii = 10) and bit 4 selects the internal delay. See the Control Module chapter of the TRM.
will the internal delay cause my micrel KSZ9021RL phy fail working?
how to verify the RGMII interface is working?
is it the micrel phy not compatible with AM335x ?
In U-Boot EMAC 0 is attached to Port 0 in software, but it is showing Port 1is connected.
Can you check the phy address is populated in the devices structure properly. You can look for phy_id in the following location
board/ti/am335x/evm.c:struct cpsw_slave_data cpsw_slaves - phy_id
What do you mean check the phy address is populated in the devices structure properly ?
do you mean to use the mdio line to access the register in ethernet phy, and get the phy address?
Hi, after i change my phy addr to 0x00, now link up on port 0.
in u-boot, when i type "dhcp":
link up on port 0, speed 100, full duplex
......until BOOTP broadcast 10 and repeat again
seem like the micrel phy still not working properly. Any idea?
Can you disable the RGMII internal delay by enabling the bits in gmii_sel
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.