S25FL1 NOR Flash

NuttX provides support for NOR flashes from S25FL1 family. Capacity up to 64 Mbit (8 MB) is supported.

QSPI based flash is enabled by option CONFIG_MTD_S25FL1. It is possible to select the QSPI mode with CONFIG_S25FL1_QSPIMODE option and communication frequency with CONFIG_S25FL1_QSPI_FREQUENCY option.

The flash allows to simulate 512-byte large erase blocks if option CONFIG_S25FL1_SECTOR512 is enabled. Data scrambling can be enabled by CONFIG_S25FL1_SCRAMBLE. This requiores a driver support for data scrambling/descrambling. Scrambling key is set by CONFIG_S25FL1_SCRAMBLE_KEY option.

The size of the flash is set automatically during the device initialization.

The flash memory has to be initialized before used. This is typically done from board support package layer during the board’s bringup phase. This operation is performed by following function.

#include <nuttx/mtd/mtd.h>

FAR struct mtd_dev_s *s25fl1_initialize(FAR struct qspi_dev_s *qspi,
                                        bool unprotect)