Bring up Thread support on EFR32 lock app (#2221)

* -Include the correct FreeRTOS Cortex files in the EFR32 makefiles correspoding to the defined MCU family (MG12 vs MG21)
-Init all IRQs priority to a lower priority valid for FreeRTOS API. An IRQ in the gecko radio libs
 with the default priority 0 (highest) was causing a assert failure in FreeRTOS

* Add the IRQ priority init for all EFR32 boards init
Restyle some file headers and copyright mentions

* Fix build script

* Fix sources for EFR32 platform

* Set mbedtls to external source

* Fix compilation with ninja

* Add BoltLockManager to manage the lock and unlock request and state
Add DataModelHandler to handle bolt actions from the cluster messages
Add Gen folder with the files for silicon lab cluster implementation
Strt a server session for UDP messages
Include some mbedtls sources  files from gsdk 2.7 in gni . TO BE FIX

* merge upstream

* Added Openthread to the example

* nrf5: Enlarge stack to fix thread join overruns

As of b15c292ee ("[nrf5-lock] start joiner role on boot (#1962)"),
we are using too much stack space in timer task. The timer task has a 1k
stack and logging along uses a 256 byte stack buffer.

The code in
GenericThreadStackManagerImpl_FreeRTOS<ImplClass>::OnJoinerTimer should
be moved off the timer task. In the meantime increase the stack size
to avoid overruns in the thread joiner.

Also enable the option configCHECK_FOR_STACK_OVERFLOW, and while we're
here also enable configUSE_MALLOC_FAILED_HOOK. These diagnostic options
are invaluable for saving debugging time.

Since logging uses significant stack space, try to catch stack overflows
in the platform LogV(). This fires reliably in OnJoinerTimer prior
to enlarging the stack.

Fixes #2187

* Reduce timer task memory to 2k

* Fix the stack size in EFR32 as well

* Add BoltLockManager to manage the lock and unlock request and state
Add DataModelHandler to handle bolt actions from the cluster messages
Add Gen folder with the files for silicon lab cluster implementation
Start a server session for UDP messages
Include some mbedtls sources  files from gsdk 2.7 in gni . TO BE FIX

merge upstream

* Add support for Silabs dev board BRD4163A and BRD4164A

Merge Upstream into branch

Add BoltLockManager to manage the lock and unlock request and state
Add DataModelHandler to handle bolt actions from the cluster messages
Add Gen folder with the files for silicon lab cluster implementation
Strt a server session for UDP messages
Include some mbedtls sources  files from gsdk 2.7 in gni . TO BE FIX

merge upstream

Add the IRQ priority init for all EFR32 boards init
Restyle some file headers and copyright mentions

* Restyled by whitespace

* Fix submodules

* Format GN files

* Clean up & enable Thread on EFR32

* Fix initial thread stack overrun

* Fix entropy provider

* Restyled by clang-format

* Fix openthread commit

* Reformat build files

  gn format $(git ls-files HEAD '*.gn' '*.gni')
  git add $(git ls-files HEAD '*.gn' '*.gni')

Hopefully the last time now that restyled is working.

* Format GN files

* Apply fixes from master

Co-authored-by: jmartinez-silabs <junior.martinez@silabs.com>
Co-authored-by: jfpenven <jean-francois.penven@silabs.com>
Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: jmartinez-silabs <67972863+jmartinez-silabs@users.noreply.github.com>
31 files changed
tree: 81b62c2b10147bf19ff06a64f5f2b0b8e2e8be22
  1. .devcontainer/
  2. .github/
  3. .vscode/
  4. autoconf/
  5. config/
  6. docs/
  7. examples/
  8. gn/
  9. integrations/
  10. scripts/
  11. src/
  12. third_party/
  13. tools/
  14. .chip-banner.txt
  15. .clang-format
  16. .default-version
  17. .default-version.min
  18. .dir-locals.el
  19. .editorconfig
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .prettierrc.json
  24. .pullapprove.yml
  25. .restyled.yaml
  26. .shellcheck_tree
  27. bootstrap
  28. BUILD.gn
  29. CODE_OF_CONDUCT.md
  30. configure.ac
  31. CONTRIBUTING.md
  32. gn_build.sh
  33. LICENSE
  34. Makefile-Android
  35. Makefile-bootstrap
  36. Makefile-Standalone
  37. Makefile.am
  38. README.md
  39. REVIEWERS.md
README.md

Connected Home over IP

Main Examples QEMU

What is Project Connected Home over IP?

Visit connectedhomeip.com to learn more.

Current Status of Project Connected Home over IP

The Zigbee Alliance officially opened the Project Connected Home over IP (Project CHIP) Working Group on January 17 and is in the process of drafting the specification.

The Project’s design and technical processes are intended to be open and transparent to the general public, including to Work Group non-members wherever possible. The availability of this GitHub repository and its source code under an Apache v2 license is an important and demonstrable step to achieving this commitment.

The Project endeavors to bring together the best aspects of market-tested technologies and to redeploy them as a unified and cohesive whole-system solution. The overall goal of this approach is to bring the benefits of the Project to consumers and manufacturers as quickly as possible. As a result, what you observe in this repository is an implementation-first approach to the technical specification, vetting integrations in practice.

How to Contribute

We would love for you to contribute to Project Connected Home over IP. Read our contribution guidelines here.

Building and Developing in Project

Instructions about how to build Project Connected Home over IP can be found here.

Directory Structure

The Connected Home over IP repository is structured as follows:

File / FolderContents
.default-versionDefault Project CHIP version if none is available via source code control tags, .dist-version, or .local-version
bootstrapGNU autotools bootstrap script for the Project CHIP build system
bootstrap-configureConvenience script that will bootstrap the Project CHIP build system, via bootstrap, and invoke configure
build/Build system support content and build output directories
BUILDING.mdMore detailed information on configuring and building Project CHIP for different targets
CODE_OF_CONDUCT.mdCode of Conduct for Project CHIP, and contributions to it
CONTRIBUTING.mdGuidelines for contributing to Project CHIP
CONTRIBUTORS.mdContributors to Project CHIP
docs/Documentation
examples/Example firmware applications that demonstrate use of Project CHIP technology
integrations/Third party integrations related to this project
integrations/docker/Docker scripts and Dockerfiles
LICENSEProject CHIP License file (Apache 2.0)
Makefile-AndroidConvenience makefile for building Project CHIP against Android
Makefile-StandaloneConvenience makefile for building Project CHIP as a standalone package on desktop and server systems
README.mdThis file
src/Implementation of Project CHIP
third_party/Third-party code used by Project CHIP
tools/Tools needed to work with the Project CHIP repo

License

Project CHIP is released under the Apache 2.0 license.