Browse Source

link problem solved

lzh 1 year ago
parent
commit
1028000f9a

+ 62 - 31
bsp/phytium/aarch32/.config

@@ -9,6 +9,7 @@
 CONFIG_RT_NAME_MAX=16
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMART is not set
+# CONFIG_RT_USING_NANO is not set
 # CONFIG_RT_USING_AMP is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_CPUS_NR=1
@@ -21,6 +22,7 @@ CONFIG_RT_TICK_PER_SECOND=1000
 CONFIG_RT_USING_OVERFLOW_CHECK=y
 CONFIG_RT_USING_HOOK=y
 CONFIG_RT_HOOK_USING_FUNC_PTR=y
+# CONFIG_RT_USING_HOOKLIST is not set
 CONFIG_RT_USING_IDLE_HOOK=y
 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
 CONFIG_IDLE_THREAD_STACK_SIZE=4096
@@ -240,7 +242,6 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
-# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -301,7 +302,6 @@ CONFIG_SAL_USING_LWIP=y
 # CONFIG_SAL_USING_AT is not set
 # CONFIG_SAL_USING_TLS is not set
 CONFIG_SAL_USING_POSIX=y
-# CONFIG_SAL_USING_AF_UNIX is not set
 CONFIG_RT_USING_NETDEV=y
 CONFIG_NETDEV_USING_IFCONFIG=y
 CONFIG_NETDEV_USING_PING=y
@@ -355,6 +355,7 @@ CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=8
 # CONFIG_RT_LWIP_REASSEMBLY_FRAG is not set
 CONFIG_LWIP_NETIF_STATUS_CALLBACK=1
 CONFIG_LWIP_NETIF_LINK_CALLBACK=1
+CONFIG_RT_LWIP_NETIF_NAMESIZE=6
 CONFIG_SO_REUSE=1
 CONFIG_LWIP_SO_RCVTIMEO=1
 CONFIG_LWIP_SO_SNDTIMEO=1
@@ -369,6 +370,12 @@ CONFIG_RT_LWIP_USING_PING=y
 # CONFIG_RT_LWIP_DEBUG is not set
 # CONFIG_RT_USING_AT is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # Utilities
 #
@@ -389,17 +396,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_RT_USING_RT_LINK is not set
 # CONFIG_RT_USING_VBUS is not set
 
-#
-# Memory management
-#
-# CONFIG_RT_USING_MEMBLOCK is not set
-
-#
-# Memory protection
-#
-# CONFIG_RT_USING_MEM_PROTECTION is not set
-# CONFIG_RT_USING_HW_STACK_GUARD is not set
-
 #
 # RT-Thread Utestcases
 #
@@ -423,7 +419,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_KAWAII_MQTT is not set
 # CONFIG_PKG_USING_BC28_MQTT is not set
 # CONFIG_PKG_USING_WEBTERMINAL is not set
-# CONFIG_PKG_USING_LIBMODBUS is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
 # CONFIG_PKG_USING_NANOPB is not set
 
@@ -491,6 +486,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_FTP is not set
 # CONFIG_PKG_USING_EMBEDDEDPROTO is not set
 # CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_RYANMQTT is not set
+# CONFIG_PKG_USING_RYANW5500 is not set
 # CONFIG_PKG_USING_LORA_PKT_FWD is not set
 # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
 # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
@@ -498,6 +495,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_SMALL_MODBUS is not set
 # CONFIG_PKG_USING_NET_SERVER is not set
 # CONFIG_PKG_USING_ZFTP is not set
+# CONFIG_PKG_USING_WOL is not set
+# CONFIG_PKG_USING_ZEPHYR_POLLING is not set
 
 #
 # security packages
@@ -566,18 +565,13 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_MP3PLAYER is not set
 # CONFIG_PKG_USING_TINYJPEG is not set
 # CONFIG_PKG_USING_UGUI is not set
-
-#
-# PainterEngine: A cross-platform graphics application framework written in C language
-#
-# CONFIG_PKG_USING_PAINTERENGINE is not set
-# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
 # CONFIG_PKG_USING_MCURSES is not set
 # CONFIG_PKG_USING_TERMBOX is not set
 # CONFIG_PKG_USING_VT100 is not set
 # CONFIG_PKG_USING_QRCODE is not set
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_PERSIMMON is not set
+# CONFIG_PKG_USING_3GPP_AMRNB is not set
 
 #
 # tools packages
@@ -587,6 +581,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_EASYLOGGER is not set
 # CONFIG_PKG_USING_SYSTEMVIEW is not set
 # CONFIG_PKG_USING_SEGGER_RTT is not set
+# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set
 # CONFIG_PKG_USING_RDB is not set
 # CONFIG_PKG_USING_ULOG_EASYFLASH is not set
 # CONFIG_PKG_USING_LOGMGR is not set
@@ -622,7 +617,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_CBOX is not set
 # CONFIG_PKG_USING_SNOWFLAKE is not set
 # CONFIG_PKG_USING_HASH_MATCH is not set
-# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
 
@@ -695,6 +689,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_TFDB is not set
 # CONFIG_PKG_USING_QPC is not set
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
+# CONFIG_PKG_USING_FLASH_BLOB is not set
+# CONFIG_PKG_USING_MLIBC is not set
 
 #
 # peripheral libraries and drivers
@@ -703,7 +699,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # sensors drivers
 #
-# CONFIG_PKG_USING_FINGERPRINT is not set
 # CONFIG_PKG_USING_LSM6DSM is not set
 # CONFIG_PKG_USING_LSM6DSL is not set
 # CONFIG_PKG_USING_LPS22HB is not set
@@ -763,6 +758,11 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
+# CONFIG_PKG_USING_AS7341 is not set
+# CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_ICM20608 is not set
+# CONFIG_PKG_USING_PAJ7620 is not set
+# CONFIG_PKG_USING_STHS34PF80 is not set
 
 #
 # touch drivers
@@ -775,11 +775,10 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_FT5426 is not set
 # CONFIG_PKG_USING_FT6236 is not set
 # CONFIG_PKG_USING_XPT2046_TOUCH is not set
+# CONFIG_PKG_USING_CST816X is not set
 # CONFIG_PKG_USING_REALTEK_AMEBA is not set
-# CONFIG_PKG_USING_AS7341 is not set
 # CONFIG_PKG_USING_STM32_SDIO is not set
 # CONFIG_PKG_USING_ESP_IDF is not set
-# CONFIG_PKG_USING_ICM20608 is not set
 # CONFIG_PKG_USING_BUTTON is not set
 # CONFIG_PKG_USING_PCF8574 is not set
 # CONFIG_PKG_USING_SX12XX is not set
@@ -789,7 +788,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_LKDGUI is not set
 # CONFIG_PKG_USING_NRF5X_SDK is not set
 # CONFIG_PKG_USING_NRFX is not set
-# CONFIG_PKG_USING_WM_LIBRARIES is not set
 
 #
 # Kendryte SDK
@@ -803,6 +801,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AT24CXX is not set
 # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set
 # CONFIG_PKG_USING_PCA9685 is not set
+# CONFIG_PKG_USING_ILI9341 is not set
 # CONFIG_PKG_USING_I2C_TOOLS is not set
 # CONFIG_PKG_USING_NRF24L01 is not set
 # CONFIG_PKG_USING_RPLIDAR is not set
@@ -819,7 +818,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_CAN_YMODEM is not set
 # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
 # CONFIG_PKG_USING_QLED is not set
-# CONFIG_PKG_USING_PAJ7620 is not set
 # CONFIG_PKG_USING_AGILE_CONSOLE is not set
 # CONFIG_PKG_USING_LD3320 is not set
 # CONFIG_PKG_USING_WK2124 is not set
@@ -847,14 +845,17 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_MISAKA_AT24CXX is not set
 # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
 # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
-# CONFIG_PKG_USING_BL_MCU_SDK is not set
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
 # CONFIG_PKG_USING_MB85RS16 is not set
-# CONFIG_PKG_USING_CW2015 is not set
 # CONFIG_PKG_USING_RFM300 is not set
 # CONFIG_PKG_USING_IO_INPUT_FILTER is not set
 # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
 # CONFIG_PKG_USING_LRF_NV7LIDAR is not set
+# CONFIG_PKG_USING_AIP650 is not set
+# CONFIG_PKG_USING_FINGERPRINT is not set
+# CONFIG_PKG_USING_BT_ECB02C is not set
+# CONFIG_PKG_USING_UAT is not set
+# CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
 # AI packages
@@ -869,6 +870,15 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
 
+#
+# Signal Processing and Control Algorithm Packages
+#
+# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
+# CONFIG_PKG_USING_QPID is not set
+# CONFIG_PKG_USING_UKAL is not set
+# CONFIG_PKG_USING_DIGITALCTRL is not set
+# CONFIG_PKG_USING_KISSFFT is not set
+
 #
 # miscellaneous packages
 #
@@ -898,6 +908,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_TETRIS is not set
 # CONFIG_PKG_USING_DONUT is not set
 # CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_MORSE is not set
 # CONFIG_PKG_USING_LIBCSV is not set
 # CONFIG_PKG_USING_OPTPARSE is not set
 # CONFIG_PKG_USING_FASTLZ is not set
@@ -913,14 +924,12 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_DSTR is not set
 # CONFIG_PKG_USING_TINYFRAME is not set
 # CONFIG_PKG_USING_KENDRYTE_DEMO is not set
-# CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_UPACKER is not set
 # CONFIG_PKG_USING_UPARAM is not set
 # CONFIG_PKG_USING_HELLO is not set
 # CONFIG_PKG_USING_VI is not set
 # CONFIG_PKG_USING_KI is not set
 # CONFIG_PKG_USING_ARMv7M_DWT is not set
-# CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_CRCLIB is not set
 # CONFIG_PKG_USING_LWGPS is not set
 # CONFIG_PKG_USING_STATE_MACHINE is not set
@@ -931,6 +940,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_SLCAN2RTT is not set
 # CONFIG_PKG_USING_SOEM is not set
 # CONFIG_PKG_USING_QPARAM is not set
+# CONFIG_PKG_USING_CorevMCU_CLI is not set
 
 #
 # Arduino libraries
@@ -938,8 +948,9 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_RTDUINO is not set
 
 #
-# Projects
+# Projects and Demos
 #
+# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set
 # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set
 # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set
 # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set
@@ -947,13 +958,17 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # Sensors
 #
+# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set
 # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set
 # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set
@@ -1075,17 +1090,26 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set
 
 #
 # Display
 #
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set
 # CONFIG_PKG_USING_SEEED_TM1637 is not set
 
 #
 # Timing
 #
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
+# CONFIG_PKG_USING_ARDUINO_TICKER is not set
+# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
 
 #
 # Data Processing
@@ -1109,10 +1133,17 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set
 
 #
 # Other
 #
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set
+# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 
 #
 # Signal IO

+ 9 - 11
bsp/phytium/aarch32/rtconfig.h

@@ -149,7 +149,6 @@
 
 /* C/C++ and POSIX layer */
 
-
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -230,6 +229,7 @@
 #define RT_LWIP_ETHTHREAD_MBOX_SIZE 8
 #define LWIP_NETIF_STATUS_CALLBACK 1
 #define LWIP_NETIF_LINK_CALLBACK 1
+#define RT_LWIP_NETIF_NAMESIZE 6
 #define SO_REUSE 1
 #define LWIP_SO_RCVTIMEO 1
 #define LWIP_SO_SNDTIMEO 1
@@ -238,6 +238,9 @@
 #define LWIP_NETIF_LOOPBACK 0
 #define RT_LWIP_USING_PING
 
+/* Memory protection */
+
+
 /* Utilities */
 
 #define RT_USING_RYM
@@ -252,12 +255,6 @@
 #define RT_USING_ADT_HASHMAP
 #define RT_USING_ADT_REF
 
-/* Memory management */
-
-
-/* Memory protection */
-
-
 /* RT-Thread Utestcases */
 
 
@@ -296,9 +293,6 @@
 /* u8g2: a monochrome graphic library */
 
 
-/* PainterEngine: A cross-platform graphics application framework written in C language */
-
-
 /* tools packages */
 
 
@@ -330,6 +324,9 @@
 /* AI packages */
 
 
+/* Signal Processing and Control Algorithm Packages */
+
+
 /* miscellaneous packages */
 
 /* project laboratory */
@@ -343,7 +340,7 @@
 /* Arduino libraries */
 
 
-/* Projects */
+/* Projects and Demos */
 
 
 /* Sensors */
@@ -368,6 +365,7 @@
 
 /* Other */
 
+
 /* Signal IO */
 
 

+ 11 - 54
bsp/phytium/libraries/drivers/drv_xmac.c

@@ -815,14 +815,16 @@ void FXmacLinkChange(void *arg)
         LOG_I("xmac_p->config.base_address is %p", xmac_p->config.base_address);
         ctrl = FXMAC_READREG32(xmac_p->config.base_address, FXMAC_PCS_AN_LP_OFFSET);
         link = (ctrl & FXMAC_PCS_LINK_PARTNER_NEXT_PAGE_STATUS) >> 15;
-        LOG_I("Link status is 0x%x", link);
+        
 
         switch (link)
         {
             case 0:
+                LOG_I("Link status is down");
                 link_status = FXMAC_LINKDOWN;
                 break;
             case 1:
+                LOG_I("Link status is up");
                 link_status = FXMAC_LINKUP;
                 break;
             default:
@@ -830,50 +832,6 @@ void FXmacLinkChange(void *arg)
                 return;
         }
 
-        if (xmac_p->config.auto_neg == 0)
-        {
-            if (link_status == FXMAC_LINKUP)
-            {
-                LOG_I("No neg link up (%d/%s)", xmac_p->config.speed, xmac_p->config.duplex == 1 ? "FULL" : "Half");
-                xmac_p->link_status = FXMAC_NEGOTIATING;
-            }
-            else
-            {
-                LOG_I("No neg link down.");
-                xmac_p->link_status = FXMAC_LINKDOWN;
-            }
-        }
-
-        /* read sgmii reg to get status */
-        ctrl = FXMAC_READREG32(xmac_p->config.base_address, FXMAC_PCS_AN_LP_OFFSET);
-        speed_bit = (ctrl & FXMAC_PCS_AN_LP_SPEED) >> FXMAC_PCS_AN_LP_SPEED_OFFSET;
-        duplex = (ctrl & FXMAC_PCS_AN_LP_DUPLEX) >> FXMAC_PCS_AN_LP_DUPLEX_OFFSET;
-
-        if (speed_bit == 2)
-        {
-            speed = FXMAC_SPEED_1000;
-        }
-        else if (speed_bit == 1)
-        {
-            speed = FXMAC_SPEED_100;
-        }
-        else
-        {
-            speed = FXMAC_SPEED_10;
-        }
-
-        if (link_status != xmac_p->link_status)
-        {
-            LOG_I("Sgmii link_status has changed.");
-        }
-
-        /* add erase NCFGR config */
-        if ((speed != xmac_p->config.speed) || (duplex != xmac_p->config.duplex))
-        {
-            LOG_I("Sgmii link_status has changed.");
-            LOG_I("New speed is %d, duplex is %d", speed, duplex);
-        }
-
         if (link_status == FXMAC_LINKUP)
         {
             if (link_status != xmac_p->link_status)
@@ -885,7 +843,6 @@ void FXmacLinkChange(void *arg)
         else
         {
             xmac_p->link_status = link_status;
-            LOG_I("Change status is 0x%x", link_status);
         }
     }
 }
@@ -1514,13 +1471,13 @@ enum lwip_port_link_status eth_link_detect(FXmacOs *instance_p)
 
 static void ethernet_link_thread(void *Args)
 {
-    FXmacOs *pOsMac;
-    static int is_link_up = 0;
+    
     if (RT_NULL == Args)
     {
         return;
     }
 
+    FXmacOs *pOsMac;
     pOsMac = (FXmacOs *)Args;
 
     while (1)
@@ -1532,19 +1489,19 @@ static void ethernet_link_thread(void *Args)
         switch (eth_link_detect(pOsMac))
         {
             case ETH_LINK_UP:
-                if (is_link_up == 0)
+                if (pOsMac->is_link_up == 0)
                 {
-                    rt_kprintf("link up\n");
-                    is_link_up = 1;
+                    LOG_I("netif flag is link_up\n");
+                    pOsMac->is_link_up = 1;
                     eth_device_linkchange(&pOsMac->parent, RT_TRUE);
                 }
                 break;
             case ETH_LINK_DOWN:
             default:
-                if (is_link_up == 1)
+                if (pOsMac->is_link_up == 1)
                 {
-                    rt_kprintf("link down\n");
-                    is_link_up = 0;
+                    LOG_I("netif flag is link_down\n");
+                    pOsMac->is_link_up = 0;
                     eth_device_linkchange(&pOsMac->parent, RT_FALSE);
                 }
                 break;

+ 1 - 1
bsp/phytium/libraries/drivers/drv_xmac.h

@@ -118,7 +118,7 @@ typedef struct
 
     /* configuration */
     u32 config;
-
+    u32 is_link_up;
     rt_uint8_t hwaddr[FXMAX_MAX_HARDWARE_ADDRESS_LENGTH]; /* MAC address */
 
     struct rt_thread _link_thread; /* link detect thread */