Commit Graph

70 Commits

Author SHA1 Message Date
Sebastian Huber
002c6067ba bsps: Add fatal source/code to bsp_reset()
Mark bsp_reset() as no-return.  Use default BSP fatal handler in lm32 and m68k
BSPs.  Remove empty bsp_reset() implementation.

Update #5067.
2024-08-23 14:54:37 +00:00
Karel Gardas
e8172c8651 bsps/stm32h7: Fix typo causing crash on USB 2 initialization
There is certainly no USB 20 TG while there is a known USB 2 OTG tech. The
crash caused by this is well observed from media01.exe from libbsd compiled
for H7 and run on the board.
2024-08-09 14:28:40 +00:00
Karel Gardas
cb78150d86 bsps/stm32h7: update STM32 H7 HAL
This patch updates STM32 H7 HAL source files. The files are taken from two
STM projects from their github.com repositories:

(i)
https://github.com/STMicroelectronics/stm32h7xx_hal_driver.git

The project files are still available under BSD-3 license
and the version/commit used is:

fec141ce999da655a48e1a15db83a72d564a1312

which represents Release v1.11.3 exactly.

(ii)
https://github.com/STMicroelectronics/cmsis_device_h7.git

The project files are available under Apache 2.0 license. Fortunately
the project does not contain NOTICE file so no need to do anything special
when used in RTEMS.

The project version/commit imported is:

faccfec37f82f7a1319c21638111b0f7335de7fe

which represents Release v1.10.4 exactly.
2024-08-05 22:42:52 +00:00
Jacob Killelea
42ad53f395 New ST Nucleo STM32H755ZI BSP
## Implement a new ST Nucleo STM32H755ZI BSP

Hi all, for a project I recently acquired a Nucleo STM32H755ZI. Thanks to the work of @sebhub, @c-mauderer, and Karel Gardas, it was pretty easy to create a new Nucleo BSP for this chip by copying the Nucleo H743 BSP. I was not able to get the 8 MHz HSE clock enabled, so this is currently clocked off of the PLL using the 64 MHz HSI clock and the RTC clock is disabled. Other features haven't been thoroughly tested, but since they rely on the high quality STM32H7 HAL from ST, I have pretty high confidence in them. I've been able to run most testsuites.

I have tested:

* The CM7 core
* The CM4 core
* Console output on UART3 (the default USB UART) and the shell
* GPIO
* Sample programs like `hello`, `fileio` (and shell), `paranoia`, `unlimited`, etc.

Known Broken:

* Debugging with OpenOCD is wonky. I can set breakpoints, halt the processor and inspect memory and registers and return from functions, but stepping does not work.
* The program begins to run after being flashed but soon (under 1 second) stops running. Pressing the reset button makes the program run continuously afterward. The board resets nearly instantly.
* Shell commands `ls`, `cd`, `cpuuse`, etc. hang for a while before executing. I'm not sure where the time is spent because the built-in `time` command reports that these commands execute nearly instantly.

I haven't tested:

* Pretty much everything else

<!-- Default settings, if it is a dropdown it will set after submission -->
2024-06-06 05:37:35 +00:00
Karel Gardas
d01fb75f6c bsps/stm32h7: add modification notice required by Apache License 2.0 2023-07-31 15:47:58 +02:00
Karel Gardas
f08f75f0bd bsps/stm32h7: fix compilation issue after HAL update
Based on:

commit 99494370d6
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date:   Wed Mar 4 12:34:34 2020 +0100

    bsp/stm32h7: New BSP

    Update #3910.
2023-07-31 15:15:10 +02:00
Karel Gardas
ba8ac65929 bsp/stm32h7: Add and use BSP Doxygen group
Inspired by:

commit fe58f6ce4b
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date:   Thu Nov 26 08:13:52 2020 +0100

    bsp/stm32h7: Add and use BSP Doxygen group

    Update #3910.
2023-07-31 15:15:10 +02:00
Karel Gardas
7f3dc31336 bsps/stm32h7: workaround compilation issue with libbsd
Part of the new HAL requires float_t type definition. For that it includes
math.h header file which unfortunately brings a lot of math functions in.
One of them, 'log' conflicts with FreeBSD log function defined in systm.h
Provided hack is really just a crude work around this issue. Never thought
that Motorola 68881 would help me even in 21st century.
2023-07-31 15:15:09 +02:00
Karel Gardas
93bcf4e7a2 bsps/stm32h7: disable ETH_UpdateDescriptor as unused function 2023-07-31 15:15:09 +02:00
Karel Gardas
c2bae70c5d bsps/stm32h7: recreate stm32h7xx_hal_conf.h
Re-apply based on:

    commit 6bb6b69bb6
    Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
    Date:   Tue Apr 6 09:43:23 2021 +0200

        arm/stm32h7: Add STM32H7_HSE_FREQUENCY
2023-07-31 15:15:09 +02:00
Karel Gardas
1e99148578 bsps/stm32h7: Add init for sdmmc pins
Re-apply based on:

    commit 8fd29cfbc5
    Author: Christian Mauderer <christian.mauderer@embedded-brains.de>
    Date:   Tue Mar 2 16:14:41 2021 +0100

        stm32h7: Add init for sdmmc pins

        Update #4372
2023-07-31 15:15:09 +02:00
Karel Gardas
ed358507a3 bsp/stm32h7: Enable LL drivers
Re-apply based on:

    commit abb78587b6
    Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
    Date:   Wed Apr 1 11:11:59 2020 +0200

        bsp/stm32h7: Enable LL drivers

        Update #3910.
2023-07-31 15:15:09 +02:00
Karel Gardas
4b3d7993d2 bsp/stm32h7: Disable unused functions
Re-apply based on:

    commit e4ba06f8b4
    Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
    Date:   Thu Apr 2 08:28:56 2020 +0200

        bsp/stm32h7: Disable unused functions

        Update #3910.
2023-07-31 15:15:09 +02:00
Karel Gardas
f728eb4dc4 bsps/stm32h7: update STM32 H7 HAL
This patch updates STM32 H7 HAL source files. The files are taken from two
STM projects from their github.com repositories:

(i)
https://github.com/STMicroelectronics/stm32h7xx_hal_driver.git

The project files are still available under BSD-3 license
and the version/commit used is:

d5fc8d05fc16fa2a2a2f948cf6c6ab39e78358e1

which represents post Release v1.11.1 development tree.

(ii)
https://github.com/STMicroelectronics/cmsis_device_h7.git

The project files were re-licensed from previous BSD-3 to Apache 2.0
license. Fortunately the project does not contain NOTICE file so no need
to do anything special when used in RTEMS.

The project version/commit imported is:

6d5ef249bec5177e0e2a0880ed62df2132874d99

which is code-wise Release v1.10.3 exactly.
2023-07-31 15:15:09 +02:00
Kinsey Moore
46a4c5ea79 bsps/stm32h7: Make UART7 pins configurable
This change allows for the pins assigned to UART7 to be reconfigured via
config.ini.
2023-07-24 16:32:08 -05:00
Kinsey Moore
c2083e81f2 arm/stm32h7: Add support for STM32H750B-DK
This adds support for the STM32H750B-DK discovery kit. This kit includes
a built-in STLINKv3 debugger which provides a USB serial bridge for
USART3. USART1 is routed to the Arduino header and USART2 is routed to
the STMOD connector. This BSP reuses what would otherwise be duplicated
files from the stm32h747i-disco BSP. Note that system_stm32h7xx.c has
been imported from the STM repository with two minor changes wrapped
with #if __rtems__. This hardware has been tested with hello and ticker.
2023-07-20 09:14:36 -05:00
Sebastian Huber
bcef89f236 Update company name
The embedded brains GmbH & Co. KG is the legal successor of embedded
brains GmbH.
2023-05-20 11:05:26 +02:00
Karel Gardas
139bc390b5 score/arm: enhance ARMV7M MPU setup with capability to set control register
Due to API change, the patch also fixes affected BSPs and uses
value provided by MPU CTRL spec option there.

Sponsored-By:	Precidata
2023-03-16 15:40:22 +01:00
Karel Gardas
1a4e78b3a0 bsps/stm32h7: fix propagation of configured HSE freq. value into the code
Sponsored-By:	Precidata
2023-03-10 16:18:32 +01:00
Karel Gardas
f16b8fc32a bsps/stm32h7: allow config and usage of QSPI memory on stm32h757i-eval BSP
The QSPI memory is initialized and used only when the BSP configure file
sets QSPI memory size to non-zero value. Currently QSPI is run in memory
mapped mode which allows future RTEMS binary linkage and upload into QSPI
memory.

Sponsored-By:	Precidata
2023-02-05 20:42:24 +01:00
Karel Gardas
d068cdb384 bsps/stm32h7: import stm32h757i-eval QSPI memory high-level driver 2023-02-05 20:42:24 +01:00
Karel Gardas
f9169dca69 bsps/stm32h7: import MT25TL01G QSPI memory low-level driver 2023-02-05 20:42:24 +01:00
Karel Gardas
ae2367c505 bsps/stm32h7: remove external memory initialization from nucleo-h743zi BSP
Nucleo board does not provide any external memory so code does not have
any function here anyway.

Sponsored-By:	Precidata
2022-06-10 11:17:17 +02:00
Karel Gardas
e5e1c00491 bsps/stm32h7: move BSP start hooks into boards subdirectories
The idea here is to prepare for better per-board specialization
of the hooks function code.

Sponsored-By:	Precidata
2022-06-10 11:17:17 +02:00
Karel Gardas
a5bde172fe bsps/stm32h7: add board C files for stm32h747i-disco BSP
Besides C files for the BSP variant the patch also provides license
clarification on system_stm32h7xx.c file which is provided
in boards/stm/stm32h747i-disco directory.
The files comes from STM32CubeH7 project and references "root directory"
in its license comment and it's not clear where this points out.
Let's add clarification comment about it and also based on it
and resulting license let's add SPDX license identifier.

Sponsored-By:	Precidata
2022-06-01 15:49:19 +02:00
Karel Gardas
7cb73a34d4 bsps/stm32h7: include CMSIS Cortex-M4 header when required by configuration
Sponsored-By:	Precidata
2022-06-01 11:20:59 +02:00
Karel Gardas
ec39a69529 bsps/stm32h7: enable cache and MPU only on Cortex-M7
Sponsored-By:	Precidata
2022-06-01 11:20:49 +02:00
Karel Gardas
99f00b12dd bsps/stm32h7: enable SDRAM 2 MPU region
Sponsored-By:	Precidata
2022-05-27 20:17:32 +02:00
Karel Gardas
2fded8138d bsps/stm32h7: add board C files for stm32h757i-eval BSP
Besides C files for the BSP variant the patch also provides license
clarification on system_stm32h7xx.c file which is provided
in boards/stm/stm32h757i-eval directory.
The files comes from STM32CubeH7 project and references "root directory"
in its license comment and it's not clear where this points out.
Let's add clarification comment about it and also based on it
and resulting license let's add SPDX license identifier.

Sponsored-By:	Precidata
2022-05-27 20:17:32 +02:00
Karel Gardas
135d5274bd bsp/stm32h7: remove system files from start directory
The files are already presented in boards directories and are not needed
in start directory anymore.

Sponsored-By:	Precidata
2022-05-16 10:23:27 +02:00
Karel Gardas
31f756b07c bsp/stm32h7: copy system files to nucleo-h743zi board directory
Also adjust BSP spec file to make it buildable with board files.

Sponsored-By:	Precidata
2022-05-16 10:23:27 +02:00
Karel Gardas
f8a9a47de1 bsp/stm32h7: copy system files to stm32h743i-eval board directory
Also adjust BSP spec file to make it buildable with board files.

Sponsored-By:	Precidata
2022-05-16 10:23:27 +02:00
Karel Gardas
6b051182a9 bsp/stm32h7: remove stm32h7b3i-dk related changes from start system files
Sponsored-By:	Precidata
2022-05-16 10:23:27 +02:00
Karel Gardas
d8017f203e bsp/stm32h7: update stm32h7b3i-dk board system_stm32h7xx.c file
Updated content comes from STM32CubeIDE 1.9.0 generated for STM32H7B3I-DK
board and have RTEMS related changes merged in.

Sponsored-By:	Precidata
2022-05-16 10:23:27 +02:00
Karel Gardas
63e327f9fb bsp/stm32h7: cleanup osc, clk, per files for stm32h7b3i-dk board
Sponsored-By:	Precidata
2022-05-16 10:23:27 +02:00
Karel Gardas
7234516cc5 bsp/stm32h7: copy system files to stm32h7b3i-dk board directory
Also adjust BSP spec file to make it buildable with board files.

Sponsored-By:	Precidata
2022-05-16 10:23:27 +02:00
Karel Gardas
409b566571 bsp/stm32h7: update FMC configuration for SRAM and SDRAM usage
The patch merges differences in FMC configuration between system_stm32h7xx.c
file generated by STM32CubeIDE for 743i-eval2 board and the current RTEMS
ext-mem-ctl.c file.

Sponsored-By: Precidata
2022-04-07 08:04:19 +02:00
Sebastian Huber
2b54d2e8b8 bsp/stm32h7: Convert to UNIX line endings 2022-04-05 11:34:25 +02:00
Karel Gardas
ef2c5f70e7 bsp/stm32h7: bring all required changes into system_stm32h7xx for STM32H7B3I-DK BSP variant
The changes provided here are a result of a merge from various examples
system_stm32h7xx.c files provided by STMicroelectronics for the STM32H7B3I-DK
board with the original RTEMS file provided for the STM32H743I-EVAL2 board.
2022-04-05 10:35:31 +02:00
Karel Gardas
e2b673d410 bsp/stm32h7: properly ifdef all unsupported features in start -hal file while compiling for STM32H7B3I-DK BSP 2022-04-05 09:56:06 +02:00
Karel Gardas
2c4331a14d bsp/stm32h7: configure peripheral clocks for STM32H7B3xxQ (e.g. STM32H7B3I-DK BSP) 2022-04-05 09:56:06 +02:00
Karel Gardas
074cb1c61d bsp/stm32h7: configure oscillator for STM32H7B3xxQ (e.g. STM32H7B3I-DK BSP) 2022-04-05 09:56:06 +02:00
Karel Gardas
b50f3e88c2 bsp/stm32h7: configure AHB clock divider for STM32H7B3xxQ (e.g. STM32H7B3I-DK BSP) 2022-04-05 09:56:06 +02:00
Karel Gardas
27d1707f20 bsp/stm32h7: disable ethernet for STM32H7B3I-DK BSP variant
Note: the ethernet port is not presented on the board anyway.
2022-04-05 09:56:06 +02:00
Karel Gardas
c48bedd13a bsp/stm32h7: add flash latency configuration 2022-04-05 09:56:05 +02:00
Karel Gardas
0acc136039 bsp/stm32h7: add configuration for USART1 GPIO pins, registers and alternate function 2022-04-05 09:56:05 +02:00
Karel Gardas
044bc3ceab bsp/stm32h7: add power supply configuration 2022-04-05 09:56:05 +02:00
Joel Sherrill
dd70c81699 bsp_specs: Delete last remnants of these.
Updates #3937.
2021-11-29 08:50:03 -06:00
Robin Mueller
b24e81423e STM32H7 ethernet pin corrections
These patches were submitted a few months ago, but it was found out
that the default-by-family: [] were missing in the GPIO .yml lines.
This was fixed in this patch.

This patch accounts for different pins for the ETH peripheral
on STM32H7 devices. For example, the Nucleo H743ZI has slightly
different pins than other STM32H7 boards.
2021-07-20 07:37:42 +02:00
Sebastian Huber
94cf67ca66 bsps/irq: Remove BSP_INTERRUPT_VECTOR_MAX
This define is no longer used.

Update #3269.
2021-06-24 11:36:27 +02:00