Level One/Intel 971A PHY LED problem

We have recently implemented the Intel 971A PHY on our boards. We are getting strange LED activity and were wondering where in the boot process the LED configuration register (Hex 14) is setup? I can’t find reference to it in the bsp anywhere. We implemented per the suggested design from Netsilicon. We want to have the LNK and TX indications our our two LEDs. Doug

Some slight further info. Basically the LEDs are working just fine, the LED2 output is our Link indication, and LED3 is the RX traffic indication. We want to change the bits in regisiter Hex 14 to make the RX indication a TX indication. Doug

Check out the Documentation. I think you need to set the behavior in HW.

I realize it is in hardware to control this. I am asking where, and how, in the bsp I can get in and modify the contents of register 0x14. Is anyone from Netsilicon reading these? Doug

Normally, you modify narmled.c to change the way the bsp supports LEDs. Please check that out.

muscleman,Did you not read the question??? I am not trying to control the red and green leds off of the port pins of the Net50! I need to know how and where in the BSP I can change the contents of the regisiters in the PHY. Obviously it is part of the Mac driver, but can someone give me some guidance as to where and how to access 0x14 in the Intel 971a PHY??? Kindest regards, Doug

Sorry for the confusion. To archive that in the mii.c file the phy driver first you need to map the address of 0x14 it should be 814 then in mii_poll_busy() do mrdd following this an rstat. You should then be all set.

Wonderful, thanks for the help. I’ll give it a try. Doug

OK, I put the following code in right after the reset bit is released in mii_reset, nothing worked. I tried in at the beginning of the mii_negotiate routine, nothing happened. I then put it at the beginning of applicationStart in root.c. It seemed to work, but we are getting some other intermittant behavior now. Where should I put this. It should be just a one time initialization. /Set LEDs to be LNK and TX/ if (mii_identify_phy()==2) /Phy 2 is Intel Phy/ { (*NCC_EFE).miiar.bits.madr = 0x814; /LED control R/ (*NCC_EFE).miiwdr.reg = 0x0412; mii_poll_busy(); } Thanks, Doug

I think you need to put that in mii_check_speed function call.