W7500P & CISCO SF110d switch problem.

Hi! We was developed Ethernet to UART converter based on W7500P chip. It work fine, but we have problem, when connect his via CISCO SF110d(or similar) switch to LAN. We have very long ping, when connected our converter to LAN via CISCO switch( 300ms and more) and this do not download java scripts and pictures for configuration menu(via WEB interface). When we make connect converter to LAN via another switch or directly to PC(notebook), then we have not problem. Pleas, suggest resolution this issue.
PS. we have W7500P R3 revision(1824) code.

Sorry for the huge late. I hope, that worked out well…
anyway, for the future reader, I leave the following assistant.

or you can refer the code from the WIZnet GitHub site - https://github.com/Wiznet/W7500x_StdPeriph_Lib
the code in Libraries/W7500x_StdPeriph_Driver/src/w7500x_miim.c

FlagStatus PHY_Init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin_MDC, uint16_t GPIO_Pin_MDIO)
{
    FlagStatus bitstatus = RESET;
    GPIO_InitTypeDef GPIO_InitStructure;

    miim_PORT = GPIOx;
    miim_MDC = GPIO_Pin_MDC;
    miim_MDIO = GPIO_Pin_MDIO;

#ifdef W7500
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Direction = GPIO_Direction_OUT;
    GPIO_InitStructure.GPIO_Pad = GPIO_CMOS | GPIO_InputBufferEnable | GPIO_LowDrivingStrength;
    GPIO_InitStructure.GPIO_AF = PAD_AF0;

    GPIO_Init(GPIOB, &GPIO_InitStructure);
#elif defined (W7500P)
    GPIO_PinPadConfig(GPIOB, GPIO_PinSource12, GPIO_PuPd_UP|GPIO_InputBufferEnable|GPIO_CMOS);
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, PAD_AF1);
    GPIO_PinPadConfig(GPIOB, GPIO_PinSource5, GPIO_PuPd_UP|GPIO_InputBufferEnable|GPIO_CMOS);
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, PAD_AF1);
    GPIO_PinPadConfig(GPIOB, GPIO_PinSource6, GPIO_PuPd_UP|GPIO_InputBufferEnable|GPIO_CMOS);

    GPIO_PinAFConfig(GPIOD, GPIO_PinSource6, PAD_AF1);
    GPIO_PinPadConfig(GPIOD, GPIO_PinSource6, GPIO_PuPd_UP);
    // for this GPIOD pin 6, keep the following sequence, set the value & set the output enable
    GPIO_SetBits(GPIOD, GPIO_Pin_6); // PHY reset pin
    GPIOD->OUTENSET = GPIO_Pin_6; // PHY reset pin
#endif

    /* Set GPIOs for MDIO and MDC */
    GPIO_InitStructure.GPIO_Pin = miim_MDC | miim_MDIO;
    GPIO_InitStructure.GPIO_Direction = GPIO_Direction_OUT;
    GPIO_InitStructure.GPIO_Pad = GPIO_PuPd_UP;
    GPIO_InitStructure.GPIO_AF = PAD_AF1;

    GPIO_Init(miim_PORT, &GPIO_InitStructure);

    PHY_Reset(0); // phy reset
    bitstatus = PHY_GetId();

    return bitstatus;
}