Commit Graph

33172 Commits

Author SHA1 Message Date
Sebastian Huber
b900f507cb arm/xilinx-zynq: Split console driver files
This avoids to pull in via printk() the Termios support which pulls in
the file system support.  This fixes a spconfig02 test failure.
2020-02-12 09:08:35 +01:00
Christian Mauderer
adf7e7538f bsp/imx: Parse fdt pinctrl values and setup iomux
Update #3869.
2020-02-11 09:17:02 +01:00
Christian Mauderer
b58f994492 bsp/imx: Support imx6ul iomux.
Update #3869.
2020-02-11 09:17:02 +01:00
Christian Mauderer
d00d690557 bsp/imx: Allow gapless SPI transfers.
This uses the tx-threshold to reduce gaps in SPI transmissions.

Update #3869.
2020-02-11 09:17:02 +01:00
Christian Mauderer
9c7bffb541 bsp/imx: Use muxed mode for serials.
Update #3869.
2020-02-11 09:17:02 +01:00
Sebastian Huber
65e51e9f76 bsp/imx: Increase device memory area
The new area is used by the i.MX 6UltraLite for example.

Update #3869.
2020-02-11 09:17:02 +01:00
Christian Mauderer
c561bf4c9a bsp/imx: Allow GIC in different device tree node.
Update #3869.
2020-02-11 09:17:02 +01:00
Sebastian Huber
8854a2b54b bsp/imx: Avoid hard-coded GIC base address
Update #3869.
2020-02-11 09:17:02 +01:00
Sebastian Huber
b2ddf4f7af sptests/spregion_err01: Reduce memory demands
Make functions and data static.
2020-02-11 08:04:48 +01:00
Sebastian Huber
90f11edd01 termios: Fix input canonical mode
Canonical input processing was broken by
667501a314 as shown by test case
termios09.

Update #3800.
2020-02-10 09:01:10 +01:00
Sebastian Huber
2d07ce6d21 config: Add CONFIGURE_DIRTY_MEMORY
Replace the BSP_DIRTY_MEMORY BSP option with a CONFIGURE_DIRTY_MEMORY
configuration option.

Update #3843.
2020-02-06 15:19:36 +01:00
Sebastian Huber
8ecbc3826e sysinit: Add RTEMS_SYSINIT_ZERO_MEMORY
Use a dedicate system initialization step to zero the memory used for
the workspace and C program heap.

This avoids dead code in case CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is
not configured.
2020-02-06 15:19:35 +01:00
Sebastian Huber
1d43a976a8 config: CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
Canonicalize CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY and use
defined/undefined instead of TRUE/FALSE.

Close #3862.
2020-02-06 15:19:35 +01:00
Sebastian Huber
6fad1f0aba samples/iostream: Simplify configuration
Remove CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY since it is not needed and
just increases the boot time.
2020-02-06 15:19:35 +01:00
Sebastian Huber
cadff8f7df config: Remove BSP_ZERO_WORKSPACE_AUTOMATICALLY
Update #3863.
2020-02-06 15:19:35 +01:00
Sebastian Huber
9fac9f93a5 score: Fix linker sets on small data area targets
Update #3865.
2020-02-06 15:19:35 +01:00
Sebastian Huber
bba1475bc5 score: Optimize STATUS_BUILD()
Do not cast to unsigned int to avoid an unsigned long long enum type.
Use a multiplication/division instead to preserve the signedness of the
POSIX status.
2020-02-04 11:25:45 +01:00
Sebastian Huber
ccaec9661f libtests/malloc04: Fix typo
Update #3838.
2020-02-04 11:25:45 +01:00
Sebastian Huber
1cd283a723 fstests/fsstatvfs: Include missing header file 2020-02-04 06:24:33 +01:00
Sebastian Huber
e44ae805f7 config: Add CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION
Update #3861.
2020-02-04 06:24:26 +01:00
Sebastian Huber
c344e5828c Use RTEMS_SYSINIT_ORDER_LAST_BUT_5
Use RTEMS_SYSINIT_ORDER_LAST_BUT_5 instead of RTEMS_SYSINIT_ORDER_LAST
to allow applications and support functions to place system
initialization handlers behind the standard handlers.

Update #3838.
2020-02-04 06:06:42 +01:00
Sebastian Huber
f7c5f94360 sysinit: Add RTEMS_SYSINIT_ORDER_LAST_BUT_[1-9]
Update #3838.
2020-02-04 06:06:42 +01:00
Sebastian Huber
eea21eaca1 bsps: Rework work area initialization
The work area initialization was done by the BSP through
bsp_work_area_initialize(). This approach predated the system
initialization through the system initialization linker set. The
workspace and C program heap were unconditionally initialized.  The aim
is to support RTEMS application configurations which do not need the
workspace and C program heap.  In these configurations, the workspace
and C prgram heap should not get initialized.

Change all bsp_work_area_initialize() to implement _Memory_Get()
instead.  Move the dirty memory, sbrk(), per-CPU data, workspace, and
malloc() heap initialization into separate system initialization steps.
This makes it also easier to test the individual initialization steps.

This change adds a dependency to _Heap_Extend() to all BSPs.  This
dependency will be removed in a follow up change.

Update #3838.
2020-02-04 06:06:41 +01:00
Sebastian Huber
07e2eacf89 bsps: Remove uses of BSP_GET_WORK_AREA_DEBUG
The code covered by BSP_GET_WORK_AREA_DEBUG was basically dead code
since there was no normal way to activate it (e.g. via a BSP
configuration option).  A follow up patch will bring back this feature
through a CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION configuration option.

Update #3838.
2020-02-04 06:06:30 +01:00
Sebastian Huber
c184b0cf31 stackchk: Add RTEMS_SYSINIT_ISR_STACK
Use a dedicated system initialization step for the stack checker
interrupt stack support.

Update #3838.
2020-02-04 05:52:28 +01:00
Sebastian Huber
34a7a12f48 bsps: Add RTEMS_SYSINIT_BSP_EARLY
Add new BSP system initialization step for work to be performed before
the work areas are initialized.

Update #3838.
2020-02-04 05:52:28 +01:00
Sebastian Huber
ffa1153170 bsps: Add RamEnd to linker command files
Update #3838.
2020-02-04 05:52:28 +01:00
Sebastian Huber
c477d927e8 score: Add _Memory_Fill()
Update #3838.
2020-02-04 05:52:28 +01:00
Sebastian Huber
1cb925717e score: Add Memory Handler
Update #3838.
2020-02-04 05:52:28 +01:00
Sebastian Huber
9e4f21b927 score: Optimize per-processor data placement
Only align per-processor data in SMP configurations.
2020-02-01 15:44:19 +01:00
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