Skip to content

Supplemental target configurations feature request #595

Description

@joep

We build several variants of existing supported Microkit targets that have slight option variations from the standard ones, e.g., x86 KernelHugePage disabled for x86 cloud targets, or ARM KernelArmExportPTMRUser enabled for runtime profiling of PDs.

There is no existing way for Microkit users to supplement the pre-defined configurations, so making these changes requires source patching build_sdk.py. I would like to propose letting users override existing configurations or
deriving new, separately-named board or config from an existing one and add it to the matrix under its own name.

Something like:

--extra-targets PATH.json

where PATH.json might look like if you wanted to override the existing configurations:

[
  {
    "kind": "board",
    "name": "x86_64_generic",
    "from": "x86_64_generic",
    "kernel_options": { "KernelHugePage": false }
  },
  {
    "kind": "config",
    "name": "debug",
    "from": "debug",
    "kernel_options_arch": { "AARCH64": { "KernelArmExportPTMRUser": true } }
  }
]

or this if you want to derive new ones from existing ones:

[
  {
    "kind": "board",
    "name": "x86_64_generic_nohugepage",
    "from": "x86_64_generic",
    "kernel_options": { "KernelHugePage": false }
  },
  {
    "kind": "config",
    "name": "debug_ptmr",
    "from": "debug",
    "kernel_options_arch": { "AARCH64": { "KernelArmExportPTMRUser": true } }
  }
]

Any BoardInfo/ConfigInfo field can be overridden this way (not just kernel_options), which also covers cases like a derived board needing a different loader_link_address or smp_cores.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions