SFDP: Add more parameters to the reader callback
The SFDP functions parse SFDP data which is fetched by a callback
called `sfdp_reader` provided by {SPIF,QSPIF,OSPIF}BlockDevice.
Currently, this callback interface only takes a read address and an RX
buffer to store output data. This has been enough, because other SPI
parameters are always the same when fetching the SFDP table only -
they are just hardcoded in each reader.

But in the future we will add support for flash devices with multiple
configurations (in a subsequent commit), and to detect which
configuration is enabled, we will need to send detection commands
which require device-dependent SPI parameters:
* address size
* instruction
* dummy cycles

This commit
* turns the above SPI parameters from predefined/hardcoded values
into parameters of the callback
* lets the SFDP functions pass the above parameters to the callback
(Note: To read the SFDP table itself, those values are constants
defined by the standard, not tied to any particular device, so they
can be known to the SFDP functions)
* updates the callbacks implemented by {SPIF,QSPIF,OSPIF}BlockDevice
* updates the mock callback for unit tests and expectations
ls
1 parent 2581254 commit b5e7dd9d32a21a1f68e84ca7837b0975209b0cff
@Lingkai Dong Lingkai Dong authored on 6 Aug 2021
Showing 9 changed files
View
storage/blockdevice/COMPONENT_OSPIF/include/OSPIF/OSPIFBlockDevice.h
View
storage/blockdevice/COMPONENT_OSPIF/source/OSPIFBlockDevice.cpp
View
storage/blockdevice/COMPONENT_QSPIF/include/QSPIF/QSPIFBlockDevice.h
View
storage/blockdevice/COMPONENT_QSPIF/source/QSPIFBlockDevice.cpp
View
storage/blockdevice/COMPONENT_SPIF/include/SPIF/SPIFBlockDevice.h
View
storage/blockdevice/COMPONENT_SPIF/source/SPIFBlockDevice.cpp
View
storage/blockdevice/include/blockdevice/internal/SFDP.h
View
storage/blockdevice/source/SFDP.cpp
View
storage/blockdevice/tests/UNITTESTS/SFDP/test_sfdp.cpp