Other Parts Discussed in Thread: AM4376
Hello experts,
on our hardware platform we are using two Ethernet PHY tranceivers of type TI DP83822I. Both PHYs are connected via MII interface to an AM4376 CPU and are used with the ICSS_EMAC (EtherNet/IP adapter with DLR support).
When the PHYs come out of reset (RESET_N = high), they are configured the first time using MDIO interface (CSL_MDIO_phyRegRead/Write):
- Disable IEEE power-down-mode (BMCR bit 11 = 0)
- Disable RGMII and RMII mode and switch to MII mode (RCSR bit 9,5,7 = 0)
- Set low polarity for LED 0 (LEDCR bit 7 = 0; PHYCR bit 5 = 0)
- Enable interrupts ...
- Enable Auto-MDIX (PHYCR bit 15 = 1)
- Set auto-negotiation capabilities (ANAR bit 8-5 = 1)
- Enable and restart auto-negotiation (BMCR bit 12,9 = 1)
In this configuration, link is established successfully and everything is working fine. The setup sequence above is executed on driver layer and is used to set the Ethernet interface to a default operational state.
When changing the speed and uplex configuration to forced mode, e.g. 100 MBit/half-duplex with auto-negotiation disabled, no link is being established. This error occurs when the following configuration sequence is executed very soon after step 7 (above):
8. Disable auto-negotiation (BMCR bit 12 = 0)
9. Set speed and duplex mode to 100 Mbit/HD (BMCR bit 13 = 1, bit 8 = 0)
This re-configuration is done by the application applying the user configuration for both Ethernet ports. Step 8 seems to be the problematic part:
- When waiting for a stable link signal after step 7 and then execute step 8, a link will be established at 100 MBit, HD.
- When not waiting for a stable link (or an unknown timeout without an Ethernet cable), the link will not be established. Unplugging and re-plugging the Ethernet-cable does not fix the problem.
- Skipping steps 5-7 does not fix the problem, either. I did not expect this, because steps 5-7 do not change the default configuration of the PHY.
What has to be done to re-configure the PHY from auto-negotiation to forced mode in order to get a stable link signal (parallel detection)?
Thank you in advance.
Best regards
Stefan Pape