Commit Graph

1108 Commits (a457fe3bddd86ede0914d6b20a8e7508e36da949)

Author SHA1 Message Date
bcostm cc47104059 DISCO_L072CZ_LRWAN1: Remove unused code 2017-06-20 16:12:32 +02:00
bcostm 24d94c8425 DISCO_L072CZ_LRWAN1: Add USB device configuration files 2017-06-20 16:07:07 +02:00
Anna Bridge c5e1fa70d9 Merge pull request #4242 from bcostm/dev_disco-l475-iot
DISCO_L475VG_IOT01A : Add new target
2017-06-20 11:41:42 +01:00
Anna Bridge b30481d266 Merge pull request #4523 from hasnainvirk/eth_flag_lwip
Check Ethernet before including lwipopts_conf.h
2017-06-20 11:40:23 +01:00
Jimmy Brisson c08864b588 Merge pull request #4444 from Archcady/lwip_issue
resolve lwip init twice issue
2017-06-19 18:28:49 -05:00
Jimmy Brisson 1ffbdfc048 Merge pull request #4364 from mazimkhan/mbed-tls-test
Add C API for Greentea client
2017-06-19 11:58:47 -05:00
Jimmy Brisson a6695ae5a8 Merge pull request #4504 from geky/gt-add-reserved-memory-reporting
greentea: Add reporting of reserved heap
2017-06-19 11:03:30 -05:00
Jimmy Brisson e4bdedc7c2 Merge pull request #4562 from geky/fat-init-bd
fatfs: Fixed initialization of block device in mount/unmount functions
2017-06-19 11:02:52 -05:00
adustm e63912ff44 Check that the HASH is not busy before save and restore iHW registers 2017-06-16 11:03:50 +02:00
adustm 842791bef7 handle context swap + change macro name 2017-06-16 11:03:46 +02:00
adustm 85d68e32f7 replace 64 by define 2017-06-16 11:03:41 +02:00
adustm b38eea2caf Remove tabs, fix doxygen comments 2017-06-16 11:03:32 +02:00
adustm c2a85fb12a Rework SHA1 update for buffer <4 bytes management 2017-06-16 11:03:27 +02:00
adustm ca65e01ffa Handle 64 bytes buffers 2017-06-16 11:03:23 +02:00
adustm dac9004684 Move MBEDTLS_SHA1_C from mbedtls_device.h to targets.json 2017-06-16 11:02:42 +02:00
adustm 85d549c902 Improve memory management 2017-06-16 11:02:38 +02:00
adustm f26ae03e48 Remove unneeded function declarations + include file
Move include platform from sha1_alt.h to sha1_alt.c
2017-06-16 11:02:33 +02:00
adustm 996e093b77 Better explanation of the use of mbedtls_sha1_context fields 2017-06-16 11:02:29 +02:00
adustm 1695e9a7bb use mbedtls_zeroize instead of memset(xxx,0,xxx) 2017-06-16 11:02:24 +02:00
adustm ddd186cc61 NUCLEO_F429ZI/mbedtls: add SHA1 hw_acceleration 2017-06-16 11:01:43 +02:00
adustm a27498c44a Check HASH is not busy before save/resteore context 2017-06-16 10:48:41 +02:00
adustm 021b84a140 Handle context swapping + rename macro ST_SHA256_BLOCK_SIZE
Handle 64 bytes accumulation
2017-06-16 10:47:31 +02:00
adustm f1704733af Remove trailing whitespace 2017-06-16 10:47:18 +02:00
adustm 80b58614a2 SHA256: get ready to return error codes 2017-06-16 10:47:07 +02:00
adustm b929b54b7c Replace 64 by MBEDTLS_SHA256_BLOCK_SIZE 2017-06-16 10:46:56 +02:00
adustm 4976e2f3c7 Align SHA256 with MD5 and SHA1 implementation
This will solve Size <4 issues
2017-06-16 10:43:54 +02:00
adustm 0805876e0b NUCLEO_F429ZI/mbedtls: add SHA256 hw_acceleration 2017-06-16 10:43:43 +02:00
Deepika 7e9ea9c665 Resolved format warnings: format '%d' expects argument of type 'int', but argument 3 has type 'u32_t[-Wformat=] 2017-06-15 15:20:26 -05:00
Deepika 818f82c5bd Typecasting to int to resolve warning:#68-D: integer conversion resulted in a change of sign 2017-06-15 11:50:52 -05:00
Sam Grove 109269da9c Merge pull request #4414 from tkaman/master
Enable CM3DS_MPS2 target
2017-06-15 11:20:09 -05:00
Christopher Haster d7fe4ff599 fatfs: Fixed initialization of block device in mount/unmount functions
At some point the "mount" parameter for "f_mount" was name "force". This
led to a bit of confusion that ended with the default mount function
never calling block device init.

This is fine, since the block device can be manually initialized, but
a better user experience is where the filesystem initializes the block
device for the user.

This is backwards compatible due to the repeatability of the block
device init functions.
2017-06-14 16:35:15 -05:00
Christopher Haster f158d81aab fatfs: Removed unused fat_filesystem_set_errno function
At some point this was replaced by fat_error_remap
2017-06-14 15:29:30 -05:00
Brian Daniels 0eb174912e Fix bad test print and move locks for printf into macro.
A message of "Failed to close socket" was always being printed, not
just when the socket failed to close. This patch fixes this in
addition to a simplifying the call to a thread safe printf.
2017-06-13 16:28:16 -05:00
Yuguo Zou b1ca77b6b8 A better approach to flip "netif_inited" 2017-06-13 18:04:00 +08:00
Azim Khan 0b929199e4 Remove multiple definition of GREENTEA_SETUP added due to rebase 2017-06-13 10:02:55 +01:00
Russ Butler 9620b0fc7f STM32 - fix bug were sockets stop receiving data
The function _eth_arch_low_level_input() is meant to pass data into
LWIP and to prepare the ethernet buffers to receive more data.
If the LWIP heap is empty and the call to pbuf_alloc() in
_eth_arch_low_level_input returns null, the ethernet receive buffers
are not updated to receive data. Because of this the ethernet RX
interrupt will not fire. Since the RX interrupt is the only thing that
triggers a call to _eth_arch_low_level_input(), the receive buffers
will never get cleared, and the device stops receiving data.

To prevent this from happening, this patch ensures that the function
_eth_arch_low_level_input() clears the receive buffers even if a new
pbuf for the data couldn't be allocated.

This issue can be reproduce by running the test
"features-feature_lwip-tests-mbedmicro-net-udp_echo_parallel"
and on the same machine running the below python script to flood the
device with UDP broadcast packets:

MY_IP = #ADD your local IP here
from socket import *
s = socket(AF_INET, SOCK_DGRAM)
s.bind((MY_IP, 1234))
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
for _ in range(1000):
    s.sendto("test data", ('255.255.255.255', 1234))
print("Message sent")
2017-06-12 22:18:04 -05:00
bcostm f6a48838ad DISCO_L475VG_IOT01A: Move USB device config files 2017-06-12 17:03:12 +02:00
bcostm 6c585e6e05 DISCO_L475VG_IOT01A: add this target in i2c master/slave tests 2017-06-12 17:03:12 +02:00
bcostm 8c7000cce4 Add "01A" suffix in target name 2017-06-12 17:03:12 +02:00
bcostm 9ced451307 Add target in unsupported main.cpp test files 2017-06-12 17:03:12 +02:00
Azim Khan b3cbb07566 Merge greentea-client/test_env_c.h into greentea-client/test_env.h 2017-06-12 13:46:22 +01:00
Azim Khan 82d948de6b Revert greentea_getc() to return 'int' 2017-06-12 13:46:22 +01:00
Azim Khan 088d151507 Use existing functions for Greentea client C API 2017-06-12 13:46:22 +01:00
Azim Khan 0edf082c59 Add getc in C API 2017-06-12 13:23:20 +01:00
Mohammad Azim Khan bd5820f77c C API for greentea client 2017-06-12 13:23:20 +01:00
Hasnain Virk d29e05896f Check Ethernet before including lwipopts_conf.h
lwipopts_conf.h is used by target dependent Ethernet drivers for
configuring various parameters.
By default, Ethernet is enabled and in this case lwipopts_conf.h
will be included.
In case of PPP  being enabled, it is desirable to not pull in any Ethernet
related code.
2017-06-12 09:57:16 +03:00
Martin Kojtal d0d7c6f4f6 lwip: fix stm32f4 eth conf file
This file is moved to targets that support eth. It can't be common for any F4, as
not all targets from this family support eth.
2017-06-10 15:20:30 +01:00
Brian Daniels 4f5a199336 Fix bad print message in test 2017-06-10 15:14:28 +01:00
Brian Daniels 00a41add12 Fixing typos in docs 2017-06-10 15:14:28 +01:00
Brian Daniels 94b4160347 Fixing bad asserts 2017-06-10 15:14:28 +01:00
Brian Daniels f616bf28f6 Adding comments for added Greentea function 2017-06-10 15:14:28 +01:00
Brian Daniels c38b709685 Cleaning up udp tests 2017-06-10 15:14:28 +01:00
Brian Daniels ccad027fa7 Adding comments describing buffer prep functions 2017-06-10 15:14:28 +01:00
Brian Daniels 388968f76b Simplifying assert statements 2017-06-10 15:14:28 +01:00
Brian Daniels 6e76fce4fc Specifying default length of UUID for Greentea
This creates a macro for the UUID length used by Greentea. This cuts
down on the use of "magic numbers" in test cases that use
the GREENTEA_SETUP_UUID function.
2017-06-10 15:14:28 +01:00
Christopher Haster d451d1795e Moved network test buffers into heap
This is a workaround for IAR's lack of flexibility with memory regions.
Otherwise these tests would use very little heap and be mostly global
allocations.
2017-06-10 15:14:28 +01:00
Christopher Haster 467eb342f0 lwip: Migrated to utest framework
per @bridadan
2017-06-10 15:14:28 +01:00
Christopher Haster 0887683a13 lwip: Fixed count of udp iterations to reflect attempts 2017-06-10 15:14:28 +01:00
Christopher Haster 036f1cdfd4 lwip: Added udp buffer flushing after dropped packets
Avoids getting stuck in loop where the device always picks
up the previous test's packets
2017-06-10 15:14:28 +01:00
Christopher Haster f11f2b35e0 lwip: Increased DHCP timeout to 60 seconds
This matches the timeout used in linux:
https://linux.die.net/man/5/dhclient.conf

This resolves several issues noticed during testing when we
have a very large number of devices that try to get an IP address
around the same time.
2017-06-10 15:14:28 +01:00
Brian Daniels 70dd7cc273 Fixing some issues in the tcp/udp tests 2017-06-10 15:14:28 +01:00
Brian Daniels f313bc2988 Arranging logic in test to prevent left-over behavior 2017-06-10 15:14:28 +01:00
Brian Daniels dc87aaad1c Making udp_echo_parallel test more robust against network issues.
Making the test more forgiven for minor networking issues. Also adding
more debug prints to make it easier to see which packets are coming from
where.
2017-06-10 15:14:28 +01:00
Brian Daniels acaf435d64 Making UDP test less strict on dropped/mismatched packets.
Before, the UDP test was very strict on the number of packets it would
try to match before failing. Now it will keep trying for the whole test
to get enough passing packets. It also includes the test's UUID so you
can validate which packets are being received.
2017-06-10 15:14:28 +01:00
Brian Daniels 551ff03dc0 Adding ability to preserve Greentea UUID in test.
The Greentea UUID can be used as a source of entropy/randomness during
the test. This is useful for uniquely identifying a test run.
2017-06-10 15:14:28 +01:00
Brian Daniels 98a5262361 Adding failure logs to TCP echo test.
This adds some extra logs to the test for debugging purposes. Also
allows the test to fail immediately if it fails to obtain an IP address.
2017-06-10 15:14:28 +01:00
Brian Daniels 26eafd9958 Allowing dtls test to retry correctly.
The dtls test already has the ability to retry upon a UDP failure.
However the sockets are currently configured to be blocking and to wait
forever. I added a timeout of 1.5 seconds in order the test to correctly
timeout.
2017-06-10 15:14:28 +01:00
Azim Khan b03441870a Add new target in mbedtls importer Makefile for mbedtls tests 2017-06-09 17:01:00 +01:00
gabker01 fb6a2c075c Implement low-level Ethernet interface for lwIP
Based on lwip_ethernetif.c skeleton file,
use init, receive and transfer
functionality of SMSC9220 Ethernet driver
for the lightweight IP stack.

Receive mechanism is interrupt driven.

HW buffer sizes:
Tx = 4608 bytes (MTU)
Rx = 10560 bytes

lwIP fine tuning:
mbed-os/features/FEATURE_LWIP/lwip-interface/lwip/src/include/lwip/opt.h

Change-Id: I0ea95650c65fb32cafb5c2d3dde11420c61dba66
Signed-off-by: Gabor Kertesz <gabor.kertesz@arm.com>
2017-06-09 14:58:31 +01:00
Christopher Haster 40957c14b3 Added reporting of reserved heap
Note: Reporting of reserved stack is already performed by the thread
layer
2017-06-09 10:57:08 +01:00
Mika Leppänen ee30df993a Disabled lwip ethernet ipv6 multicast filter for STM boards 2017-06-09 11:57:24 +03:00
Sam Grove 8e76bf6da6 Merge pull request #4508 from kegilbert/kg-doxygen-framework-hal-rtos
Doxygen combined HAL, RTOS, and features/Framework updates to not produce warnings and errors [DOC Changes Only]
2017-06-08 23:52:33 -05:00
Sam Grove 52fde55b6f Merge pull request #4450 from deepikabhavnani/doxygen-template
Doxygen template
2017-06-08 22:42:06 -05:00
Kevin Gilbert 090e63f36a Placed verbatim tags around a pair of brackets that Doxygen interpreted as xml tags 2017-06-08 17:12:03 -05:00
Sam Grove 1afb23bdd8 Merge pull request #4441 from tung7970/fix-mbedos
lwip - fix typo and cleanup coding style
2017-06-08 16:30:16 -05:00
Kevin Gilbert 57a70d93f9 Resolved Doxygen build errors 2017-06-08 15:53:27 -05:00
Deepika 6ee4c7e219 Fix doxygen warnings in 'features/filesystem' 2017-06-08 15:48:21 -05:00
Seppo Takalo a36c9abca0 Fix compilation for NCS36510 RF driver.
RTX porting for this driver was done against the previous API that
have now been reverted.
2017-06-08 13:54:33 +03:00
Sam Grove 9f4b72d401 Merge pull request #4493 from ARMmbed/fix_timer_stack
Fix typo that used 16kB for stack.
2017-06-07 21:50:09 -05:00
Sam Grove 28eaac360a Merge pull request #4449 from c1728p9/lpc1768_fix
Fix semaphore usage on lpc1768 emac
2017-06-07 21:49:25 -05:00
Sam Grove 744b95cc9f Merge pull request #4425 from sg-/doxygen-template
Doxygen template and CI to not produce warnings and errors
2017-06-07 11:18:47 -05:00
Seppo Takalo 2f5b03e876 Fix typo that used 16kB for stack.
Intend is to use 2kB for stack, not 16kB, but the divide operand
has been forgotten here.
2017-06-07 15:36:09 +03:00
Hasnain Virk 09b07a49a6 Customer port verification tests for cellular
Basic TCP/UDP tests for PPP based onboard cellular modems.
Tests basic public APIs defined in CellularBase.h
A customer port must pass this test set, hence verifying their
particular implementation.
2017-06-07 14:57:48 +03:00
Yuguo Zou a812696c1d replace tab with space 2017-06-07 12:04:36 +08:00
Yuguo Zou ef1ddae694 resolve lwip init twice issue
resolve wifi example test fail before lwip is init
2017-06-07 12:04:36 +08:00
Sam Grove 28f590fc4c Merge pull request #4430 from pan-/utest_cases_romable
utest optimization: Allow case data structure to be put in ROM.
2017-06-06 19:58:53 -05:00
Sam Grove 6002bdd533 Merge pull request #4439 from sg-/proper-realtek-fix
Proper fix for 1fa30b7403
2017-06-06 16:00:55 -05:00
Sam Grove e9e937df04 Merge pull request #4454 from c1728p9/warning_fixes
Warning fixes
2017-06-06 16:00:02 -05:00
Antti Yli-Tokola d399395eab Revert Initialize remove_from_list flag to true.
* Cause regression in cloud registration
2017-06-06 13:48:42 +03:00
Antti Yli-Tokola fe808e0db5 mbed-coap fixes.
This commit includes:
 * Add support for sending response to duplicate messages
 * Add randomness for retransmission time
 * Fix usage sn coap blockwise max time data stored
 * CoAP parser option handler does not seem to handle "Option Length" completely according to spec
 * Handle '0' value if duplication buffer size is set through the sn_coap_protocol_set_duplicate_buffer_size()
2017-06-06 09:43:21 +03:00
Russ Butler 0de35e2a21 Fix config store deprecation warnings
Silence deprecation warnings in the config store C and C++ files. This
removes warnings that not relevant to applications. Note - using
these deprecated functions still gives an error outside of these files.
2017-06-05 18:06:10 -05:00
Russ Butler 2d7cf60278 Fix warning about unused mutex
Move the metrics mutex into the ifdef MBED_STACK_STATS_ENABLED since
it is not used ouside of it. This fixes the warning:
[Warning] greentea_metrics.cpp@37,28: 'mutex' defined but not used [-Wunused-variable]
2017-06-05 18:06:08 -05:00
Jimmy Brisson aabecf633b Remove doxygen warnings in nsapi 2017-06-05 17:32:46 -05:00
Russ Butler e57869039e Fix semaphore usage on lpc1768 emac
The semaphore xTXDCountSem had the count to match the number of
resources available, but was being used as a binary semaphore in a
loop to listen for events. This patch updates the logic to make use of
the resource count.

With RTX5 the OS traps with an error if the a semaphore is released
more times than its count with an error similar to
"Semaphore 10000e6c error -17". Because xTXDCountSem is being used
as a binary semaphore it triggered this trap. With this patch the
semaphore is no longer used as a binary semaphore and no longer traps.
2017-06-05 11:37:06 -05:00
Vincent Coubard f36619b859 utest_case.h : Fix comment indentation 2017-06-05 16:06:17 +01:00
Vincent Coubard 165d76ae25 utest case: Indicate explicitely that no data member shall be declared in
the Case class.
2017-06-05 16:06:17 +01:00
Vincent Coubard 5b27d65755 utest optimization: Allow case data structure to be put in ROM.
This patch split the Case class in two entities: Case and case_t. case_t contains the test case data structure while Case provide the interface to the test case. Unlike the class Case, case _t is a POD and can be instantiated at compile time and put in the constant data section (in ROM).

The Specification class has also been modified to accept arrays of case_t.
2017-06-05 16:06:17 +01:00
Anna Bridge 9d6a255a49 Merge pull request #4436 from NXPmicro/Fix_USB_Driver
Issue#4250: Fix USB driver for Kinetis devices
2017-06-05 14:36:38 +01:00
Tony Wu af3d6a52d1 lwip - fix typo and cleanup coding style
Signed-off-by: Tony Wu <tung7970@gmail.com>
2017-06-05 16:26:30 +08:00
Sam Grove 02bf926ffb Proper fix for 1fa30b7403
Replace #define with typedef
2017-06-04 11:26:21 -05:00
Jaeden Amero 3ef7845baa uVisor: Import uVisor v0.28.1 2017-06-04 14:42:00 +01:00
Niklas Hauser 9f63d3f603 uVisor: Remove process_malloc.h from uvisor-lib.h 2017-06-04 14:42:00 +01:00
Sam Grove 0da63eef2b Merge pull request #4087 from geky/localfs-fslike-fix
LocalFileSystem: Repair the FileSystemLike hooks
2017-06-04 08:35:26 -05:00
Sam Grove 1fa30b7403 Resolve conflict in builtin type names
In class MBRBlockDevice the tole32 function had used union member
names u32 and u8. The introduction of REALTEK_RTL8195AM cauesd a
conflict with type names in basic_types given they're aliased as
macros to uint32_t and uint8_t respectively.
2017-06-03 18:12:28 -05:00
Yuguo Zou f000eb3401 Restore TCPIP_THREAD_STACKSIZE and thread_stack_main
move some TCPIP stack data to heap;
switch off GDMA for SPI (only for SPI);
TCPIP_THREAD_STACKSIZE and thread_stack_main are identical to ARMmbed
2017-06-03 20:15:01 +01:00
Yuguo Zou 15d58690e9 fold static variables in RTWInterface.cpp to .h, modify lwipopts.h TCPIP_THREAD_STACKSIZE 2017-06-03 20:14:59 +01:00
Archcady 6a47d01c4a Rename Lwipopts_conf.h to lwipopts_conf.h 2017-06-03 20:14:51 +01:00
Archcady d0488c1076 Rename features/FEATURE_LWIP/lwip-interface/lwip-eth/arch/target_realtek/Lwipopts_conf.h to features/FEATURE_LWIP/lwip-interface/lwip-eth/arch/TARGET_Realtek/Lwipopts_conf.h 2017-06-03 20:14:50 +01:00
Archcady 3d59643061 Add lwipopts_conf.h 2017-06-03 20:14:45 +01:00
Christopher Haster 0fc5ce2b5e LocalFileSystem: Moved away from deprecated open functions
The old open/opendir functions did not provide a route for errors and
relied on implementations manually setting errno. Updated to return
errors directly.
2017-06-03 13:18:02 -05:00
Christopher Haster eed1cec5d8 FileSystem: Provided default implementations for all non-file operations 2017-06-03 13:18:01 -05:00
Christopher Haster 5d6fc713fb FileSystem: Reintegrated FileSystemLike interface
Required for other representations of FileSystems, ie LocalFileSystem

Introduces FileSystemHandle for the same behaviour as FileHandle and
DirHandle.

Requires the following to hook into file/dir lookup:
```
int open(FileHandle **file, const char *filename, int flags)
int open(DirHandle **dir, const char *path)
```

This hook is provided by the FileSystem class, so requires no changes
from implementations.
2017-06-03 13:17:37 -05:00
Sam Grove ebeb776de9 Merge pull request #3972 from geky/fat-big-blocks
FAT: Add support for block sizes of 512-4096 bytes
2017-06-03 10:16:43 -05:00
Sam Grove 027843a64b Merge pull request #4389 from c1728p9/assert_mutex_not_in_isr
Assert that mutexes and prints are not use in interrupt or critical context
2017-06-03 10:16:20 -05:00
Martin Kojtal 533e6f0feb Merge pull request #4431 from kjbracey-arm/mbed_lwip_api_compat
Restore mbed OS 5.4 mbed_lwip_ function prototypes
2017-06-03 08:28:52 +02:00
Christopher Haster c0aa841ffd FAT: Added support for block sizes of 512-4096 bytes
This is necessary for support of block devices with >512 byte
blocks, such as most SPI flash parts.

- Enabled support of up to 4096 byte blocks
- Added support for heap-backed buffers using _FS_HEAPBUF
  - Necessary to avoid stack overflows
  - Avoids over-aggresive allocations of _MAX_SS
- Enabled _FS_TINY to further reduce memory footprint
  - Haven't found a downside for this yet except for possible
    thread contention
2017-06-03 07:10:48 +01:00
Russ Butler 96bd943ea2 RTX5: Enable priority inheritance and robust mode
Add the attribute flash to enable priority inheritance and robust mode.
The robust flag allows mutexes held by terminated threads to be
properly released.
2017-06-02 23:50:36 -05:00
Sam Grove 5f138810a9 Merge pull request #4294 from ARMmbed/feature_cmsis5
Update CMSIS-Core and RTX to version 5
2017-06-02 23:44:32 -05:00
Mahadevan Mahesh 30ef311933 Issue#4250: Fix USB driver for Kinetis devices
Move memory allocation to be done at a different location. Currently allocated
in a function that is called from the interrupt handler.

Signed-off-by: Mahadevan Mahesh <Mahesh.Mahadevan@nxp.com>
2017-06-02 16:36:23 -05:00
Kevin Bracey 284843fdb3 Restore mbed OS 5.4 mbed_lwip_ function prototypes
External EMAC drivers are currently directly attaching to lwip_stack.c
via mbed_lwip_bringup et al. Restore the original prototypes to avoid
compatibility breakage.
2017-06-02 14:30:25 +03:00
Kevin Bracey 42cd1e1fac Make lwip_stack.c include its header
Fix some type mismatches that this revealed.
2017-06-02 14:29:34 +03:00
Martin Kojtal 3553a4573a Merge pull request #4178 from nvlsianpu/getAddrFromPeerTab_sd_api_5
[NRF52840]: SecurityManager::getAddressesFromBondTable
2017-06-01 14:05:39 +02:00
Martin Kojtal 9355531653 Merge pull request #4388 from c1728p9/deprecate_config_store
Deprecate config store and related libraries
2017-06-01 14:02:43 +02:00
Martin Kojtal 8a870a66c0 Merge pull request #4119 from hasnainvirk/cellular_feature_br
Cellular feature br
2017-06-01 14:01:17 +02:00
Russ Butler 58041a215d Deprecate config store and related libraries
Deprecate configuration-store, flash-journal and
storage-volume-manager for the 5.5 release. Also disable the
storage tests.
2017-05-31 12:08:11 -05:00
Jimmy Brisson b46b6c34aa Merge pull request #4321 from hanno-arm/update-mbedtls
Update mbed TLS to version 2.5.0
2017-05-31 11:26:36 -05:00
Hasnain Virk 24de27c989 Major Refactoring & extensions
For keep supporting external APIs with the same name (supposedly there are a larger
number of users of those APIs), BufferedSerial and ATParser are being renamed.
BufferedSerial becomes UARTSerial, will complement a  future USBSerial etc.
ATParser becomes ATCmdParser.

* UARTSerial moves to /drivers

* APN_db.h is moved from platform to cellular/util/.

* Original CellularInterface is restored for backward compatability (again, supposedly there
  are users of that).

* A new file, CellularBase is added which will now servce as the base class for all
  upcoming drivers.

* Special restructuring for the driver has been undertaken. This makes a clear cut distinction
  between an on-board or an off-board implementation.
  	- PPPCellularInterface is a generic network interface that works with a generic FileHandle
          and PPP. A derived class is needed to pass that FileHandle.
        - PPPCellularInterface provides some base functionality like network registration, AT setup,
          PPP connection etc. Lower level job is delegated to the derived classes and various modem
          specific APIs are provided which are supposed to be overridden.
        - UARTCellularInterface is derived from PPPCellularInterface. It constructs a FileHandle and
          passes it back to PPPCellularInterface as well as provides modem hangupf functionality.
          In future we could proive a USBInterface that would derive from PPPCellularInterface and could
          pass the FileHandle back.
	- OnboardCellularInterface is derived from UARTCellularInterfae and provides hooks to
          the target provided implementation of onbard_modem_api.h. An off-board modem, i.e, a modem on
          a shield has to override the modem_init(), modem_power_up() etc as it cannot use
          onboard_modem_api.h.
2017-05-31 15:02:11 +03:00
Hasnain Virk b51fbe817b mbedtls md5 or lwip internal crypt Fudge
Some targets define MBEDTLS_md5_C in targets.json in order to force the system to use
external mbedtls instead of lwip internal crypt, i.e.,  polarssl.
LWIP's internal md5 mechanism is tied to PPP  for some reason. In a previosly merged commit
an attempt was made to steal md5 functions by faking that PPP was turned on. However
that solution was broken in case of really turning on PPP  functionality.

This commit fixes the breakage and also corrects the logic in case a target decides to use
external md5 implementation from mbedtls or otherwise (i.e, wants to stick to the internal
implementation).
2017-05-31 15:02:11 +03:00
Hasnain Virk 1afc7bfbef A Reference CellularInterface driver
* Implements CellularInterface
* Reference design for CellularInterface implementations
* Uses an external mbed-os IP stack and talks to modem over PPP.
2017-05-31 15:02:11 +03:00
Hasnain Virk 658ddf7c30 ARMCC link errors fixed, nsapi_ppp glue layer changed
GCC have not been capable enough to catch some linker errors which arose when
ethernet support for LWIP was disabled. Checks have been added to make sure that
unrefrenced code is not linked in.

nsapi_ppp glue layer is made more transparent to public cellular API. Storage of IP
addresses is removed. PPP layer already stores the addresses, so we pass the pointer back
to the upper layers.

If PPP is not used, we provide dummy functions.
2017-05-31 15:02:11 +03:00
Hasnain Virk 01088647b9 Finalizing the public API for Cellular
* state machine corrections
* adding various standard API methods
* Addition/revision/enhancement of the nsapi_ppp glue layer
* Turning off debug by default
2017-05-31 15:02:11 +03:00
Hasnain Virk f602c936ff Redirecting LWIP debug trace to mbed-trace
This piece of code redirects LWIP debug trace to mbed-trace if configured.
This enables us to have universal traces.
2017-05-31 15:02:11 +03:00
Hasnain Virk 3b44f4758d Adding support for APN lookup
Mainly reutilizing code from ublox C027 support lib.
As we are using external PDP context, i.e., an external IP stack,
we will pass username and password to underlying stack running PPP.
We only support CHAP as the authentication protocol.
2017-05-31 15:02:11 +03:00
Hasnain Virk 93f436ebe0 Using DCD line to invoke poll() HUP
POSIX poll() provides a mechanism to attach a POLL_HUP event
if the modem or device hangs up on you. POLL_HUP and POLL_OUT are
mutually exclusive. We poll in the PPP_input() routine if the modem
hung up. If it did we stop the data consumption, close PPP and go back
to the driver for reserruction of AT parser and subsequent retries or
application specific actions.
This is achieved by attaching an interrupt to the DCD line of the modem.
When DCD line goes high (off), we have lost the carrier. So we record an
POLLHUP event using _poll_change().
2017-05-31 15:02:11 +03:00
Hasnain Virk 87a4580e5f Bug fixes & state machine corrections
In case of carrier lost, we would like to inform PPP data pump.
That involved setting up link status flag down semaphores.
mbed_lwip_bringup() and mbed_lwip_bringdown() had been Ethernet specific only.
We extend these routines to support PPP as well. Currently we support only one interface
at a time. However, future enhancement to multi interface support should be trivial.
2017-05-31 15:02:11 +03:00
Kevin Bracey 7e3c529d21 Unify LWIP Ethernet and PPP initialisation 2017-05-31 15:02:11 +03:00
Hasnain Virk 2abb078f27 Adding PPP link status callback
mbed_ppp_init() is extended to take a function ptr.
ppp_lwip will call this callback upon a change in ppp link status.
in the beginning, the Ublox driver waits until the PPP link is established properly.
2017-05-31 15:02:11 +03:00
Hasnain Virk 091396defe Adding mbed_trace to ppp_lwip
We introduce here mbed_trace to ppp_lwip shim layer.
If for some reason, FEATURE_COMMON_PAL is not included in the build,
dummies for trace functions are provided.
2017-05-31 15:02:11 +03:00
Kevin Bracey be00c1720b Separate LWIP core and Ethernet interface initialisation
Will allow LWIP to be initialised for PPP use.
2017-05-31 15:02:11 +03:00
Kevin Bracey ae7fd61d65 RAM optimizations
Trying to save RAM wherever possible for Ublox C027 platform
2017-05-31 15:02:11 +03:00
Kevin Bracey f37f265ed5 Add more LWIP JSON configuration, including PPP
Add configuration to control Ethernet, PPP and TCP support.

Replaces LWIP_TRANSPORT_ETHERNET/PPP defines formerly used by targets.

Ethernet and PPP can be enabled simultaneously.

DHCPv4 is now only enabled if IPv4 and Ethernet are both enabled - we
assume PPP uses IPCP for configuration.

PPP configuration adjusted to cope with LWIP 2.0 changes, and
optimised for RAM a little.
2017-05-31 15:02:11 +03:00
Kevin Bracey d0820d1ed3 Cope with different LWIP configurations 2017-05-31 15:02:11 +03:00
Kevin Bracey 7f136d5a35 PPP Interface for LWIP using FileHandle stream
This is a glue layer between LWIP PPP implementation and a device type FileHandle
stream. This enables an external interface which has a FileHandle, utilize LWIP network
stack via PPP, e.g., Cellular device, WiFi chips etc.
Its totally transparent to external device. Only thing this layer is interested in, is a
FileHandle. Similar is true for for the external device, it just hands over its stream to this
PPP layer and rest of the magic is done by this layer.
2017-05-31 15:02:11 +03:00
Kevin Bracey 533910cb87 Correct return type of FileHandle::size()
File size should be off_t, not size_t.
2017-05-31 15:02:11 +03:00
Sam Grove f438251aa3 Merge pull request #3936 from geky/bd-mbr
bd: Add MBR block device for standard storage partitioning
2017-05-30 13:04:50 -05:00
Bartek Szatkowski a8229b5351 Make sure all RTOS attribute structures are 0-ed before use 2017-05-30 18:55:56 +01:00
Bartek Szatkowski b01f13d1a0 Make sure all system threads and mutexes have clear names 2017-05-30 18:55:55 +01:00
Jaeden Amero 0016bd4639 uVisor: Re-import RTX5-capable uVisor
Use a newer version of uVisor that doesn't change the box main thread
function type. Previously, we required all box main thread definitions
to change from taking a `const void *` to a `void *` when moving to
RTX5. We now are backwards compatibile.
2017-05-30 18:55:53 +01:00
Jaeden Amero 6be9e47a07 uVisor: Import RTX5-capable uVisor
Imported from 20170407_v7-M tag, commit e33f2739e961 "Make function in
transition macro match target".
2017-05-30 18:55:53 +01:00
Bartek Szatkowski b793a3fb89 Update codebase for CMSIS5/RTX5
Update all of mbed-os to use RTX5.
2017-05-30 18:55:52 +01:00