/**************************************************************************** * 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); }