Commit Graph

81 Commits (7e2acee49a35d1744efe03aa3ab5c17493b51a22)

Author SHA1 Message Date
Martin Kojtal be295e42a4
Merge pull request #13917 from LDong-Arm/move_SFDP
Move SFDP to blockdevice
2020-12-10 13:03:23 +00:00
Lingkai Dong 562b31ccd3 Move SFDP unit tests 2020-12-07 12:05:07 +00:00
Lingkai Dong a4907e89df Bring in TDBStore UNITTESTS improvements from PR #13731
Co-authored-by: Seppo Takalo <seppo.takalo@arm.com>
2020-12-02 14:57:43 +00:00
Lingkai Dong fd5b2c569d Avoid force-casting inputs when calling std::min() 2020-12-02 14:57:43 +00:00
Lingkai Dong cf977b7aae TDBStore: the work buffer is at least the program size or 64 bytes
Previously, we always set the work buffer to 64 bytes, without
checking it was no less the actual program size. But we can't
simply switch to use the program size for the work buffer,
because if it's too small (e.g. 1 byte in some cases), we
will not be able to read the status header (24 bytes), and
small buffers means more underlying write operations and
lower efficiency.

This PR changes the work buffer size to be the program size,
or 64 bytes as an absolute minimum like before.
2020-12-02 14:57:43 +00:00
Lingkai Dong ece756c0c4 TDBStore: pad record header to whole program size before storing it
Previously, when writing a record header into a TDBStore, we
took the pointer to the record_header_t variable as the input,
but used a program-aligned chunk size which is larger.
As a result, garbage from the stack memory gets written.

This commit fixes that by buffering the record header.

Co-authored-by: Seppo Takalo <seppo.takalo@arm.com>
2020-12-02 14:57:22 +00:00
Lingkai Dong 23702ff2b3 Update include paths to SFDP.h 2020-11-26 17:31:31 +00:00
Lingkai Dong 5d2fbdc11e Move SFDP into blockdevice where it belongs to 2020-11-26 17:31:31 +00:00
Martin Kojtal aea691a67a
Merge pull request #13960 from harmut01/2260_erase_size_const
Add const keyword to get_erase_size declaration
2020-11-26 15:54:07 +00:00
Martin Kojtal 61e4b55a22
Merge pull request #13947 from LDong-Arm/erase_algorithm_fix
Fix erase type determination for [Q/O/]BlockDevice::erase()
2020-11-26 15:53:03 +00:00
Lingkai Dong c41f7cb864 Fix integer type warnings in SFDP and *SPIFBlockDevice 2020-11-26 10:28:58 +00:00
Martin Kojtal 66ca70af94
Merge pull request #13949 from LDong-Arm/fat_filesystem_test_fix
Fix mbed::Dir type handling in fat_filesystem
2020-11-25 14:38:18 +00:00
Harrison Mutai 9857a4d63b Add const keyword to get_erase_size declaration
Add const to function declaration. Const objects cannot access const
safe functions, a compiler error is thrown if one tries to do so. This
helps ensure that the object calling the method will not be modified.
This is espescially desirable in functions where all we need to do is
query existing data and not make any alterations.
2020-11-25 13:09:06 +00:00
Lingkai Dong 04915198d4 Fix mbed::Dir type handling in fat_filesystem
Full credits to @kjbracey-arm for the fix.

Co-authored-by: Kevin Bracey <kevin.bracey@arm.com>
2020-11-24 17:00:20 +00:00
Martin Kojtal 2f709cc13f
Merge pull request #13896 from jeromecoutant/PR_OSPI
STM32 OSPI support
2020-11-24 13:53:30 +00:00
Martin Kojtal 57bbb4739b
Merge pull request #13085 from pea-pod/remove-deprecated-mbed-assert
Change MBED_STATIC_ASSERTs version for built-in
2020-11-24 13:38:07 +00:00
Lingkai Dong 7525134532 [Q/O/]SPIFBlockDevice: remove logic for unaligned erase, as alignment is checked
[Q/O/SPIFBlockDevice::erase() begin with an alignment check,
after which unaligned erases should not happen or be allowed.

If the erase address is not aligned to the value returned by
sfdp_iterate_next_largest_erase_type(), it indicates an
internal error in erase table parsing which should not be
hidden.
2020-11-23 15:55:24 +00:00
Lingkai Dong 13c5b64e16 general_tests_phase_2: SecureStore's underlying TDBStore must be large enough
The test case set_add_data_set_key_value_five_Kbytes stores
5KB of value, and to allow for overheads, we allocate at least
8KB per area of TDBStore (so 16KB for two areas of a whole
TDBStore).
2020-11-12 16:46:03 +00:00
Lingkai Dong 76cf78d654 general_block_device: optimize test_contiguous_erase_write_read() buffer size for large-sector flashes 2020-11-12 14:36:55 +00:00
Lingkai Dong 4a47709cb0 Fix OSPIFBlockDevice program size
From the datasheet of the only OctaSPI flash we currently support
(http://www.mt-system.ru/sites/default/files/docs/Macronix/mx25lm51245g_3v_512mb_v0.01.pdf):

After program/erase command is issued, auto program/erase
algorithms which program/erase and verify the specified page
or sector/block locations will be executed. Program command is
executed on byte basis, or page (256 bytes) basis, or word basis.
Erase command is executed on sector (4K-byte), or block (64K-byte),
or whole chip basis.

So the minimum write size is one byte.
2020-11-12 14:36:55 +00:00
Lingkai Dong 9f3ada3131 Fix printing of contiguous_erase_size 2020-11-12 14:36:55 +00:00
Lingkai Dong c61445a787 QSPIFBlockDevice: fix misconception in minimum program size
Prior to this PR, the minimum program size (QSPI_MIN_PROG_SIZE) of
QSPIFBlockDevice was 256 by default and 512 for some targets.
Those values were in fact page sizes, not program sizes.

Here's an explanation:
* Most QSPI flashes can be programmed to a granularity of a
  single byte or a few bytes - no need to be a whole page.
  This should be the value of QSPI_MIN_PROG_SIZE. Applications
  need to align buffer sizes to this granularity when
  programming QSPI flashes.
* Each sending of the underlying QSPI program signal requires
  destination bytes to be located within the same page.
  If a QSPIFBlockDevice::program() call crosses page boundaries,
  this function breaks down the operation into multiple chunks,
  so it's not a concern for the application.

So this PR changes the default program size to 1 (byte), and
for targets with a 4-byte (1-word) read size it overrides the
program size.

Note: No config is needed for the page size, as it comes from
the SFDP table parsed during initialisation.
2020-11-12 14:36:55 +00:00
Martin Kojtal 65097e1c07
Merge pull request #13878 from evedon/blockdevice-library
Add missing blockdevice mbed_lib.json
2020-11-12 08:44:48 +00:00
jeromecoutant 4cf3a7f0f2 OSPIF: dummy cycles update 2020-11-10 18:38:21 +01:00
Hugues Kamba bf84a5b329 CMake: Rename CMake targets
* mbed-os renamed mbed-core
* mbed-os-<COMPONENT> renamed mbed-<COMPONENT>
2020-11-06 17:25:22 +00:00
Martin Kojtal 8529e88e61 cmake: fix present inclusion
We use only _PRESENT macros for components if they are enabled. Use the same in
the mbed.h file or anywhere else.
2020-11-06 17:25:21 +00:00
Hugues Kamba fa98689639 CMake: Componentize Mbed OS into multiple CMake targets (#13732)
Aside from the core mbed-os CMake target, a number of targets have been created so they can optionally be included by application executables that require them using `target_link_libraries()`.

Co-authored-by: Martin Kojtal <martin.kojtal@arm.com>
Co-authored-by: Rajkumar Kanagaraj <rajkumar.kanagaraj@arm.com>
2020-11-06 17:25:21 +00:00
Martin Kojtal 5a1d64aae5 CMake: Fix blockdevice components source and include paths
This file paths were updated on master and this was broken after
rebasing.
2020-11-06 17:25:19 +00:00
Martin Kojtal 14c6af1558 cmake: fix sd component recent dir structure 2020-11-06 17:25:19 +00:00
Hugues Kamba f12f9adbed CMake: Fix failures due to device_key and storage dirs move 2020-11-06 17:25:19 +00:00
Hugues Kamba 396ddc7a4d CMake: Fix build due to system_storage and netsocket dir move in master 2020-11-06 17:25:17 +00:00
Hugues Kamba bd45acba8c CMake: Fix failure due to kvstore and cellular dirs changes 2020-11-06 17:25:16 +00:00
Hugues Kamba b78ef7ac08 CMake: Fix CI error due to dir restruct of rtos and storage dirs 2020-11-06 17:25:16 +00:00
Hugues Kamba a08be8c8a0 CMake: Add support for storage dir 2020-11-06 17:25:15 +00:00
Martin Kojtal 77638f9b72
Merge pull request #13698 from boraozgen/bugfix/spif-read-dummy-bytes
Fix SPIF read dummy cycles not being reset
2020-11-05 15:44:00 +00:00
Evelyne Donnaes f4b7f44d93 Added missing blockdevice mbed_lib.json 2020-11-02 16:35:26 +00:00
pea-pod 507181d262 Change MBED_STATIC_ASSERTs version for built-in 2020-10-27 08:30:40 -05:00
Harrison Mutai 6bfe651aad Remove erroneous character from SPDX identifer
Erroneous '/' was appended to start of comment. This was causing CMake
warning during complition. Removes character from affected files.
2020-10-23 15:08:58 +01:00
Harrison Mutai 4fad1112e5 Add SPDX license identifier to Arm files
Add license identifier to files which Arm owns the copyright to,
and contain either BSD-3 or Apache-2.0 licenses. This is to address
license errors raised by scancode analysis.
2020-10-15 10:47:27 +01:00
Bora Özgen ad9385ce2b Fix SFDP read dummy cycles not being reset 2020-10-02 15:02:00 +02:00
Martin Kojtal 21652971a5
Merge pull request #12644 from macronix/macronix_ospi
Add OSPI driver to support the Octa mode of Macronix octaflash MX25LM51245G
2020-09-30 16:07:20 +01:00
Martin Kojtal a02ea2f43a
Merge pull request #13623 from rajkan01/refactor_docs
Refactor mbed-os design docs
2020-09-21 16:28:13 +01:00
Rajkumar Kanagaraj f79e2791bf Refactor storage docs 2020-09-17 16:07:22 +01:00
Martin Kojtal 33a538ab6c
Merge pull request #13593 from LDong-Arm/platform_storage_default_requirements
STM32F: skip LittleFileSystem default instance and TDBStore tests
2020-09-17 15:21:40 +01:00
rogeryou 48524f25ae add opsi driver 2020-09-16 11:27:23 +08:00
Lingkai Dong 8910ec6db2 kvstore general_tests_phase_1/2 tests: Skip TDBStore if FlashIAP sector size is non-uniform
By default TDBStore requires blocks to have the same size.
2020-09-11 10:12:58 +01:00
Lingkai Dong 577d450c7b PlatformStorage: skip LittleFileSystem on internal flash with non-uniform sectors 2020-09-11 09:58:22 +01:00
Martin Kojtal 6bfd89e656
Merge pull request #13196 from gbrtth/musca_s1_support_mbed6
Add ARM_MUSCA_S1 as a new target platform
2020-09-10 16:53:14 +01:00
Gabor Toth bdf2306f16 Add platform support to Musca S1
Change-Id: Iebdd4bc402446caba6b7bd894eddb0a85ed884d8
Signed-off-by: Mark Horvath <mark.horvath@arm.com>
Signed-off-by: Gabor Toth <gabor.toth@arm.com>
2020-09-10 14:53:41 +02:00
Jaeden Amero 39e69d328d Use boot stack size from config system
To allow overriding of the boot stack size from the Mbed configuration
system, consistently use MBED_CONF_TARGET_BOOT_STACK_SIZE rather than
MBED_BOOT_STACK_SIZE.

Fixes #10319
2020-09-10 10:08:38 +01:00