SDK Provider Model¶
Purpose¶
SDK provider modules decouple NSX board and SoC modules from hardcoded SDK paths and make provider selection explicit across AmbiqSuite major lines.
Provider Family¶
There is a single AmbiqSuite provider that mirrors the upstream monorepo (all SoCs side-by-side):
ambiqsuite
Provider module:
nsx-ambiqsuite
Provider Revisions¶
The provider is sourced from the unified SDK monorepo, which vendors the AmbiqSuite drop, the HAL/BSP wrappers, and the shared NSX module set for every supported SoC:
ambiqsuite→nsx-ambiq-sdk(v5.2.23)
The provider module (nsx-ambiqsuite) and the SDK wrapper modules that the
bundle vendors resolve to the unified nsx-ambiq-sdk project by default. The
selected project and revision are persisted in generated app metadata.
Contracts¶
Each provider module is represented in metadata as:
module.type = sdk_providermodule.category = sdk_providermodule.provider = ambiqsuite
Board modules bind to providers using:
- a required dependency on the provider module
- a required SDK provider constraint
Wrapper Modules¶
Unified wrapper modules sit above the raw provider payload:
nsx-ambiq-halnsx-ambiq-bsp
These wrappers expose the stable NSX-facing build surfaces (gated per-SoC by
capability, e.g. PMU on Apollo5) while the nsx-ambiqsuite module remains a
mostly raw imported SDK drop.
Root Resolution¶
Provider selection sets:
NSX_SDK_PROVIDERNSX_AMBIQSUITE_ROOTNSX_AMBIQSUITE_VERSIONNSX_SELECTED_SDK_TARGET
Resolution order:
- vendored app-local SDK root under
app/modules/nsx-ambiqsuite/sdk - explicit override variables when provided
Decomposition Policy¶
Raw provider repos carry the imported SDK payload.
Wrapper modules expose:
- HAL include surfaces and prebuilt HAL libraries
- BSP include surfaces and prebuilt BSP libraries
- the minimal utility sources required by core bring-up
Board modules remain responsible for:
- startup selection
- linker selection
- compile definitions
- flash and SWO settings