Good afternoon from Spain.
I have reviewed the code for the external SPI flash and I see that is not like the file mx_changes.txt
I think it should be well:===============================================================================
Changed the following code in SPIFlash.h from:
#define SPI_FLASH_SPANSION
#define SPI_FLASH_SECTOR_SIZE (65526ul)
//#define SPI_FLASH_SECTOR_SIZE (262144ul)
//#define SPI_FLASH_SECTOR_SIZE (524288ul)
#define SPI_FLASH_PAGE_SIZE (256)
to:
//#define SPI_FLASH_SPANSION
//#define SPI_FLASH_SECTOR_SIZE (65526ul)
//#define SPI_FLASH_SECTOR_SIZE (262144ul)
//#define SPI_FLASH_SECTOR_SIZE (524288ul)
//#define SPI_FLASH_PAGE_SIZE (256)
#define SPI_FLASH_WINBOND
#define SPI_FLASH_SECTOR_SIZE (4096ul)
#define SPI_FLASH_PAGE_SIZE (256)
===============================================================================
Changed the following line code in SPIFlashWriteArray(BYTE* vData, WORD wLen) function in SPIFlash.c from:
#elif defined(SPI_FLASH_SPANSION)
to:
#elif defined(SPI_FLASH_SPANSION) || defined(SPI_FLASH_WINBOND)
===============================================================================
Changed the following line code in SPIFlashEraseSector(BYTE* vData, WORD wLen) function in SPIFlash.c from:
#if defined(SPI_FLASH_SST)
to:
#if defined(SPI_FLASH_SST) || defined(SPI_FLASH_WINBOND)
===============================================================================
Changed the following 2 lines of code in SPIFlashInit() function in SPIFlash.c from:
// Execute Enable-Write-Status-Register (EWSR) instruction
_SendCmd(EWSR);
to:
#if !defined(SPI_FLASH_WINBOND)
// Execute Enable-Write-Status-Register (EWSR) instruction
_SendCmd(EWSR);
#endif
===============================================================================
Change the following two lines of code (at end of function) in SPIFlashInit() function in SPIFlash.c from:
// Restore SPI state
SPIFLASH_SPICON1 = SPICON1Save;
to:
#if defined(SPI_FLASH_WINBOND)
// After writing to the status register, we have to wait for the write to complete
_WaitWhileBusy();
#endif
// Restore SPI state
SPIFLASH_SPICON1 = SPICON1Save;
===============================================================================
For the rest everything is fine.
I am testing the TCPIP Stack v5.00 on SBC83I-J11 rev.2 for more than one months ago, and this everything works perfectly. To align the v5.00 just follow the changes of mx_changes.txt
Be Happy

!!