Commit Graph

139 Commits (tools-release-6.1.0)

Author SHA1 Message Date
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
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
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 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
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
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
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
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
Martin Kojtal c4a2e3f879
Merge pull request #11349 from VeijoPesonen/tdbstore_ecc_fix
TDBStore bugfix: won't rely on flash erase value to detect is a sector erased
2019-08-29 08:38:48 +02:00
Martin Kojtal 206e52c574 Merge branch 'pr/tdbstore-missing-offset' of git://github.com/kyle-cypress/mbed-os into dev_rollup 2019-08-28 18:37:02 +01:00
Vairamuthu Ramasamy 782734cae2 Added MBED_CONF_ prefix to QSPI pins, GitHub issue# 10060 2019-08-28 13:12:07 +01:00
Kyle Kearney 5820a3172f Fix typos in comments 2019-08-28 13:12:05 +01:00
Jammu Kekkonen 86640e5bfe Bugfix: won't rely on erase value to detect is a sector erased
When flashing a binary STLink won't skip writing padding which happens
to be the same value as flash's erase value. STM32L4 based targets
have an additional 8-bit of embedded ECC for each 64-bit word of data.
The initial value, when a sector is erased, for the ECC bits is 0xFF.
When you write the erase value to a given address these bits gets
modified to something different due to the ECC algoritm in use. The
visible bits are intact but difference in ECC value prevents flipping
any 1's to 0's. Only way to proceed is to erase the whole sector.
2019-08-27 15:39:47 +03:00
Matthew Macovsky 1b1f14d36b Explicitly set rbp_internal_size for TARGET_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.
2019-08-22 17:41:25 -07:00
Kyle Kearney 06dd330320 Fix missing offset in TBStore read from flash
This could cause incomplete data retrieval and mismatch when reading
data in more than one chunk, because every chunk would be read to the
same location at the beginning of the output buffer.
2019-08-22 17:07:24 -07:00
Veijo Pesonen 8d44d8c130 Enables building storage with bare metal profile
To compile Mbed Bootloader with bare metal profile certain defines are
not added anymore automatically. Because of this checks for those
defines needed to be introduced.
2019-08-21 12:22:34 +03:00
Martin Kojtal 2e09a27e05
Merge pull request #11165 from VeijoPesonen/fix_internal_kvstore_config
Allows placing KVStore and update images on separate storage devices - to internal and external flash
2019-08-19 11:46:39 +02:00
Veijo Pesonen 722628be02 [TDBStore] changes the default TDBStore location
Thus far the default position has been after the application plus two
spare sectors. For simplicity and to have a predictable location for the
TDBStore with the default configuration the location is now switched to
the end of the flash. Two last sectors to be exact.
2019-08-15 09:26:57 +03:00
Seppo Takalo a5e3336c19 Zero initialise all NVStore&kvstore members 2019-08-07 14:17:15 +03:00
Michal Paszta 73b122b2c4 Coverity and compilation warnings fixes 2019-08-07 10:30:52 +03:00
Veijo Pesonen 9222e15848 Allows having KVStore in internal and update image in external flash
Fixes a bug where it has not been possible to have KVStore in internal
flash while an update image image has been kept in external storage.
2019-08-06 09:49:14 +03:00
Seppo Takalo 0b8ae1b098
Merge pull request #11084 from mtomczykmobica/IOTSTOR-832
NVStore.cpp (and KVStore) - run-time failure handling missing
2019-07-23 15:28:26 +03:00
Marcin Tomczyk 6cdb8f0f49 NVStore.cpp (and KVStore) - run-time failure handling missing 2019-07-22 15:04:20 +02:00
David Saada fb3559d841 PSA storage: Conform to "PSA 1.0.0" spec release
- Add the no confidentiality & no replay protection flags
- Add actual size parameter in PS/ITS get APIs
- Change a few size parameters from uint32_t to size_t
2019-07-14 18:50:47 +03:00
Volodymyr Medvid 5cc66282dd PSOC6: remove PSA targets 2019-07-08 14:49:26 +03:00
Qinghao Shi 111daa0a4c FastModel: enable kvstore 2019-06-06 18:54:58 +01:00
Martin Kojtal ab82f1fca6
Merge pull request #10627 from devran01/remove_future_sequana_target
Remove targets FUTURE_SEQUANA_M0_PSA and FUTURE_SEQUANA_PSA
2019-05-24 12:16:10 +01:00
Oren Cohen ed29d64053 CR changes 2019-05-22 17:25:08 +03:00
Michael Schwarcz 79976e0304 Update storage mbed_lib.json for MUSCA_A1_S 2019-05-22 17:17:21 +03:00
Michael Schwarcz ff1c769c7e Add ARM_MUSCA_A1 as a new target platform
Musca-A1 is a Cortex-M33 based target with security extension enabled.

- ARM_MUSCA_A1 is the non-secure target running mbed-os.
- ARM_MUSCA_A1_S is the secure target running TF-M.
- TF-M sources were imported and patched in previous commits.
- TF-M secure bootloader (McuBoot) for MUSCA_A1 is submitted by a pre-built binary.
- A post-build hook concatenates The secure and non-secure binaries,
  signs it and then concatenates the bootloader with the signed binary.
2019-05-22 17:17:20 +03:00
Devaraj Ranganna 7765d39283 The targets FUTURE_SEQUANA_M0_PSA and FUTURE_SEQUANA_PSA are removed
due to partial implementation. Having FUTURE_SEQUANA_M0 and
FUTURE_SEQUANA PSA targets is misleading.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2019-05-21 15:00:31 +01:00
Anna Bridge 0ac1c97ed2
Merge pull request #10355 from OpenNuvoton/nuvoton_kvstore_other_bd
KVStore: Support external storage out of mbed-os tree
2019-05-07 15:56:41 +01:00
ccli8 63d9cde507 KVStore: Support block device out of mbed-os tree
To support block device out of mbed-os tree in KVStore, user needs to:
1. Configure blockdevice to "other".
2. Override get_other_blockdevice() to provide block device out of mbed-os tree.
2019-04-25 09:56:20 +08:00
Oren Cohen f70e069838 Configure PS with tdbstore 2019-04-10 17:33:37 +03:00
Michael Schwarcz dca3ebe9f6 LPC55S69_S: reduce ITS size to 32KB
- Reduce LPC55S69 secure side ITS from 64KB to 32KB
2019-03-14 15:49:44 +02:00
Martin Kojtal b80c961dae
Merge pull request #10034 from evgenibo/flash_protected_region_config
PSA: PSoc 6 configurable secure memory size
2019-03-14 13:23:58 +01:00
Evgeni Bolotin c0bc56737b modify rpb base address for M0 2019-03-14 11:29:46 +02:00
Michael Schwarcz f6ab217892 Reduce 32KB from LPC55S69_S binary size 2019-03-13 18:21:37 +02:00
Mahesh Mahadevan c607b8ab1a LPC55S69: Update the KVStore config files
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-03-08 07:33:47 -06:00
Oleg Kapshii aedec74b9a Added support for PSA target to WIFI_BT board
Added WiFi_Bt CM4 PSA target in mbedos json
Added SPE-NSPE mailbox initialization for CM4 SystemInit
Made similar to FUTURE_SEQUANA configurations
Copied FUTURE_SEQUANA CM0 SPM part for WiFi_Bt smoke test
Added CY8CKIT_062_WIFI_BT_M0 and CY8CKIT_062_WIFI_BT_M0_PSA targets
Sorted files for new CY8CKIT_062_WIFI_BT_M0 and CY8CKIT_062_WIFI_BT_M0_PSA targets
Copied files for CY8CKIT_062_WIFI_BT_M0_PSA from FUTURE_SEQUANA
Copied and updated cm0p start files
Corrected according to FUTURE_SEQUANA
Changes to M0 startup files to have SPM started
Fixed implicit declaration warning
Commented interrupts enabling according to FUTURE_SEQUANA flow
Updated prebuild spm_smore CM0 hex for CM4 target
Turned on greentea environment
Used special memory region for common CM0/CM4 data
Updated prebuild CM0 SPM hex
Placed shared memory region for flash operations into SPM shared memory region
Updated cyprotection code and configuration
Start address of protected regions is set by a defined number from target.json
Added masters pcMask configuration
Added support for PSA target to WIFI_BT board
Enabled resources protection for SPM
Aligned RAM usage according to Cypress FlashBoot and CyBootloader
alligned protection config
Added CYW943012P6EVB_01_M0 target
Enlarged heap size, remobed nv_seed
Added heap reservation in linker script from mbed-os
Removed heap size definition
turned on nv_seed config
Removed nv_seed macros
Enabled protection for PSoC6 CM0
Added PSoC6 CM0 PSA readme
Enabled mbed_hal-spm test
Enabled nv_seed and removed unneeded ipc config define
Added SPDX string to feature_ble cypress target files
Removed unneeded supported_toolchains lines for Cypress targets
Disabled protection settings
Corrected flash initialization for PSoC6 CM0 PSA
Changed PSoC6 IPC6 protection for flash
Enabled special flash initialization and enabled protection settings
Updated and added new prebuild PSoC6 CM0 PSA hex files
Disabled HW TRNG and CRC for PSoC6 CM4 PSA target
Added missing const to allow types to match
Updated PSoC6 WIFI_BT_PSA prebuilt directory
Moved PSoC6 shared section usage area definition to begin of ld
Added initial ARM_STD linker and startup files for PSoC6 CM0
Added initial IAR linker and startup files for PSoC6 CM0
Added defines to disable some SPM protection settings for PSoC64
Moved Flash function variables into separate memory region
Added defines for new Public area definition
Updated PSoC6 CM0_PSA hex-files
2019-03-07 08:40:20 -08:00
David Saada 671c5a0510 Remove unnecessary prints in FileSystemStore class 2019-02-24 14:23:40 +02:00
Ron Eldor c94b5861e4 Add mbedtls platform setup and teardown to modules
Add calls to `mbedtls_platform_setup()`
and `mbedtls_platform_teardown()` to all modules and tests using Mbed TLS.
2019-02-18 11:43:32 +02:00
Oren Cohen bb775c2e69
Storage mbed_lib.json files 2019-02-13 20:36:00 +02:00
Yossi Levy 5de92ca4c6 Fixing a bug in FileSystemStore to get the folder path from kv_config in FILESYSTEM and default configuration 2019-01-21 11:19:14 +02:00
offirko e996b7f9ce DirectAccess DeviceKey added support for default storage type 2019-01-17 10:58:55 -06:00
Cruz Monrreal 4f95298669
Merge pull request #9361 from yossi2le/yossi_fix_for_tfm
Removing dependency of TDBStore in SystemStorage file and moving some file location - TFM support.
2019-01-16 22:06:07 -06:00
Martin Kojtal 82abf979dd
Merge pull request #9363 from davidsaada/david_fsst_tr_error_remove
Remove unnecessary error prints in FileSystemStore
2019-01-15 10:34:38 +01:00
Alexander Zilberkant 971e29b669 Remove TARGET prefix from the TARGET_BYPASS_NVSTORE_CHECK and leave it as BYPASS_NVSTORE_CHECK 2019-01-15 10:54:22 +02:00
Yossi Levy 849db51b3a Moving DirectAccessDevicekey.h and DirectAccessDevicekey.cpp to direct_access_devicekey sub folder For TFM support 2019-01-15 10:54:21 +02:00
Yossi Levy a05180ac04 Moving KVStore to include sub folder For TFM support 2019-01-15 10:54:21 +02:00
Yossi Levy eb7cbc1432 Removing the dependency of TDBStore in SystemStorage.h and NVStore co-existence checkup if compile for target TFM 2019-01-15 10:54:21 +02:00
Alexander Zilberkant 454ae256d4 Set "TDB_INTERNAL" default storage for Pelion
NUCLEO_F411RE
NUCLEO_F429ZI
UBLOX_EVK_ODIN_W2
2019-01-13 18:30:22 +02:00
David Saada 90e4286f2d Remove unnecessary error prints in FileSystemStore 2019-01-13 17:17:55 +02:00
Martin Kojtal d20b59153a
Merge pull request #9244 from theamirocohen/kvstore_tests_api
Kvstore tests api change to run on K64F only
2019-01-10 13:48:31 +00:00
David Saada 5d1985019f Remove kvstore's mbed_lib.json file (not relevant any more)
In addition, use the NOT_SUPPORTED directive to skip the tests.
2019-01-09 16:25:13 +02:00
offirko 6592e85c13 Added utility function to help locate expected internal flash tdbstore position.
(Supporting FILESYSTEM and TDB_EXTERNAL configuration only)
2019-01-09 13:48:25 +02:00
offirko 945579378e Adding low code size tool for direct access to Devicekey.
This enables application with code size restrictions to access
devicekey directly based on address in internal flash without kvconfig overhead
2019-01-09 13:48:24 +02:00
Martin Kojtal cc9562e0a5
Merge pull request #9136 from yossi2le/yossi_tdbstore_nvstore_co_exist
TDBStore and NVStore should create an error if co exist.
2019-01-08 12:02:37 +00:00
Martin Kojtal 5a5ad8d26d
Merge pull request #9200 from davidsaada/david_tdbstore_gc_if_corrupt
TDBStore: Perform garbage collection on failed writes
2019-01-08 11:55:31 +00:00
Martin Kojtal 42fee4502d
Merge pull request #9241 from davidsaada/david_tdbstore_variant_erase_unit_fix
TDBStore: fix bug in sector blank check for variant sized sectors
2019-01-08 09:52:15 +00:00
Yossi Levy 71afcf6c40 Adding return MBED_ERROR_UNSUPPORTED in _storage_config_default if no component is defined. 2019-01-07 16:50:06 +02:00
David Saada 72f6f6c92f TDBStore: Perform garbage collection on failed writes
Partial writes may turn storage unusable. GC clears this scenario.
2019-01-06 15:03:40 +02:00
David Saada 66117097c4 TDBStore: fix bug in sector blank check for variant sized sectors 2019-01-03 17:14:43 +02:00
Yossi Levy 719395f347 fixing FAT mount failure in kvstore FILESYSTEM 2019-01-03 14:47:24 +02:00
Yossi Levy 388da7f841 Remove ROM overlaps checkup for kvstore FLASHIAP blockdevice if non default values are use
remove of rbp_number_of_entries from the kvstore configuration. Adding default option for storage_type
allowing the system to choose TDB_INTERNAl, TDB_EXTERNAL or FILESYSTEM base on the blockdevice component
set in the target board. Adding remarks to kv_config.cpp and break simplify the _get_blockdevice_FLASHIAP function
2019-01-03 14:01:42 +02:00
Yossi Levy 677dbd1612 removing output parameter from avoid_conflict_nvstore_tdbstore function. 2018-12-23 14:27:56 +02:00
Yossi Levy fcd24aa62b Create runtime error if TDBStore and NVStore are created in internal flash 2018-12-23 14:27:56 +02:00
Martin Kojtal cc2e15c84e
Merge pull request #9158 from davidsaada/david_lto_dup_types
Fix LTO build failures due to duplicate local types
2018-12-20 16:30:16 +00:00
David Saada ec0ebc2cec Fix LTO build failures due to duplicate local types 2018-12-19 15:52:43 +02:00
David Saada f3bac3451c Fix FLASHIAP_ROM_END macro for GCC_ARM & IAR toolchains
- Consider data section in GCC_ARM toolchain
- Consider init_array section in IAR toolchain
- Rename macro to FLASHIAP_APP_ROM_END_ADDR for clarity sake
2018-12-19 12:05:08 +02:00
David Saada cb7f68e992 Fix a few SecureStore issues (following preliminary security review)
- Remove require integrity flag (authentication) - always authenticate
- Use RBP KV to store CMAC also in write once case
- Allow removing a key if reading it failed on RBP authentication error
- Disable SecureStore if user disables MBED TLS AES CTR or CMAC
2018-12-10 23:34:57 +02:00
Cruz Monrreal eec536b332
Merge pull request #8986 from davidsaada/david_tdbstore_fixes
Fix a few bugs in TDBStore and KV config
2018-12-10 10:16:37 -06:00
Cruz Monrreal 78d6018ecc
Merge pull request #8745 from kfnta/feature-new-target-future-sequana-psa
Add new target future sequana PSA
2018-12-06 13:13:36 -06:00
David Saada e1bd5c9fac Fix a few bugs in TDBStore and KV config 2018-12-05 17:02:02 +02:00
Martin Kojtal 415747d692
Merge pull request #8933 from yossi2le/yossi_kvstore_integration
Fixing Doxygen descriptions
2018-12-05 13:21:00 +01:00
Amanda Butler 6201b8d32d
Edit TDBStore.h
Edit file for punctuation and consistent tense.
2018-12-04 16:27:35 -06:00
Amanda Butler 5c68c5226a
Edit SecureStore.h
Edit file for consistent tense.
2018-12-04 16:25:07 -06:00
Amanda Butler 66dc5a2eba
Add word to KVMap.h
Add missing article for clarity and capitalization.
2018-12-04 16:24:00 -06:00
Amanda Butler 77a931b579
Edit FileSystemStore.h
Make minor edits, mostly for consistent tense across documents.
2018-12-04 16:22:47 -06:00
Oren Cohen f1d3eb9340 Add FUTURE_SEQUANA_PSA target
* Modify linker scripts to be compatible with bootloader and PSA
* Add memory protection
* Modify original post-build step to allow link with PSA binaries
* Config kvstore for ITS on FUTURE_SEQUANA_PSA
* Enable PSA-Crypto on PSoC6 with NVSeed
2018-12-04 18:38:50 +02:00
Yossi Levy d21bfbfdab Setting K64F to use KVStore FileSystem configuration 2018-12-03 16:09:19 +02:00
Yossi Levy cdcf14ef79 Fixing Doxygen descriptions 2018-12-03 16:08:07 +02:00
Danny Shavit 53728e45b7 Add a new PSA Internal Trusted Storage APIs 2018-11-25 09:57:22 +02:00
David Saada e9c25e23a5 KVStore & derived classes: design docs, implementation & configuration
Implement the following:
KVStore base class
TDBStore class
FileSystemStore class
SecureStore class
Global APIs
Configuration framework
Design documentation
2018-11-24 17:43:35 +02:00