]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/performance-audio-sr.git/blobdiff - pdk_k2g_1_0_1/packages/ti/board/src/icev2AM335x/device/enet_phy.c
Change pdk_k2g_1_0_1 directory name in preparation for updating RSTC plugin
[processor-sdk/performance-audio-sr.git] / pdk_k2g_1_0_1 / packages / ti / board / src / icev2AM335x / device / enet_phy.c
diff --git a/pdk_k2g_1_0_1/packages/ti/board/src/icev2AM335x/device/enet_phy.c b/pdk_k2g_1_0_1/packages/ti/board/src/icev2AM335x/device/enet_phy.c
deleted file mode 100644 (file)
index c64e08d..0000000
+++ /dev/null
@@ -1,1144 +0,0 @@
-/**
- * enet_phy.c
- *
- *
- * Copyright (c) 2012 Texas Instruments Incorporated ALL RIGHTS RESERVED
- *
-*/
-
-#include <stdio.h>
-#include <ti/csl/cslr_mdio.h>
-#include <ti/csl/src/ip/mdio/V2/cslr_mdio.h>
-#include <ti/csl/csl_mdio.h>
-#include <ti/csl/src/ip/mdio/V2/csl_mdio.h>
-#include <ti/csl/csl_mdioAux.h>
-#include <ti/csl/src/ip/mdio/V2/csl_mdioAux.h>
-#include <ti/board/src/icev2AM335x/device/enet_phy.h>
-
-/* UART Header files */
-#include <ti/drv/uart/UART.h>
-#include <ti/drv/uart/src/UART_osal.h>
-#include <ti/drv/uart/UART_stdio.h>
-
-/* R A N D O M  N U M B E R  S U P P O R T */
-#define COMMON_RANDOM_MAX        0xFFFFu
-
-/* Enable the below macro to have prints on the IO Console */
-//#define IO_CONSOLE
-
-#ifndef IO_CONSOLE
-#define ENET_PHY_log                UART_printf
-#else
-#define ENET_PHY_log                printf
-#endif
-
-static Uint32 RandomSeed = 1u;
-
-static Uint32 cpswRandom(void)
-{
-  RandomSeed = (RandomSeed * (1103515245u)) + (12345u);
-  return ((Uint32) (RandomSeed/(65536u)) % (COMMON_RANDOM_MAX + 1u));
-}
-
-
-static Uint32 cpswRandomRange(Uint32 min, Uint32 max)
-{
-  Uint32 iTmp;
-
-  iTmp =  cpswRandom();
-  iTmp %= ((max - min) + 1u);
-  iTmp += min;
-  return(iTmp);
-}
-
-static void _ENETPHY_DisablePhy(ENETPHY_Handle hPhyDev,Uint32 PhyNum);
-static void _ENETPHY_PhyTimeOut(ENETPHY_Handle hPhyDev);
-static void _ENETPHY_ResetPhy(ENETPHY_Handle hPhyDev,Uint32 PhyNum);
-
-
-static void _ENETPHY_DefaultState  (ENETPHY_Handle hPhyDev);
-static void _ENETPHY_FindingState  (ENETPHY_Handle hPhyDev);
-static void _ENETPHY_FoundState    (ENETPHY_Handle hPhyDev);
-static void _ENETPHY_InitState     (ENETPHY_Handle hPhyDev);
-static void _ENETPHY_LinkedState   (ENETPHY_Handle hPhyDev);
-static void _ENETPHY_LinkWaitState (ENETPHY_Handle hPhyDev);
-static void _ENETPHY_LoopbackState (ENETPHY_Handle hPhyDev);
-static void _ENETPHY_NwayStartState(ENETPHY_Handle hPhyDev);
-static void _ENETPHY_NwayWaitState (ENETPHY_Handle hPhyDev);
-
-#define   _cpswIsGigPhy(hPhyDev)       (TRUE)
-
-#define ENETPHY_NOT_FOUND  0xFFFFu    /*  Used in Phy Detection */
-
-/*CHECK:: PhyState field breakup  */
-#define ENETPHY_DEV_OFFSET      (0u)
-#define ENETPHY_DEV_SIZE        (5u)
-#define ENETPHY_DEV_MASK        (0x1f<<ENETPHY_DEV_OFFSET)
-
-#define ENETPHY_STATE_OFFSET    (ENETPHY_DEV_SIZE+ENETPHY_DEV_OFFSET)
-#define ENETPHY_STATE_SIZE      (5u)
-#define ENETPHY_STATE_MASK      (0x1fu<<ENETPHY_STATE_OFFSET)
-    #define INIT       (1u<<ENETPHY_STATE_OFFSET)
-    #define FINDING    (2u<<ENETPHY_STATE_OFFSET)
-    #define FOUND      (3u<<ENETPHY_STATE_OFFSET)
-    #define NWAY_START (4u<<ENETPHY_STATE_OFFSET)
-    #define NWAY_WAIT  (5u<<ENETPHY_STATE_OFFSET)
-    #define LINK_WAIT  (6u<<ENETPHY_STATE_OFFSET)
-    #define LINKED     (7u<<ENETPHY_STATE_OFFSET)
-    #define LOOPBACK   (8u<<ENETPHY_STATE_OFFSET)
-
-#define ENETPHY_SPEED_OFFSET    (ENETPHY_STATE_OFFSET+ENETPHY_STATE_SIZE)
-#define ENETPHY_SPEED_SIZE      (1u)
-#define ENETPHY_SPEED_MASK_NDK      (1u<<ENETPHY_SPEED_OFFSET)
-
-#define ENETPHY_DUPLEX_OFFSET   (ENETPHY_SPEED_OFFSET+ENETPHY_SPEED_SIZE)
-#define ENETPHY_DUPLEX_SIZE     (1u)
-#define ENETPHY_DUPLEX_MASK     (1u<<ENETPHY_DUPLEX_OFFSET)
-
-#define ENETPHY_TIM_OFFSET      (ENETPHY_DUPLEX_OFFSET+ENETPHY_DUPLEX_SIZE)
-#define ENETPHY_TIM_SIZE        (10u)
-#define ENETPHY_TIM_MASK        (0x3ffu<<ENETPHY_TIM_OFFSET)
-
-/* we are working with 100ms ticks here */
-  #define ENETPHY_FIND_TO (  1u<<ENETPHY_TIM_OFFSET)
-    #define ENETPHY_RECK_TO (20u<<ENETPHY_TIM_OFFSET)
-    #define ENETPHY_LINK_TO (50u<<ENETPHY_TIM_OFFSET)
-    #define ENETPHY_NWST_TO (50u<<ENETPHY_TIM_OFFSET)
-    #define ENETPHY_NWDN_TO (80u<<ENETPHY_TIM_OFFSET)
-    #define ENETPHY_MDIX_TO (27u<<ENETPHY_TIM_OFFSET) /* 2.74 Seconds <--Spec and empirical */
-
-#define ENETPHY_SMODE_OFFSET    (ENETPHY_TIM_OFFSET+ENETPHY_TIM_SIZE)
-#define ENETPHY_SMODE_SIZE      (7u)
-#define ENETPHY_SMODE_MASK      (0x7fu<<ENETPHY_SMODE_OFFSET)
-    #define SMODE_LPBK   (0x40u<<ENETPHY_SMODE_OFFSET)
-    #define SMODE_AUTO   (0x20u<<ENETPHY_SMODE_OFFSET)
-    #define SMODE_FD1000 (0x10u<<ENETPHY_SMODE_OFFSET)
-    #define SMODE_FD100  (0x08u<<ENETPHY_SMODE_OFFSET)
-    #define SMODE_HD100  (0x04u<<ENETPHY_SMODE_OFFSET)
-    #define SMODE_FD10   (0x02u<<ENETPHY_SMODE_OFFSET)
-    #define SMODE_HD10   (0x01u<<ENETPHY_SMODE_OFFSET)
-    #define SMODE_ALL    (0x1fu<<ENETPHY_SMODE_OFFSET)
-
-#define ENETPHY_CHNG_OFFSET    (ENETPHY_SMODE_OFFSET+ENETPHY_SMODE_SIZE)
-#define ENETPHY_CHNG_SIZE      (1u)
-#define ENETPHY_CHNG_MASK      (1u<<ENETPHY_CHNG_OFFSET)
-    #define ENETPHY_CHANGE (1u<<ENETPHY_CHNG_OFFSET)
-
-#define ENETPHY_TIMEDOUT_OFFSET    (ENETPHY_CHNG_OFFSET+ENETPHY_CHNG_SIZE)
-#define ENETPHY_TIMEDOUT_SIZE      (1u)     /*  30 Bits used */
-#define ENETPHY_TIMEDOUT_MASK   ((Uint32)(1u<<ENETPHY_TIMEDOUT_OFFSET))
-#define ENETPHY_MDIX_SWITCH     ((Uint32)(1u<<ENETPHY_TIMEDOUT_OFFSET))
-
-#define ENETPHY_MDIX_OFFSET    (ENETPHY_TIMEDOUT_OFFSET+ENETPHY_TIMEDOUT_SIZE)
-#define ENETPHY_MDIX_SIZE      (1u)     /*  31 Bits used */
-#define ENETPHY_MDIX_MASK      ((Uint32)(1u<<ENETPHY_MDIX_OFFSET))
-#define ENETPHY_MDIX           ((Uint32)(1u<<ENETPHY_MDIX_OFFSET))
-
-
-#ifndef VOLATILE32
-#define VOLATILE32(addr) (*((volatile Uint32 *)(addr)))
-#endif
-
-Int32 cpsw_g_speed_set = 0;
-Int32 cpsw_g_soft_reset_status = 0;
-
-/*User Calls*********************************************************       */
-
-/* Updates book-keeping with info provided, programs ControlReg
- * with clkdiv,enable bits*/
-int ENETPHY_Init(ENETPHY_Handle hPhyDev, Uint32 miibase, Uint32 inst, Uint32 PhyMask, Uint32 MLinkMask, Uint32 MdixMask, Uint32 PhyAddr, Uint32 ResetBit, Uint32 MdioBusFreq, Uint32 MdioClockFreq,int verbose)
-{
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-
-  Int32  ret =0 ;
-  Uint32 phy;
-
-  ((ENETPHY_DEVICE *) hPhyDev)->miibase   = miibase;
-  ((ENETPHY_DEVICE *) hPhyDev)->inst      = inst;
-  ((ENETPHY_DEVICE *) hPhyDev)->PhyMask   = PhyMask;
-  ((ENETPHY_DEVICE *) hPhyDev)->MLinkMask = MLinkMask;
-  ((ENETPHY_DEVICE *) hPhyDev)->MdixMask  = MdixMask;
-
-  (void)verbose;/* remove if not required */
-
-  *PhyState &= ~ENETPHY_MDIX_MASK;   /* Set initial State to MDI */
-
-  CSL_MDIO_setClkDivVal((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase, (MdioBusFreq/MdioClockFreq - 1));
-  CSL_MDIO_enableFaultDetect((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase);
-  CSL_MDIO_disablePreamble((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase);
-  CSL_MDIO_enableStateMachine((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase);
-
-  _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_CNTRL_REG, PhyAddr, &phy);
-  phy |= NWAY_AUTOMDIX_ENABLE;
-  _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_CNTRL_REG,PhyAddr,phy);
-
-       (void)ResetBit; /* suppress warning */
-
-       *PhyState=INIT;
-
-    ret = 0;
-
-  return ret;
-}/* end of function ENETPHY_Init*/
-
-void ENETPHY_SetPhyMode(ENETPHY_Handle hPhyDev,Uint32 PhyMode)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Uint32 CurrentState;
-
-  ((ENETPHY_DEVICE *) hPhyDev)->PhyMode = PhyMode;   /* used for AUTOMIDX, planned to replace PhyState fields */
-  *PhyState &= (~ENETPHY_SMODE_MASK);
-
-  if (0u != (PhyMode & NWAY_LPBK))
-    {
-    *PhyState |= SMODE_LPBK;
-    }
-  if (0u != (PhyMode & NWAY_AUTO))
-    {
-     *PhyState |= SMODE_AUTO;
-    }
-  if (0u != (PhyMode & NWAY_FD1000) )
-    {
-    *PhyState |= SMODE_FD1000;
-    }
-  if (0u!= (PhyMode & NWAY_FD100))
-    {
-    *PhyState |= SMODE_FD100;
-    }
-  if (0u != (PhyMode & NWAY_HD100))
-    {
-    *PhyState |= SMODE_HD100;
-    }
-  if (0u != (PhyMode & NWAY_FD10))
-    {
-    *PhyState |= SMODE_FD10;
-    }
-  if (0u != (PhyMode & NWAY_HD10))
-    {
-    *PhyState |= SMODE_HD10;
-    }
-
-  CurrentState = (*PhyState) & ENETPHY_STATE_MASK;
-  if ( ((CurrentState == NWAY_START)|| (CurrentState == NWAY_WAIT)) ||
-       ( ((CurrentState == LINK_WAIT) || (CurrentState == LINKED) ) || (CurrentState == LOOPBACK)) )
-    {
-    *PhyState = ( (*PhyState)&(~ENETPHY_STATE_MASK)) | (FOUND | ENETPHY_CHANGE);
-    }
-
-     ENET_PHY_log("SetPhyMode:%08X Auto:%d, FD10:%d, HD10:%d, FD100:%d, HD100:%d, FD1000:%d LPBK:%d\n", PhyMode,
-     (PhyMode & NWAY_AUTO), (PhyMode & MII_NWAY_FD10),(PhyMode & MII_NWAY_HD10),(PhyMode & MII_NWAY_FD100),
-     (PhyMode & MII_NWAY_HD100), (PhyMode & NWAY_FD1000),
-     (PhyMode & NWAY_LPBK)  );
-
-         }
-
-Uint32 ENETPHY_GetPhyMode(ENETPHY_Handle hPhyDev)
-{
-    Uint32  PhyMode =0;
-    Uint32  status_reg = 0,control_reg = 0,advertize_reg;
-    Uint32  PhyNum,j;
-    Uint32  PhyMask   = ((ENETPHY_DEVICE *) hPhyDev)->PhyMask;
-
-    PhyNum = 0;
-    for(j = 1;PhyNum < 32;PhyNum++)
-    {
-      if( 0u != ( j & PhyMask))
-       {
-       break;
-       }
-      j = j<<1;
-    }
-
-    if(0u != _cpswIsGigPhy(hPhyDev))
-    {
-       /* read gig status */
-       _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_1000BT_CONTROL, PhyNum, &control_reg);
-       /* read gig status */
-       _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_1000BT_STATUS, PhyNum, &status_reg);
-    }
-    /* figure out if gig connected at FD 1000 or not first */
-    if ((0u != (control_reg & MII_NWAY_MY_FD1000)) && (0u != (status_reg & MII_NWAY_REM_FD1000)) )
-    {
-        PhyMode |= NWAY_FD1000;
-    }
-
-    _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_BCR, PhyNum, &control_reg);
-    if(0u != (control_reg & MII_AUTO_NEGOTIATE_EN)  )
-    {
-       PhyMode |= NWAY_AUTO;
-    }
-    _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_BSR, PhyNum, &status_reg);
-    _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_AUTONEG_ADV, PhyNum, &advertize_reg);
-
-    /* Check for 10/100 capabilities of PHYs */
-    if((0u != (control_reg & MII_ENETPHY_100))|| (0u != (PhyMode & NWAY_AUTO)) )
-    {
-       if(0u != (advertize_reg & MII_NWAY_FD100))
-           {
-           PhyMode |= NWAY_FD100;
-           }
-       if(0u != (advertize_reg & MII_NWAY_HD100))
-           {
-           PhyMode |= NWAY_HD100;
-           }
-
-    }
-
-    if(((control_reg & MII_ENETPHY_100) == 0) || (0u != (PhyMode & NWAY_AUTO)) )
-    {
-       if(0u != (advertize_reg & MII_NWAY_FD10))
-           {
-           PhyMode |= NWAY_FD10;
-           }
-       if(0u != (advertize_reg & MII_NWAY_HD10))
-           {
-           PhyMode |= NWAY_HD10;
-           }
-
-    }
-    return PhyMode;
-}
-/* ENETPHY_Tic is called every 10 mili seconds to process Phy states         */
-
-int ENETPHY_Tic(ENETPHY_Handle hPhyDev,Uint32* mdioStatus)
-{
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Uint32  CurrentState;
-  Int32   ret = 0;
-
-  *mdioStatus = MDIO_EVENT_NOCHANGE;
-
-  /*Act on current state of the Phy */
-  CurrentState=*PhyState;
-  switch(CurrentState&ENETPHY_STATE_MASK)
-    {
-    case INIT:         _ENETPHY_InitState(hPhyDev);      break;
-    case FINDING:      _ENETPHY_FindingState(hPhyDev);   break;
-    case FOUND:        _ENETPHY_FoundState(hPhyDev);     break;
-    case NWAY_START:   _ENETPHY_NwayStartState(hPhyDev); break;
-    case NWAY_WAIT:    _ENETPHY_NwayWaitState(hPhyDev);  break;
-    case LINK_WAIT:    _ENETPHY_LinkWaitState(hPhyDev);  break;
-    case LINKED:       _ENETPHY_LinkedState(hPhyDev);    break;
-    case LOOPBACK:     _ENETPHY_LoopbackState(hPhyDev);  break;
-    default:           _ENETPHY_DefaultState(hPhyDev);   break;
-    }
-
-  /*  Check is MDI/MDIX mode switch is needed */
-
-  if(0u != ((*PhyState) & ENETPHY_MDIX_SWITCH) )
-    {
-
-    Uint32 Mdix;
-
-    *PhyState &= (~ENETPHY_MDIX_SWITCH);  /* Clear Mdix Flip indicator */
-
-    if(0u != ((*PhyState) & ENETPHY_MDIX))
-       {
-      Mdix = 1;
-       }
-    else
-       {
-      Mdix = 0;
-    }
-    ret = (Int32)(_MIIMDIO_MDIXFLIP | Mdix);
-
-    }
-  else
-    {
-
-  /*Return state change to user */
-  /** CHECK : report MDIO_LINKEVENTS as MDIO_EVENT_NOCHANGE, MDIO_EVENT_LINKDOWN,
-   * MDIO_EVENT_PHYERROR,MDIO_EVENT_LINKUP
-   * Currently ENETPHY_CHNG_MASK set for any state transition*/
-
-    if (0u != ((*PhyState) & ENETPHY_CHNG_MASK))
-   {
-       if(  ( ((*PhyState) & ENETPHY_STATE_MASK) == LINKED) && ((CurrentState & ENETPHY_STATE_MASK) != LINKED) )
-               {
-               /* we have just entered LInked state */
-               *mdioStatus = MDIO_EVENT_LINKUP;
-               }
-       if(  ((CurrentState & ENETPHY_STATE_MASK) == LINKED) && ( ( (*PhyState) & ENETPHY_STATE_MASK) != LINKED))
-               {
-               /* we started in Linked state and we have a state change */
-               *mdioStatus = MDIO_EVENT_LINKDOWN;
-               }
-       *PhyState &= (~ENETPHY_CHNG_MASK);
-       ret = (Int32)(TRUE);
-    }
-   else
-   {
-       ret = (Int32)(FALSE);
-       }
-    }
-
-  return ret;
-
-}
-
-
-void ENETPHY_LinkChange(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Uint32  PhyNum,PhyStatus;
-
-  PhyNum = ( (*PhyState) & ENETPHY_DEV_MASK) >> ENETPHY_DEV_OFFSET;
-
-  ENET_PHY_log("ENETPHY_LinkChange: PhyNum = %d\n", PhyNum);
-
-  if (0u != (ENETPHY_GetLinked(hPhyDev)) )
-    {
-    _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_BSR, PhyNum, &PhyStatus);
-
-    if ((PhyStatus & MII_ENETPHY_LINKED) == 0u)
-      {
-      *PhyState &= (~(ENETPHY_TIM_MASK | ENETPHY_STATE_MASK));
-      if (0u!=((*PhyState) & SMODE_AUTO))
-        {
-        _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_BCR, PhyNum, MII_AUTO_NEGOTIATE_EN|MII_RENEGOTIATE);
-        *PhyState |= ((ENETPHY_CHANGE | ENETPHY_NWST_TO) | NWAY_START);
-        }
-       else
-        {
-        *PhyState|= ((ENETPHY_CHANGE | ENETPHY_LINK_TO) | LINK_WAIT);
-        }
-      }
-    }
-  }
-
-  /* returns 0 if current Phy has AutoMdix support, otherwise 0 */
-static int _ENETPHY_MdixSupported(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Uint32 PhyNum;
-  Int32 ret;
-
-  if((((ENETPHY_DEVICE *) hPhyDev)->PhyMode & NWAY_AUTOMDIX) == 0)
-  {
-    ret = (0);  /* AutoMdix not turned on */
-  }
-  else
-  {
-    PhyNum = ((*PhyState) & ENETPHY_DEV_MASK) >> ENETPHY_DEV_OFFSET;
-  if( ((1<<PhyNum) & ((ENETPHY_DEVICE *) hPhyDev)->MdixMask) == 0)
-    {
-       ret = 0;  /*  Phy does not support AutoMdix*/
-    }
-
-    ret = 1;
-  }
-  return ret;
-  }
-
-/* If current Phy has AutoMdix support add Mdix Delay to the Timer State Value */
-static void _ENETPHY_MdixDelay(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 Delay;
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-
-
-  if(_ENETPHY_MdixSupported(hPhyDev) != 0)
-    {
-  /* Get the Delay value in milli-seconds and convert to ten-milli second value */
-  Delay = cpswRandomRange(_AUTOMDIX_DELAY_MIN, _AUTOMDIX_DELAY_MAX);
-  Delay /= 10;
-
-  /*  Add AutoMidx Random Switch Delay to AutoMdix Link Delay */
-
-  Delay += (ENETPHY_MDIX_TO>>ENETPHY_TIM_OFFSET);
-
-  /* Change Timeout value to AutoMdix standard */
-    *PhyState &= (~(ENETPHY_TIM_MASK));  /* Clear current Time out value */
-  *PhyState |=  (Delay<<ENETPHY_TIM_OFFSET);     /* Set new value */
-    }
-  return;
-
-  }
-
-void _ENETPHY_DisablePhy(ENETPHY_Handle hPhyDev,Uint32 PhyNum)
-  {
-  _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_BCR, PhyNum, (MII_ENETPHY_ISOLATE | MII_ENETPHY_PDOWN) );
-
-  ENET_PHY_log("ENETPHY_DisablePhy(%d)\n",PhyNum);
-
-  }
-
-void _ENETPHY_InitState(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Uint32 CurrentState;
-
-  CurrentState=*PhyState;
-  CurrentState = (CurrentState & (~ENETPHY_TIM_MASK)) | (ENETPHY_FIND_TO);
-  CurrentState=(CurrentState & (~ENETPHY_STATE_MASK)) | (FINDING);
-  CurrentState=(CurrentState & (~ENETPHY_SPEED_MASK_NDK));
-  CurrentState=(CurrentState & (~ENETPHY_DUPLEX_MASK));
-  CurrentState|=ENETPHY_CHANGE;
-
-  *PhyState=CurrentState;
-
-  }
-
-void _ENETPHY_FindingState(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Uint32  PhyMask  = ((ENETPHY_DEVICE *) hPhyDev)->PhyMask;
-  Uint32  PhyNum,i,j;
-
-  PhyNum=ENETPHY_NOT_FOUND;
-
-  if (0u!= ((*PhyState) & ENETPHY_TIM_MASK))
-    {
-    *PhyState=( (*PhyState) & (~ENETPHY_TIM_MASK) ) | (( (*PhyState) & ENETPHY_TIM_MASK) - (1 << ENETPHY_TIM_OFFSET));
-    }
-   else
-    {
-    j =1;
-    for(i=0; i<32; i++)
-        {
-        if( PhyMask & j)
-            {
-            if( CSL_MDIO_isPhyAlive((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase, i))
-                {
-                    PhyNum=i;
-                    break;
-                }
-            }
-        j = j << 1;
-        }
-    if (PhyNum!=ENETPHY_NOT_FOUND)
-      {
-      /*  Phy Found! */
-      *PhyState = ((*PhyState) & (~ENETPHY_DEV_MASK) ) | ((PhyNum & ENETPHY_DEV_MASK) << ENETPHY_DEV_OFFSET);
-      *PhyState = ( (*PhyState) & (~ENETPHY_STATE_MASK) ) | (FOUND);
-      *PhyState|=ENETPHY_CHANGE;
-
-      ENET_PHY_log("ENETPHY_FindingState: PhyNum: %d\n",PhyNum);
-
-      }
-     else
-      {
-
-      ENET_PHY_log("ENETPHY_FindingState: Timed Out looking for a Phy!\n");
-      *PhyState|=ENETPHY_RECK_TO;  /* Set Timer */
-      }
-    }
-  }
-
-void _ENETPHY_FoundState(ENETPHY_Handle hPhyDev)
- {
-  Uint32 *PhyState  = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Uint32  PhyMask   = ((ENETPHY_DEVICE *) hPhyDev)->PhyMask;
-  Uint32  MLinkMask = ((ENETPHY_DEVICE *) hPhyDev)->MLinkMask;
-  Uint32  PhyNum,PhyStatus,NWAYadvertise,NWAY1000advertise=0,m,phynum,i,j;
-  Uint32 PhyDummy;
-
-  static  Uint32 auto_neg1 = 0xFFFFFFFF,auto_neg2= 0xFFFFFFFF;
-
-
-  if (( (*PhyState) & ENETPHY_SMODE_MASK) == 0)
-    {
-    return;
-    }
-
-  PhyNum = ((*PhyState) & ENETPHY_DEV_MASK) >> ENETPHY_DEV_OFFSET;
-    j =1;
-    for(phynum=0; phynum<32; phynum++)
-        {
-        if(0u!= (PhyMask & j))
-            {
-            if( CSL_MDIO_isPhyAlive((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase, phynum))
-                {
-                    _ENETPHY_DisablePhy(hPhyDev,phynum);
-                }
-            }
-        j = j << 1;
-        }
-  /* If Aries SWR2 reset then don't reset phy*/
-  /*  Reset the Phy and proceed with auto-negotiation */
-  if(( 0u != cpsw_g_speed_set) || ((0u ==cpsw_g_soft_reset_status) || ((auto_neg1 & (1 << PhyNum)) == 0) )  )
-  {
-      _ENETPHY_ResetPhy(hPhyDev,PhyNum);
-  }
-
-  /*  Set the way Link will be Monitored */
-  /* Check the Link Selection Method */
-  if (0u != ((1 << PhyNum) & MLinkMask) )
-    {
-  CSL_MDIO_enableLinkStatusChangeInterrupt((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase,  ((ENETPHY_DEVICE *) hPhyDev)->inst, PhyNum);
-    }
-    else
-    {
-  CSL_MDIO_disableLinkStatusChangeInterrupt((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase,  ((ENETPHY_DEVICE *) hPhyDev)->inst, PhyNum);
-    }
-  /* Get the Phy Status */
-  _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_BSR, PhyNum, &PhyStatus);
-
-
- /*  For Phy Internal loopback test, need to wait until Phy
-      found, then set Loopback */
-  if (0u != ((*PhyState) & SMODE_LPBK))
-    {
-    /* Set Phy in Loopback */
-
-    _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_BCR, PhyNum, MII_ENETPHY_LOOP|MII_ENETPHY_FD);
-    /* Do a read to ensure ENETPHY_LOOP has completed */
-    _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_BSR, PhyNum, &PhyDummy);
-    *PhyState = ( (*PhyState) & (~ENETPHY_STATE_MASK) ) | (LOOPBACK);
-    *PhyState|=ENETPHY_CHANGE;
-    return;
-    }
-
-  ENET_PHY_log("Enable Phy to negotiate external connection\n");
-
-
-  NWAYadvertise=MII_NWAY_SEL;
-  if (0u != ((*PhyState) & SMODE_FD100))
-  {
-    NWAYadvertise |= MII_NWAY_FD100;
-    }
-  if (0u != ((*PhyState) & SMODE_HD100))
-    {
-    NWAYadvertise |= MII_NWAY_HD100;
-    }
-  if (0u != ((*PhyState) & SMODE_FD10))
-    {
-    NWAYadvertise |= MII_NWAY_FD10;
-    }
-  if (0u != ((*PhyState) & SMODE_HD10))
-    {
-    NWAYadvertise |= MII_NWAY_HD10;
-    }
-  if (0u != ((*PhyState) & SMODE_FD1000))
-    {
-         NWAY1000advertise= ENETPHY_1000BT_FD;
-    }
-
-  *PhyState &= ( ~(ENETPHY_TIM_MASK | ENETPHY_STATE_MASK));
-  if ((0u != (PhyStatus & MII_NWAY_CAPABLE)) && (0u != ( (*PhyState) & SMODE_AUTO)) )   /*NWAY Phy Detected*/
-  {
-    if(( 0u != cpsw_g_speed_set) || ((0u ==cpsw_g_soft_reset_status) || ((auto_neg1 & (1 << PhyNum)) == 0) )  )
-    {
-       /*For NWAY compliant Phys                                                */
-       _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_AUTONEG_ADV, PhyNum, NWAYadvertise);
-       /* for gig negotiation */
-      if(0u != _cpswIsGigPhy(hPhyDev))
-      {
-          _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_1000BT_CONTROL, PhyNum, NWAY1000advertise);
-      }
-
-      ENET_PHY_log("NWAY Advertising: ");
-      if (0u != ((*PhyState) & SMODE_FD1000))
-       {
-       ENET_PHY_log("FullDuplex-1000 ");
-       }
-      if (0u != (NWAYadvertise & MII_NWAY_FD100))
-       {
-       ENET_PHY_log("FullDuplex-100 ");
-       }
-      if (0u != (NWAYadvertise & MII_NWAY_HD100))
-       {
-       ENET_PHY_log("HalfDuplex-100 ");
-       }
-      if (0u != (NWAYadvertise & MII_NWAY_FD10))
-       {
-       ENET_PHY_log("FullDuplex-10 ");
-       }
-      if (0u != (NWAYadvertise & MII_NWAY_HD10))
-       {
-       ENET_PHY_log("HalfDuplex-10 ");
-       }
-
-      ENET_PHY_log("\n");
-
-      _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_BCR, PhyNum, MII_AUTO_NEGOTIATE_EN );
-      _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_BCR, PhyNum, MII_AUTO_NEGOTIATE_EN|MII_RENEGOTIATE|MII_ENETPHY_FD);
-     *PhyState|= ( (ENETPHY_CHANGE | ENETPHY_NWST_TO) | NWAY_START);
-    }
-    else
-    {
-      *PhyState |= ( (ENETPHY_CHANGE | ENETPHY_NWST_TO) | NWAY_START);
-      auto_neg1 = auto_neg1 & (~(1 << PhyNum));
-    }
-  }
-  else
-  {
-    *PhyState &= (~SMODE_AUTO);   /*The Phy is not capable of auto negotiation!  */
-    m=NWAYadvertise;
-    j = 0x8000u;
-
-    for(i=0;(i<16);i++)
-    {
-       if(0u != (j & m))
-       {
-           break;
-       }
-       j = j >> 1 ;
-
-    }
-    m=j;
-    j=0;
-
-    /* figure out if gig connected at FD 1000 or not first */
-    if ((NWAY1000advertise & MII_NWAY_MY_FD1000)== MII_NWAY_MY_FD1000)
-    {
-         j = MII_ENETPHY_1000;
-         j |= MII_ENETPHY_FD;
-    }
-    else
-    {
-        if (0u != (m & (MII_NWAY_FD100 | MII_NWAY_HD100)) )
-        {
-           j=MII_ENETPHY_100;
-           m&=(MII_NWAY_FD100|MII_NWAY_HD100);
-        }
-        if (0u != (m & (MII_NWAY_FD100 | MII_NWAY_FD10)) )
-           {
-           j |= MII_ENETPHY_FD;
-    }
-    }
-
-    ENET_PHY_log("Requested PHY mode %s Duplex %s Mbps\n",(j & MII_ENETPHY_FD) ? "Full":"Half",
-                       (j & MII_ENETPHY_1000) ? "1000":((j & MII_ENETPHY_100) ? "100":"10"));
-
-    if((0u != cpsw_g_speed_set) || ( (0u == cpsw_g_soft_reset_status) || ((auto_neg2 & (1 << PhyNum)) == 0) ))
-    {
-       if(0u != (j & MII_ENETPHY_1000))
-       {
-          _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_1000BT_CONTROL, PhyNum, j);
-       }
-       else
-       {
-           _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_BCR, PhyNum, j);
-           _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_AUTONEG_ADV, PhyNum, NWAYadvertise);
-       }
-       cpsw_g_speed_set = 0;
-    }
-    else
-    {
-       auto_neg2 = auto_neg2 & (~(1 << PhyNum));
-    }
-    *PhyState &= (~ENETPHY_SPEED_MASK_NDK);
-    if(0u != (j & MII_ENETPHY_1000) )
-    {
-        *PhyState|=(1<<ENETPHY_DUPLEX_OFFSET);
-        ((ENETPHY_DEVICE *) hPhyDev)->SPEED_1000 = 1;
-    }
-    else
-    {
-        ((ENETPHY_DEVICE *) hPhyDev)->SPEED_1000 = 0;
-    }
-    if (0u != (j & MII_ENETPHY_100) )
-    {
-       *PhyState|=(1<<ENETPHY_SPEED_OFFSET);
-    }
-    *PhyState &= (~ENETPHY_DUPLEX_MASK);
-    if (0u != (j & MII_ENETPHY_FD) )
-    {
-       *PhyState|=(1<<ENETPHY_DUPLEX_OFFSET);
-    }
-    *PhyState |= ((ENETPHY_CHANGE | ENETPHY_LINK_TO) | LINK_WAIT);
-  }
-    _ENETPHY_MdixDelay(hPhyDev);  /* If AutoMdix add delay */
-
-  }
-
-void _ENETPHY_ResetPhy(ENETPHY_Handle hPhyDev,Uint32 PhyNum)
-  {
-    Uint32 data;
-
-    data = MII_ENETPHY_RESET;
-
-    /* Reset the phy */
-    _ENETPHY_UserAccessWrite(hPhyDev, ENETPHY_BCR, PhyNum, data);
-
-    /* wait till the reset bit is auto cleared */
-    while(data & MII_ENETPHY_RESET)
-    {
-        /* Read the reset */
-        if(_ENETPHY_UserAccessRead(hPhyDev, ENETPHY_BCR, PhyNum, &data) != TRUE)
-        {
-            break;
-        }
-    }
-
-  }
-
-void _ENETPHY_NwayStartState(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Uint32 PhyNum,PhyMode,PhyDummy;
-
-  PhyNum = ( (*PhyState) & ENETPHY_DEV_MASK) >> ENETPHY_DEV_OFFSET;
-
-  /*Wait for Negotiation to start                                            */
-
-  _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_BCR, PhyNum, &PhyMode);
-
-  if((PhyMode&MII_RENEGOTIATE)==0)
-    {
-    _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_BSR, PhyNum,&PhyDummy); /*Flush pending latch bits*/
-    *PhyState &= (~(ENETPHY_STATE_MASK|ENETPHY_TIM_MASK));
-    *PhyState |= ((ENETPHY_CHANGE | NWAY_WAIT) |ENETPHY_NWDN_TO);
-    _ENETPHY_MdixDelay(hPhyDev);  /* If AutoMdix add delay */
-    }
-   else
-    {
-    if (0u != ((*PhyState) & ENETPHY_TIM_MASK) )
-       {
-       *PhyState=( (*PhyState) & (~ENETPHY_TIM_MASK)) | ( ( (*PhyState) & ENETPHY_TIM_MASK)-(1 << ENETPHY_TIM_OFFSET));
-       }
-     else
-       {
-      _ENETPHY_PhyTimeOut(hPhyDev);
-    }
-  }
-  }
-
-void _ENETPHY_NwayWaitState(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Uint32  PhyNum,PhyStatus,NWAYadvertise = 0,NWAYREadvertise = 0,NegMode,i,j;
-  Uint32 NWAY1000advertise = 0, NWAY1000REMadvertise = 0;
-
-  PhyNum=( (*PhyState) & ENETPHY_DEV_MASK) >> ENETPHY_DEV_OFFSET;
-
-  _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_BSR, PhyNum, &PhyStatus);
-
-  if (0u != (PhyStatus & MII_NWAY_COMPLETE))
-    {
-    *PhyState|=ENETPHY_CHANGE;
-    *PhyState &= (~ENETPHY_SPEED_MASK_NDK);
-    *PhyState &= (~ENETPHY_DUPLEX_MASK);
-
-    _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_AUTONEG_ADV, PhyNum, &NWAYadvertise);
-    _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_LINK_PARTNER_ABLTY, PhyNum, &NWAYREadvertise);
-    /* read gig status */
-    if(0u != _cpswIsGigPhy(hPhyDev))
-    {
-       _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_1000BT_CONTROL, PhyNum, &NWAY1000advertise);
-       _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_1000BT_STATUS, PhyNum, &NWAY1000REMadvertise);
-    }
-
-    /* figure out if gig connected at FD 1000 or not first */
-    if ((0u !=(NWAY1000advertise & MII_NWAY_MY_FD1000)) && (0u!=(NWAY1000REMadvertise & MII_NWAY_REM_FD1000)) )
-       {
-      NegMode = MII_NWAY_MY_FD1000;
-       }
-    else
-       {
-       NegMode = 0u;
-       }
-
-    if (NegMode == 0u)
-      {
-       /* continue checking for 100 and 10 connection */
-
-       /* Negotiated mode is we and the remote have in common */
-       NegMode = NWAYadvertise & NWAYREadvertise;
-
-       ENET_PHY_log("Phy: %d, ",( (*PhyState) & ENETPHY_DEV_MASK) >> ENETPHY_DEV_OFFSET);
-       ENET_PHY_log("NegMode %04X, NWAYadvertise %04X, NWAYREadvertise %04X\n",
-                  NegMode,  NWAYadvertise, NWAYREadvertise);
-
-       /* Limit negotiation to fields below */
-       NegMode &= ( (MII_NWAY_FD100|MII_NWAY_HD100) | (MII_NWAY_FD10|MII_NWAY_HD10));
-
-       if (NegMode == 0u)
-         {
-           NegMode=(MII_NWAY_HD100|MII_NWAY_HD10)&NWAYadvertise; /*or 10 ?? who knows, Phy is not MII compliant*/
-         }
-
-       j = 0x8000u;
-       for(i = 0; i <16 ; i++)
-       {
-           if (0u != (j & NegMode))
-           {
-               break;
-           }
-           j = j >> 1;
-       }
-
-       NegMode=j;
-
-
-       ENET_PHY_log("Negotiated connection: ");
-
-
-       if (0u != (NegMode & MII_NWAY_FD100))
-           {
-               ENET_PHY_log("FullDuplex 100 Mbs\n");
-           }
-       if (0u != (NegMode & MII_NWAY_HD100))
-           {
-           ENET_PHY_log("HalfDuplex 100 Mbs\n");
-           }
-       if (0u != (NegMode & MII_NWAY_FD10))
-           {
-           ENET_PHY_log("FullDuplex 10 Mbs\n");
-           }
-       if (0u != (NegMode & MII_NWAY_HD10))
-           {
-           ENET_PHY_log("HalfDuplex 10 Mbs\n");
-           }
-
-       ((ENETPHY_DEVICE *) hPhyDev)->SPEED_1000 = 0u;
-      }
-    else
-      {
-
-       /* found 1000 negotiated connection! */
-       ENET_PHY_log("Negotiated connection: ");
-       ENET_PHY_log("FullDuplex 1000 Mbs\n");
-
-       ((ENETPHY_DEVICE *) hPhyDev)->SPEED_1000 = 1u;
-      }
-
-    if (NegMode != 0u)
-      {
-      if (0u != (PhyStatus & MII_ENETPHY_LINKED))
-       {
-        *PhyState=( (*PhyState) & (~ENETPHY_STATE_MASK)) | LINKED;
-       }
-       else
-       {
-        *PhyState=( (*PhyState) & (~ENETPHY_STATE_MASK)) | LINK_WAIT;
-       }
-      if (0u != (NegMode & (MII_NWAY_FD100 | MII_NWAY_HD100)) )
-       {
-        *PhyState=( (*PhyState) & (~ENETPHY_SPEED_MASK_NDK)) | (1 << ENETPHY_SPEED_OFFSET);
-       }
-      if (0u != (NegMode & (MII_NWAY_FD100 | MII_NWAY_FD10 | MII_NWAY_MY_FD1000)))
-       {
-        *PhyState=( (*PhyState) & (~ENETPHY_DUPLEX_MASK)) | (1 << ENETPHY_DUPLEX_OFFSET);
-       }
-      }
-    }
-   else
-    {
-    if ( 0u != ( (*PhyState) & ENETPHY_TIM_MASK) )
-       {
-       *PhyState=( (*PhyState) & (~ENETPHY_TIM_MASK)) | (( (*PhyState) & ENETPHY_TIM_MASK)-(1 << ENETPHY_TIM_OFFSET));
-       }
-     else
-       {
-      _ENETPHY_PhyTimeOut(hPhyDev);
-    }
-  }
-
-  }
-
-void _ENETPHY_LinkWaitState(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Uint32  PhyStatus;
-  Uint32  PhyNum;
-
-  PhyNum=( (*PhyState) & ENETPHY_DEV_MASK) >> ENETPHY_DEV_OFFSET;
-
-  _ENETPHY_UserAccessRead(hPhyDev, ENETPHY_BSR, PhyNum, &PhyStatus);
-
-  if (0u != (PhyStatus & MII_ENETPHY_LINKED) )
-    {
-    *PhyState=( (*PhyState) & (~ENETPHY_STATE_MASK) ) | LINKED;
-    *PhyState|=ENETPHY_CHANGE;
-    }
-   else
-    {
-    if (0u != ( (*PhyState) & ENETPHY_TIM_MASK)  )
-       {
-      *PhyState=(*PhyState&~ENETPHY_TIM_MASK)|((*PhyState&ENETPHY_TIM_MASK)-(1<<ENETPHY_TIM_OFFSET));
-       }
-     else
-       {
-      _ENETPHY_PhyTimeOut(hPhyDev);
-    }
-  }
-  }
-
-void _ENETPHY_PhyTimeOut(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState;
-  if(_ENETPHY_MdixSupported(hPhyDev) == 0)
-    {
-    return;  /* AutoMdix not supported */
-    }
-  PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-
-  /*  Indicate MDI/MDIX mode switch is needed */
-  *PhyState|=ENETPHY_MDIX_SWITCH;
-
-  /* Toggle the MDIX mode indicatir */
-  if(0u != ( (*PhyState) & ENETPHY_MDIX) )
-    {
-    *PhyState &= (~ENETPHY_MDIX_MASK);       /* Current State is MDIX, set to MDI */
-    }
-  else
-    {
-    *PhyState |=  ENETPHY_MDIX_MASK;      /* Current State is MDI, set to MDIX */
-    }
-  /* Reset state machine to FOUND */
-  *PhyState = ( (*PhyState) & (~ENETPHY_STATE_MASK)) | (FOUND);
-  }
-
-void _ENETPHY_LoopbackState(ENETPHY_Handle hPhyDev)
-{
-    (void)((ENETPHY_DEVICE *) hPhyDev); /* remove if not needed, to avoid warning */
-  return;
-}
-
-void _ENETPHY_LinkedState(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Uint32  PhyNum   = ( (*PhyState) & ENETPHY_DEV_MASK) >> ENETPHY_DEV_OFFSET;
-
-  if (CSL_MDIO_isPhyLinked((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase, PhyNum))
-    {
-     return;  /* if still Linked, exit*/
-    }
-
-  /* Not Linked */
-  *PhyState &= (~(ENETPHY_STATE_MASK | ENETPHY_TIM_MASK));
-  if (0u != ( (*PhyState) & SMODE_AUTO) )
-  {
-    *PhyState |= ( (ENETPHY_CHANGE | NWAY_WAIT) | ENETPHY_NWDN_TO);
-  }
-   else
-    {
-    *PhyState |= ( (ENETPHY_CHANGE | ENETPHY_LINK_TO) | LINK_WAIT);
-    }
-  _ENETPHY_MdixDelay(hPhyDev);  /* If AutoMdix add delay */
-
-  }
-
-void _ENETPHY_DefaultState(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  /*Awaiting a ENETPHY_Init call                                             */
-  *PhyState|=ENETPHY_CHANGE;
-  }
-
-/* Simple Query Functions for reporting speed,duplex */
-/* ENETPHY_GetDuplex is called to retrieve the Duplex info */
-int ENETPHY_GetDuplex(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  return(( (*PhyState) & ENETPHY_DUPLEX_MASK) ? 1:0);  /* return 0 or a 1  */
-  }
-
-/* ENETPHY_GetSpeed is called to retreive the Speed info */
-int ENETPHY_GetSpeed(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  Int32 ret = 0 ;
-
-  if (((ENETPHY_DEVICE *) hPhyDev)->SPEED_1000 == 1)
-    {
-    ret = 2; /* if we are linked at 1000, we return a value of 2 */
-    }
-  else
-    {
-    ret = ( (*PhyState) & ENETPHY_SPEED_MASK_NDK);
-    }
-
-  return ret;
-  }
-
-/* ENETPHY_GetPhyNum is called to retreive the Phy Device Adr info*/
-int ENETPHY_GetPhyNum(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  return((Int32)(( (*PhyState) & ENETPHY_DEV_MASK) >> ENETPHY_DEV_OFFSET));
-  }
-
-/* ENETPHY_GetLoopback is called to Determine if the LOOPBACK state has been reached*/
-int ENETPHY_GetLoopback(ENETPHY_Handle hPhyDev)
-  {
-  Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-  return(( (*PhyState) & ENETPHY_STATE_MASK) == LOOPBACK);
-  }
-
-/* ENETPHY_GetLinked is called to Determine if the LINKED state has been reached*/
-int ENETPHY_GetLinked(ENETPHY_Handle hPhyDev)
-  {
-    Uint32 *PhyState = &((ENETPHY_DEVICE *) hPhyDev)->PhyState;
-    return (( (*PhyState) & ENETPHY_STATE_MASK) == LINKED);
-  }
-
-/************************************
-***
-*** Waits for MDIO_USERACCESS to be ready and reads data
-*** If 'WaitForData' set, waits for read to complete and returns Data,
-*** otherwise returns 0
-*** Note: 'data' is 16 bits but we use 32 bits
-***        to be consistent with rest of the code.
-***
-**************************************/
-Uint32 _ENETPHY_UserAccessRead(ENETPHY_Handle hPhyDev, Uint32 regadr, Uint32 phyadr, Uint32 *data)
-  {
-    CSL_MDIO_USERACCESS    user_access_reg;
-
-    /* Wait till transaction completion if any */
-    do
-    {
-        CSL_MDIO_getUserAccessRegister((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase, 0, &user_access_reg);
-    }
-    while(user_access_reg.go);
-
-    user_access_reg.phyAddr = phyadr;
-    user_access_reg.regAddr = regadr;
-    user_access_reg.write = 0U;
-    user_access_reg.go = 1U;
-
-    CSL_MDIO_setUserAccessRegister((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase, 0U, &user_access_reg);
-
-    /* wait for command completion */
-    do
-    {
-        CSL_MDIO_getUserAccessRegister((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase, 0, &user_access_reg);
-    }
-    while(user_access_reg.go);
-
-    CSL_MDIO_getUserAccessRegister((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase, 0, &user_access_reg);
-    /* Store the data if the read is acknowledged */
-    if(user_access_reg.ack)
-    {
-        *data = user_access_reg.data & MDIO_USERACCESS_DATA;
-        return 1u;
-    }
-
-    return 0u;
-  }
-
-
-/************************************
-***
-*** Waits for MDIO_USERACCESS to be ready and writes data
-***
-**************************************/
-void _ENETPHY_UserAccessWrite(ENETPHY_Handle hPhyDev, Uint32 regadr, Uint32 phyadr, Uint32 data)
-  {
-    CSL_MDIO_USERACCESS    user_access_reg;
-
-    /* Wait till transaction completion if any */
-    do
-    {
-        CSL_MDIO_getUserAccessRegister((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase, 0, &user_access_reg);
-    }
-    while(user_access_reg.go);
-
-    user_access_reg.phyAddr = phyadr;
-    user_access_reg.regAddr = regadr;
-    user_access_reg.write = 1U;
-    user_access_reg.go = 1U;
-    user_access_reg.data = data;
-
-    CSL_MDIO_setUserAccessRegister((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase, 0U, &user_access_reg);
-
-    /* wait for command completion */
-    do
-    {
-        CSL_MDIO_getUserAccessRegister((CSL_mdioHandle) ((ENETPHY_DEVICE *) hPhyDev)->miibase, 0, &user_access_reg);
-    }
-    while(user_access_reg.go);
-  }