Commit Graph

32 Commits (a387985c7cf6013a8cabf173f9881c6effebcde9)

Author SHA1 Message Date
Kyle Kearney 96cfc7393d Disable attempted 4-byte addressing for some boards
4-byte addressing has been seen to cause failures on NORDIC
boards and with Macronix memories. Suppress the attempt to enable it
on that hardware (via vendor quirks and a target check) until either
the failure cause can be fixed or a more robust suppression mechanism
is implemented.
2019-11-12 12:26:26 -08:00
Kyle Kearney 2526b9fc00 QSPIF: Handle fast mode enable via vendor quirks
Use a vendor id check to only perform this enable on devices which define the
 second configuration register where the fast mode enable bit lives.
Change _enable_fast_mode to use the standard status register reading and writing functions
2019-11-12 12:26:26 -08:00
Kyle Kearney 02dbf68e17 QSPIF: Handle parts with extra config registers
Default to 2 status registers, but update this value if necessary
 during vendor quirk handling for parts (currently only Macronix)
 which have one status register and two control registers. For the
 purposes of QSPIFBlockDevice, these are all considered status
 (or at least "status-like") registers because they are all written
 via the Write Status Register instruction.
Set the custom RDCR instruction for Macronix during quirk handling.
Update reading and writing of status registers to handle a variable
 number of status registers.
2019-11-12 12:26:25 -08:00
Kyle Kearney eb5494e7a9 QSPIF: Centralize handling of vendor quirks
Introduce a separate function for handling alterations to device interaction
which are not covered by the SFDP tables and therefore require checking against
the vendor id.
2019-11-12 12:26:25 -08:00
Kyle Kearney 26314d96c5 Don't clear quad enable when clearing block protection
QSPIFBlockDevice::_clear_block_protection() has logic to retain the
WIP and WEL bits in status register 1, but it failed to account for
the situation where the QE bit is also in status register 1.
In _sfdp_set_quad_enabled, note the status register and bit therein
for the quad enable, so that _clear_block_protection can retain it.
2019-11-12 12:26:25 -08:00
Kyle Kearney d2ef56859c QSPIF: Add back enable_fast_mode
This function writes a "config" register to ensure that the flash part
is in high performance mode, not low-power mode. This is required at
by at least MX25R6435F in order to operate at frequencies > 33MHz
(for reference, DISCO_L475VG_IOT01A runs the QSPI interface at 80 MHz).
The config register that this writes does not appear to be covered by
the SFDP spec (JESD216D.01) so this remains the status quo of
unconditional execution, as has been done on master since #8352.
2019-11-12 12:26:25 -08:00
Matthew Macovsky 19330da412 Correct typos and formatting 2019-11-12 12:26:25 -08:00
Matthew Macovsky d330deef57 Streamline setting of instruction member variables 2019-11-12 12:26:25 -08:00
Matthew Macovsky 8fd1a502f7 Update SDFP erase detection to properly handle legacy erase instruction 2019-11-12 12:26:25 -08:00
Matthew Macovsky ba412734e1 Move configuration of QSPI format to within commands where it is necessary 2019-11-12 12:26:24 -08:00
Matthew Macovsky 08a0b3daeb Clear block protection on non-SST flash devices 2019-11-12 12:26:24 -08:00
Matthew Macovsky cf9b6d565a Enable 4-byte addressing when supported in accordance with the SFDP standard 2019-11-12 12:26:24 -08:00
Matthew Macovsky 4785e83a31 Update flash device reset to conform to SFDP standard 2019-11-12 12:26:24 -08:00
Matthew Macovsky e2b1ac0972 Update reading/writing of status registers to conform to SFDP standard 2019-11-12 12:26:24 -08:00
Seppo Takalo 168b51c415 Add storage related files to baseline unittest.
* Refactor some headers to use relative path from Mbed OS root.
* Refactor some data types to compile on 64bit machines.
* Refactor some debug traces to use mbed_trace.
2019-11-04 16:12:36 +02:00
Kyle Kearney 52332f9437 QSPIFBlockDevice: Fix incomplete propagation of qspi_inst_t 2019-10-16 15:31:12 -07:00
Martin Kojtal fa6e01a69f QSPIFBlockDevice: fix type on the namespace mbed 2019-10-16 15:31:12 -07:00
Matthew Macovsky b1916fc498 Introduce qspi_inst_t type for QSPI instructions
Encourage the usage of consistent types (there are currently
 a mix of `int` and `unsigned int` used for qspi instructions)
QSPI commands are limited to 8 bits, to this is a typdef to char
2019-10-16 15:31:11 -07:00
Matthew Macovsky 6bba46e48f Differentiate alt and dummy cycles in QSPIF
Propagate separate alt cycle and dummy cycle counts from QSPIFBlockDevice
down to the qspi driver, so that drivers which handle the two separately have
enough information to do so.
2019-09-30 16:17:49 -07:00
Yossi Levy b17d13e75e Documnent changes and adding const to get_type method 2018-12-23 14:27:14 +02:00
Yossi Levy b8b7292d8e astyle fix 2018-12-23 11:03:45 +02:00
Yossi Levy 1d71fb1c9f Add get_type method to block devices. 2018-12-23 11:03:45 +02:00
deepikabhavnani da69da972f Add BlockDevice and Filesystem classes inside mbed namespace.
Adding new modules inside the namespace could be breaking change for existing code base
hence add `using namespace::class` for classes newly added to mbed namespace to maintian
backwards compatibility.

MBED_NO_GLOBAL_USING_DIRECTIVE is added to remove auto-addition of namespace
Macro guard `MBED_NO_GLOBAL_USING_DIRECTIVE` is added around namespace, to avoid
polluting users namespace.
2018-11-26 13:35:40 -06:00
Martin Kojtal 6d6c09bb80 blockdevice: fix coding style 2018-11-15 07:20:13 +00:00
Offir Kochalsky 2df7258710 Add get_erase_value() support 2018-11-05 12:47:18 +02:00
Offir Kochalsky 5cebe43dfc mbed namespace removed add mbed indicator to QSPI 2018-10-21 11:50:17 +03:00
Offir Kochalsky 7d05fcb788 remove mbed namespace from h file and update test 2018-10-21 10:29:03 +03:00
Offir Kochalsky 908233a177 Changes per Pull Request review 3 2018-10-17 14:42:21 +03:00
Offir Kochalsky 9b3bca89fd Enable first fast mode then quad for chips with low power default 2018-10-14 08:54:09 +03:00
Offir Kochalsky a60552c07d Return to 1-1-1 mode prior to setting QUAD enable 2018-10-09 15:17:52 +03:00
Offir Kochalsky 9d936e10af Added class example documentation 2018-08-27 17:12:21 +03:00
Offir Kochalsky 9920e63d98 Initial QSPIF delivery to mbed-os 2018-08-27 13:02:17 +03:00