From 00e9195f45f9541219bf8ef23abbd4b7d46433ee Mon Sep 17 00:00:00 2001 From: Francois Ramu Date: Mon, 30 Sep 2024 15:34:02 +0200 Subject: [PATCH] boards: st: nucleo_h7s3l78 nucleo144 board Add the nucleo_h7s3l8 board from STMicroelectronics This Nucleo 144 board has stm32h7s3L8 mcu. Signed-off-by: Francois Ramu --- boards/st/nucleo_h7s3l8/Kconfig.defconfig | 16 + boards/st/nucleo_h7s3l8/Kconfig.nucleo_h7s3l8 | 5 + .../nucleo_h7s3l8/arduino_r3_connector.dtsi | 39 +++ boards/st/nucleo_h7s3l8/board.cmake | 10 + boards/st/nucleo_h7s3l8/board.yml | 6 + .../nucleo_h7s3l8/doc/img/nucleo_h7s3l8.webp | Bin 0 -> 33932 bytes boards/st/nucleo_h7s3l8/doc/index.rst | 324 ++++++++++++++++++ boards/st/nucleo_h7s3l8/nucleo_h7s3l8.dts | 141 ++++++++ boards/st/nucleo_h7s3l8/nucleo_h7s3l8.yaml | 15 + .../st/nucleo_h7s3l8/nucleo_h7s3l8_defconfig | 21 ++ boards/st/nucleo_h7s3l8/support/openocd.cfg | 42 +++ 11 files changed, 619 insertions(+) create mode 100644 boards/st/nucleo_h7s3l8/Kconfig.defconfig create mode 100644 boards/st/nucleo_h7s3l8/Kconfig.nucleo_h7s3l8 create mode 100644 boards/st/nucleo_h7s3l8/arduino_r3_connector.dtsi create mode 100644 boards/st/nucleo_h7s3l8/board.cmake create mode 100644 boards/st/nucleo_h7s3l8/board.yml create mode 100644 boards/st/nucleo_h7s3l8/doc/img/nucleo_h7s3l8.webp create mode 100644 boards/st/nucleo_h7s3l8/doc/index.rst create mode 100644 boards/st/nucleo_h7s3l8/nucleo_h7s3l8.dts create mode 100644 boards/st/nucleo_h7s3l8/nucleo_h7s3l8.yaml create mode 100644 boards/st/nucleo_h7s3l8/nucleo_h7s3l8_defconfig create mode 100644 boards/st/nucleo_h7s3l8/support/openocd.cfg diff --git a/boards/st/nucleo_h7s3l8/Kconfig.defconfig b/boards/st/nucleo_h7s3l8/Kconfig.defconfig new file mode 100644 index 00000000000..fdb5f99d840 --- /dev/null +++ b/boards/st/nucleo_h7s3l8/Kconfig.defconfig @@ -0,0 +1,16 @@ +# STM32H7S3L8 NUCLEO board configuration +# +# Copyright (c) 2024 STMicroelectronics +# +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_NUCLEO_H7S3L8 + +if NETWORKING + +config NET_L2_ETHERNET + default y + +endif # NETWORKING + +endif # BOARD_NUCLEO_H7S3L8 diff --git a/boards/st/nucleo_h7s3l8/Kconfig.nucleo_h7s3l8 b/boards/st/nucleo_h7s3l8/Kconfig.nucleo_h7s3l8 new file mode 100644 index 00000000000..ef9af59919b --- /dev/null +++ b/boards/st/nucleo_h7s3l8/Kconfig.nucleo_h7s3l8 @@ -0,0 +1,5 @@ +# Copyright (c) 2024 STMicroelectronics +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_NUCLEO_H7S3L8 + select SOC_STM32H7S3XX diff --git a/boards/st/nucleo_h7s3l8/arduino_r3_connector.dtsi b/boards/st/nucleo_h7s3l8/arduino_r3_connector.dtsi new file mode 100644 index 00000000000..13e390200fd --- /dev/null +++ b/boards/st/nucleo_h7s3l8/arduino_r3_connector.dtsi @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2024 STMicroelectronics + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + arduino_header: connector { + compatible = "arduino-header-r3"; + #gpio-cells = <2>; + gpio-map-mask = <0xffffffff 0xffffffc0>; + gpio-map-pass-thru = <0 0x3f>; + gpio-map = <0 0 &gpioa 3 0>, /* A0 */ + <1 0 &gpioc 0 0>, /* A1 */ + <2 0 &gpioc 3 0>, /* A2 */ + <3 0 &gpioc 4 0>, /* A3 */ + <4 0 &gpioc 5 0>, /* A4 */ + <5 0 &gpiof 11 0>, /* A5 */ + <6 0 &gpioa 10 0>, /* D0 */ + <7 0 &gpiob 14 0>, /* D1 */ + <8 0 &gpiof 15 0>, /* D2 */ + <9 0 &gpioe 13 0>, /* D3 */ + <10 0 &gpiof 3 0>, /* D4 */ + <11 0 &gpioe 11 0>, /* D5 */ + <12 0 &gpioe 9 0>, /* D6 */ + <13 0 &gpiof 4 0>, /* D7 */ + <14 0 &gpiof 5 0>, /* D8 */ + <15 0 &gpiod 15 0>, /* D9 */ + <16 0 &gpiod 14 0>, /* D10 */ + <17 0 &gpiob 5 0>, /* D11 */ + <18 0 &gpioa 6 0>, /* D12 */ + <19 0 &gpioa 5 0>, /* D13 */ + <20 0 &gpiob 9 0>, /* D14 */ + <21 0 &gpiob 8 0>; /* D15 */ + }; +}; + +arduino_i2c: &i2c1 {}; +arduino_spi: &spi1 {}; +arduino_serial: &usart1 {}; diff --git a/boards/st/nucleo_h7s3l8/board.cmake b/boards/st/nucleo_h7s3l8/board.cmake new file mode 100644 index 00000000000..6c18b45b35e --- /dev/null +++ b/boards/st/nucleo_h7s3l8/board.cmake @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: Apache-2.0 + +# keep first +board_runner_args(stm32cubeprogrammer "--port=swd" "--reset-mode=hw") + +board_runner_args(openocd --target-handle=_CHIPNAME.cpu0) + +# keep first +include(${ZEPHYR_BASE}/boards/common/stm32cubeprogrammer.board.cmake) +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) diff --git a/boards/st/nucleo_h7s3l8/board.yml b/boards/st/nucleo_h7s3l8/board.yml new file mode 100644 index 00000000000..6d71cded43f --- /dev/null +++ b/boards/st/nucleo_h7s3l8/board.yml @@ -0,0 +1,6 @@ +board: + name: nucleo_h7s3l8 + full_name: Nucleo H7S3L8 + vendor: st + socs: + - name: stm32h7s3xx diff --git a/boards/st/nucleo_h7s3l8/doc/img/nucleo_h7s3l8.webp b/boards/st/nucleo_h7s3l8/doc/img/nucleo_h7s3l8.webp new file mode 100644 index 0000000000000000000000000000000000000000..af2535e26b253e79c3cb5e4e67f5fa93126613a8 GIT binary patch literal 33932 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 is required. + +Alternatively, OpenOCD or JLink can also be used to flash the board using +the ``--runner`` (or ``-r``) option: + +.. code-block:: console + + $ west flash --runner openocd + +Flashing an application to Nucleo H7S3L8 +---------------------------------------- + +First, connect the NUCLEO-H7S3L8 to your host computer using +the USB port to prepare it for flashing. Then build and flash your application. + +Here is an example for the :zephyr:code-sample:`hello_world` application. + +Run a serial host program to connect with your NUCLEO-H7S3L8 board. + +.. code-block:: console + + $ minicom -b 115200 -D /dev/ttyACM0 + +or use screen: + +.. code-block:: console + + $ screen /dev/ttyACM0 115200 + +Build and flash the application: + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: nucleo_h7s3l8 + :goals: build flash + +You should see the following message on the console: + +.. code-block:: console + + $ Hello World! nucleo_h7s3l8 + +Blinky example can also be used: + +.. zephyr-app-commands:: + :zephyr-app: samples/basic/blinky + :board: nucleo_h7s3l8 + :goals: build flash + +Debugging +========= + +You can debug an application in the usual way. Here is an example for the +:zephyr:code-sample:`hello_world` application. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: nucleo_h7s3l8 + :maybe-skip-config: + :goals: debug + +.. _Nucleo H7S3L8 website: + https://www.st.com/en/evaluation-tools/nucleo-h7s3l8.html + +.. _STM32H7R/S Nucleo-144 board User Manual: + https://www.st.com/resource/en/user_manual/um3276-stm32h7rx7sx-nucleo144-board-mb1737-stmicroelectronics.pdf + +.. _STM32H7S3L8 on www.st.com: + https://www.st.com/en/microcontrollers-microprocessors/stm32h7s3l8.html + +.. _STM32H7Sx reference manual: + https://www.st.com/resource/en/reference_manual/rm0477-stm32h7rx7sx-armbased-32bit-mcus-stmicroelectronics.pdf + +.. _OpenOCD installing Debug Version: + https://github.com/zephyrproject-rtos/openocd + +.. _OpenOCD installing with ST-LINK V3 support: + https://mbd.kleier.net/integrating-st-link-v3.html + +.. _STM32CubeIDE: + https://www.st.com/en/development-tools/stm32cubeide.html + +.. _STM32CubeProgrammer: + https://www.st.com/en/development-tools/stm32cubeprog.html diff --git a/boards/st/nucleo_h7s3l8/nucleo_h7s3l8.dts b/boards/st/nucleo_h7s3l8/nucleo_h7s3l8.dts new file mode 100644 index 00000000000..e5d817bea57 --- /dev/null +++ b/boards/st/nucleo_h7s3l8/nucleo_h7s3l8.dts @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2024 STMicroelectronics + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include +#include "arduino_r3_connector.dtsi" +#include + +/ { + model = "STMicroelectronics STM32H7S3L8-NUCLEO board"; + compatible = "st,stm32h7s3l8-nucleo"; + + chosen { + zephyr,console = &usart3; + zephyr,shell-uart = &usart3; + zephyr,dtcm = &dtcm; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + }; + + leds: leds { + compatible = "gpio-leds"; + green_led: led_1 { + gpios = <&gpiod 10 GPIO_ACTIVE_HIGH>; + label = "User LD1"; + }; + yellow_led: led_2 { + gpios = <&gpiod 13 GPIO_ACTIVE_HIGH>; + label = "User LD2"; + }; + red_led: led_3 { + gpios = <&gpiob 7 GPIO_ACTIVE_HIGH>; + label = "User LD3"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + user_button: button_0 { + label = "User"; + gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>; + zephyr,code = ; + }; + }; + + aliases { + led0 = &green_led; + led1 = &yellow_led; + led2 = &red_led; + sw0 = &user_button; + watchdog0 = &iwdg; + }; +}; + +&clk_lsi { + status = "disabled"; +}; + +&clk_hsi48 { + status = "disabled"; +}; + +&clk_hse { + clock-frequency = ; + status = "okay"; +}; + +&clk_lse { + status = "okay"; +}; + +&pll { + div-m = <12>; + mul-n = <200>; + div-p = <2>; + div-q = <2>; + div-r = <2>; + div-s = <2>; + div-t = <2>; + clocks = <&clk_hse>; + status = "okay"; +}; + +&rcc { + clocks = <&pll>; + clock-frequency = ; + dcpre = <1>; + hpre = <1>; + ppre1 = <2>; + ppre2 = <2>; + ppre4 = <2>; + ppre5 = <2>; +}; + +&usart1 { + pinctrl-0 = <&usart1_tx_pb14 &usart1_rx_pa10>; + pinctrl-names = "default"; + current-speed = <115200>; + status = "okay"; +}; + +&usart3 { + pinctrl-0 = <&usart3_tx_pd8 &usart3_rx_pd9>; + pinctrl-names = "default"; + current-speed = <115200>; + status = "okay"; +}; + +&iwdg { + status = "okay"; +}; + +&wwdg { + status = "okay"; +}; + +&adc1 { + pinctrl-0 = <&adc1_inp15_pa3>; /* Arduino A0 */ + pinctrl-names = "default"; + st,adc-clock-source = "SYNC"; + st,adc-prescaler = <4>; + status = "okay"; +}; + +&spi1 { + status = "okay"; + pinctrl-0 = <&spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pb5>; + pinctrl-names = "default"; + cs-gpios = <&gpiod 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; +}; + +&i2c1 { + pinctrl-0 = <&i2c1_scl_pb8 &i2c1_sda_pb9>; + pinctrl-names = "default"; + status = "okay"; + clock-frequency = ; +}; diff --git a/boards/st/nucleo_h7s3l8/nucleo_h7s3l8.yaml b/boards/st/nucleo_h7s3l8/nucleo_h7s3l8.yaml new file mode 100644 index 00000000000..f7b72a70d92 --- /dev/null +++ b/boards/st/nucleo_h7s3l8/nucleo_h7s3l8.yaml @@ -0,0 +1,15 @@ +identifier: nucleo_h7s3l8 +name: ST Nucleo H7S3L8 nucleo +type: mcu +arch: arm +toolchain: + - zephyr +ram: 640 +flash: 64 +supported: + - gpio + - uart + - watchdog + - entropy + - adc +vendor: st diff --git a/boards/st/nucleo_h7s3l8/nucleo_h7s3l8_defconfig b/boards/st/nucleo_h7s3l8/nucleo_h7s3l8_defconfig new file mode 100644 index 00000000000..3ed77fa885c --- /dev/null +++ b/boards/st/nucleo_h7s3l8/nucleo_h7s3l8_defconfig @@ -0,0 +1,21 @@ +# Copyright (c) 2024 STMicroelectronics +# SPDX-License-Identifier: Apache-2.0 + +# Disable SMPS +CONFIG_POWER_SUPPLY_DIRECT_SMPS=n + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable HW stack protection +CONFIG_HW_STACK_PROTECTION=y + +# Enable UART driver +CONFIG_SERIAL=y + +# Enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable GPIO +CONFIG_GPIO=y diff --git a/boards/st/nucleo_h7s3l8/support/openocd.cfg b/boards/st/nucleo_h7s3l8/support/openocd.cfg new file mode 100644 index 00000000000..af84952d31d --- /dev/null +++ b/boards/st/nucleo_h7s3l8/support/openocd.cfg @@ -0,0 +1,42 @@ + +source [find interface/stlink-dap.cfg] +transport select "dapdirect_swd" + +set WORKAREASIZE 0x8000 +set CHIPNAME STM32H7S3XX +set BOARDNAME NUCLEO-H7S3L8 + +# Enable debug when in low power modes +set ENABLE_LOW_POWER 1 + +# Stop Watchdog counters when halt +set STOP_WATCHDOG 1 + +# Reset configuration +# use hardware reset, connect under reset +# connect_assert_srst needed if low power mode application running (WFI...) +# reset_config srst_only srst_nogate connect_assert_srst + +#set CONNECT_UNDER_RESET 1 +#set CORE_RESET 0 + +source [find target/stm32h7rx.cfg] + + +$_CHIPNAME.cpu0 configure -event gdb-attach { + echo "Debugger attaching: halting execution" + gdb_breakpoint_override hard +} + +$_CHIPNAME.cpu0 configure -event gdb-detach { + echo "Debugger detaching: resuming execution" + resume +} + +# Due to the use of connect_assert_srst, running gdb requires +# to reset halt just after openocd init. +rename init old_init +proc init {} { + old_init + reset halt +}