Commit Graph

33142 Commits

Author SHA1 Message Date
Sebastian Huber
b4387313f7 psxmsgq03: Adjust test case
Commit e225545357 changed the error status
from ENOMEM to EAGAIN.

Update #3857.
2020-01-28 15:09:58 +01:00
Sebastian Huber
e7a7e6cad6 smptests/smpmulticast01: Fix test configuration
Problem introduced by 77ac1519e8.
2020-01-28 15:09:58 +01:00
Sebastian Huber
754f78faa8 libtest: Fix T_check_task_context()
Fix T_check_task_context() in RTEMS_SMP with RTEMS_DEBUG configurations.
2020-01-28 15:09:58 +01:00
Sebastian Huber
26443da46c record: Fix configuration 2020-01-28 12:26:17 +01:00
Martin Erik Werner
e225545357 Use EAGAIN for POSIX mq wait in ISR error
Modify the status code returned by _CORE_message_queue_Submit() when it
detects a wait about to happen in an ISR (which would be deadly) to
return a status which translated to EAGAIN instead of ENOMEM.

This is only relevant for POSIX message queues, since Classic API message
queues cannot block on send.

The motivation is to match the "most related" errno value returned from
mq_send() and mq_timedsend() according to POSIX, via Open Group:

  [EAGAIN]
      The O_NONBLOCK flag is set in the message queue description
      associated with mqdes, and the specified message queue is full.

or via the RTEMS POSIX users documentation

  EAGAIN
    The message queue is non-blocking, and there is no room on the queue
    for another message as specified by the mq_maxmsg.

Neither of these matches the case ofi avoided ISR wait perfectly, but
they seem to be the closest equivalent, unless it is desirable to keep a
new non-standard error for this case. It is presumed that this is not
desirable.

The previously returned ENOMEM error value is not documented in either
the Open Group or the RTEMS POSIX uses documentation. A companion patch
corrects the documentation to include this error condition.

Based on the discussion in:
https://lists.rtems.org/pipermail/devel/2020-January/056891.html

closes #3857.

Message-Id: <CAF9ehCW5P12ZkZja4UPYTbdBFUyC1VKVL-tU7nyUtvK1Lz2Z3g@mail.gmail.com>
2020-01-24 08:01:22 -06:00
Kinsey Moore
ebf0f8f13f bsps/arm/shared: Add GICv3 implementation
This adds support for the GICv3 interrupt controller along with the
redistributor to control SGIs and PPIs which wasn't present in GICv2
implementations. GICv3 implementations only optionally support
memory-mapped GICC interface interaction and require system register
access be implemented, so the GICC interface is accessed only
through system registers.
2020-01-17 16:17:42 -06:00
Joel Sherrill
5e7b3c6533 posix_devctl - Add support for SOCKCLOSE
The FACE Technical Standard, Edition 3.0 and later require the definition
of the subcommand SOCKCLOSE in <devctl.h>.

Reference: ​https://www.opengroup.org/face

closes #3856.
2020-01-17 16:13:35 -06:00
G S Niteesh
362cf319d4 bsp/raspberrypi: Updated the console API.
Replaces the legacy termios API with new termios API (#3034)
Replaces the custom PL011 serial driver with RTEMS arm-pl011.
Update #3034
2020-01-07 18:21:16 +01:00
G S Niteesh
eca25efe27 bsp/raspberrypi: Enable FDT support.
This commit adds FDT support to the BSP.
2020-01-07 17:55:13 +01:00
Christian Mauderer
f1f6cd95c9 bsp/raspberrypi: Fix size of work area.
The BSP tried to get the size of the SDRAM based on the revision code.
Unfortunately the code had some bugs so that the default size has been
used. Beneath that the MMU table hasn't been adapted.

This patch queries the SDRAM size via a special VC Mailbox call instead.
For the MMU adaption a simmilar method to the one in the imx BSP is
used.
2020-01-07 17:55:13 +01:00
Christian Mauderer
c51f1fc526 bsps/arm: Define index of the workspace entry.
The imx BSP contained a hack to change the workspace entry of the MMU
table. This makes the used define visible for other BSPs too so that the
same hack can be used for example in raspberry pi too.
2020-01-07 17:55:13 +01:00
Gedare Bloom
a546de5249 cpukit/libfs: remove more dead code from pipe/fifo.c
Dead code identified by Coverity (CID 1456674). The value of ret
at line 358 is always 0.
2020-01-03 11:54:58 -07:00
Gedare Bloom
739e3d0f72 bsps/irq: fix resource leak in irq-server.c
Resource leak identified by Coverity (CID 1456675). The value
of instances is leaked in case some but not all irq servers are
created. It should be stored in bsp_interrupt_server_instances.
2020-01-03 11:33:02 -07:00
Gedare Bloom
93ccb7288e cpukit/libfs: remove dead code from pipe/fifo.c
Dead code identified by Coverity (CID 1456678). The value of ret
at line 293 is always 0.
2020-01-03 11:23:09 -07:00
Sebastian Huber
f74e806d79 mpci: Fix blocking proxy status
Remove THREAD_STATUS_PROXY_BLOCKING and replace it with
STATUS_PROXY_BLOCKING.
2020-01-02 11:35:46 +01:00
Sebastian Huber
453bb4b642 rtems: Fix MPCI initialization
Update #2408.
2020-01-02 09:26:59 +01:00
Sebastian Huber
a320aeddd9 score: Fix objects node initialization
The objects node is statically initialized to one.  Clear the node field
before it is set.

Update #3621.
2020-01-02 09:20:37 +01:00
Sebastian Huber
a3706d4ce1 bsps/powerpc: Fix warning
Update #3834.
2020-01-02 07:54:47 +01:00
Sebastian Huber
7c21077db6 sppercpudata01: Test PER_CPU_DATA_OFFSET()
Make sure PER_CPU_DATA_OFFSET() is tested also in uniprocessor
configurations.
2019-12-20 13:35:13 +01:00
Sebastian Huber
556e45f24b libtest: Add T_check_task_context() action 2019-12-20 11:06:13 +01:00
Sebastian Huber
77ac1519e8 libtest: Use test configuration in T_now()
Use the user provided now handler of the test configuration to get the
time in T_now().
2019-12-20 11:06:13 +01:00
Sebastian Huber
8c3b0d7445 libtest: Fix use of T_check_true() 2019-12-20 10:27:13 +01:00
Sebastian Huber
86abbb6e1e bsps/powerpc: Support constructors with priority
Close #3339.
2019-12-19 14:21:05 +01:00
Sebastian Huber
806fe963a2 config: Improve EDF SMP scheduler configuration
Use CONFIGURE_MAXIMUM_PROCESSORS to configure the EDF SMP scheduler
context.  This avoids hard to debug configuration errors resulting in
memory corruptions.

Close #3815.
2019-12-19 14:21:05 +01:00
Chris Johns
c737748bb1 libmisc/top: Fix the idle time and priorities on SMP
- This patch is based on the patch attached to #3552 submitted
  by jameszxj.

Closes #3552
2019-12-19 14:21:05 +01:00
Sebastian Huber
2497da06de bsps/arm: Export bsp_start_hook_0_done
Close #3789.
2019-12-19 10:59:20 +01:00
Sebastian Huber
51fd6b47b1 config: Fix CONFIGURE_MAXIMUM_POSIX_THREADS
Bug was introduced by previous commit.

Update #3845.
2019-12-19 10:18:32 +01:00
Sebastian Huber
88c198bfae config: Remove Ada configuration options
Update #3845.
2019-12-19 08:54:20 +01:00
Sebastian Huber
3cec2dfbc4 config: CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
Rename CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS into
CONFIGURE_MAXIMUM_FILE_DESCRIPTORS.

Update #3753.
2019-12-19 08:53:03 +01:00
Sebastian Huber
e6f2b545f1 config: CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
Remove CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE.

Update #3844.
2019-12-19 08:53:03 +01:00
Chris Johns
f7cd8c9b8d libcsupport: Update rtems_print printk handler to return the length 2019-12-16 12:27:32 +11:00
Sebastian Huber
782113767f score: Remove _Workspace_Allocate_or_fatal_error()
This function is unused.

Update #3735.
2019-12-13 08:35:21 +01:00
Sebastian Huber
3fba9de2e6 config: Statically allocate MP object controls
Update #3735.
2019-12-13 08:35:21 +01:00
Sebastian Huber
1d9f509e68 config: Statically allocate MP thread proxies
Update #3735.
2019-12-13 08:35:21 +01:00
Sebastian Huber
24f8915a07 config: Add _MPCI_Configuration
Replace the user MPCI configuration table with a system provided
_MPCI_Configuration.

Update #3735.
2019-12-13 08:35:17 +01:00
Sebastian Huber
a00dff42cf rtems: Add and use rtems_object_get_local_node()
Update #3841.
2019-12-13 08:22:58 +01:00
Sebastian Huber
d24b30156d config: CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE
Obsolete the CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE configuration
option.

Update #3735.
2019-12-13 08:22:58 +01:00
Sebastian Huber
6f6091b384 config: Add CONFIGURE_IMFS_ENABLE_MKFIFO
Obsolete undocumented configuration options CONFIGURE_MAXIMUM_FIFOS and
CONFIGURE_MAXIMUM_PIPES.  Replace these options with the new
CONFIGURE_IMFS_ENABLE_MKFIFO configuration option.

Update #3840.
2019-12-13 08:22:58 +01:00
Sebastian Huber
f30dd1f13b mptests: Fix configuration
Update #3818.
2019-12-13 08:22:58 +01:00
Joel Sherrill
4e2e3384cd states*.h: Fix naming inconsistency and formatting 2019-12-11 15:23:34 -06:00
Joel Sherrill
08bd7d36ce Add TOD Hooks to allow BSP to take action when TOD is set
Two use cases were envisioned for this.

1) a BSP or application which desires to update a real-time clock
   when the RTEMS TOD is set.

2) a paravirtualized BSP can use this to propagate setting the time
   in an RTEMS application to the hosting environment. This enables
   the entire set of applications in the virtualized environments
   to have a single consistent TOD.
2019-12-11 15:22:33 -06:00
Sebastian Huber
b1b6dd71d0 pipe: Use condition variables
Use self-contained condition variables instead of Classic API barriers.
This simplifies the implementation and configuration.

Update #3840.
2019-12-11 17:45:31 +01:00
Chris Johns
86c70e71f9 Support pasring - in a version string
Closes #3839
2019-12-12 02:43:51 +11:00
Sebastian Huber
84aee2e982 mpci: Simplify MPCI configuration
Use watchdog for shared memory driver instead of a Classic API Timer.
2019-12-11 09:05:07 +01:00
Sebastian Huber
4686554260 rtems: Simplify semaphore configuration
The MrsP semaphore implementation predates the addition of
self-contained synchronization objects.  At this time, the potential
memory reduction was justified considering the more complex
configuration and additional use of the workspace.  With the
availability of self-contained synchronization options, e.g. POSIX
mutexes, this is no longer justified.  Memory constrained applications
should use the self-contained synchronization objects.   Remove the
CONFIGURE_MAXIMUM_MRSP_SEMAPHORES configuration option. This has only an
impact on applications which use SMP and a large number of scheduler
instances.

Update #3833.
2019-12-11 09:05:07 +01:00
Sebastian Huber
01f8c12ee5 rtems: Optimize semaphore control block
Move variant, discipline, and global information to flags stored in a
node pointer of active semaphores.

Update #3833.
2019-12-11 09:05:07 +01:00
Sebastian Huber
cc466a53a1 score: Optimize _TLS_Get_size() 2019-12-11 09:05:07 +01:00
Sebastian Huber
bb99cd0d83 clock: Simplify driver initialization
Use a system initialization handler instead of a legacy IO driver.

Update #3834.
2019-12-11 09:05:07 +01:00
Sebastian Huber
a6b2080e1c clock: Remove Clock_exit() from API
This function is no longer supported by the standard clock driver
implementation (clockimpl.h).

Update #3436.
2019-12-11 09:04:49 +01:00
Sebastian Huber
189da5f442 score: Optimize _Per_CPU_Get_index()
Optimize _Per_CPU_Get_index() in uniprocessor configurations.
2019-12-10 08:29:53 +01:00