Commit Graph
533 Commits
Author SHA1 Message Date
Christian Mauderer 094355d4f1 bsps/arm/imxrt: Optimize nocache memory settings
The nocache-memory was set as device memory. It's not necessary to be
that strict. Set it to normal non-cacheable non-shareable memory
instead.
2023-08-21 09:13:16 +02:00
Christian Mauderer 685f193280 bsps/arm/imxrt1166: Enable USB
Enable the USB modules in the FDT.
2023-08-21 09:13:16 +02:00
Christian Mauderer 91b1c7b0a6 bsps/imxrt: Fix enabling USBPHY in fsl_clock
The mcux-sdk tries to enable the USBPHY. But it uses the wrong register
for that. This patch fixes the bug.
2023-08-21 09:13:16 +02:00
Sebastian Huber ffec9f96fc arm: Fix cache support for ARM926EJ-S
The ARM926EJ-S is an ARMv5T architecture processor and lacks some
features of ARMv6 processors such as the ARM1176JZF-S.

Close #4940.
2023-08-10 08:34:34 +02:00
Sebastian Huber a96f5df50b bsp/lpc32xx: Fix lpc32xx_magic_zero_size 2023-08-09 07:22:10 +02:00
Sebastian Huber 6cef96b1ab bsp/lpc32xx: Increase SDRAM size to 64MiB
Increase stage 2 bootloader size to 16MiB.
2023-08-09 07:22:10 +02:00
Sebastian Huber b0285e5c9a bsp/lpc32xx: Remove hard to maintain comments
These comments duplicate the memory and region definitions of the linker
command file.
2023-08-09 07:22:10 +02:00
Sebastian Huber 573a7202e6 bsp/lpc32xx: Restore lpc32xx_set_translation_table_entries()
This implementation disables the MMU during the modification of the
translation table.  This behaviour is required by boot loaders for these
boards.
2023-08-09 07:22:10 +02:00
Sebastian Huber 5c2f2b304a bsp/lpc32xx: Fix warning
The type is a pointer.
2023-08-09 07:22:10 +02:00
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 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
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
Christian Mauderer 4a3ace7c7a bsps/imxrt: Add imxrt1166_cm7_saltshaker BSP
The BSP is for a custom i.MXRT1166 based board. At the moment, only the
cortex M7 is supported.
2023-07-24 14:41:06 +02:00
Christian Mauderer 780149bc38 bsps/imsrt: Make flash config more flexible
The flash configuration is something very board specific. So move the
file to a board specific location. Beneath that, not all controllers and
configurations need the flash config right at the address 0 of the
flash. For example on the i.MXRT11xx, the config has an offset for some
flash types.
2023-07-24 14:40:59 +02:00
Christian Mauderer 5bfcad2641 bsps/imx*: Support more GPIO controllers
The imx-gpio driver used in i.MX and i.MXRT BSPs generates a name based
on a fixed string. The original code only used one digit for the
controller. With the 13 GPIO controllers of the i.MXRT1166, that isn't
enough any more. This patch extends the name to two digits which should
be enough for the next controller generations.
2023-07-24 14:40:49 +02:00
Christian Mauderer 376db78f92 imxrt/mcux-sdk: Add HREQ-related bits
According to the reference manual the bits exist and they can be used.
Also confirmed by NXP support in the community forum:

https://community.nxp.com/t5/i-MX-RT/i-MXRT1160-LPSPI-HREQ-supported/m-p/1668647#M25512
2023-07-24 14:40:40 +02:00
Christian Mauderer b831014b12 bsps/imxrt: Fix getting qtmr clock for i.MXRT11xx
The function returned a multiplexer value instead of the frequency.
2023-07-24 14:40:25 +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
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 e58f25a924 xilinx-zynqmp: Include <rtems/termiostypes.h>
Include <rtems/termiostypes.h> for the Termios device driver support.
2023-06-12 07:45:12 +02:00
Joel Sherrill b2967081e5 xilinx-zynqmp: Include <rtems/libio.h> for rtems_termios_initialize() 2023-06-06 17:34:43 -05:00
Sebastian Huber 0c3d6f58f1 termios: Add <rtems/termiosdevice.h>
Add <rtems/termiosdevice.h> which does not depend on <rtems/libio.h> to
provide rtems_termios_device_context and rtems_termios_device_handler.
For polled serial device drivers, this removes a header file dependency
to the full file system support.
2023-05-31 10:07:17 +02:00
Sebastian Huber 5da3ff47df arm/xilinx-zynq: Initialize debug console once 2023-05-26 06:56:11 +02:00
Sebastian Huber bc31fb65d2 arm/xilinx-zynq: Do not provide legacy API
The header file <rtems/irq.h> provides a legacy API.  Do not provide it
by default through <bsp/irq.h>.
2023-05-26 06:56:11 +02:00
Sebastian Huber da2b49e7b7 bsps/arm: Use interrupt entry for IPI
Avoid a dynamic memory allocation for the inter-processor interrupt.
2023-05-26 06:56:11 +02:00
Sebastian Huber eff408b64f bsps/arm: Use interrupt entry for clock driver
Avoid a dynamic memory allocation for the clock driver interrupt.
2023-05-26 06:56:11 +02:00
Sebastian Huber 49720a90d8 arm/xilinx-zynq: Improve Doxygen file comments 2023-05-26 06:56:11 +02:00
Sebastian Huber ebe4224dce bsps/arm: Improve Doxygen groups 2023-05-26 06:56:11 +02:00
Sebastian Huber f69326d0c2 bsps: Improve Doxygen file comments 2023-05-26 06:56:11 +02:00
Christian Mauderer 6f034c18e8 imx_iomux: Don't set reserved bits in PAD_CTL
On most i.MX* the upper bits in SW_PAD_CTL are reserved. On some chips,
like the i.MXRT1166, they are a domain write protection. Setting them to
1 can have unexpected side effects.

The device tree uses these bits for some flags. Make sure that they are
not accidentally written to some value.
2023-05-22 09:45:42 +02:00
Christian Mauderer 97819b8a31 bsps/imxrt: Move board specific files
Move the files that are board specific and not specific to the chip
family into a separate folder.
2023-05-22 09:45:42 +02:00
Christian Mauderer c1a949745f bsps/imxrt: Make chip start code chip specific
Some parts of the startup code don't apply for all chips. Make that part
chip specific.
2023-05-22 09:45:42 +02:00
Christian Mauderer dd68ed6075 bsps/imxrt: Support more chip variants in header
The different variants of the i.MXRT have some minimal differences in
the fsl_flexspi_nor_config.h. Make sure that the header supports the
different chips.
2023-05-22 09:45:42 +02:00
Christian Mauderer d941dd0dad bsps/imxrt: Remove unmaintained defines
The defines for the different clock frequencies in the
fsl_clock_config.h do not represent the clock frequencies that have been
set up in the registers. Remove them to avoid someone trusting in
correct values.
2023-05-22 09:45:42 +02:00
Christian Mauderer 5e78c76c79 bsps/imxrt: Get clock for IMXRT11xx in drivers
The mcux_sdk has a different interface for getting the clock for
IMXRT11xx than for getting it in IMXRT10xx. Adapt simple drivers to
support that interface.
2023-05-22 09:45:42 +02:00
Christian Mauderer f3df09352c bsps/imxrt1052: PLL config based on speed grade 2023-05-22 09:45:42 +02:00
Christian Mauderer f467635161 bsps/imxrt: Adapt to new mcux-sdk version
Remove the old NXP MCUXpresso SDK and adapt the BSP so that it uses the
new mcux-sdk.
2023-05-22 09:45:36 +02:00
Christian Mauderer 4cb2b07402 bsps/imxrt: (Re-)Apply RTEMS patches to new lib
Reapply patches used in the old version of the NXP library and apply
patches necessary for the new version of the library.
2023-05-22 09:43:48 +02:00
Christian Mauderer 38ad41ecce bsp/imxrt: Update support library from mcux-sdk
This imports new files from the mcux-sdk support library. NXP now offers
the library as a git repository instead of a zip package. The git
repository supports multiple CPUs from the i.MXRT family:

  https://github.com/nxp-mcuxpresso/mcux-sdk.git

The imported files are from revision

  2b9354539e6e4f722749e87b0bdc22966dc080d9

This revision is the same as MCUXpresso 2.13.0 with small bug fixes.

For importing the files, a script has been used, that parses the
mcux-sdk cmake files and creates the yaml files for RTEMS:

https://raw.githubusercontent.com/c-mauderer/nxp-mcux-sdk/d21c3e61eb8602b2cf8f45fed0afa50c6aee932f/export_to_RTEMS.py
2023-05-22 09:43:48 +02: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