Skip to content

Extract processor capabilities from pack description and add it to build information files (*.cbuild-run.yml) #2372

@jreineckearm

Description

@jreineckearm

Describe The Problem To Be Solved
Debuggers need information on processor capabilities for example to select configurations for dialogs. Examples are the core peripheral dialogs in CMSIS Debugger.
Such information is specified as processor in DFPs.
It should be extracted and made accessible to debuggers through the *.cbuild-run.yml file.

(Optional): Suggest A Solution
Extract processor information for a device into a processors: node under system-resources: in *.cbuild-run.yml.

processors:

The processors: node collects the information of all processors of a device (specified in DFP).

processors:
  - core:       [Required]    Specifies the core type. Use predefined values as listed in the table [Device Cores](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/pdsc_family_pg.html#DcoreEnum).
    max-clock:  [Required]    Specifies the max clock frequency of the processor subsystem.
    revision:   [Optional]    Hardware revision of the processor core.
    pname:      [Optional]    Processor identifier. This attribute is mandatory for devices that embed multiple processors. 
    punits:     [Optional]    Specifies the number of processor units in a symmetric multi-processor core (MPCore). (default: `1`)
    endian:     [Optional]    Specifies the endianess of the processor. Allowed values are `little`, `big`, `configurable`. (default: `little`)
    fpu:        [Optional]    Specifies whether a hardware Floating Point Unit is present in the processor. Allowed values are `sp`, `dp`, `none`. (default: `none`)
    mpu:        [Optional]    Specifies whether an Arm-based Memory Protection Unit is present in the processor. Do not use this in case of custom MPUs. Allowed values are `present`, `none`. (default: `none`)
    dsp:        [Optional]    Specifies whether a device supports the DSP instructions set. Allowed values are `present`, `none`. (default: `none`)
    trustzone:  [Optional]    Specifies whether an Armv8-M based device implements TrustZone. Allowed values are `present`, `none`. (default: `none`)
    mve:        [Optional]    Specifies whether a device supports the M-Profile Vector instruction set extension. Allowed values are `int`, `fp`, `none`. (default: `none`)
    cdecp:      [Optional]    Specifies whether a device implements Custom Datapath Extension Coprocessors and which coprocessor interfaces can be used. See (CDE). Possible values are explained in [Custom Datapath Extensions](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/pdsc_family_pg.html#DcdecpEnum). (default: `0`)
    pacbti:     [Optional]    Specifies whether a device implements Pointer Authentication/Branch Target Identification (PAC/BTI) instructions. Allowed values are `present`, `none`. (default: `none`)

It does not reuse processors: under debug-topology: for a clear separation of concerns.

Updates

  • Changed revision from [Required] to [Optional] (13/03/2026)

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

Status

In review

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions