Пример #1
0
/****************************************************************************
 * Function:        DRV_EXTPHY_WOLConfiguration
 *
 * PreCondition:    EthInit and EthPhyInit should have been called.
 *
 * Input:          hClientObj - A valid open-instance handle, returned from the driver's open routine
 *                    bAddr[] -  Source Mac Address , or a Magic Packet MAC address
 *
 * Output:         none
 *
 *
 * Side Effects:    None
 *
 * Overview:       Configure WOL for SMSC8740 with a Source MAC address or a 6 byte magic packet mac address.
 *                      wuFrame = Frame type need to be set.
 *
 * Note:            None
 *****************************************************************************/
void  DRV_EXTPHY_WOLConfiguration(DRV_HANDLE hClientObj,unsigned char bAddr[])
{
    unsigned char bAddr1[6] = {0x11,0x22,0x33,0x44,0x55,0x66};
    //eWOL_WAKEUP_FRAME wuframe = REMOTE_WAKEUP_FRAME;
    eWOL_WAKEUP_FRAME wuframe = MAGIC_PKT_RECEIVED;
   // eWOL_WAKEUP_FRAME wuframe = BROADCAST_FRAME_RCVD;    
    //eWOL_WAKEUP_FRAME wuframe = PERFECT_DA_FRAME;
    
#if defined (HARMONY_INT)
    INT_SOURCE src = DRV_ETHPHY_INTERRUPT_SOURCE;
#else
    SYS_INT_SOURCE src = SYS_INT_Source(SYS_MODULE_ETH_PHY);
#endif
    DRV_EXTPHY_WOLWakeUpFrameClear(hClientObj,PERFECT_DA_FRAME);
    DRV_EXTPHY_WOLWakeUpFrameClear(hClientObj,MAGIC_PKT_RECEIVED);
    DRV_EXTPHY_WOLWakeUpFrameClear(hClientObj,REMOTE_WAKEUP_FRAME);
    DRV_EXTPHY_WOLWakeUpFrameClear(hClientObj,BROADCAST_FRAME_RCVD);
    
    DRV_EXTPHY_WOLMACAddressSet(hClientObj,bAddr1);
    if(wuframe == REMOTE_WAKEUP_FRAME)
    {
        DRV_EXTPHY_WOLWakeupFrameSetup(hClientObj,bAddr);
    }
    DRV_EXTPHY_WOLWakeUpFrameSet(hClientObj,wuframe);
    DRV_EXTPHY_WOLInterruptMaskSet(hClientObj,WOL_INT_ENABLED);
	DRV_EXTPHY_IntInit(hClientObj,src,3,0);
}
/****************************************************************************
 * Function:        DRV_EXTPHY_WOLConfiguration
 *
 * PreCondition:    EthInit and EthPhyInit should have been called.
 *
 * Input:          hClientObj - A valid open-instance handle, returned from the driver's open routine
 *                    bAddr[] -  Source Mac Address , or a Magic Packet MAC address
 *
 * Output:         none
 *
 *
 * Side Effects:    None
 *
 * Overview:       Configure WOL for IP101GR with a Source MAC address or a 6 byte magic packet mac address.
 *
 * Note:            
 *****************************************************************************/
void  DRV_EXTPHY_WOLConfiguration(DRV_HANDLE hClientObj,unsigned char bAddr[])
{
    unsigned char bAddr1[6] = {0x11,0x22,0x33,0x44,0x55,0x66};
    //unsigned char bAddr1[6] = {0x66,0x55,0x44,0x33,0x22,0x11};
    WOL_FUNCTION wol_en=IP101GR_WOL_ENBALE;
    WOL_OPERATION_MODE wol_mode=WOL_MODE_SLAVE;
    IP101GR_WOL_TIMER wol_timer=WOL_TIMER_30SEC;
    
    INT_SOURCE src = DRV_ETHPHY_INTERRUPT_SOURCE;

    // Set MAC address
    set_magic_mac(hClientObj,bAddr1);

    // enable interrupt pin
    set_wol_intr32_pin(hClientObj,IP101GR_INTR_PIN_32_ENABLE);

    //wake up when receive Magic packet
    set_sense_magic_pkt(hClientObj,IP101GR_WOL_ENBALE);
    set_sense_any_pkt(hClientObj,IP101GR_WOL_DISABLE);
    // enable WOL , Slave mode, Time to default 30 sec, INTR active LOw in slave mode
    set_wol(hClientObj,wol_en,wol_mode,wol_timer);

    // Set interrupt pin disable
    set_wol_intr(hClientObj,wol_en);

    // forced to sleep , manual set to sleep    
    manual_set_wol(hClientObj); // change the state of PHY from Normal mode to sleep mode
    
	DRV_EXTPHY_IntInit(hClientObj,src,3,0);
}