-
Notifications
You must be signed in to change notification settings - Fork 229
Add proper Zephyr module support with updated HAL for v3/v4 compatibility #407
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
base: main
Are you sure you want to change the base?
Add proper Zephyr module support with updated HAL for v3/v4 compatibility #407
Conversation
Introduce ATCA_ZEPHYR_SUPPORT CMake option to enable proper Zephyr module builds Map Kconfig CONFIG_ATCA_* symbols into ATCA_* CMake variables Refresh I2C and SPI HAL drivers to use Zephyr 3 include locations Build CryptoAuthLib as a Zephyr library when enabled Incompatible with Zephyr v2 due to changed include paths
Provides instructions on how to incorporate CryptoAuthLib as a Zephyr module, including out-of-tree and in-tree application setups. Explains how to configure available Kconfig options and how they are mapped into CMake options and the atca_config.h file for seamless Zephyr integration.
Follow-Up Update: I2C Send Function Refactored for Zephyr HALThis follow-up commit introduces a significant improvement to the I2C HAL layer for Zephyr: SummaryRefactors Key Changes
MotivationMany I2C peripherals require a separate word address phase before sending data. This update ensures broader device compatibility and aligns our I2C send logic with Zephyr HAL best practices. Impact
|
|
This PR has been marked as stale and will be automatically closed in 7 days. |
|
This PR has been marked as stale and will be automatically closed in 7 days. |
|
Just checking in on the status of PR #407. I understand things can get busy, but I wanted to keep this from going stale. If there are any updates or concerns, please let me know how I can assist to help move this forward. Thank you! |
Summary
This PR introduces first-class support for integrating CryptoAuthLib as a Zephyr module, compatible with Zephyr v3 and v4. It enables seamless integration into modern Zephyr-based applications using CMake and Kconfig, and updates the I2C and SPI HALs to align with Zephyr's evolving include path conventions.
Key Changes
module.ymlto enable Zephyr module recognition via west.ATCA_ZEPHYR_SUPPORTCMake option to toggle Zephyr build mode.zephyr_options.cmaketo mapCONFIG_ATCA_*Kconfig options to internal CMake flags.zephyr/drivers/...) required in Zephyr ≥ v3.zephyr_library()when enabledIntegration Instructions
To include CryptoAuthLib as a Zephyr module:
Option 1: In-tree
Place CryptoAuthLib under
modules/lib/cryptoauthliband it will be automatically detected.Option 2: Out-of-tree
If using a separate path:
Kconfig Support
Once integrated, you can configure CryptoAuthLib via
prj.confusing new symbols:These options automatically propagate to the CMake build system, enabling or disabling relevant sources and flags.
Compatibility Notes
Request
If possible, please test against MPLAB Harmony and existing Linux builds to ensure continued compatibility. Feedback and improvements welcome!
Feature branch: https://github.com/BitConcepts/cryptoauthlib/tree/feature/zephyr-module-support-v3-v4