-
Notifications
You must be signed in to change notification settings - Fork 1.4k
[DRAFT] modules: openthread: Implement radio_nrf5 OpenThread platform. #21882
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[DRAFT] modules: openthread: Implement radio_nrf5 OpenThread platform. #21882
Conversation
4ddfba4
to
3f13949
Compare
CI InformationTo view the history of this post, clich the 'edited' button above Inputs:Sources:sdk-nrf: PR head: bca4b6bf8c9219c5af8f4f32140c2a5417b195a4 more detailssdk-nrf:
zephyr:
Github labels
List of changed files detected by CI (53)
Outputs:ToolchainVersion: 4aa3467a6d Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped;
|
3f13949
to
0a1013d
Compare
The following west manifest projects have changed revision in this Pull Request:
⛔ DNM label due to: 1 project with PR revision Note: This message is automatically posted and updated by the Manifest GitHub Action. |
0a1013d
to
91adf20
Compare
You can find the documentation preview for this PR here. Preview links for modified nRF Connect SDK documents: https://ncsdoc.z6.web.core.windows.net/PR-21882/nrf/protocols/thread/configuring.html |
7cab044
to
35b97ad
Compare
82b5166
to
42da834
Compare
bd28b58
to
140193d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file should be moved out of OpenThread platform, as it does not implement it. Would move it one level up.
2401932
to
0e3d1ae
Compare
21d9e9a
to
3e301f9
Compare
ee55876
to
efb4285
Compare
585f397
to
5211303
Compare
619a785
to
7165e3e
Compare
Updated modules/openthread/platform after latest changes in Zephyr. Aligned openthread implementation to the new approach. Signed-off-by: Arkadiusz Balys <[email protected]>
Stop using L2 log level in platform files. Signed-off-by: Arkadiusz Balys <[email protected]>
The new CONFIG_OPENTHREAD_SYS_INIT Kconfig option allows OpenThread to be automatically initialised during the Zephyr POST_KERNEL initialisation stage. If Zephyr's L2 layer OpenThread implementation is enabled, the IEEE802.15.4 shim layer initialises OpenThread in the POST_KERNEL phase. However, since Openthread may work without Zephyr's L2 layer, in this case, no object can initialise it automatically. This new Kconfig option may help start OpenThread automatically if the L2 Layer is disabled. Signed-off-by: Arkadiusz Balys <[email protected]> Signed-off-by: Adrian Gielniewski <[email protected]>
* Add header with public API of OpenThread module. * Add module include directory to Zephyr include directories. * Use new header in platform implementation. Signed-off-by: Adrian Gielniewski <[email protected]>
7165e3e
to
dd61149
Compare
Use new API from OpenThread module header. Signed-off-by: Adrian Gielniewski <[email protected]>
Add new Kconfig options to enable platform-specific features in OpenThread: - CONFIG_OPENTHREAD_PLATFORM_PKT_TXTIME enables support for packet TX time when CONFIG_NET_PKT_TXTIME is selected. - CONFIG_OPENTHREAD_PLATFORM_CARRIER_FUNCTIONS enables modulated and continuous carrier functions when CONFIG_OPENTHREAD_DIAG and CONFIG_IEEE802154_CARRIER_FUNCTIONS are enabled. Update preprocessor conditionals to use the new options instead of relying directly on CONFIG_NET_PKT_TXTIME and CONFIG_IEEE802154_CARRIER_FUNCTIONS. This change improves configurability and allows to reuse the platform implementation when not using Zephyr networking. Upstream PR #: 90737 Signed-off-by: Adrian Gielniewski <[email protected]>
Update sdk-zephyr. Signed-off-by: Adrian Gielniewski <[email protected]>
Signed-off-by: Adrian Gielniewski <[email protected]>
To start working with a new implementation of the OpenThread radio platform, we need to have the dedicated radio_nrf5.c file and kconfig to switch between legacy Zephyr's IEEE802.15.4 shim layer and direct nrf5 radio driver implementations. Signed-off-by: Arkadiusz Balys <[email protected]>
Prepared build environment to support building OpenThread without Zephyr's L2 and IEEE802.15.4 shim layers. To do it, some of Kconfigs must be cloned into the new Kconfig file (dedicated to nRF5-driver-based approach) to meet all OpenThread requirements while NET_L2_OPENTHREAD is disabled. Signed-off-by: Arkadiusz Balys <[email protected]>
Stop using L2 log level in platform files. Signed-off-by: Arkadiusz Balys <[email protected]>
Align Kconfigs Signed-off-by: Adrian Gielniewski <[email protected]>
Add alternative radio implementation that does not use Zephyr L2. Signed-off-by: Adrian Gielniewski <[email protected]>
Add nrf5 radio implementation. Signed-off-by: Adrian Gielniewski <[email protected]>
Update docs. Signed-off-by: Adrian Gielniewski <[email protected]>
Signed-off-by: Adrian Gielniewski <[email protected]>
dd61149
to
a19cce9
Compare
Move ACK handling out of radio callback. Signed-off-by: Adrian Gielniewski <[email protected]>
It will be finished in a different PR. |
Introduce radio_nrf5 OpenThread radio platform which uses nRF radio driver directly. The Zephyr L2 layer, IEEE802.15.4 shim layer and net packets are not used in this implementation.
To build without Zephyr's L2 layer add:
-DCONFIG_OPENTHREAD=y -DCONFIG_NET_L2_OPENTHREAD=n -DCONFIG_NETWORKING=n
TODO:
Do not review while it is in draft.