Commit Graph

34361 Commits

Author SHA1 Message Date
Sebastian Huber
a0a8262fd6 bsp/leon3: Fix compile error
Fix compile error with RTEMS_DRVMGR_STARTUP = True.
2021-06-23 08:12:49 +02:00
Christian Mauderer
5bb5e01356 i2c: Add non blocking read / write
This adds the possibility to open an I2C bus with O_NONBLOCK (or set it
later via fcntl) to get non-blocking transmissions. This means that if
the bus is busy, a read, write or transfer ioctl will return with a
EAGAIN errno.
2021-06-22 13:51:17 +02:00
Ryan Long
b47dbbc5f7 cpukit: Add timespecisnonnegative to Makefile.am 2021-06-21 15:01:10 -05:00
Christian Mauderer
8476715a49 cpu/armv7m: Fix initialization of MPU regions
The write to RBAR didn't have the valid flag set. Therefore the write to
RASR had an influence on the previously set region. That means for
example that if Region 0 had been enabled but 1 should be disabled due
to a size of 0, the previous code would have disabled region 0 instead.

This patch fixes that behaviour.

Close #4450
2021-06-21 16:11:36 +02:00
Christian Mauderer
5ad17be930 cpu/armv7m: Avoid regions with negative size
Don't initialze regions that have a negative size (for example due to a
wrong calculation).

Update #4450
2021-06-21 16:11:36 +02:00
Jan Sommer
93f9645595 bsps/i386: Update calibration of TSC to be more accurate
Closes #4455
2021-06-21 09:46:27 +02:00
Sebastian Huber
3ee19b7ac3 bsps/irq: Change license to BSD-2-Clause
Change license to BSD-2-Clause according to file history and
re-licensing agreement.

Update #3053.
2021-06-17 17:24:32 +02:00
Sebastian Huber
abe2d1596c rtems: Fix rtems_task_set_affinity() docs 2021-06-17 13:07:14 +02:00
Sebastian Huber
11cf6ae3e2 grlib: Simplify apbuart_inbyte_nonblocking() 2021-06-17 12:58:33 +02:00
Sebastian Huber
3af1e5e735 grlib: Fix apbuart_outbyte_polled() prototype
Callers usually want to output a character.
2021-06-17 12:58:33 +02:00
Sebastian Huber
af69a8693b grlib: Add apbuart_outbyte_wait() 2021-06-17 12:58:33 +02:00
Sebastian Huber
85febe7b10 grlib: Remove NL -> CR in apbuart_outbyte_polled()
This is already done in rtems_putc().
2021-06-17 12:58:33 +02:00
Sebastian Huber
634a2c0616 bsps/leon3: Auto initialization for printk()
Get rid of the hack to output into the idle stack during the early system
initialization.  This fixes also a couple of test program failures which fail
due to missing output.
2021-06-17 12:58:33 +02:00
Sebastian Huber
2c07f24af2 grlib: Add ambapp_plb()
Replace the global variable ambapp_plb with a function to allow an automatic on
demand initialization.
2021-06-17 12:58:33 +02:00
Sebastian Huber
c4c8d3fd50 grlib: Customizable allocation in ambapp_scan()
Make the memory allocations in ambapp_scan() customizable via the new struct
ambapp_context parameter which generalizes the memory copy handler.
2021-06-17 12:58:33 +02:00
Sebastian Huber
f89a527336 arm: Fix parameter use in AARCH32_PMSA_MEM_ATTR()
Update #4202.
2021-06-16 17:48:43 +02:00
Sebastian Huber
98cef4041b score: Comment _Thread_queue_Surrender_sticky()
The change also helps to avoid reports from static analysers since most
callers of _Thread_queue_Make_ready_again() check the unblock status.
2021-06-15 18:37:55 +02:00
Sebastian Huber
6abdd89f19 Use a common phrase for pointer parameters
Mention the type of the pointer in the parameter description.  Use the
more general term "object" instead of "variable".

Update #3993.
2021-06-15 10:39:47 +02:00
Sebastian Huber
fad01e6cf9 score: Add PER_CPU_DATA_NEED_INITIALIZATION()
Make the initialization of the per-CPU data optional.

Change license to BSD-2-Clause according to file history and
re-licensing agreement.

Update #3053.
2021-06-10 15:55:47 +02:00
Sebastian Huber
2769554243 splinkersets01: Test linker sets in library
Make sure that the linker sets work if placed in a library (this is how
they are used in RTEMS).
2021-06-10 08:43:28 +02:00
Sebastian Huber
93afcff7b5 bsps/sparc: Simplify memory initialization
Directly initialize the memory in the start sequence defined by start.S
instead of using a system initialization handler.  This avoids using the
global variable rdb_start which used a memory location which was shared
with _ERC32_MEC_Timer_Control_Mirror.  This change makes it possible to
use _Memory_Allocate() even before the system initialization is started.

Change license to BSD-2-Clause according to file history and
re-licensing agreement.

Update #3053.
2021-06-10 07:59:39 +02:00
Sebastian Huber
ef5a53bcf8 bsps/sparc: Simplify stack initialization
Initialize the stacks for all processors in one place.  Do not rely on
Per_CPU_Control::interrupt_stack_high and directly use the statically
allocated interrupt stack area.
2021-06-10 07:58:57 +02:00
Sebastian Huber
b823c9843d bsps/sparc: Unify stack initialization
Initialize the stacks in start.S in one place and identical to
_CPU_Context_Initialize().
2021-06-10 07:53:04 +02:00
Sebastian Huber
07f6a61d03 bsps/sparc: Remove support to load data section
Remove the support to load the data section and rely on the boot loader.  The
code is an artifact from the old erc32 days, when we would boot and execute
from ROM and the .data had to be copied over to RAM.  With leon1/2/3, this is
not used anymore as a boot loader is made from the RAM image using a custom
tool (mkprom).

In SMP configurations, this support was also broken since LEON3_Boot_Cpu
(in the data section due to the -1 initialization value) was used quite
early in the start sequence.

If the data copy is really necessary, then an application can still add this
step as a very early system initialization step, since boot_card() and the
system initialization loop does not use initialized read-write data (only
read-only and BSS data).  However, the SMP startup would still not work in this
case.  A boot loader is a better place to load the sections.
2021-06-10 07:50:00 +02:00
Sebastian Huber
7b8119a13a bsps/sparc: Remove unused __bsp_mem_init symbol 2021-06-10 07:50:00 +02:00
Sebastian Huber
6641cc87b8 score: Fix initialization of thread queue context
Set Thread_queue_Context::timeout_absolute in
_Thread_queue_Context_set_timeout_argument() to avoid using it uninitialized.

The bug was introduced by a89ecaa1a9.
2021-06-10 07:50:00 +02:00
Ryan Long
f83676d91f sysconf: Remove sysconf(515)
GCC originally needed this 20 years ago. No longer needed, so it
is being removed.

Closes #4391
2021-06-09 11:52:24 -05:00
Ryan Long
4127a6c056 main_edit.c: get rid of malloc warning
A warning was present when building RTEMS that stated that the argument
for malloc() exceeded the maximum object size. To get rid of this, I
  changed many places where 'int' was being used to 'size_t'.
2021-06-09 11:52:24 -05:00
Gedare Bloom
8299b79d66 aarch64: add qemu bsps for cortex-a72
The a72 BSPs are identical to the a53 BSPs just changing a53 to a72.
2021-06-09 10:32:08 -06:00
Joel Sherrill
7a723293ab futimens.c, utime.c: Remove unnecessary include of <sys/stat.h>. 2021-06-09 10:36:06 -05:00
Joel Sherrill
dbe355bfe7 fsnofs01/init.c: Check for ENOENT from utime().
The addition of the entire *utime*() family of functions resulted
in this call returning ENOENT not ENXIO. This is better aligned
with the POSIX definition of the methods.
2021-06-08 13:14:53 -05:00
Sebastian Huber
34b45b17c5 score: Remove unused _Per_CPU_Initialize() decl 2021-06-08 09:10:21 +02:00
Sebastian Huber
55ce66ca73 arm/fvp: Fix integer from pointer without a cast
Update #4202.
2021-06-07 09:41:07 +02:00
Sebastian Huber
2d1c494fa8 arm/fvp: Remove unused GICv2 BSP option
Update #4202.
2021-06-07 09:05:33 +02:00
Harrison Edward Gerber
9429115c8b cpukit/libdebugger: Fix for sockaddr_in not being initialized
See also CID 1468684

Closes #4445
2021-06-02 09:31:30 -06:00
Harrison Edward Gerber
6a56fd9340 cpukit/libmisc/monitor: Fix src/dest overlap of strcpy in mon-editor.c
See also CID 1399727

Closes #4444
2021-05-28 16:00:32 -06:00
Ryan Long
ea41722c92 Change filesystem utime_h handler to utimens_h
Also updated licenses.

Closes #4400
Updates #3899
2021-05-28 14:27:40 -05:00
Ryan Long
6171a88d9c psx13: Added tests for utimensat() and futimens()
Improved tests for utime() and utimes() and update license.

Close #4399
2021-05-28 14:27:39 -05:00
Ryan Long
ea881bf7a1 libcsupport: Implement utimes() in terms of utimensat()
utimes() now calls utimensat() to update file access
and modification timestamps.

Updated license.

Closes #4398
2021-05-28 14:27:39 -05:00
Ryan Long
bb70412306 libcsupport: Implement utime() in terms of utimensat()
utime() now calls utimensat() to update file access
and modification timestamps.

Updated license.

Closes #4397
2021-05-28 14:27:39 -05:00
Ryan Long
335f705082 libcsupport: Added futimens() and utimensat()
Created futimens.c and utimensat.c to add support for the POSIX
methods futimens() and utimensat().

utime() and utimes() are considered obsolote by POSIX, but RTEMS
will continue to support them.

Closes #4396
2021-05-28 14:27:39 -05:00
Ryan Long
2deba0240e main_help.c: Do not care what char is returned by getchar()
CID 1437650: Unchecked return value from library in rtems_shell_help().

Closes #4291
2021-05-28 12:15:50 -05:00
Ryan Long
f29b312ea4 main_cp.c: Ignore return value from stat()
CID 26051: Unchecked return value from library in main_cp().

Closes #4365
2021-05-28 12:15:50 -05:00
Ryan Long
a187b09228 gen_uuid.c: Ignore return values from fcntl()
CID 1049146: Unchecked return value from library in get_clock().
CID 1049147: Unchecked return value from library in get_random_fd().

Closes #4280
2021-05-28 12:15:50 -05:00
Christian Mauderer
156896526f thread-API: Add rtems_*mutex_try_lock
This adds a rtems_mutex_try_lock and a rtems_recursive_mutex_try_lock.

Update #4440.
2021-05-28 08:22:04 +02:00
Christian Mauderer
023a270962 cpukit: Add description of release version numbers
The release version in the git sources doesn't change. Add a note why
that is the case.
2021-05-28 08:22:04 +02:00
Sebastian Huber
bf36f5de94 score: Add RTEMS_UNREACHABLE() to a group 2021-05-28 07:49:36 +02:00
Kinsey Moore
d0eaf3ec1c spec/aarch64: Add BSPs for real ZynqMP hardware
Add the BSPs for running on the ZU3EG Ultrascale+ Zynq MPSoC and alter
the option defaults necessary for them to run properly using the
standard BOOT.BIN configured for PetaLinux that comes in the Out-of-Box
package.
2021-05-27 14:09:00 -05:00
Kinsey Moore
5fe49a0853 bsps/aarch64: Add MMU driver to relax alignment
Currently, the AArch64 BSPs have a hard time running on real hardware
without building the toolchain and the bsps with -mstrict-align in
multiple places. Configuring the MMU on these chips allows for unaligned
memory accesses for non-device memory which avoids requiring strict
alignment in the toolchain and in the BSPs themselves.

In writing this driver, it was found that the synchronous exception
handling code needed to be rewritten since it relied on clearing SCTLR_EL1 to
avoid thread stack misalignments in RTEMS_DEBUG mode. This is now
avoided by exactly preserving thread mode stack and flags and the new
implementation is compatible with the draft information provided on the
mailing list covering the Exception Management API.
2021-05-27 14:09:00 -05:00
Kinsey Moore
ae5e1d9797 bsps/a53: Increase available RAM
The default available RAM on the A53 BSP is quite small at 8MB. This
bumps that to 128MB to avoid allocation failures in tmcontext01 caused
by large allocations on a cache size of 16MB reported by the system
registers in QEMU.
2021-05-27 14:09:00 -05:00