spec/*: Clean up fast idle configure option

The CLOCK_DRIVER_USE_FAST_IDLE configure option is implemented
in the shared clock driver implementation. Unfortunately, the spec
files scattered the yaml to enable it for a specific BSP. This
change adds the shared file spec/build/bsps/optclkfastidle.yml which
is now the only place the CLOCK_DRIVER_USE_FAST_IDLE is specified.
That file includes a master list of BSPs which are known to be able to
run on simulators that are slow enough to benefit from this option.

As a point of information, the entire riscv BSP family can run on
both spike and qemu. None had the option do use fast idle. With this
option enabled, the time taken for a full test run on spike for
rv32i and rv64imadfc dropped by ~45%.
This commit is contained in:
Joel Sherrill
2025-08-20 12:35:10 -05:00
committed by Kinsey Moore
parent fb08c8cb8d
commit dce430bb69
12 changed files with 31 additions and 113 deletions

View File

@@ -65,8 +65,6 @@ links:
uid: optcachedata
- role: build-dependency
uid: optcacheinst
- role: build-dependency
uid: optclkfastidle
- role: build-dependency
uid: optconcfg
- role: build-dependency

View File

@@ -1,21 +0,0 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
actions:
- get-boolean: null
- define-condition: null
build-type: option
copyrights:
- Copyright (C) 2020 embedded brains GmbH & Co. KG
default:
- enabled-by:
- arm/lm3s6965_qemu
- arm/realview_pbx_a9_qemu
- arm/xilinx_zynq_a9_qemu
value: true
- enabled-by: true
value: false
description: |
This sets a mode where the time runs as fast as possible when a clock ISR occurs while the IDLE thread is executing. This can significantly reduce simulation times.
enabled-by: true
links: []
name: CLOCK_DRIVER_USE_FAST_IDLE
type: build

View File

@@ -33,8 +33,6 @@ links:
uid: optcachedata
- role: build-dependency
uid: optcacheinst
- role: build-dependency
uid: optclkfastidle
- role: build-dependency
uid: ../optmmusmallpages
- role: build-dependency

View File

@@ -1,21 +0,0 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
actions:
- get-boolean: null
- define-condition: null
build-type: option
copyrights:
- Copyright (C) 2020 embedded brains GmbH & Co. KG
default:
- enabled-by:
- arm/lm3s6965_qemu
- arm/realview_pbx_a9_qemu
- arm/xilinx_zynq_a9_qemu
value: true
- enabled-by: true
value: false
description: |
This sets a mode where the time runs as fast as possible when a clock ISR occurs while the IDLE thread is executing. This can significantly reduce simulation times.
enabled-by: true
links: []
name: CLOCK_DRIVER_USE_FAST_IDLE
type: build

View File

@@ -30,8 +30,6 @@ links:
uid: optcacheinst
- role: build-dependency
uid: optclkcpu1x
- role: build-dependency
uid: optclkfastidle
- role: build-dependency
uid: optclkuart
- role: build-dependency

View File

@@ -1,21 +0,0 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
actions:
- get-boolean: null
- define-condition: null
build-type: option
copyrights:
- Copyright (C) 2020 embedded brains GmbH & Co. KG
default:
- enabled-by:
- arm/lm3s6965_qemu
- arm/realview_pbx_a9_qemu
- arm/xilinx_zynq_a9_qemu
value: true
- enabled-by: true
value: false
description: |
This sets a mode where the time runs as fast as possible when a clock ISR occurs while the IDLE thread is executing. This can significantly reduce simulation times.
enabled-by: true
links: []
name: CLOCK_DRIVER_USE_FAST_IDLE
type: build

View File

@@ -36,8 +36,6 @@ links:
uid: optcachedata
- role: build-dependency
uid: optcacheinst
- role: build-dependency
uid: optclkfastidle
- role: build-dependency
uid: optclkuart
- role: build-dependency

View File

@@ -1,21 +0,0 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
actions:
- get-boolean: null
- define-condition: null
build-type: option
copyrights:
- Copyright (C) 2020 embedded brains GmbH & Co. KG
default:
- enabled-by:
- arm/lm3s6965_qemu
- arm/realview_pbx_a9_qemu
- arm/xilinx_zynq_a9_qemu
value: true
- enabled-by: true
value: false
description: |
This sets a mode where the time runs as fast as possible when a clock ISR occurs while the IDLE thread is executing. This can significantly reduce simulation times.
enabled-by: true
links: []
name: CLOCK_DRIVER_USE_FAST_IDLE
type: build

View File

@@ -73,6 +73,8 @@ links:
uid: objnosmp
- role: build-dependency
uid: optclkbootcpu
- role: build-dependency
uid: optclkfastidle
source:
- bsps/shared/dev/display/disp_hcms29xx.c
- bsps/shared/dev/display/font_hcms29xx.c

View File

@@ -18,6 +18,7 @@ default:
- arm/realview_pbx_a9_qemu
- arm/xilinx_zynq_a9_qemu
- microblaze/kcu105_qemu
- powerpc/psim
- powerpc/qemuppc
- powerpc/qemuprep
- powerpc/qemuprep-altivec
@@ -28,7 +29,34 @@ description: |
Set a mode where the time runs as fast as possible when a clock ISR occurs
while the IDLE thread is executing; this can significantly reduce simulation
times
enabled-by: true
enabled-by:
- aarch64/a53_ilp32_qemu
- aarch64/a53_lp64_qemu
- aarch64/a72_ilp32_qemu
- aarch64/a72_lp64_qemu
- aarch64/versal_qemu
- aarch64/zynqmp_qemu_ilp32
- aarch64/zynqmp_qemu
- arm/altcycv_devkit
- arm/lm3s6965_qemu
- arm/realview_pbx_a9_qemu
- arm/xilinx_zynq_a9_qemu
- arm/xilinx_zynqmp_ultra96
- microblaze/kcu105_qemu
- powerpc/psim
- powerpc/qemuppc
- powerpc/qemuprep
- powerpc/qemuprep-altivec
- riscv/rv32i
- riscv/rv32iac
- riscv/rv32im
- riscv/rv32imac
- riscv/rv32imafc
- riscv/rv32imafd
- riscv/rv32imafdc
- riscv/rv64imac
- riscv/rv64imafd
- riscv/rv64imafdc
links: []
name: CLOCK_DRIVER_USE_FAST_IDLE
type: build

View File

@@ -46,8 +46,6 @@ links:
uid: objmpci
- role: build-dependency
uid: ../../objmem
- role: build-dependency
uid: optclkfastidle
- role: build-dependency
uid: optsbrk
- role: build-dependency

View File

@@ -1,18 +0,0 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
actions:
- get-boolean: null
- define-condition: null
build-type: option
copyrights:
- Copyright (C) 2020 embedded brains GmbH & Co. KG
default:
- enabled-by: powerpc/psim
value: true
- enabled-by: true
value: false
description: |
This sets a mode where the time runs as fast as possible when a clock ISR occurs while the IDLE thread is executing. This can significantly reduce simulation times.
enabled-by: true
links: []
name: CLOCK_DRIVER_USE_FAST_IDLE
type: build