I am using FreeRTOS-Plus-TCP Multiple Interfaces experimental branch in my project with a Zynq-7000 and have a question about the initial setup/autonegotiation.
I initially create two interfaces and fill an end point for each interface before calling FreeRTOS_IPStart(). I know that on start up the first network down event is generated by the IP stack itself to initialise the network hardware. When the initialisation gets to the autonegotiation of the and detection of the phy speed (get_IEEE_phy_speed), it waits for the IEEE_STAT_AUTONEGOTIATE_COMPLETE flag to be set.
If the first ethernet cable is not connected, then the autonegotiation will not complete (as expected). However, the autonegotiation for the second interface will also not complete as it is blocked by the autonegotiation of the first waiting for the IEEE_STAT_AUTONEGOTIATE_COMPLETE flag. I know it is unlikely for the first (or second) cable to become disconnected or have some other issue that could cause this, but I’d like to fix this issue regardless.
With this in mind, would it be advisable to spawn a new task on the initialisation so that this blocking doesn’t happen? Or are there any other ways in which this could be resolved?