1) What flash products are currently supported within WICED?

 

Cypress      : S25FL064L, S25FL128L, S25FL256L     

Macronix    : MX25L8006E, MX25L1606E, MX25L6433F, MX25L12835F, MX25L25635F, MX25U1635F, MX66U51235F

Micron        : N25Q512A, N25Q064A

Microchip   : SST25VF080B   

Winbond    : W25Q64FV

 

 

2) How does one enable a specific SFLASH within in WICED?

 

There are couple of MACRO defined to each of the above mentioned parts.

# define SFLASH_SUPPORT_CYPRESS_PARTS

#define SFLASH_SUPPORT_MACRONIX_PARTS

#define SFLASH_SUPPORT_MICRON_PARTS

#define SFLASH_SUPPORT_SST_PARTS

#define SFLASH_SUPPORT_WINBOND_PARTS

 

One need to enable this Macro as Global defines in .mk file of the platform folder. eg:

GLOBAL_DEFINES += SFLASH_SUPPORT_CYPRESS_PARTS

 

 

3) How to store your WLAN firmware into external SFLASH?

 

One need to add download_apps in the make target of the project. eg:

snip.scan-BCM943907AEVAL1F download_apps download run

 

 

4) Which app is going to manage writing to SFLASH?

 

sflash_write is the code responsible for writing into external flash. You can go to the following location to get access to the code

C:\..\..\..\WICED-Studio-5.0\43xxx_Wi-Fi\apps\waf\sflash_write

This app will get loaded into the MCU and will interact with sflash_write.tcl openOCD script to write the data into flash attached to the MCU.

 

 

5) How does one test whether sflash_write is working or not?

 

One can try to build the sflash_write app by itself with no-os or network stack dependency and then can look at the sflash driver to see where it is failing. eg:

waf.sflash_write-BCM943907AEVAL1F-NoNs-NoOS WIPE=1 download run

 

 

6) What if one wants to use some different SFLASH other than the verified SFLASH products mentioned above?

 

a.

You need to create your know SFLASH functions in WICED as per your SFLASH. You can look into the following folder for more info:

C:\..\..\..\WICED-Studio-5.0\43xxx_Wi-Fi\WICED\platform\MCU\BCM4390x\peripherals\spi_flash

As you can see the implementation for different SFLASH, you can take reference and do the changes as per your requirement.

 

b.

We have also provided different MACRO in sflash_write.c file for testing connected sflash device. Please check the following test mode defines

#define DEBUG_PRINT

#define WIPE_SFLASH

#define TEST_SFLASH_WRITE

#define TEST_SFLASH_READ

#define DEBUG_PRINT_READ_CONTENT

#define DEBUG_PRINT_VERIFY_READ_CONTENT

As sflash_write.c will interact with sflash_write.tcl openOCD script, please verify flash commands described in sflash_write.c matches with commands described in sflash_write.tcl script.