This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I am using an AM3352 device on a custom board. For production programming I would like to use EMAC1 boot.
TRM "26.1.8.4.1 Device Initialization" describes ethernet PHY addressing "In dual-port configurations, the ROM code assumes that the Ethernet PHY with the lowest MDIO address (0-31) is connected to CPGMAC port"
I do have dual port config and several (5) PHYs connected to AM3352 MDIO port (PHY addresses 1-5), and the PHY that connects to EMAC1 has address "5" (which is the one with the _highest_ address, not with the _lowest_).
From TRM description I would assume that I need an ethernet link at the lowest PHY address (here: 1) in order to get EMAC1 boot working. However EMAC1 booting works when I have an ethernet link at PHY address 5 and without ethernet links on PHY addresses 1-4
Is this an issue of the TRM description or of the boot code inside the AM3352?
The behaviour is perfect for my setup, but I need to be sure that this is not an unexpected deviation from boot code that will be fixed sometimes, breaking my production setup.
Regards
tom
Thomas Langhammer said:However when I inspect the register values returned via MDIO, I can see PHYs with MDIO addresses 1-4 are returning 0x3808 for Register 1 (which means "no link") and PHY with MDIO address 5 is returning 0x382c (link detected).
Hi Tom,
to clarify what the ROM is doing, it does cycle through the PHY addresses starting from address 0. With each address, it is specifically looking for link status in each of the PHYs (in MII_STATUS_REG). In your case, since link status fails with PHY addresses 1-4, it settles on PHY addr 5 since it read a active link state from that PHY, and starts sending BOOTP packets to that address. Does that clear it up? If so, i can add some wording to the TRM.
Regards,
James
Hi Tom, I'm curious to know how you have the 5 PHYs connected in your design? Which MACs are they connect to, or do you have a switch in between?
More clarification on my last sentence: In your case, since link status fails with PHY addresses 1-4, it settles on PHY addr 5 since it read a active link state from that PHY, and thus the ROM assumes PHY addr 5 is connected to EMAC1 port and starts sending BOOTP packets to that port. If a link is active on PHYs 1-4 during boot, the ROM will assume that PHYs is connected to EMAC1 (the first one it encounters with active link starting from PHY addr 0), and start sending BOOTP packets to EMAC1 port.
Regards,
James