This adds an option to allow operation of the CPU at its maximum temperature range of 125F by reducing the CPU clock to 400MHz instead of the 105F limit imposed by the default 480MHz CPU clock. This tradeoff is detailed in table 122 in section 7.3.1 of the STM32H743VI datasheet. The default remains at 480MHz/105F. --- .../stm/stm32h743i-eval/stm32h7-config-osc.c | 8 ++++++++ spec/build/bsps/arm/stm32h7/bspstm32h7.yml | 2 ++ spec/build/bsps/arm/stm32h7/optenthermal.yml | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 spec/build/bsps/arm/stm32h7/optenthermal.yml
diff --git a/bsps/arm/stm32h7/boards/stm/stm32h743i-eval/stm32h7-config-osc.c b/bsps/arm/stm32h7/boards/stm/stm32h743i-eval/stm32h7-config-osc.c index df55a49b3c..016f772309 100644 --- a/bsps/arm/stm32h7/boards/stm/stm32h743i-eval/stm32h7-config-osc.c +++ b/bsps/arm/stm32h7/boards/stm/stm32h743i-eval/stm32h7-config-osc.c @@ -42,9 +42,17 @@ const RCC_OscInitTypeDef stm32h7_config_oscillator = { .PLL.PLLState = RCC_PLL_ON, .PLL.PLLSource = RCC_PLLSOURCE_HSE, .PLL.PLLM = 5, +#ifdef STM32H7_OSC_ENABLE_MAX_THERMAL_RANGE + .PLL.PLLN = 160, +#else .PLL.PLLN = 192, +#endif .PLL.PLLP = 2, +#ifdef STM32H7_OSC_ENABLE_MAX_THERMAL_RANGE + .PLL.PLLQ = 2, +#else .PLL.PLLQ = 12, +#endif .PLL.PLLR = 2, .PLL.PLLRGE = RCC_PLL1VCIRANGE_2, .PLL.PLLVCOSEL = RCC_PLL1VCOWIDE, diff --git a/spec/build/bsps/arm/stm32h7/bspstm32h7.yml b/spec/build/bsps/arm/stm32h7/bspstm32h7.yml index 0aaf1f0cc6..2614457bcc 100644 --- a/spec/build/bsps/arm/stm32h7/bspstm32h7.yml +++ b/spec/build/bsps/arm/stm32h7/bspstm32h7.yml @@ -13,6 +13,8 @@ install: [] links: - role: build-dependency uid: grp +- role: build-dependency + uid: optenthermal source: - bsps/arm/stm32h7/boards/stm/stm32h743i-eval/stm32h7-bspstarthooks.c - bsps/arm/stm32h7/boards/stm/stm32h743i-eval/stm32h7-config-clk.c diff --git a/spec/build/bsps/arm/stm32h7/optenthermal.yml b/spec/build/bsps/arm/stm32h7/optenthermal.yml new file mode 100644 index 0000000000..ff79db213d --- /dev/null +++ b/spec/build/bsps/arm/stm32h7/optenthermal.yml @@ -0,0 +1,18 @@ +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) 2023 On-Line Applications Research (OAR) +default: +- enabled-by: true + value: false +description: | + Allow use of the maximum thermal range the CPU is capable of by reducing the + CPU clock to 400MHz +enabled-by: true +format: '{}' +links: [] +name: STM32H7_OSC_ENABLE_MAX_THERMAL_RANGE +type: build -- 2.39.2 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel