Commit Graph
81 Commits
Author SHA1 Message Date
Karel Gardas f89f0d8476 Revert "bsps/arm/beagle/dcan: Added DCAN support"
This reverts commit 26d50bdfb6.
2023-08-01 16:00:49 +02: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 0c10626f75 arm/stm32h7: build and install files added by new HAL 2023-07-31 15:15:10 +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
Karel Gardas 49c296b324 bsps/arm: fix nested extern decl. warnings brought by CMSIS files update 2023-07-28 22:15:10 +02:00
Karel Gardas c48c7d6f88 import Apache License 2.0 text file 2023-07-25 18:17:12 +02:00
Karel Gardas 6b2318acef bsps/arm: replace CMSIS v4 with CMSIS v5 files
CAVEAT: license change from BSD to Apache2 license!

Explanation:
The imported files come from CMSIS v5 project available on:

https://github.com/ARM-software/CMSIS_5/tree/develop

The files imported are located inside the CMSIS/Core/Include
project sub-directory.

The project does not provide any NOTICE file in its root directory nor
in the directory of the imported files.
The NOTICE file and its usage in the Apache 2 license was/is
so far the only issue mentioned in discussion of RTEMS developers/users
when considering inclusion of the code under Apache 2 license
into the RTEMS project.
Since the CMSIS v5 project is free from this legal hinder, we may freely
use it and update files to the latest version.

Technical: the patch replaces code from 2015 with the latest version
which brings quite a lot of bug fixes and most importantly opens
possibilities to support MCUs based on new ARM cores.
2023-07-21 17:30:14 +02:00
Karel Gardas 0e4e9dd421 score/arm: improve printed exception information for Cortex-Mx CPUs
Sponsored-By:	Precidata
2023-07-14 12:38:14 +02:00
Karel Gardas 56d21a7acc bsps/stm32h7: disable MPU alignment for M4-based BSP variants
There is no point in wasting precious memory space on enforced section
alignment for the purpose of MPU which is not implemented on M4 core
anyway.
2023-06-29 22:46:13 +02:00
Karel Gardas bf53ff2de2 bsps/amd64: add a new EFI-based variant of AMD64 BSP
The new amd64efi BSP supports:
- multiboot2 boot format. Runs well with GRUB.
- console based on either EFI simple text output or GOP-based framebuffer
- clock based on EFI event/timer API
- early console using either hard-wired PC-AT serial or just memory buffer
- with EFI support disabled the BSP is more or less equivalent to amd64 BSP
  with multiboot2 support
2023-04-29 20:41:23 +02:00
Karel Gardas 1590df5f9a bsps/amd64: increase CPU alignment to 16
AMD64 requires SSE support which operates on 128bit data values.
2023-04-29 20:41:23 +02:00
Karel Gardas 8804422a48 bsps/shared: import FreeBSD libefi library
The library is imported in minimalist version just to support future
amd64efi BSP.

The FreeBSD tree commit id with imported libefi version is:
ce7b20e5129cf0f269951b313d336a9c7d54d790
2023-04-29 20:41:23 +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 8f6d4b7d96 spec: add MPU CTRL option to be usable on ARMV7M based BSPs
The patch also enables usage of the option on imxrt and stm32h7 based BSPs.

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 673d7861e3 bsps/beagle: fix warning on possibly uninitialized clock control in pwmss. 2023-02-18 23:00:05 +01:00
Karel Gardas 4600dd1d2f bsps/beagle: fix warning on missing cast 2023-02-18 23:00:05 +01:00
Karel Gardas 14026f6b10 bsps/beagle: do not set values already set by spec file(s).
The patch fixes few symbol already defined warnings here.
2023-02-18 23:00:05 +01:00
Karel Gardas 0328a82c62 bsps/stm32h7: fix compilation failure of stm32h757i-eval-m4 BSP 2023-02-12 20:13:18 +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 d7f3918d13 bsps/arm: fix installation of core_cm4.h 2022-06-10 11:15:08 +02:00
Karel Gardas c3ad1e3c27 bsps/stm32h7: set SDRAM 1 size to 0 by default on nucleo-h743zi BSP
Nucleo does not have any SDRAM, so 0 size is the only possible right
choice here.

Sponsored-By:	Precidata
2022-06-02 10:44:30 +02:00
Karel Gardas 925bcdb8e8 bsps/stm32h7: set default linkage to flash for nucleo-h743zi BSP
Nucleo does not have any SDRAM so default linkage to SDRAM does not make
any sense here.

Sponsored-By:	Precidata
2022-06-02 10:44:30 +02:00
Karel Gardas 5a1f87a071 bsps/stm32h7: set default printk instance on nucleo-h743zi BSP to USART3
This is the default configuration of the board out of the box.
Any other possible/supported configuration requires soldering,
so definitely not out of the box experience.

Sponsored-By:	Precidata
2022-06-02 10:44:30 +02:00
Karel Gardas f2cf15b82a bsps/stm32h7: add stm32h747i-disco-m4 BSP variant
This patch adds stm32h747i-disco-m4 BSP variant and puts it in sync
with the stm32h747i-disco BSP variant hardware support. That means,
only USART 1, 2 and UART 8 are enabled. Also SDRAM 2 is set to 32MB,
SDRAM 1 size is set to 0.

Sponsored-By:	Precidata
2022-06-02 10:44:30 +02:00
Karel Gardas 8604b46ab6 bsps/stm32h7: set default SDRAM x sizes on stm32h747i-disco BSP
This means:

SDRAM 1: 0
SDRAM 2: 32 MB

Sponsored-By:	Precidata
2022-06-01 15:49:19 +02:00
Karel Gardas 587ce75111 bsps/stm32h7: disable all unsupported U(S)ARTs on stm32h747i-disco BSP
This patch disables all U(S)ARTs which are not supported by the board
itself and its provided connectors. That means only USART1 and 2
and UART8 are enabled.

Sponsored-By:	Precidata
2022-06-01 15:49:19 +02:00
Karel Gardas 8abb339640 bsps/stm32h7: add configuration and enable build of stm32h747i-disco BSP
Sponsored-By:	Precidata
2022-06-01 15:49:19 +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 04fd4ef2b6 bsps/stm32h7: set default SDRAM x sizes on stm32h757i-eval-m4 BSP
This means:

SDRAM 1: 0
SDRAM 2: 32 MB

Sponsored-By:   Precidata
2022-06-01 11:20:59 +02:00
Karel Gardas 30b2ad318b bsps/stm32h7: disable all U(S)ARTs except USART1 on stm32h757i-eval-m4 BSP
This patch disables all U(S)ARTs which are not supported by the board
itself and its provided connectors.

Sponsored-By:   Precidata
2022-06-01 11:20:59 +02:00
Karel Gardas 250254ff8f bsps/stm32h7: add configuration and enable build of stm32h757i-eval-m4 BSP
This is minimalist configuration for the stm32h757i-eval-m4 BSP provided
here. The only general enhancement worth mention is a flash origin address
configuration which is needed for simplification as M4 core boots
from second flash bank which starts at 0x8100000 by default. The boot
address of the core may be changed by using STM32CubeProgrammer. If done
so then also BSP configuration needs to be changed accordingly.

As the BSP variant is running on M4 core, there is also more configuration
changes required here. E.g. boot core and ABI (compilation flags)
in comparison with stm32h757i-eval BSP. On the other hand, C code is shared
completely with this BSP variant.

Sponsored-By:   Precidata
2022-06-01 11:20:59 +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 bdfc8d8f4d bsps/stm32h7: move cache implementation from obj to BSPs own yml file
This is done in preparation for future Cortex-M4 based BSP variants
which do not provide cache at all.

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 ed814cd8bc bsps/arm: add CMSIS Cortex-M4 Core Peripheral Access Layer Header File 2022-05-30 01:34:24 +02:00
Karel Gardas 186c891182 bsps/stm32h7: set default SDRAM x sizes on stm32h757i-eval BSP
This means:

SDRAM 1: 0
SDRAM 2: 32 MB

Sponsored-By:	Precidata
2022-05-27 20:17:32 +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 42ed4a6338 bsps/stm32h7: provide linkcmds for SRAM, FLASH_SDRAM and SRAM_SDRAM linking
Sponsored-By:	Precidata
2022-05-27 20:17:32 +02:00
Karel Gardas 3aab95f3a7 bsps/stm32h7: add and enable test set exclusion for stm32h757i-eval BSP
Sponsored-By:	Precidata
2022-05-27 20:17:32 +02:00
Karel Gardas 1ea6540c62 bsps/stm32h7: disable all U(S)ARTs except USART1 on stm32h757i-eval BSP
This patch disables all U(S)ARTs which are not supported by the board
itself and its provided connectors.

Sponsored-By:	Precidata
2022-05-27 20:17:32 +02:00
Karel Gardas 124912445c bsps/stm32h7: add configuration and enable build of stm32h757i-eval BSP
This is minimalist configuration for the stm32h757i-eval BSP provided
here. The only general enhancement worth mention is boot core
configuration which is needed here as this is the first dual-core board
supported by stm32h7 BSP family and we need to choose boot core in order
to get C files compiling well.

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 f91f30f69a MAINTAINERS: Add myself to Write After Approval
Add myself also to Localized Write Permission for x86_64.
2022-05-26 20:40:34 +02:00
Karel Gardas 635cd68aa7 bsp/arm: allocate .rtemsstack on REGION_STACK instead of on REGION_WORK
REGION_WORK may be backed by external RAM which may not be initialized
in a time we need stack to work well. E.g. code loaded in flash,
stack allocated on in-cpu SRAM and data (REGION_WORK) on external SDRAM.

Sponsored-By:	Precidata
2022-05-23 08:36:41 +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 836eeb686b bsp/stm32h7: move compilation of system files to BSPs spec. files
The patch is done in preparation for stm32h7 BSP tree refactoring.

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
Karel Gardas 282fba3c88 bsps/stm32h7: link to flash on STM32H7B3I-DK
The patch is needed due to smaller SRAM and completely disabled
SDRAM on the BSP variant.
2022-04-06 08:18:23 +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 bf64ff2bb7 bsp/stm32h7: use appropriate STM32H7B3xxQ define for STM32H7B3I-DK BSP variant 2022-04-05 09:56:06 +02:00
Karel Gardas 2414d9b151 bsp/stm32h7: configure S(D)RAM values for STM32H7B3I-DK BSP variant
Caveat: SDRAM 1 is completely disabled for now.
2022-04-05 09:56:05 +02:00
Karel Gardas c2e4128f73 bsp/stm32h7: HSE clock value configuration for STM32H7B3I-DK BSP variant 2022-04-05 09:56:05 +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 51db61ae48 bsp/stm32h7: disable UART 5, 7, 8, 9 and USART 3, 6, 10 for STM32H7B3I-DK BSP 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
Karel Gardas 1050b6294d bsp/stm32h7: add spec file for the STM32H7B3I-DK BSP variant 2022-04-05 09:56:05 +02:00