Commit Graph

661 Commits (mbed-os-5.15.3-rc1)

Author SHA1 Message Date
paul-szczepanek-arm b628285254 route mtu changed events to server and client instead of gap 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm 02d5391cd0 fix possible truncation 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm b6df6d54a1 change event names 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 356ec39d02 fix style 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 21ad886e9e handle mtu and data len events for softdevice 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 06a2a403e9 fix typos 2019-02-14 12:34:31 +00:00
paul-szczepanek-arm 108d6908be route ble events to gap 2019-02-14 12:34:31 +00:00
Naveen Kaje 0563276466 btle: fix build warning about unused clockConfiguration
Fix the following build warning seen with both GCC and ARM_CC
[Warning] btle.cpp@115,0:  #177-D: variable "clockConfiguration"  was declared but never referenced
2019-02-13 10:42:48 -06:00
Cruz Monrreal 58cba25799
Merge pull request #9372 from pan-/fix-cryptotoolbox
BLE - Nordic: Release crypto cell when not in use.
2019-02-11 18:45:17 -06:00
Volodymyr Medvid a16811532b PSoC6: add implementation of BLE HCI driver for CYW4343W/CYW43012
Add Cypress HCI driver implementation in TARGET_Cypress directory.

Update targets.json to enable CORDIO stack for Cypress PSoC 6 boards
with CYW43XXX radios with compatible HCI driver implementation:
CYW4343W and CYW43012.
2019-02-07 18:24:56 +02:00
Volodymyr Medvid a304c2216a CYW4343X: move HCI driver to TARGET_STM
TARGET_CYW4343X Bluetooth HCI driver is specific to STM32 targets
derived from USI_WM_BN_BM_22. Move the driver implementation to
TARGET_STM folder to not interfere with Cypress implementation at
TARGET_Cypress/TARGET_CYW43XXX/HCIDriver.cpp that is enabled for
PSoC 6 targets which also include the CYW4343X label.
2019-02-07 18:24:55 +02:00
Senthil Ramakrishnan 2030d03590 Modified fixes with review comments 2019-02-01 17:49:49 -06:00
Senthil Ramakrishnan ea30ed7a36 Fix for ARMc6 compiler errors 2019-02-01 17:46:50 -06:00
Brian Daniels ee5281abef Remove unused yotta module metadata 2019-01-24 15:30:20 -06:00
Martin Kojtal ad5bcfc1de
Merge pull request #9427 from paul-szczepanek-arm/fix-truncation
BLE: fix possible truncation
2019-01-21 13:42:07 +01:00
paul-szczepanek-arm 001919e81a fix truncation 2019-01-18 12:10:30 +00:00
Cruz Monrreal fd2a96e7ad
Merge pull request #9339 from costanic/fix_oob
Fix Out-Of-Band (OOB) data generation for BLE OOB pairing
2019-01-17 21:51:54 -06:00
Martin Kojtal 284781a565
Merge pull request #9096 from pan-/fix-enforce-size-limits
BLE: Enforce advertising data payload limits
2019-01-17 12:41:57 +01:00
Cruz Monrreal d0665c8458
Merge pull request #9365 from lrusinowicz/cordio_ble_fix
Fix for asserion failing in BLE::callDispatcher with gcc debug profile.
2019-01-16 22:03:16 -06:00
Vincent Coubard a10a10a3d7 BLE - Nordic: Release crypto cell when not in use.
Previously, the CryptoToolbox was allocated once as part of the security manager.
This was inneficient memory wise as it is only use to prepare key at initialization
and when we need to compute shared keys.
This was also inneficient power consumption wise as the Crypto cell was kept enabled even
when it wasn't used.

This fix creates a CryptoToolbox whenever it is needed and release it once it has fulfilled its
purpose. Note that CryptoToolbox allocation happens on the heap as mbed tls data structure are huge
and there's an high risk of crushing the stack.
2019-01-14 16:56:07 +00:00
Leszek Rusinowicz f294447c25 Moved nextTimeout variable out of critical section in BLE::callDispatcher.
Initialization of Timeout object contains critical section inside constructor. Initialization inside critical section caused assertion failing under "debug" profile.
2019-01-14 11:13:28 +01:00
Nic Costa 7795e30bce Remove own_oob and peer_oob flags from Nordic PAL
the own_oob and peer_oob flags were not being set to 1 even though
an OOB pairing request was in progress, which therefore prevented
OOB data from being passed down to the softdevice during a OOB
pairing operation, thus causing the OOB pairing process to fail.
2019-01-11 08:54:30 -06:00
Nic Costa 24d793ce5d Fix parameters provided to oob generator function
The function in the Nordic SDK for generating OOB data,
sd_ble_gap_lesc_oob_data_get, requires local LE Secure Connection
P256 Public Keys in {X,Y} format, but was being supplied with
the local secret key.  This caused the generated OOB data to
fail to correspond to the Public Keys, which caused a mismatch
during the OOB pairing phase of the OOB confirmation value by
a remote peer when attempting to verify the OOB data against
the Public Keys, ultimately causing the OOB pairing request to
fail with a Confirm Value Failed (0x04) error.
2019-01-11 08:54:30 -06:00
Desmond Chen f281e06e46 BLE: NRF52 returns tx/rx phy on phy update callback 2019-01-03 10:11:14 +08:00
paul-szczepanek-arm 8b39071cd8 make function name longer 2019-01-02 14:29:30 +00:00
Desmond Chen 30ca813f07 Fix BLE long write execution failure 2018-12-19 08:08:16 -08:00
paul-szczepanek-arm e1cf516100 fix max payload and hci length values 2018-12-13 17:50:53 +00:00
Cruz Monrreal 23022dd0f9
Merge pull request #8998 from pan-/ble-extended-advertising-fixes
Ble extended advertising fixes
2018-12-10 10:36:05 -06:00
paul-szczepanek-arm c998287170 fixed ARM compilation problem caused by noreturn 2018-12-10 13:47:14 +00:00
paul-szczepanek-arm 97df8f5ed9 working ARM lib 2018-12-10 13:46:26 +00:00
paul-szczepanek-arm 642b2dfb57 working libs for GCC and IAR 2018-12-10 09:12:03 +00:00
Donatien Garnier 6f94339aed Replace ARMCC libs 2018-12-08 08:43:20 +00:00
Donatien Garnier db6b09a70f ARMCC only likes armar 2018-12-07 23:45:26 +00:00
Donatien Garnier 3f00595e62 Remove use of GPIOs (LEDs and diag pins) from Cordio LL for Nordic 2018-12-07 22:46:27 +00:00
Donatien Garnier 674ff288d6 Remove duplicate symbols in libcordio_stack.a 2018-12-07 22:04:19 +00:00
paul-szczepanek-arm a48369691e iar libs for cordio 2018-12-07 17:56:36 +00:00
paul-szczepanek-arm bdabada477 added arm version of libs 2018-12-07 17:41:50 +00:00
paul-szczepanek-arm c13dcf3387 baseband clock rate increased to 1 000 000 2018-12-07 17:12:58 +00:00
Vincent Coubard e7f81fe7e8 BLE: Fix the number of advertising sets supported
The number of advertising sets supported is the minimum of advertising sets supported beween the host and the controller.
2018-12-07 13:26:35 +00:00
Vincent Coubard 4e5240b743 BLE: Set the number of the advertising sets supported by the host to 3. 2018-12-07 13:24:52 +00:00
Vincent Coubard 57b79d9659 BLE: Set the number of supported phy by the host to 3. 2018-12-07 13:24:28 +00:00
Vincent Coubard 20e0cd1b0e BLE: Inject random static address during reset sequence. 2018-12-07 12:35:20 +00:00
Vincent Coubard a36b04fde5 BLE: Add an option to inject the random static address during the reset sequence. 2018-12-07 12:33:31 +00:00
Vincent Coubard 0d398bc8c8 BLE: Revert changes introduced by debugging. 2018-12-07 09:33:26 +00:00
Vincent Coubard 698447b622 BLE: Fix address type allowed to create a periodic sync. 2018-12-07 00:04:29 +00:00
Amanda Butler aa4b5a5dc7
Edit PortingGuide.md
Edit file for active voice.
2018-12-06 13:24:10 -06:00
Amanda Butler 61c2599587
Edit CordioHCIDriver.h
Edit file for active voice.
2018-12-06 13:22:20 -06:00
paul-szczepanek-arm df443c20ca copy periodic payload 2018-12-06 17:54:13 +00:00
paul-szczepanek-arm 22a117a6e4 always set filter policy 2018-12-06 15:43:45 +00:00
paul-szczepanek-arm 5735456487 fix swapped errors 2018-12-06 15:05:35 +00:00
paul-szczepanek-arm 58c7c3868e check return value of DmSyncStart 2018-12-06 15:04:23 +00:00
paul-szczepanek-arm d372f16bc4 fix return value 2018-12-06 15:04:00 +00:00
Vincent Coubard 0543442cc3 BLE: Fix conversion of advertising type
Previously, we were passing the event_properties as defined by the Bluetooth spec which is not what DmAdvConfig expect as the advertising type passed to DmAdvConfig is Cordio tailored (and incomplete).
2018-12-06 11:23:45 +00:00
Vincent Coubard d9d4a214b8 BLE: Revert change in stack setup initialisation.
While good this change breaks some old application that were adding GATT services before the initialisation of BLE.

This patch revert temporarily this change for now
2018-12-06 11:21:43 +00:00
Vincent Coubard e3d8b28483
Update features/FEATURE_BLE/targets/TARGET_CORDIO/driver/CordioHCIDriver.h
Fix doxygen as suggested by @pan-

Co-Authored-By: donatieng <donatien.garnier@arm.com>
2018-12-06 10:19:57 +00:00
Donatien Garnier 4485531173 Update Porting Guide with memory pool changes 2018-12-05 19:24:44 +00:00
Donatien Garnier 7e6efc2571 Cordio: Update CY8C63XX Driver to use default memory pool 2018-12-05 19:24:44 +00:00
Donatien Garnier f9b236184a Cordio: Update CYW4343X Driver to use default memory pool 2018-12-05 19:24:44 +00:00
Donatien Garnier 218bf3f80c Cordio: Update ODIN-W2 Driver to use default memory pool 2018-12-05 19:24:44 +00:00
Donatien Garnier 2978cd8404 Cordio: Make allocating too much memory for pool a warning, not a fatal assert 2018-12-05 19:24:44 +00:00
Donatien Garnier 101c5697e5 Cordio Nordic LL: Readjust memory pool requirements for NRF52840 2018-12-05 19:24:44 +00:00
Donatien Garnier c99f2497c3 Cordio Nordic LL: Optimize memory for smaller targets 2018-12-05 19:24:44 +00:00
Donatien Garnier 7a33feca23 Cordio: Split get_buffer_pool_description() in pure virtual + default implementation to avoid allocating two memory pools in a static fashion 2018-12-05 19:24:44 +00:00
Donatien Garnier b83c4fde66 Cordio: Assert if memory pool is not exactly the right size 2018-12-05 19:24:44 +00:00
Martin Kojtal c1c94c83c5
Merge pull request #8904 from pan-/ble-extended-advertising-fixes
Ble extended advertising fixes
2018-12-04 09:50:36 +01:00
Martin Kojtal ce11081db7
Merge pull request #8884 from pan-/fix-cordio-connection-iteration
BLE: Fix iteration on connections in CordioGattServer.
2018-12-03 13:40:23 +01:00
Paul Szczepanek 0c21112482
fix DM_CONN_ID_NONE loop condition 2018-11-30 08:16:17 +00:00
Vincent Coubard c99824892c BLE: Reintroduce changes to address types lost. 2018-11-28 11:29:40 +00:00
Steve Cartmell 353e991410 doc(pan-cordio): Add toolchain version used to compile cordio-ll readme 2018-11-28 10:26:14 +00:00
Steve Cartmell a3bae1c48d doc(pan-cordio): Add readme and license documents for cordio link layer 2018-11-28 10:26:14 +00:00
Donatien Garnier 5a87cfa13d Fix a few more rebasing issues 2018-11-28 10:26:14 +00:00
Donatien Garnier 89aabaec0d Fix some rebasing quirks 2018-11-28 10:26:14 +00:00
Donatien Garnier f9808140df Add number of advertising sets 2018-11-28 10:26:14 +00:00
Donatien Garnier 3ce1d91d35 Amend Nordic HCI driver to support BLE5 features 2018-11-28 10:26:14 +00:00
Steve Cartmell 1b3efa4ccd doc(pan-cordio): Add documentation to README on how to enable Cordio LL 2018-11-28 10:26:14 +00:00
Steve Cartmell 12fdab312e feat(pan-cordio): Add nordic softdevice sources back into repository 2018-11-28 10:26:14 +00:00
Donatien Garnier c68c150bf8 Fix buffer size for NRF Cordio HCI driver 2018-11-28 10:26:13 +00:00
Steve Cartmell 93bf68df0b fix(pan-cordio): Remove erroneous files added after rebasing 2018-11-28 10:26:13 +00:00
Steve Cartmell 1e1486ed18 fix(pan-cordio): Replace the compiled uECC library with the sources 2018-11-28 10:19:08 +00:00
Donatien Garnier 01620b9ba2 Use uECC C99 implementation 2018-11-28 10:19:08 +00:00
Steve Cartmell 0f4ded19ac feat(pan-cordio): Replace NRF51 softdevice BLE stack with cordio 2018-11-28 10:19:08 +00:00
Steve Cartmell f583596fea refactor(pan-cordio): Replace the uECC source with a precompiled library 2018-11-28 10:19:08 +00:00
Steve Cartmell 93267699b8 fix(pan-nordic): Fix memory allocation sizes to resolve NRF52832 issues 2018-11-28 10:19:08 +00:00
Steve Cartmell 815d0d5efc feat(pan-cordio): Add cordio-ll libraries and NORDIC implementation 2018-11-28 10:19:08 +00:00
Steve Cartmell ca2efcdd11 fix(pan-cordio): Reset timer after updating to reduce chance of overflow 2018-11-28 10:19:08 +00:00
Steve Cartmell e5aa84308f refactor(pan-cordio): Use Timer class instead of raw ticker for timing 2018-11-28 10:19:08 +00:00
Steve Cartmell 299ae1d9c6 fix(pan-cordio): Override WSF handler size in a platform specific manner 2018-11-28 10:19:08 +00:00
Steve Cartmell 5782e93a19 fix(pan-cordio): Wrap call to wsfOsReadyToSleep in a critical section
The function wsfOsReadyToSleep should only be called when interrupts are
disabled. Entering a critical section before calling the function fixes
any potential issues.
2018-11-28 10:19:08 +00:00
Steve Cartmell f60c2c9aa8 fix(pan-cordio): Increase the maximum number of supported WSF handlers
NRF52480 fails to complete BLE initialisation due to attempting to set
more event handlers than are supported by the WSF library.

Increasing the number of handlers fixes this issue.
2018-11-28 10:19:08 +00:00
Steve Cartmell 065bad6fa6 fix(pan-cordio): Move stack BLE stack setup to later in initialisation 2018-11-28 10:19:08 +00:00
Vincent Coubard d115e73e7e BLE: Fix iteration on connections in CordioGattServer. 2018-11-27 16:01:56 +00:00
Vincent Coubard 1a6246f130 BLE: Remove double handling of DM_CONN_OPEN_IND . 2018-11-27 15:30:56 +00:00
Vincent Coubard 7b1e225012 BLE: Fix address name in NRF targets. 2018-11-26 23:36:43 +00:00
paul-szczepanek-arm b552f8c3f0 fix return code for implemented func 2018-11-26 23:06:06 +00:00
Vincent Coubard 7f33145760 BLE: Fix extended advertising check. 2018-11-26 17:12:50 +00:00
Vincent Coubard ac47736259 BLE: Enable cordio extended modules if available. 2018-11-26 16:57:47 +00:00
Vincent Coubard 30c6432b5d BLE: Address code formating issue in CordioPalGap implementation. 2018-11-26 10:24:35 +00:00
Vincent Coubard 02d61cfe24 BLE: Move new version of ::GAP in a new class ::ble::Gap . 2018-11-26 10:24:34 +00:00
Vincent Coubard 869bb308c5 BLE: Add API to manage GAP connection parameter updates. 2018-11-26 10:24:34 +00:00
paul-szczepanek-arm 65d84e4227 fix case 2018-11-26 10:24:33 +00:00
paul-szczepanek-arm 09f71d278d move feature support into user api 2018-11-26 10:24:33 +00:00
Vincent Coubard 6a63948a7d BLE: Add phy in sync exstablished event. 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm b276e6edaf fix high duty cycle setting (reversed) 2018-11-26 10:21:32 +00:00
Vincent Coubard 0c1e01952b Compilation fixes 2018-11-26 10:21:32 +00:00
Vincent Coubard 7de5d8c763 Merge pull request #4 from pan-/extended
Last bit of PAL extended advertising implementation.
2018-11-26 10:21:31 +00:00
Vincent Coubard b9d7e63911 BLE: Implement Advertising extension and Periodic Advertising on Cordio (WIP) 2018-11-26 10:21:31 +00:00
Leszek Rusinowicz f906aac096 Added BLE support based on CORDIO stack. 2018-11-01 20:15:57 +01:00
Cruz Monrreal 1489900162
Merge pull request #8556 from paul-szczepanek-arm/fix-phy-support
BLE: fix using an optional feature before checking for support
2018-10-29 08:46:26 -05:00
Cruz Monrreal 63946d56d8
Merge pull request #8452 from u-blox/ublox_odin_driver_os_5_v3.5.0_rc1
ble: update ODIN drivers to v3.5.0 RC1
2018-10-27 09:50:12 -05:00
paul-szczepanek-arm b77bd223d7 check for feature before using 2018-10-26 12:53:39 +01:00
Cruz Monrreal cd559940b5
Merge pull request #7966 from pingdan32/fix_nrf52_total_link
nrf52-ble: fix total links count
2018-10-23 12:32:17 -05:00
aqin 9854c1bbeb updating method name to make it more descriptive 2018-10-23 18:14:32 +05:00
aqin c539656299 update with ARM coding standard 2018-10-18 14:04:04 +05:00
aqin 2ac6cff107 BLE support added 2018-10-17 14:19:14 +05:00
Martin Kojtal 313073ca3e
Merge pull request #7958 from andrewleech/nrf_ble_configs
nrf_ble: Expose configuration of max characteristics and descriptors
2018-10-09 10:35:11 -05:00
Martin Kojtal 5faac0e4ba
Merge pull request #8269 from paul-szczepanek-arm/fix-event-malloc
BLE: replace malloc with cordio buffer allocation
2018-10-06 07:44:39 +02:00
paul-szczepanek-arm 366a5018b5 fix using an invalid cccd index 2018-10-03 16:16:41 +01:00
Andrew Leech a6f33a1a35 nrf_ble: Expose configuration of max number of characteristics and descriptors 2018-10-03 10:54:09 +10:00
paul-szczepanek-arm 88a87518b4 assert instead of error 2018-09-27 17:07:40 +01:00
paul-szczepanek-arm 8f5e2725ae remove pointless cast 2018-09-27 17:03:31 +01:00
paul-szczepanek-arm 64f93586b5 fix namespace errors 2018-09-27 16:58:19 +01:00
paul-szczepanek-arm a0df7fc637 change namespace 2018-09-27 16:36:48 +01:00
paul-szczepanek-arm 5fee50b53d removed unusused header 2018-09-27 14:05:58 +01:00
paul-szczepanek-arm abfd647279 moved SimpleEventQueue 2018-09-27 13:56:38 +01:00
pingdan32 45ae7f75c6 add entry in config file for total links configuration 2018-09-26 13:25:13 +08:00
Cruz Monrreal c3128cdfce
Merge pull request #7981 from paul-szczepanek-arm/ondatasent
BLE: fix missing updates sent callback in GattServer using Cordio stack
2018-09-18 11:30:02 -05:00
paul-szczepanek-arm 44d3504dbb missing overload 2018-09-04 13:58:50 +01:00
paul-szczepanek-arm ec373c29a0 missing onDataSent calblack for cordio 2018-09-04 13:30:08 +01:00
pingdan32 459649fce0 fix total link count 2018-09-03 16:45:18 +08:00
Ron Eldor 5817d71ad8 Change mbedtls_platform_context parameter to NULL
Change the parameter being sent to `mbedtls_platform_setup()` and
`mbedtls_platfrm_teardown()` to NULL, as it is now being unused
in Mbed OS.
2018-09-03 08:38:57 +03:00
paul-szczepanek-arm db3d124516 moved the utility function into the pal since it's only useful below pal 2018-08-29 20:25:56 +01:00
paul-szczepanek-arm baaebb47dc fix typo in preferred 2018-08-29 20:21:04 +01:00
paul-szczepanek-arm e0ca4a093f update cordio pal phy to new 5.0 stack 2018-08-29 20:21:04 +01:00
paul-szczepanek-arm 8090e7acd8 phy API implementation for cordio
phy set types added, nordic implementation updated
2018-08-29 20:21:04 +01:00
Paul Szczepanek d5c675e300 Merge pull request #6 from paul-szczepanek-arm/feature-support
support for controller features
2018-08-29 20:15:58 +01:00
Vincent Coubard 954f004d16 Nordic BLE: Implement PHY APIs for NRF52. 2018-08-29 20:15:58 +01:00
paul-szczepanek-arm 657fc45a3c updated porting guide 2018-08-24 11:30:04 +01:00
paul-szczepanek-arm f36e58b039 update readme 2018-08-24 11:14:03 +01:00
paul-szczepanek-arm 1d2ab42d27 replace libraries with sources 2018-08-24 11:14:03 +01:00
Martin Kojtal 70814d6185
Merge pull request #7417 from pan-/improve-cordio-hci-doc
Cordio Documentation: Explain how to tests and what tools are available.
2018-08-24 09:52:21 +02:00
Melinda Weed 4a9570b252 function signature line 2018-08-16 14:46:07 +03:00
Melinda Weed c1e154b1cc
removing \ 2018-08-14 16:26:30 +03:00
Melinda Weed 3b95202154 Final review and grammatical changes 2018-08-14 10:55:39 +03:00
Melinda Weed 1082724ac3 formatting changes 2018-08-10 12:53:28 +03:00
Melinda Weed db8f36945b Fixing colons and formatting 2018-08-10 11:17:32 +03:00
Melinda Weed 739bd6605d grammatical and stylistic fixes, more passive -> active 2018-08-10 11:01:38 +03:00
Melinda Weed f2c6d59c23 Further stylistic changes. Passive -> active 2018-08-10 09:56:42 +03:00
paul-szczepanek-arm 6c9bd163b1 factored out whole ediv rand check 2018-08-08 17:02:43 +01:00
paul-szczepanek-arm cbf1776f14 MACRO the size of rand 2018-08-08 14:26:31 +01:00
paul-szczepanek-arm c1ce511dff factor out invalid rand function 2018-08-08 14:19:06 +01:00
paul-szczepanek-arm 021c452823 replaced lesc field usage with ediv&rand check 2018-08-06 10:34:42 +01:00
paul-szczepanek-arm fbb926d77e call the correct ltk function when SC is used 2018-08-03 15:28:41 +01:00
Melinda Weed bae4c89d0f Remove shall, whole lotta other changes. Not done yet. 2018-07-09 15:06:11 +03:00
Vincent Coubard 7a8cc0243f Cordio Documentation: Explain how to tests and what tools are available. 2018-07-04 12:46:41 +01:00
Cruz Monrreal 2e233a96d3
Merge pull request #7210 from pan-/fix-nordic-security-cancellation
Fix nordic security cancellation
2018-06-25 10:12:23 -05:00
Cruz Monrreal d160cc6cd0
Merge pull request #7284 from KariHaapalehto/wise1530_usi22_support
Add binary drivers for MTB_USI_WM_BN_BM_22 and MTB_ADV_WISE_1530
2018-06-22 10:16:16 -05:00
Vincent Coubard 4b8fb0be78 Nordic BLE: Fix return value verification 2018-06-22 09:36:06 +01:00
Vincent Coubard b68e18cdb4 Nordi BLE: Fix formatting 2018-06-22 09:35:34 +01:00
Cruz Monrreal 34513f2a92
Merge pull request #7221 from pan-/cordio-port-test
Cordio: Add tests that validates a cordio port.
2018-06-21 23:30:39 -05:00
Kari Haapalehto 699811be72 Add binary drivers for MTB_USI_WM_BN_BM_22 and MTB_ADV_WISE_1530 2018-06-21 12:15:53 +03:00
Vincent Coubard d2ecdb8900 Cordio BLE: Rewrite reset test strategy
The existing test was expecting that the acknowledgement of the reset command would be the first and only event receive. This assumption is false.

As a consequence, the new code parse all incoming packets and raise a flag in the following circumstances:
* a reset packet has been successfully received.
* RX stream is not synchronized
* The status of the reset command is an error.

Another test has been added that send a serie of reset commands.
2018-06-20 15:24:37 +01:00
Vincent Coubard 4f8a006f3b Cordio BLE: Document in test what fields are expected to be set after init. 2018-06-20 12:01:28 +01:00
Vincent Coubard 5b7f7aa77b Cordio BLE: Fix test failure when controller initialization failed. 2018-06-20 12:00:52 +01:00
Vincent Coubard 14e229e00a Cordio: Add tests that validates a cordio port.
The first test focuse on the transport by testing that the reset sequence is
correctly sent to the controller and properly received.

The second test validates that the reset sequence fullfill the right state
of the stack and ensure that bluetooth initialization succeed.
2018-06-14 18:24:23 +01:00
Vincent Coubard 92fa40b1c7 Nordic BLE: Accept connection parameter update
A peer device that sends a connection parameter update may get block if it doesn't receive a response.

This patch accept the peer request unconditionnally. At some point this event will be managed by the application.
2018-06-13 15:54:51 +01:00
Vincent Coubard 5237c3ec40 Nordic BLE:
Cancel pairing if the device fail to allocate the resources necessary for the pairing operation.
2018-06-13 15:11:13 +01:00
Vincent Coubard f0c3f14887 Nordic BLE: Fix pairing cancellation.
Depending on the role and the current state of the local device; pairing cancelation should be made with a call to a specific function. Normally the Nordic stack would reject invalid calls if the device is not in the correct state; therefore it was assumed that it was possible to detect the state from sd errors. Unfortunatelly this is not true with the latest softdevices as some calls succeed even if the device is not in the right state.

To solve that issue cancelation looks at the current state of the device first to select the right function that will trigger the pairing cancellation.

Note: the call to sd_ble_gap_authenticate was missing in the previous algorithm
2018-06-13 15:10:10 +01:00
Vincent Coubard 301e527af7 Nordic BLE: Store locally role for a given connection. 2018-06-13 15:03:43 +01:00
Vincent Coubard 5c7b8c8ea4 Nordic BLE: Add default parameter to get the local instance of nrF5xn 2018-06-13 15:02:45 +01:00
Vincent Coubard 8e7936d327 Nordic BLE: Improve return of nRF5xn::getGap.
Return the derived type instead of the abstract one. This is legal as C++ supports covariant returns.
2018-06-13 15:02:07 +01:00
Cruz Monrreal 02e90ef469
Merge pull request #7163 from pan-/cordio-driver-hook
Cordio driver hook
2018-06-11 08:49:49 -05:00
Cruz Monrreal bacf6a9dec
Merge pull request #6860 from andrewleech/nordic_ble_config
Nordic BLE: Allow configuration of softdevice parameters
2018-06-07 10:10:23 -05:00
Vincent Coubard 06d9aac14c Cordio BLE: Allow replacement of hci RX handler. 2018-06-07 12:30:34 +01:00
Vincent Coubard 569fd9ed30 Cordio BLE: Add hook to HCI driver and transport.
A friend class living in the namespace ble::vendor::cordio and named CordioHCITransportDriver can be added in applications requiring access to internal data of the HCI driver and HCI transport driver.

This is meant to be internal and not easily exploitable by application code.
2018-06-07 12:29:57 +01:00
Cruz Monrreal 20a4412082
Merge pull request #7089 from paul-szczepanek-arm/fix-master
BLE fixes (SM whitelist creation, Nordic scatter file fix, missing TLS initialisation)
2018-06-04 10:44:54 -05:00
Anna Bridge 2d0e5f04b1
Merge pull request #6022 from andrewleech/nrf_asserts_error
nrf5x: Enable asserts -> mbed_error
2018-06-04 12:24:58 +01:00
Vincent Coubard 4d0126898c BLE Nordic: Initialize and teardown tls platform context 2018-06-01 17:12:49 +01:00
paul-szczepanek-arm e534f3b997 fix erroneous assert 2018-06-01 15:57:51 +01:00
Andrew Leech bf313aa1db Move mbed_lib.json from targets folder to feature_ble folder
The functionality added all affects BLE features in use so this location is a better fit.
2018-06-01 13:37:16 +10:00
Andrew Leech ff5ca11253 Allow configuration (via defines) of some of the key settings for the NRF51 softdevice.
* CENTRAL_LINK_COUNT
* PERIPHERAL_LINK_COUNT
* gatts_enable_params.attr_tab_size
* gatts_enable_params.service_changed
* common_enable_params.vs_uuid_count

These settings control the range of functionality enabled in the softdevice as well as ram consumption.
In particular reducing these values is critical to enable usage of 16K nrf51 devices.
2018-06-01 13:23:01 +10:00
Donatien Garnier 5da5ef45c0 Cordio H4: Added some comments explaining the use of RawSerial as opposed to using Serial 2018-05-31 11:11:28 -05:00
Donatien Garnier 0cb86ded76 BLE: Replace Serial with RawSerial in Cordio H4 Transport Driver 2018-05-31 10:28:45 -05:00
Cruz Monrreal 791620c428
Merge pull request #6932 from paul-szczepanek-arm/security-manager-dev
BLE privacy, signing, persistent security database
2018-05-24 10:07:06 -05:00
Vincent Coubard db4d14c89d BLE NRF52: Fix advertising filtering when no bonds are present. 2018-05-23 17:27:18 +01:00
Vincent Coubard ef208912a6 BLE NRF52: Report correct own address type for connection
The function that gets the address doesn't work when privacy is enabled; report own address as private resolvable.
2018-05-23 17:27:18 +01:00
Vincent Coubard 30dac7cd8c BLE NRF52: Fix identity address flag in connection request. 2018-05-23 17:27:07 +01:00
Vincent Coubard cfe325cf0e BLE NRF51: Do not filter advertising packet in peripheral if the device as no bond. 2018-05-22 17:40:18 +01:00
Vincent Coubard ba61c09ffc BLE NRF51: Resolve private address on connection in peripheral role
Soft device inconsistency: The address is not resolved automatically if the device is a peripheral.
2018-05-22 17:39:03 +01:00
Vincent Coubard 755cf5fa5f BLE NRF51: Defer connection to a common function.
The soft device is not consistent as it is required to force the connection to a resolved resolvable address so it should be known if the  target is an identity address.
2018-05-22 17:37:57 +01:00
Vincent Coubard d427fcfb59 Nordic BLE: Remove dependency to mbedtls for CryptoToolbox::ah. 2018-05-22 17:33:49 +01:00
Andrew Leech 67140a2706 Redirect NRF asserts to mbed error() in TARGET_NRF5x and SDK 14.2
Add related details to TARGET_NRF5x Readme's
2018-05-22 11:36:31 +10:00
Andrew Leech cfd248ee05 Enable ASSERTS's in nrf sdk to catch coding errors.
These will now flow through to mbed standard error handling.
2018-05-22 11:36:30 +10:00
Vincent Coubard cc286fe84c BLE: Cordio pal: Handle enhanced connection events. 2018-05-21 13:22:53 +01:00
Vincent Coubard 57ffa14b4b Nordic BLE: Backport privacy backward compatibility to NRF51 2018-05-21 13:21:46 +01:00
Vincent Coubard 14a1095c31 Nordic BLE: Disable secure connection support on NRF51. 2018-05-21 10:34:09 +01:00
Vincent Coubard 4c1a309117 Nordic BLE: Set own resolvable address to NULL.
This address is not accessible to the application.
2018-05-21 10:22:01 +01:00
Vincent Coubard d962fc0174 BLE: factor code in GAP. 2018-05-21 10:20:43 +01:00
Vincent Coubard 28766bd873 BLE: Do not pass peer resolvable address in connection event handler 2018-05-21 10:17:44 +01:00
Vincent Coubard c3bcd10cfd BLE NRF52: Implement features related to peer_address_t
The overload of Gap::connect that accept peer_address_t has been added and gap connection and advertising report process have been updated to exploit peer_address_t in a backward compatible fashion.
2018-05-18 10:09:07 +01:00
paul-szczepanek-arm 57a02d6329 fixed signature 2018-05-16 16:54:47 +01:00
Vincent Coubard 37c036ca6b Nordic: Port privacy to softdevice v4.
Many things have changed; the identity list isn't shared anymore with the whitelist and resolution is handled by the stack itself.
2018-05-16 16:16:06 +01:00
Vincent Coubard 6c44a78166 Merge branch 'master' of https://github.com/ARMmbed/mbed-os into security-manager-dev 2018-05-16 15:55:15 +01:00
Donatien Garnier 3f7a7a4213 Merge 2018-05-16 12:44:36 +01:00
Donatien Garnier 1fdb57e82c Removed set_privacy() API and added is_privacy_supported() check to PAL + Generic GAP 2018-05-16 12:02:21 +01:00
Vincent Coubard afcbdfc7dc Merge branch 'security-manager-dev' of https://github.com/paul-szczepanek-arm/mbed-os into filedb 2018-05-16 08:43:52 +01:00
Vincent Coubard 2cb6e659a9 Nordic BLE: Backport security fixes from nRF5 to nRF5x 2018-05-15 15:11:33 +01:00
Vincent Coubard ca5a9f359a Nordic BLE: remove unecessary nordic ble libraries. 2018-05-15 14:51:19 +01:00
Vincent Coubard a22b4e5d5e Nordic BLE: Remove nordic gap init.
This initialization is already done in GattServer.
2018-05-15 14:51:18 +01:00
Vincent Coubard dd6a5350e2 Nordic BLE: Remove peer manager handling. 2018-05-15 14:51:18 +01:00
Vincent Coubard 6f24078507 Nordic BLE: route event handling correctly. 2018-05-15 14:51:18 +01:00
Vincent Coubard 167a660ac1 Nordic BLE: use pal security manager. 2018-05-15 14:51:18 +01:00
Vincent Coubard 31f8cd18f7 Nordic BLE: Backport Gap from nRF5 2018-05-15 14:51:18 +01:00
Vincent Coubard 39396955a2 Nordic BLE: simplify whitelist management. 2018-05-15 14:51:17 +01:00
Vincent Coubard 6810c02606 Nordic BLE: Fix processing of events.
If new events are signaled during processing then they should be processed when processEvent is called again. The goal is to let other processing happen and not process sollely ble events.
2018-05-15 14:51:17 +01:00
Vincent Coubard 8fbecf2e0d Nordic BLE: Fix incorrect assignement 2018-05-15 14:51:17 +01:00
Vincent Coubard 68b3288ba8 Nordic BLE: Fix signature of nRF5xGattServer::hwCallback 2018-05-15 14:51:17 +01:00
Vincent Coubard 4a7c9a9a55 Nordic BLE: expose publically btle_handler 2018-05-15 14:51:17 +01:00
Vincent Coubard 2af5508c4c Nordic BLE: Do not conditionnaly assign sm key pointers.
This change has been forced by a change in latest softdevice that requires all key pointers to not be NULL unlike what is indicated in the documentation.
2018-05-15 14:51:17 +01:00
Vincent Coubard dc54da0a2d Nordic BLE: Force signing and link requirements to false. 2018-05-15 14:51:16 +01:00
Vincent Coubard 02e3c13d25 Nordic BLE: Protect event signaled flag. 2018-05-15 14:51:16 +01:00
Vincent Coubard f7f1272647 Nordic: Backport security manager pal for NRF5X targets. 2018-05-15 14:51:15 +01:00
Vincent Coubard 4acb3937e4 Cordio BLE: Fix potential memory leak in GattServer. 2018-05-15 14:32:29 +01:00
Donatien Garnier 472d3de849 Give GenericGap access to the Security Manager's PAL 2018-05-14 13:36:02 +01:00
Donatien Garnier a3d9d6cebd Business logic for handling non-resolvable private addresses 2018-05-14 13:26:39 +01:00
Bartek Szatkowski 38df9306d7 Update wsf_types.h to support updated CMSIS 2018-05-14 12:18:21 +01:00
Donatien Garnier 2509a88d58 Revert set_privacy() in Cordio GAP PAL impl 2018-05-13 20:37:14 +01:00
Donatien Garnier 1a623e6670 Added method to enable/disable privacy in GAP Pal with Cordio impl 2018-05-13 19:15:20 +01:00
Donatien Garnier 5734fca195 Added set_address_resolution method in GAP Pal with Cordio implementation 2018-05-13 18:53:23 +01:00
Donatien Garnier 33c46f5658 Remove LL resolving 'shorcut' when adding a device to resolving list - this should be controlled by the GAP layer 2018-05-13 17:49:00 +01:00
Cruz Monrreal 2104d8ab5b
Merge pull request #6711 from marcuschangarm/cleanup-nrf5x
Cleanup TARGET_NRF5 and TARGET_NRF5x
2018-05-11 19:15:05 -05:00
Donatien Garnier 40b6813dcf Fix wrong use of DmLlPrivEnabled() 2018-05-11 18:52:27 +01:00
Donatien Garnier 71bd30daf3 More inline doc 2018-05-11 18:37:02 +01:00
Donatien Garnier bcfbeb7f1a Some doc adjustments 2018-05-11 18:23:37 +01:00
Donatien Garnier 3ca3c2db2c Initial implementation of the Security Manager's Privacy feature for Cordio 2018-05-11 18:20:39 +01:00
Vincent Coubard 40a403e99b Merge branch 'security-manager-dev' of https://github.com/paul-szczepanek-arm/mbed-os into fix-encryption-rejection 2018-05-10 12:05:36 +01:00
paul-szczepanek-arm 473482d204 move securitydb into generic 2018-05-10 11:08:31 +01:00
Cruz Monrreal e33fb60c3d
Merge pull request #6849 from scartmell-arm/bug-critical-section-nordic
Add missing semicolon to NRF51 critical_section implementation
2018-05-09 11:33:10 -05:00
paul-szczepanek-arm b95da8d8c4 remove crypto when missing ECDH 2018-05-09 12:27:43 +01:00
Paul Szczepanek fee986750d
fix case 2018-05-09 12:19:35 +01:00
Paul Szczepanek b4d7bb6020
fix case 2018-05-09 12:19:27 +01:00
Paul Szczepanek 37b11d8ac5
fix case 2018-05-09 12:18:55 +01:00
Paul Szczepanek 367fe345ba
fix case 2018-05-09 12:18:42 +01:00
Paul Szczepanek 79b3bc4fce
fix case 2018-05-09 12:18:26 +01:00
paul-szczepanek-arm b98ffa48da fix uppercase X in nrf5x 2018-05-09 12:16:26 +01:00
paul-szczepanek-arm 6a26a8a6c8 Merge branch 'security-manager-dev' of https://github.com/paul-szczepanek-arm/mbed-os into security-manager-dev 2018-05-09 11:37:41 +01:00
paul-szczepanek-arm c02b318436 fixed case in filename 2018-05-09 11:37:33 +01:00
Paul Szczepanek 2b02148ab6
Merge branch 'master' into security-manager-dev 2018-05-09 11:23:28 +01:00
paul-szczepanek-arm b8fe37a00e disable ECDH if the platform doesn't support it
otherwise you get linker errors
2018-05-09 11:01:10 +01:00
Steven Cartmell 1dfea4168f Add missing semicolon to NRF51 critical_section implementation 2018-05-09 10:54:26 +01:00
Marcus Chang 1aebdcbee5 Reorganize TARGET_MCU_NRF51822_UNIFIED directories
The unified NRF51 target and feature BLE directories have been
reorganized to follow the naming and directory structure of the
NRF52 implementation.

This reorganization does not include TARGET_MCU_NRF51822 and
derived targets.
2018-05-08 10:10:01 -07:00