Skip to content

Repository files navigation

Fidelity.Platform

Platform declarations and native bindings for the Fidelity framework. Shared silicon facts, physical products, execution environments and workload profiles have separate source owners. CCS resolves the selected declarations; Composer uses their evidence to compile, package and deploy the artifact.

Structure

  • Contracts/: shared MMIO, admission-evidence and BAREWire-backed handoff contracts.
  • AbstractMachines/: cBPF/eBPF instruction descriptions; no executable backend.
  • Hardware/Silicon/: architecture, part and package facts.
  • Hardware/Silicon/Radio/: radio inventory and future discrete parts; integrated radios retain their MCU owner.
  • Hardware/Products/: component selection, wiring and available resources.
  • Hardware/VirtualMachines/: guest-machine descriptions; currently synthetic.
  • Environments/: execution ABI, host-provided services, native bindings and admission rules.
  • Protocols/: reserved protocol implementations, including virtio and the Radio design scaffold.
  • Profiles/: execution selections, workload budgets and explicitly marked reference catalogues.

PLATFORM_STRUCTURE.md lists current packages and support status. The former top-level CPU/MCU/GPU/NPU/FPGA package paths have moved; source namespaces are retained where needed for existing APIs.

Selecting a platform

Applications select a package through their platform dependency. For example, from the sibling HelloBlinky repository:

[dependencies]
platform = { path = "../../../../Fidelity.Platform/Profiles/EK_RA6M5_HelloBlinky/Fidelity.Platform.fidproj" }

The selected package declares its authoritative export:

[platform]
description = "Fidelity.Platform.Profiles.EK_RA6M5_HelloBlinky.Description.descriptor"
runtime_model = "bare"
os = "none"
arch = "arm_cortex_m33"

Other selections include Linux x86_64, HelloArty and the compiler-only restricted guest. Linux binding packages remain under Environments/Linux/x86_64.

Profiles reference shared declarations through explicit dependencies. Available hardware does not grant application access: HelloBlinky owns its mappings, grants and timing predicate. A product with several compute blocks does not implicitly select several compilation targets.

Sweet Potato and native graphics

The AML-S905X-CC-V2 board entry and KeyStation reference selection frame a Clef unikernel with Meson HDMI, USB touch and a restricted Mali-450 renderer. The port plan separates firmware handoff, native display and GPU acceptance, with Linux as a reference and hosted route. These are documentation scaffolds without a selectable platform export.

Admission and accelerator handoff references

Cryptography providers defines the boundary with Fidelity.Cryptography: Platform owns exact hardware capabilities and native bindings, while the peer library owns algorithms, key-use contracts and provider conformance. This is a documentation scaffold.

Strix Halo + Arty A7 is the physical reference for ThreeBody. Its handoff declarations distinguish CPU/GPU shared backing, NIC buffer ownership and FPGA request completion. The Apple Silicon / Metal reference uses the same shared contracts with environment-specific allocation and visibility obligations. Shared physical memory is accounted once; accessible views do not create additional capacity or establish device mappings.

BPF reference selections describe separate Linux eBPF, Windows eBPF and macOS classic-BPF hosts. Their checks keep safety obligations, verifier analysis work, execution work and elapsed-time budgets distinct. Missing host facts remain pending; estimates and measurements do not discharge hard bounds.

These are checked .clef source packages and executable reference consistency checks. They do not yet provide Composer BPF emission, actual verifier/load integration, GPU allocation or a working FPGA sidecar protocol. Reference catalogues do not select a deployable [platform] description.

Run the F# reference checks, including CCS checks of the original package sources, from this repository:

dotnet run --project tests/Admission/Admission.Tests.fsproj

See compiler integration, admission and accelerator handoffs, composition rules and the documentation index. General resource instantiation, memory-domain composition, virtio drivers and OCI orchestration remain further work.

About

Platform definitions for the Fidelity Framework

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages