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 |
---|
|
storage/blockdevice/COMPONENT_OSPIF/include/OSPIF/OSPIFBlockDevice.h |
---|
storage/blockdevice/COMPONENT_OSPIF/source/OSPIFBlockDevice.cpp |
---|
storage/blockdevice/COMPONENT_QSPIF/include/QSPIF/QSPIFBlockDevice.h |
---|
storage/blockdevice/COMPONENT_QSPIF/source/QSPIFBlockDevice.cpp |
---|
storage/blockdevice/COMPONENT_SPIF/include/SPIF/SPIFBlockDevice.h |
---|
storage/blockdevice/COMPONENT_SPIF/source/SPIFBlockDevice.cpp |
---|
storage/blockdevice/include/blockdevice/internal/SFDP.h |
---|
storage/blockdevice/source/SFDP.cpp |
---|
storage/blockdevice/tests/UNITTESTS/SFDP/test_sfdp.cpp |
---|