888 Commits

Author SHA1 Message Date
Sebastian Huber
26b95e148c libtest: Move parts to extra files
Move the RTEMS test printer and rtems_test_exit() to separate files, to
remove dependencies from the begin/end test messsage support.

Update #4963.
2024-07-10 06:01:25 +00:00
Gedare Bloom
88ca88f3fd cpukit/bsd-tree.h: prepend CPP with RTEMS_ scoping 2024-07-09 22:52:40 +00:00
Aaron Nyholm
c33ed55231 score/rbtree: install and use bsd-tree.h 2024-07-09 22:52:40 +00:00
Sebastian Huber
6d65f2cff9 bsps/arm/xilinx-zynq: Enable SMP for all variants 2024-07-08 03:43:58 +00:00
Sebastian Huber
2f299f7f88 aarch64/xilinx-zynqmp: Fix BSP build
The build issue was introduced by b48166b9b6.
2024-07-08 03:42:40 +00:00
Sebastian Huber
ffa6e26879 dhrystone: Prevent procedure merging
From the Dhrystone RATIONALE:

  o No procedure merging

    Although Dhrystone contains some very short procedures where execution would
    benefit  from  procedure  merging (inlining, macro expansion of procedures),
    procedure merging is not to be used.  The reason is that the  percentage  of
    procedure  and  function  calls  is  part of the "Dhrystone distribution" of
    statements contained in [1].  This restriction does not hold for the  string
    functions  of  the  C  version  since ANSI C allows an implementation to use
    inline code for these functions.

Close #5058.
2024-07-05 21:18:57 +00:00
Matheus Pecoraro
58748a3a71 amd64: Fix typo in amd64 obj.yml 2024-07-03 14:04:52 -03:00
Matheus Pecoraro
087645e58f amd64: Refactor amd64 and amd64efi spec files
Add a common group and object spec files for the amd64 and amd64efi BSPs
2024-07-01 17:49:11 +00:00
Ranulfo Raphael
19d8888ac6 libtest/dl12: Fix build issue
Updated from ld to gcc in the build script to ensure consistency in ABI
flags during the creation of incrementally linked objects.

Update #5053
2024-06-25 13:31:22 +00:00
Sebastian Huber
c4c3e68790 bsps/arm: Use fatal error for data cache disable
On the Cortex-A cores, at least the L1 data cache is required to provide
support for atomic operations.

Close #5050.
2024-06-25 03:58:34 +00:00
Sebastian Huber
2953f4c6e3 rtems: Fatal error for rtems_cache_disable_data()
On some targets or configurations, the data cache cannot be disabled.
The data cache may be necessary to provide atomic operations.  In SMP
configurations, the data cache may be required to ensure data coherency.

Close #5050.
2024-06-25 03:58:34 +00:00
Kinsey Moore
b48166b9b6 bsps/aarch64/zynqmp: Add memory error reporting
This adds error reporting for ZynqMP including L1 and L2 cache, on-chip
memory (OCM) error correcting code (ECC), and DDR ECC. OCM ECC supports
fault injection from within RTEMS. DDR ECC technically supports fault
injection as well, but requires that the program injecting faults
operate exclusively outside of DDR. The AArch64 port is not currently
capable of operating exclusively in OCM due to size constraints and
would need to be booted via JTAG or via a non-relocating u-boot to
accomplish this.
2024-06-21 05:57:21 +00:00
Ranulfo Raphael
78afce5bf2 testsuites/libtest: Add DL incremental link test
This commit adds a test to validate the incremental linking
functionality in RTL. The test is related to issue #3740.
2024-06-21 03:31:29 +00:00
Utkarsh Verma
dff15a820f aarch64/raspberrypi: Add gpio driver
Close #5029

Co-authored-by: Ning Yang <yangn0@qq.com>
2024-06-21 03:29:10 +00:00
Sebastian Huber
0951e4e617 bsps/aarch64: Unify clock driver build
Make sure <dev/clock/arm-generic-timer.h> is installed.  The installation was
erroneously removed by commit 00f0d307b4 for most
BSPs.
2024-06-14 02:47:01 +00:00
Sebastian Huber
d773df1d0f build: Fix double use of objects item
In waf, install targets must not be specified more than once.
2024-06-13 19:49:52 +00:00
Matheus Pecoraro
ad24b764d6 amd64: Add bsp_reset
Add a temporary implementation of bsp_reset using the keyboard
controller until the ACPI method can be implemented
2024-06-13 12:35:57 +00:00
Jacob Killelea
9fb9337b61 spec/stm32h7: Default nucleo-h755zi BSP to build for CORE_M7
## spec/stm32h7: Default nucleo-h755zi BSP to build for CORE_M7

Some of the STM32H7 parts have a secondary Cortex M4 core included and require the user to select which core they are compiling for. The `arm/nucleo-h755zi` BSP was lacking a default core selection, causing the BSP to fail to build with the default options selected. This PR changes the default option to select the larger Cortex M7 core by default.
2024-06-11 18:05:11 +00:00
Sebastian Huber
28c7475b17 aarch64/xilinx-zynqmp: Relocate RAM area
Use first 1GiB of the DDR RAM with the exception of a potential 64KiB NULL
pointer protection area by default.  The upper part of the DDR RAM may be used
by the RPU or for dynamic memory.
2024-06-10 18:01:08 +00:00
Aaron Nyholm
e950c4d76a bsps: Add flash wrapper for Xilinx GQSPI
Closes #4870
2024-06-10 17:58:00 +00:00
Aaron Nyholm
fb4f9f8c4f build: Fix build issues with xqspipsu on versal
Updates #4870
2024-06-10 17:58:00 +00:00
Christian Mauderer
15f16def12 bsps/imx*: Add an i.MX* specific GPIO SPI driver
This driver uses the generic spi-gpio driver to implement one based on
the i.MX* GPIO API.
2024-06-07 06:46:00 +00:00
Christian Mauderer
0e7567bc2a bsps: Add a GPIO based SPI driver
The driver uses simple pin set or get functions to emulate an SPI. It
doesn't care much for speed settings and just tries it's best.
2024-06-07 06:46:00 +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
Sebastian Huber
b4a4baa32d bsp/tms570: Use RTI for CPU counter
The performance monitor counter is stopped when the core is waiting for
interrupts.

Update #4982.
2024-06-04 15:50:57 +00:00
Sebastian Huber
cc6f1d86cc bsp/tms570: Add clock BSP options
Update #4982.
2024-06-04 15:50:57 +00:00
Kinsey Moore
7eb3ef09b0 spec/xilinx-zynqmp-rpu: Calculate correct RAM area
There were some problems in the math calculating RAM length and NOCACHE
origin location. These have been resolved in this patch allowing RTEMS
RAM space to be relocated above 0xfe00000 to better accomodate other
elements in the system.
2024-05-21 22:55:13 +00:00
Sebastian Huber
ab8817ca03 rtems: Add get/set interrupt priorities
Add directives to get and set the priority of an interrupt vector.

Implement the directives for the following BSP families:

* arm/lpc24xx
* arm/lpc32xx
* powerpc/mpc55xxevb
* powerpc/qoriq

Implement the directives for the following interrupt controllers:

* GICv2 and GICv3 (arm and aarch64)
* NVIC (arm)
* PLIC (riscv)

Update #5002.
2024-05-10 13:26:22 +00:00
Sebastian Huber
f6c8726cb7 bsps/arm: Move BSP-specific header file 2024-05-10 13:20:45 +00:00
Sebastian Huber
ee7f847432 bsps/arm: Use shared object for ARM920 MMU support 2024-05-10 13:20:45 +00:00
Sebastian Huber
5a3a85ccdd bsps/arm: Move BSP-specific header file installs 2024-05-10 13:20:45 +00:00
Sebastian Huber
dfc147fd33 aarch64/xilinx-zynqmp: Enable errata workarounds
Close #5003.
2024-05-08 12:19:07 +02:00
Ning Yang
00f0d307b4 bsps/aarch64/raspberrypi: Add system timer support
The clock from the ARM timer is derived from the system clock. This clock can
change dynamically e.g. if the system goes into reduced power or in low power
mode. Thus the clock speed adapts to the overall system performance
capabilities. For accurate timing it is recommended to use the system timers.

if BSP_CLOCK_USE_SYSTEMTIMER = 1, use the System Timer, otherwise use the ARM
Timer.
2024-04-30 01:39:06 -04:00
Sebastian Huber
286a80a80d validation: Test global construction on aarch64
Update #3716.
2024-04-30 01:39:06 -04:00
Ning Yang
b7a0e2a89b dev/clock: Move bcm2835-system-timer driver to shared space
This patch moves the bcm2835 system timer driver in the arm/raspberrypi directory to the shared directory and adjusts arm/raspberrypi BSP.
2024-04-30 01:39:05 -04:00
Sebastian Huber
087fc4351a bsps/xil-ttc: Improve clock driver
Make the clock driver parameters configurable.  Use the maximum counter
frequency to get the best time resolution.  Decouple the CPU counter from the
timecounter.  Make the tick catch up handling more robust.  Add a validation
test for the tick catch up.
2024-04-30 01:39:05 -04:00
Sebastian Huber
5a8e99546f bsps/xil-ttc: Add XIL_FATAL_TTC_IRQ_INSTALL 2024-04-30 01:39:05 -04:00
Sebastian Huber
3f4fcc28df build: Install <rtems/score/processormaskimpl.h> 2024-04-30 01:39:05 -04:00
Sebastian Huber
1d668054c0 bsp/qoriq: Do not build unused object 2024-04-30 01:39:05 -04:00
Sebastian Huber
53d092471f dev/serial: Add Zynq UART kernel I/O support
Replace the BSP_CONSOLE_MINOR BSP option for the Xilinx Zynq BSPs with the new
BSP option ZYNQ_UART_KERNEL_IO_BASE_ADDR.  Move the kernel I/O support to a
shared file.
2024-04-04 12:53:53 +02:00
Sebastian Huber
8ad3f92b9a dev/serial: Add ZYNQ_UART_[01]_BASE_ADDR
This helps to provide a shared implementation of the kernel I/O support.
2024-04-04 12:53:51 +02:00
Sebastian Huber
e1cb8830b7 testsuites: Exclude JFFS2 NAND tests 2024-03-20 08:27:40 +01:00
Sebastian Huber
431e335e7e bsps: Add xilinx_zynqmp_lp64_a53 BSP variant
Add a BSP variant without a board-specific name.
2024-03-20 07:40:41 +01:00
Sebastian Huber
1e406690a5 bsps: Add xilinx_zynq_rpu BSP variant
Add a BSP variant without a board-specific name.
2024-03-20 07:40:41 +01:00
Sebastian Huber
8f4b9d6611 xilinx-zynqmp-rpu: Remove URLs from copyrights 2024-03-20 07:40:41 +01:00
Sebastian Huber
5b5ff07016 bsps: Use bsps/arm/xilinx-zynqmp-rpu 2024-03-20 07:40:41 +01:00
Sebastian Huber
99398625f4 bsps: Use bsps/aarch64/xilinx-zynqmp 2024-03-20 07:40:41 +01:00
Sebastian Huber
bc910e1aac arm: Move _CPU_ISR_install_vector()
The use of this function is optional. Newer BSPs do not use it.
2024-03-20 07:40:41 +01:00
Sebastian Huber
a7730cf1b1 aarch64/zynqmp: Fix build item BSP family 2024-03-11 16:43:40 +01:00
Sebastian Huber
283f783d5d aarch64/zynqmp: Fix UART base addresses and IRQ
The base addresses and IRQ numbers for UART 0 and 1 were interchanged.
Fix this and set BSP_CONSOLE_MINOR to 0 for this BSP family.
2024-03-11 14:22:53 +01:00