For Serial-to-WiFi with dual interface (UART + SPI), UART interface is used for issuing AT commands and receiving responses for those commands. It basically acts a CONTROL PATH and, SPI interface is used for sending and receiving data.
Here, Serial-to-WiFi sends 'Serial2WiFi' on UART interface after power cycling GainSpan and 'DataInterfaceReady' on SPI interface.
UART interface does not accept any AT commands, till SPI master reads out 'DataInterfaceReady' message.
After printing bootup banner, which goes out to primary interface as usual (which is UART In this case), Serial-to-WiFi calls 's2wSpiFs_Flush1()' api which is a blocking call. Only returns when 'DataInterfaceReady' message is sent out of GS.
It waits on a semaphore, which is released when DMA_STATUS becomes IDLE. This will be done once data in SPI buffer is sent out.