Commit Graph
36899 Commits
Author SHA1 Message Date
Ning Yang 1b5cd007e7 spec: Refactor arm-pl011 build options
Close #5026
2024-09-19 05:42:16 +00:00
Sebastian Huber 6482c5cc56 bsps/arm: Fix BSP_START_VECTOR_RESERVED_SLOT
The option value is a string.
2024-09-19 04:57:35 +02:00
Sebastian Huber 2aa921c3be validation: Fix synchronization issue 2024-09-19 04:35:20 +02:00
Sebastian Huber 518d27fa75 libtest: Fix format specifier
This fixes a ttest01 failure.
2024-09-19 04:34:55 +02:00
Sebastian Huber 1119981e7c tests: Enable ISR in fatal extensions
Fix code locations left over by commit
3332e54772.

Update #5067.
2024-09-19 04:34:38 +02:00
Sebastian Huber 1f52965f98 dev/serial: Fix uninitialized variable warnings
Use the reset values to get rid of uninitialized variable warnings.
2024-09-19 04:17:53 +02:00
Utkarsh VermaandNing Yang 0f42153959 dev/serial: Refactor the pl011 driver
- Refactor the pl011 driver to be extensible.
- Add IRQ support and baudrate configuration support for pl011 driver.
- Modify related BSP.
- Add doxygen comments for arm-pl011.

Close #5026

Co-authored-by: Ning Yang <yangn0@qq.com>
2024-09-18 19:30:21 +00:00
Sebastian Huber d304a817db dev/serial: Move zynq_uart_input_clock()
This allows to wrap this function using the linker.
2024-09-17 01:53:58 +00:00
Sebastian Huber 3fe69b03a3 dev/serial: Optimize Zynq UART control reg writes
Just disable RX/TX to start the initialization sequence.  Do not double
disable RX/TX.  Enable RX/TX after the mode is set.
2024-09-17 01:53:58 +00:00
Sebastian Huber ff9b19ad7c dev/serial: Rework Zynq UART baud calculation
Calculate the best approximation for the desired baud and return the
error.
2024-09-17 01:53:58 +00:00
Sebastian Huber 6efbf0c7b8 dev/serial: Rework Zynq UART Doxygen groups 2024-09-17 01:53:58 +00:00
Sebastian Huber cf47b09c6a doxygen: Add console drivers group 2024-09-17 01:53:58 +00:00
Sebastian Huber 5d8d55a1cd dev/serial: Simplify zynq_uart_reset_tx_flush()
Load the status register only once.  Use _IO_Relax() to reduce bus
traffic while waiting and simplify testing.
2024-09-17 01:53:58 +00:00
Sebastian Huber 6757607199 dev/serial: Do not output '\r' during reset
It is not clear why this is necessary.  For example, the
zynq_uart_initialize() does not issue the '\r' before waiting for an
inactive transmission state.
2024-09-17 01:53:58 +00:00
Sebastian Huber a078b091c1 dev/serial: Use _IO_Relax()
This reduces the system bus load while waiting for a state change.  In
addition, it simplifies testing by using a wrapped _IO_Relax().
2024-09-17 01:53:58 +00:00
Adrien Chardon 7be49773c0 bsps/shared/zynq-uart-polled: fix bug in zynq_uart_initialize()
Similar to the recent commit in tms570-sci.c, the assumption that a UART will
only see printable ASCII characters, instead of any value in the range
0x00-0xFF, is wrong.

A non forgiving binary protocol will be thrown off by this driver sending
"\r\r\r\r" when initializing.

If a user wants to flush the interface, they should explicitely use the
dedicated function `tcflush(fd, TCIOFLUSH);`.
2024-09-17 01:53:58 +00:00
alessandronardin 333a1aee2b posix/aio_misc-c/rtems_aio_completed_list_op(): Path with no lock release.
Coverity CID 1619144

In rtems_aio_completed_list_op() memory was getting freed without releasing
a lock.

This commit should also solve coverity issues 1619145, 1619143 and 1619142
since they all seem to be generated by rtems_aio_completed_list_op().

Closes #5127
2024-09-14 11:46:56 +02:00
zhengxiaojun 29a0d99bfd cpukit/libmisc/shell:fix command df overflow
- change type unsigned to uint64_t, it might overflowed if
    the size is greater the 4GB.
  - increase buffer size is to eliminate the compiler's warning
    that the buffer might be too small
2024-09-13 21:30:43 +00:00
alessandronardin 31c91be2ea posix/aio: updated documentation after changes to lio_listio()
updated the doxygen comment in aio.h
updated the description in spec/build/cpukit/optposix.yml
2024-09-13 21:30:02 +00:00
Christian Mauderer 3edf2bd579 bsps/arm/atsam: Remove README.md
Migrated to the rtems-docs repository.

Updates #5088
2024-09-13 20:55:15 +00:00
Mohamed Hassan e91c136f67 libmisc/stackchk: fix Doxygen file comment
revert back to the original RTEMS Doxygen guidelines by adding @file and @ingroup
2024-09-13 00:56:13 +00:00
Sebastian Huber ce1fb41a6c kvprintf(): Fix '+' conversion handling
For example, printf("%+i", 1) prints "+1".  However, kvprintf() did
print just "1" for this example.  According to PRINTF(3):

  A sign must always be placed before a number produced by a signed
  conversion.

For "%+r" radix conversions, keep the "+" handling as it is, since this
is a non-standard conversion.  For "%+p" pointer conversions, continue
to ignore the sign modifier to be in line with libc.

This change allows to support the ' conversion modifier in the future.

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1310
2024-09-12 23:34:28 +00:00
Sebastian Huber 48618b1060 ntptime: Use time_t for tv_sec related variables
The struct timespec tv_sec member is of type time_t.  Make sure that all
variables related to this member are of the type time_t.  This is important for
targets where long is a 32-bit type and time_t a 64-bit type.

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1373
2024-09-12 17:26:27 +00:00
Joel Sherrill 9d6f171039 bsps/i386/include/bsp/irq.h is pc386 specific
The IRQ list in this file are specific to PC hardware and should be
part of the BSP. Further, there are paravirtualized environments which
do not follow the PC hardware IRQ list. Moving this avoids collisions.
2024-09-12 04:58:14 +00:00
Joel Sherrill 3aa1f1faee poll.h and sys/poll.h were in both RTEMS and Newlib
Remove the copies in RTEMS. Most POSIX headers are in Newlib.

CLoses #5126
2024-09-12 04:57:43 +00:00
Sebastian Huber a9bff015f6 stackchk: Avoid implementation header in API
Update #5047.
2024-09-12 02:26:15 +00:00
Sebastian Huber 4abed2b422 stackchk: Fix Doxygen file comment
Update #5047.
2024-09-12 02:26:15 +00:00
Sebastian Huber 5b1c17f85a confdefs: Fix extensions.h
Resurrect proper file comment.  Order copyrights according to template.  Remove
white space at the end of line.  Do error checks early.  Define objects under
optional extern "C".

Update #5047.
2024-09-12 02:26:15 +00:00
alessandronardin d670dafaa4 posix/lio_listio.c: corrected return when RTEMS_POSIX_API is undefined
Modified the body of lio_listio(), to make sure it return -1 and sets
errno to ENOSYS, when RTEMS_POSIX_API is not defined.

The psxenosys test has been modified to test for lio_listio() only
when RTEMS_POSIX_API is not defined. In the test all the puts() have
been removed. If kept they would have made the output of the test depending
on the build configuration, making the content of psxenosys.scn inconsistent.
Removing the puts() makes the .scn file valid regardless of the build
configuration.

Additionally, rtems_aio_notify() in aio_misc.c has been modified,
simplifying it and reducing the part inside the ifdef.

Closes #5125
2024-09-10 08:41:53 +02:00
Joel Sherrill fe6b7bc3cb score/cpu/arm/cpu.c: Fine tune paravirtualization for interrupt set/get level 2024-09-10 02:45:07 +00:00
Joel Sherrill f075fa55cd spmsgq_err[12]: Add message sizes to configuration
The test had hard-coded numbers for maximum messages and message sizes.
As a result, it did not configure the memory required for message
storage.
2024-09-09 18:49:49 -05:00
Kinsey Moore 6dee307542 bsps/stm32h7: Add SPI support
This adds support for the 6 SPI interfaces on the STM32H7 series chips
with an initial example for the stm32h750b discovery kit development
board. Configuration is similar to existing peripherals. Chip select
lines are software-controlled since the SPI peripheral only supports a
single hardware-controlled chip select line. This implementation does
not use interrupts.
2024-09-06 01:15:21 +00:00
Kinsey Moore bcf0cee545 cpukit/stackchk: Explicitly cast from void* to uintptr_t 2024-09-06 01:15:21 +00:00
Kinsey Moore 243f88992f bsps/arm/irq: Avoid array comparison
This removes the array comparison warning by explicitly taking the
address of the arrays.
2024-09-06 01:15:21 +00:00
Kinsey Moore 5b13baf96a bsps/stm32h7: Resolve HAL const warning
HAL init functions take a non-const reference parameter. Explicitly cast
away the constness to remove the warning.
2024-09-06 01:15:21 +00:00
Kinsey Moore 31d2a2acb1 bsps/stm32h7: Resolve warning due to missing prototype 2024-09-06 01:15:21 +00:00
alessandronardin acd2a24d64 cpukit/posix/src/aio_misc.c: Fix for illegal memory access.
CID 1618881:  Memory - illegal accesses  (USE_AFTER_FREE)
2024-09-05 23:13:25 +00:00
Karel Gardas f61086a404 Revert "bsps/stm32h7: Workaround STM32 H7 errata by enforcing aligned access only"
This reverts commit d81bf04501.

The commit is reverted as this is only partial solution and remaining part
to fix properly is extremely hard and usually done in completely diffetrent
way. Hence let's not enforce compiler but rather enforce RTEMS/H7 users.
2024-09-03 00:39:54 +00:00
alessandronardin 1b6684ee2b cpukit/posix/aio*: Added support for lio_listio()
This commit adds support for lio_listio().
psxaio05 has been added to test the new method.
To avoid code duplication, the body of aio_read and aio_write has been
moved in two helper methods. In this way i can use it also in lio_listio().

In addition to that, a limit on the number of total aio operation enqueued
has been added.

Updates rtems/programs/gsoc#29
2024-09-02 18:16:30 +02:00
Kinsey Moore ad51286e2b cpukit/stackchk: Remove additional offset of SANITY_PATTERN_SIZE_WORDS
This offset is already accounted for by Stack_check_Usable_stack_start()
called from Stack_check_Visit_stack() and adding it a second time can
cause interaction beyond the bounds of the stack.
2024-08-28 13:42:37 +00:00
Sebastian Huber cb0a530503 arm: Fix FIQ default handler
Save the registers of the previous context and not the banked registers
of the FIQ mode.
2024-08-28 04:19:40 +02:00
Sebastian Huber 2598428809 arm: Add _CPU_Exception_resume() 2024-08-28 04:19:39 +02:00
Sebastian Huber 5f75cbaa74 arm: Fix system call default exception handler 2024-08-28 04:19:39 +02:00
Sebastian Huber eb8a39e115 arm: Simplify default exception handling
Writes to the execution state bits of the CPSR through MRS instructions
are ignored.
2024-08-28 04:19:39 +02:00
Sebastian Huber 7915631552 arm: Simplify default exception handling
Do not clear the VFP context pointer twice.
2024-08-28 04:19:39 +02:00
Sebastian Huber 5d86677dfe bsps/arm: Add BSP_START_VECTOR_RESERVED_SLOT
Allow BSPs to customize the reserved vector table slot.  By default, use
an undefined instruction.
2024-08-28 04:19:39 +02:00
Sebastian Huber 2174ec336a arm: Remove _ARMV4_Exception_reserved_default()
The default exception handler uses the Save Program Status Register
(SPSR), however, if _ARMV4_Exception_reserved_default() would get
called, the state of this register is unpredictable.  Replace potential
calls to _ARMV4_Exception_reserved_default() with an undefined
instruction.
2024-08-28 04:19:39 +02:00
Sebastian Huber ea0e89b9a0 arm: Remove unused _ARMV4_Exception_irq_default() 2024-08-28 04:19:39 +02:00
Sebastian Huber bd48d10b4e arm: Mark _ARM_Exception_default() as no return
Remove dead code.
2024-08-28 04:19:39 +02:00
Sebastian Huber 1d5149e392 arm: Do not alter saved PSR in default FIQ handler
Make sure we save the real PSR of the previous context to the exception
frame.
2024-08-28 04:19:39 +02:00