Skip to content

Proposal: Extend CycloneDX model to support hardware-software interface semantics #959

Description

@devashridatta-dotcom

Summary

Current CycloneDX specifications provide strong support for representing software components, dependencies, and vulnerability metadata. However, for cyber-physical systems (embedded, automotive, aerospace, industrial IoT), there is a missing semantic layer: explicit representation of hardware-software interface contracts.

This includes interactions such as:

  • Memory-Mapped I/O (MMIO)
  • Hardware register mappings
  • Interrupt interfaces
  • DMA channels
  • Firmware-to-RTL lineage (e.g., High-Level Synthesis flows)

We refer to this missing abstraction as an Interface Bill of Materials (IBOM) concept.

##Problem Statement

SBOM and HBOM artifacts exist independently, but CycloneDX currently lacks a structured way to represent:

  • relationships between firmware binaries and hardware registers
  • interface-level dependencies between software drivers and RTL modules
  • lifecycle changes in hardware-software contracts across updates
  • temporal validity of hardware-software interfaces (e.g., FPGA reconfiguration)

As a result, interface-level risks such as firmware-to-gate contract drift cannot be represented or analyzed using existing BOM structures.

Proposed Direction (Non-normative)

Rather than introducing a new BOM type, this proposal suggests exploring whether CycloneDX extension mechanisms can represent interface semantics using:

  • component properties
  • externalReferences
  • relationship metadata
  • graph-like dependency extensions

Example (Illustrative Only)

{
  "type": "firmware-interface",
  "name": "UART_MMIO_Interface",
  "properties": [
    {
      "name": "mmio.baseAddress",
      "value": "0x40001000"
    },
    {
      "name": "register",
      "value": "UART_STATUS:0x04:read-only"
    }
  ],
  "relatedComponents": [
    "uart_driver.c",
    "uart_controller.v"
  ]
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions