Commit Graph

301 Commits (01d35911a63c49e09619a91ae710cd474a696bf1)

Author SHA1 Message Date
Seppo Takalo 7f7b191077 IOTSTOR-951: Unlock the master mutex even after garbage_collect() 2019-11-28 14:33:07 +02:00
Seppo Takalo b82e106a43 Astyle fixes 2019-11-28 10:59:48 +02:00
Seppo Takalo abbb2485d2 Greentea: Fix storage sizes for SecureStore tests.
Previously Greentea tests was not initialising its storage
before asking for bd->get_program_size(), causing FlashBlockDevice to
return zero. This caused both TDBStorage's to use zero for both
parameter to SlicingBlockDevice(bd, 0, 0), effetivaly both then
used same addresses for slice. This caused SecureStore tests
to fail, because writes to internal RBP storage overwrote keys
from external storage.

Fine-tune TDBStore sizes, so that all tests can fit into storage.
2019-11-28 10:47:47 +02:00
Veijo Pesonen 065ff2645e Fixes features-storage-tests-kvstore-static_tests test case bugs
At least with LPC55S69's default TDBStore configuration it's
impossible to run storage Greentea tests without exhausting the
memory reserved for storing keys.

Fixes an issue where number of keys were removed based on number of
threads which didn't have anything to do with the test case.

Fixes an issue where number of keys were assumed to be constant
but variable number was used for configuration.
2019-11-28 10:37:11 +02:00
Seppo Takalo 8f77de6453 TDBStore safety check: Erase if there is valid keys on the free space.
In case our are contains data from previous reset() or reset_area(),
we might  end up in the situation  where  free space contains valid
key headers,  but we have not erased that area  yet. This can cause
failures if the deinit() and init()  because  new scan of that area
would continue  as long as keys  are found. This causes keys on the
not-yet-erased  area to be included in the new instance of TDBStore.

To prevent this failure,  check  after each key-write that our free
space does not contain valid  key headers.  Also make sure  that we
erase one program unit sector over the master record.  If we erased
just the master record,first key might is still there, causing next
init() to find it.  Extend erase area by  one program unit, so that
build_ram_table() won't find any keys.
2019-11-28 10:37:07 +02:00
Martin Kojtal 5f7ecea00b
Revert "MbedCRC and CRC HAL revisions" 2019-11-26 13:45:37 +00:00
Martin Kojtal eb60e67d92
Merge pull request #11913 from VeijoPesonen/tdbstore_min_size
LPC55S69_NS default TDBStore size increased to 32kB
2019-11-22 14:47:56 +01:00
Martin Kojtal 04ed9c5c8c
Merge pull request #11851 from amq/patch-2
Enable FAT ChaN lib configuration with mbed_lib.json
2019-11-22 13:38:56 +01:00
Veijo Pesonen 8a0af607f3 LPC55S69_NS: Sets default TDBStore size to 32kB
Previously it was 2 pages - 1kB - which isn't sufficient to store
Reserved Area and Master Record. Reserved are requires one page and Master
Record takes two pages. With 512B page size and having two areas, active and
inactive, the minimum size requirement becomes 2 areas * 3 pages = 3kB. That
isn't enough to store any keys though.
2019-11-21 11:28:59 +02:00
Veijo Pesonen 458f5f43f3 TDBStore: Adds sanity check for storage size when compiled with debug profile 2019-11-21 11:28:59 +02:00
Seppo Takalo af0708ca48 IOTSTOR-978: Skip a unstable testcase until fixed 2019-11-15 10:38:32 +02:00
Martin Kojtal fd22997b60
Merge pull request #11559 from kjbracey-arm/crc
MbedCRC and CRC HAL revisions
2019-11-13 18:24:04 +01:00
amq 5ec0a911fa
Change "MBED_CONF_FAT" to MBED_CONF_FAT_CHAN" 2019-11-13 16:08:08 +01:00
amq 1b55cbe92d
Change library name from "fat" to "fat_chan" 2019-11-13 15:51:55 +01:00
Kevin Bracey 8811972201 Adjust code for MbedCRC changes
* Make mbed_error use bitwise MbedCRC call rather than local
  implementation.
* Remove use of POLY_32BIT_REV_ANSI from LittleFS.
* Move some MbedCRC instances closer to use - construction cost is
  trivial, and visibility aids compiler optimisation.
2019-11-13 14:31:49 +02:00
Kyle Kearney 0103e3a06a General Block Device Test: Expand Thread Stack
The addition of trace logging during greentea tests pushes the multithreaded
read-write test beyond the limits of the stack it allocates for its threads.
The increase of 128 bytes was chosen by experimentation.
2019-11-12 15:41:12 -08:00
Matthew Macovsky 78569aa808 Enable TDBStore whitebox test on PSoC 6 2019-11-12 12:26:25 -08:00
Matthew Macovsky 92829bd9a4 Generalize KVStore phase 1/2 test BlockDevice sizes 2019-11-12 12:26:25 -08:00
Matthew Macovsky a1c74036ea Enable some of the kvstore tests for PSoC 6 MCUs 2019-11-12 12:26:25 -08:00
amq b90838d6df
Change "description" to "help" 2019-11-12 19:15:39 +01:00
amq 52beee2bce
Add mbed_lib.json for the FAT ChaN library 2019-11-12 15:42:22 +01:00
amq 9b3affa78b
Enable FAT configuration with mbed_lib.json 2019-11-12 15:39:19 +01:00
Martin Kojtal dd753abcb8
Merge pull request #11825 from rajkan01/feature-baremetal-greentea-storage
Bare metal green tea test for storage component
2019-11-12 11:01:29 +01:00
RAJKUMAR KANAGARAJ d8e2dd5b47 Incorporated the review comments 2019-11-08 09:50:09 -08:00
Martin Kojtal f079dce02a
Merge pull request #11810 from kyle-cypress/pr/securestore-struct-init
SecureStore: Add member initializers for inc_handle_t
2019-11-07 09:20:43 +01:00
RAJKUMAR KANAGARAJ 8ecce14dad Skip Bare metal green tea test for storage related components or the components test cases which is based on RTOS 2019-11-06 04:49:19 -08:00
Kyle Kearney db4dafc15a SecureStore: Add member initializers for inc_handle_t
_inc_set_handle is new'd in SecureStore::init(), then its members are
referenced in various functions without being explicitly initialized
first. These pre-existing values can confuse the SecureStore's internal
state and cause various undesired behavior.
2019-11-04 14:49:57 -08:00
Seppo Takalo 4ab3c8bb48 IOTSTOR-953: Fix address calculations from SlicingBlockDevice
* Change MBED_ASSERTS() to return valid error code, so that
  checks are not bypassed on release builds.
* Fix starting address calculations so that "addr" parameter is always
  relative to SlicingDevice and "_start" is only added when calls to
  underlying storage block is made.
* Bypass BlockDevice:is_valid_*() to underlying block device.
  Slicingblockdevice was just verifying addresses independently, without
  verifying those from underlying block storage.
2019-11-04 16:13:32 +02:00
Seppo Takalo a6d8f74b09 Add unittest for HeapBlockDevice and change some MBED_ASSERTS to errors. 2019-11-04 16:12:36 +02: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
Seppo Takalo 7f089ac074 Add empty unittest to generate zero baseline for untested files. 2019-11-04 16:12:36 +02:00
Martin Kojtal a927ab8f7c
Merge pull request #11789 from jeromecoutant/PR_STM32H7
STM32H7: code and feature alignment for both NUCLEO and DISCO targets
2019-11-04 09:48:09 +01:00
Veijo Pesonen b01fe020cd Deprecates NVStore 2019-10-31 14:54:54 +02:00
jeromecoutant d7d0d0b8cb STM32H7 FLASH and DEVICE_KEY
- Enable FLASHIAP for all H7 boards
- Use "TDB_INTERNAL" for all H7 boards
- Define specific internal_base_address only for DISCO_H747I_CM7
  (default address is the end of FLASH which is correct for other H7 boards)
- Correct GetSectorBase function with Dual Bank information
2019-10-31 13:04:49 +01:00
Janne Kiiskila 3ab36cb934 Add default TDBStore location for DISCO_H747I (end of BANK1)
Place it at the end of the bank1, last two erase sectors.
As erase sector is 128 kB, default size must be double of that.

This can't be in bank2 as that is apparently dedicated to the M4 core.

Memory map is available in;

https://github.com/ARMmbed/mbed-os/blob/master/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/flash_data.h

Memory map does not have this information, but issue [11617](https://github.com/ARMmbed/mbed-os/issues/11617) has.
2019-10-30 15:25:13 +02:00
Janne Kiiskila 655274a16e DISCO_H747I - define default storage (TDB_INTERNAL)
DeviceKey needs the definition of the default storage place,
define it to be TDB_INTERNAL (as for the other boards).
2019-10-30 15:25:13 +02:00
midd 6fbc610448 Update the internal kvstore size to from 7k to 65K for device that use the internal flash for kvstore 2019-10-23 12:26:07 -07:00
Martin Kojtal bb48dd35c6
Merge pull request #11624 from geky/littlefs-v1.7.2
LittleFS: Update to v1.7.2
2019-10-23 14:55:10 +02:00
Martin Kojtal fcd40ab1a5
Merge pull request #11628 from kyle-cypress/pr/directaccess-devicekey-test
Make devicekey remainder test more meaningful
2019-10-15 21:41:05 +08:00
Anna Bridge 489c30f569
Merge pull request #11297 from kyle-cypress/pr/qspi-dummy-cycles
Differentiate alt and dummy cycles in QSPIF
2019-10-11 14:34:17 +01:00
Kyle Kearney 1cb6f7b31c Make devicekey remainder test more meaningful
As of 722628be02, the "remainder" configuration
also uses the default location near the end of flash. Which makes the two tests
nearly identical with the exception that the "last two sectors" test correctly
handles parts with a low (possibly 1:1) erase size to program size ratio.
Therefore, change the "remainder" test to instead be a "default" test that uses
the tdb_internal_address/size values, so that it
a.) tests something meaningfully different and
b.) tests using the custom TDB address/size values if they are provided.
c.) functions correctly on devices where the default sector-based size computation
    does not work (e.g. because of the low erase size to program size ratio)
    and therefore a custom location and size has been specified.
The is_conf_tdb_internal variable is unused and therefore removed.
2019-10-03 16:04:30 -07:00
Christopher Haster de8df75ec0 Merge commit '70cb12e72bef7a1f220b0e5f21457b6930d984b2' into littlefs-v1.7.2 2019-10-03 09:56:09 -05:00
Matthew Macovsky baf375f8cb Allow for arbitrary QSPI alt sizes
The QSPI spec allows alt to be any size that is a multiple of the
number of data lines. For example, Micron's N25Q128A uses only a
single alt cycle for all read modes (1, 2, or 4 bits depending on
how many data lines are in use).
2019-09-30 14:45:08 -07:00
Seppo Takalo 513891d4f6 Check return of BlockDevice::init() in TDBStore.
Return value was ignored, and TDBStore:init() ended up in a
MBED_ERROR() phase after that.

TDBStore API was limited to allow returning of only two separate
errors, which may end up hiding the actual return value. Change
the documentation slightly to allow returning of original error
code from the underlying block device.

Fixes #11591
2019-09-30 13:26:56 +03:00
Kyle Kearney 832c69b1a6 Explicitly set tdb internal flash size for PSOC6
The default computation assumes that a flash sector is several times
larger than a flash page. On PSoC 6 targets this is not the case
(the two values are the same) so the computed size is too small.
This is a similar change to 1b1f14d36b,
but for devices which implement TDB in internal storage.
2019-09-24 11:31:04 -07:00
Hugues Kamba e65a0c0a99 Remove minor build warnings 2019-09-02 15:04:58 +01:00
Roman Okhrimenko ed9995e06c PSOC6_SB: Initial commit to add CY8CPROTO_064_SB to mbed-os sources. 2019-08-30 15:10:18 +03:00
Martin Kojtal 9203c88b1e
Merge pull request #11275 from VeijoPesonen/disable_nvstore
Enable building feature storage with a bare metal profile
2019-08-29 17:05:54 +02:00
Veijo Pesonen 155f04713a Revert "Sets NVStore disabled by default"
This reverts commit bda7678071.
2019-08-29 14:50:40 +03:00
Martin Kojtal 453122944c
Merge pull request #11366 from 0xc0170/dev_rollup
Rollup part 2 for 5.14
2019-08-29 09:28:49 +02:00