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 uid: optcachedata
- role: build-dependency - role: build-dependency
uid: optcacheinst uid: optcacheinst
- role: build-dependency
uid: optclkfastidle
- role: build-dependency - role: build-dependency
uid: optconcfg uid: optconcfg
- role: build-dependency - 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 uid: optcachedata
- role: build-dependency - role: build-dependency
uid: optcacheinst uid: optcacheinst
- role: build-dependency
uid: optclkfastidle
- role: build-dependency - role: build-dependency
uid: ../optmmusmallpages uid: ../optmmusmallpages
- role: build-dependency - 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 uid: optcacheinst
- role: build-dependency - role: build-dependency
uid: optclkcpu1x uid: optclkcpu1x
- role: build-dependency
uid: optclkfastidle
- role: build-dependency - role: build-dependency
uid: optclkuart uid: optclkuart
- role: build-dependency - 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 uid: optcachedata
- role: build-dependency - role: build-dependency
uid: optcacheinst uid: optcacheinst
- role: build-dependency
uid: optclkfastidle
- role: build-dependency - role: build-dependency
uid: optclkuart uid: optclkuart
- role: build-dependency - 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 uid: objnosmp
- role: build-dependency - role: build-dependency
uid: optclkbootcpu uid: optclkbootcpu
- role: build-dependency
uid: optclkfastidle
source: source:
- bsps/shared/dev/display/disp_hcms29xx.c - bsps/shared/dev/display/disp_hcms29xx.c
- bsps/shared/dev/display/font_hcms29xx.c - bsps/shared/dev/display/font_hcms29xx.c

View File

@@ -18,6 +18,7 @@ default:
- arm/realview_pbx_a9_qemu - arm/realview_pbx_a9_qemu
- arm/xilinx_zynq_a9_qemu - arm/xilinx_zynq_a9_qemu
- microblaze/kcu105_qemu - microblaze/kcu105_qemu
- powerpc/psim
- powerpc/qemuppc - powerpc/qemuppc
- powerpc/qemuprep - powerpc/qemuprep
- powerpc/qemuprep-altivec - powerpc/qemuprep-altivec
@@ -28,7 +29,34 @@ description: |
Set a mode where the time runs as fast as possible when a clock ISR occurs 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 while the IDLE thread is executing; this can significantly reduce simulation
times 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: [] links: []
name: CLOCK_DRIVER_USE_FAST_IDLE name: CLOCK_DRIVER_USE_FAST_IDLE
type: build type: build

View File

@@ -46,8 +46,6 @@ links:
uid: objmpci uid: objmpci
- role: build-dependency - role: build-dependency
uid: ../../objmem uid: ../../objmem
- role: build-dependency
uid: optclkfastidle
- role: build-dependency - role: build-dependency
uid: optsbrk uid: optsbrk
- role: build-dependency - 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