Hi John
Unfortunately the NE64 allows either all LEDs to be controlled by the PHY or none (otherwise it would have been possible to let the PHY control the duplex line only).
The demo implementation controls the LEDs as on the DEMO board, where the Collision and Duplex LEDs are not connected, which explains why these are not supported.
To add duplex control it will be necessary to slightly modify the interrupt routine of the PHY (__interrupt void ephy_isr(void)) in NE64.c. This interrupt routine is called each time there is a change detected by the PHY - eg. when it has autonegotiated. It may take a small amount of experimentation to get it absolutely right (whether to check on AUTO_NEG_CHANGED or when LINK_UP is signalled, or both) but I believe the flag PHY_R17_DPM contains the information.
There are then two basic methods to control the LED.
1. The GPIO change can be programmed directly in the interrupt routine (easiest)
2. An interrupt event is generated for the fnNetworkIndicator, which then interprets it to either turn on or off the LED. The other indicators use this method so that additional delays etc. can easily be implemented. It will however be necessary to extend the list of global interrupt events to include new ones (something like LAN_LINK_DUPLEX and LAN_LINK_SIMPLEX) and possibly also actively distinguish the LED on the LAN_LINK_DOWN event so that the duplex light doesn't continue to be on when the cable is removed.
Good luck
Tell me if you have any difficulties and I can look more at this.
Regards
Mark