summaryrefslogtreecommitdiffstats
path: root/c-user/config/device-driver.rst
diff options
context:
space:
mode:
Diffstat (limited to 'c-user/config/device-driver.rst')
-rw-r--r--c-user/config/device-driver.rst921
1 files changed, 654 insertions, 267 deletions
diff --git a/c-user/config/device-driver.rst b/c-user/config/device-driver.rst
index b727a8f..1e31575 100644
--- a/c-user/config/device-driver.rst
+++ b/c-user/config/device-driver.rst
@@ -1,6 +1,24 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+.. Copyright (C) 2020, 2021 embedded brains GmbH & Co. KG
+.. Copyright (C) 1988, 2021 On-Line Applications Research Corporation (OAR)
+
+.. This file is part of the RTEMS quality process and was automatically
+.. generated. If you find something that needs to be fixed or
+.. worded better please post a report or patch to an RTEMS mailing list
+.. or raise a bug report:
+..
+.. https://www.rtems.org/bugs.html
+..
+.. For information on updating and regenerating please refer to the How-To
+.. section in the Software Requirements Engineering chapter of the
+.. RTEMS Software Engineering manual. The manual is provided as a part of
+.. a release. For development sources please refer to the online
+.. documentation at:
+..
+.. https://docs.rtems.org
+
+.. Generated from spec:/acfg/if/group-devdrv
Device Driver Configuration
===========================
@@ -8,6 +26,12 @@ Device Driver Configuration
This section describes configuration options related to the device drivers.
Note that network device drivers are not covered by the following options.
+.. Generated from spec:/acfg/if/appl-does-not-need-clock-driver
+
+.. raw:: latex
+
+ \clearpage
+
.. index:: CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
.. _CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER:
@@ -15,34 +39,45 @@ Note that network device drivers are not covered by the following options.
CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
------------------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
+
+.. rubric:: DEFAULT CONFIGURATION:
-OPTION TYPE:
- This configuration option is a boolean feature define.
+If this configuration option is undefined, then a Clock Driver may be
+initialized during system initialization.
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then a Clock Driver may be
- initialized during system initialization.
+.. rubric:: DESCRIPTION:
-DESCRIPTION:
- In case this configuration option is defined, then **no** Clock Driver is
- initialized during system initialization.
+In case this configuration option is defined, then **no** Clock Driver is
+initialized during system initialization.
-NOTES:
- This configuration parameter is intended to prevent the common user error
- of using the Hello World example as the baseline for an application and
- leaving out a clock tick source.
+.. rubric:: NOTES:
- The application must define exactly one of the following configuration options
+This configuration parameter is intended to prevent the common user error
+of using the Hello World example as the baseline for an application and
+leaving out a clock tick source.
- * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
+The application shall define exactly one of the following configuration options
- * :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or
+* :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
- * :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`,
+* ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER``, or
- otherwise a compile time error in the configuration file will occur.
+* :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`,
+
+otherwise a compile time error in the configuration file will occur.
+
+.. Generated from spec:/acfg/if/appl-extra-drivers
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_EXTRA_DRIVERS
@@ -51,26 +86,79 @@ NOTES:
CONFIGURE_APPLICATION_EXTRA_DRIVERS
-----------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_EXTRA_DRIVERS``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_EXTRA_DRIVERS``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is an initializer define.
+
+.. rubric:: DEFAULT VALUE:
+
+The default value is the empty list.
+
+.. rubric:: DESCRIPTION:
+
+The value of this configuration option is used to initialize the Device
+Driver Table.
+
+.. rubric:: NOTES:
+
+The value of this configuration option is placed after the entries of other
+device driver configuration options.
+
+See :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS` for an alternative
+placement of application device driver initializers.
+
+.. rubric:: CONSTRAINTS:
+
+The value of the configuration option shall be a list of initializers for
+structures of type :ref:`InterfaceRtemsDriverAddressTable`.
+
+.. Generated from spec:/acfg/if/appl-needs-ata-driver
+
+.. raw:: latex
+
+ \clearpage
+
+.. index:: CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
-DATA TYPE:
- device driver entry structures
+.. _CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER:
-RANGE:
- Undefined or set of device driver entry structures
+CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
+--------------------------------------
+
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
+
+.. rubric:: DEFAULT CONFIGURATION:
+
+If this configuration option is undefined, then the described feature is not
+enabled.
-DEFAULT VALUE:
- This is not defined by default.
+.. rubric:: DESCRIPTION:
-DESCRIPTION:
- ``CONFIGURE_APPLICATION_EXTRA_DRIVERS`` is defined if the application has
- device drivers it needs to include in the Device Driver Table. This should
- be defined to the set of device driver entries that will be placed in the
- table at the *END* of the Device Driver Table.
+In case this configuration option is defined, then the ATA Driver is
+initialized during system initialization.
-NOTES:
- None.
+.. rubric:: NOTES:
+
+Most BSPs do not include support for an ATA Driver.
+
+If this option is defined and the BSP does not have this device driver, then
+the user will get a link time error for an undefined symbol.
+
+.. Generated from spec:/acfg/if/appl-needs-clock-driver
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
@@ -79,33 +167,44 @@ NOTES:
CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
----------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER``
+
+.. rubric:: OPTION TYPE:
-OPTION TYPE:
- This configuration option is a boolean feature define.
+This configuration option is a boolean feature define.
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+.. rubric:: DEFAULT CONFIGURATION:
-DESCRIPTION:
- In case this configuration option is defined, then the Clock Driver is
- initialized during system initialization.
+If this configuration option is undefined, then the described feature is not
+enabled.
-NOTES:
- The Clock Driver is responsible for providing a regular interrupt
- which invokes a clock tick directive.
+.. rubric:: DESCRIPTION:
- The application must define exactly one of the following configuration options
+In case this configuration option is defined, then the Clock Driver is
+initialized during system initialization.
- * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
+.. rubric:: NOTES:
- * :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or
+The Clock Driver is responsible for providing a regular interrupt
+which invokes a clock tick directive.
- * :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`,
+The application shall define exactly one of the following configuration options
- otherwise a compile time error in the configuration file will occur.
+* ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER``,
+
+* :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`,
+
+otherwise a compile time error in the configuration file will occur.
+
+.. Generated from spec:/acfg/if/appl-needs-console-driver
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
@@ -114,37 +213,48 @@ NOTES:
CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
------------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
+
+.. rubric:: DEFAULT CONFIGURATION:
+
+If this configuration option is undefined, then the described feature is not
+enabled.
+
+.. rubric:: DESCRIPTION:
+
+In case this configuration option is defined, then the Console Driver is
+initialized during system initialization.
-OPTION TYPE:
- This configuration option is a boolean feature define.
+.. rubric:: NOTES:
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+The Console Driver is responsible for providing the :file:`/dev/console`
+device file. This device is used to initialize the standard input, output,
+and error file descriptors.
-DESCRIPTION:
- In case this configuration option is defined, then the Console Driver is
- initialized during system initialization.
+BSPs should be constructed in a manner that allows :ref:`InterfacePrintk` to work
+properly without the need for the Console Driver to be configured.
-NOTES:
- The Console Driver is responsible for providing the :file:`/dev/console`
- device file. This device is used to initialize the standard input, output,
- and error file descriptors.
+The
- BSPs should be constructed in a manner that allows :c:func:`printk` to work
- properly without the need for the Console Driver to be configured.
+* ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER``,
- The
+* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and
- * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`,
+* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`
- * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and
+configuration options are mutually exclusive.
- * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`
+.. Generated from spec:/acfg/if/appl-needs-framebuffer-driver
- configuration options are mutually exclusive.
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
@@ -153,26 +263,75 @@ NOTES:
CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
-----------------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
+
+.. rubric:: DEFAULT CONFIGURATION:
+
+If this configuration option is undefined, then the described feature is not
+enabled.
+
+.. rubric:: DESCRIPTION:
+
+In case this configuration option is defined, then the Frame Buffer Driver is
+initialized during system initialization.
+
+.. rubric:: NOTES:
+
+Most BSPs do not include support for a Frame Buffer Driver. This is
+because many boards do not include the required hardware.
+
+If this option is defined and the BSP does not have this device driver, then
+the user will get a link time error for an undefined symbol.
+
+.. Generated from spec:/acfg/if/appl-needs-ide-driver
+
+.. raw:: latex
+
+ \clearpage
+
+.. index:: CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
+
+.. _CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER:
+
+CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
+--------------------------------------
+
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
+
+.. rubric:: DEFAULT CONFIGURATION:
+
+If this configuration option is undefined, then the described feature is not
+enabled.
+
+.. rubric:: DESCRIPTION:
+
+In case this configuration option is defined, then the IDE Driver is
+initialized during system initialization.
+
+.. rubric:: NOTES:
-OPTION TYPE:
- This configuration option is a boolean feature define.
+Most BSPs do not include support for an IDE Driver.
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+If this option is defined and the BSP does not have this device driver, then
+the user will get a link time error for an undefined symbol.
-DESCRIPTION:
- In case this configuration option is defined, then the Frame Buffer Driver is
- initialized during system initialization.
+.. Generated from spec:/acfg/if/appl-needs-null-driver
-NOTES:
- Most BSPs do not include support for a Frame Buffer Driver. This is
- because many boards do not include the required hardware.
+.. raw:: latex
- If this option is defined and the BSP does not have this device driver, then
- the user will get a link time error for an undefined symbol.
+ \clearpage
.. index:: CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
.. index:: /dev/null
@@ -182,22 +341,33 @@ NOTES:
CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
---------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER``
+.. rubric:: CONSTANT:
-OPTION TYPE:
- This configuration option is a boolean feature define.
+``CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER``
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+.. rubric:: OPTION TYPE:
-DESCRIPTION:
- In case this configuration option is defined, then the :file:`/dev/null`
- Driver is initialized during system initialization.
+This configuration option is a boolean feature define.
-NOTES:
- This device driver is supported by all BSPs.
+.. rubric:: DEFAULT CONFIGURATION:
+
+If this configuration option is undefined, then the described feature is not
+enabled.
+
+.. rubric:: DESCRIPTION:
+
+In case this configuration option is defined, then the :file:`/dev/null`
+Driver is initialized during system initialization.
+
+.. rubric:: NOTES:
+
+This device driver is supported by all BSPs.
+
+.. Generated from spec:/acfg/if/appl-needs-rtc-driver
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
@@ -206,26 +376,37 @@ NOTES:
CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
--------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
+
+.. rubric:: DEFAULT CONFIGURATION:
+
+If this configuration option is undefined, then the described feature is not
+enabled.
+
+.. rubric:: DESCRIPTION:
-OPTION TYPE:
- This configuration option is a boolean feature define.
+In case this configuration option is defined, then the Real-Time Clock Driver
+is initialized during system initialization.
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+.. rubric:: NOTES:
-DESCRIPTION:
- In case this configuration option is defined, then the Real-Time Clock Driver
- is initialized during system initialization.
+Most BSPs do not include support for a real-time clock (RTC). This is because
+many boards do not include the required hardware.
-NOTES:
- Most BSPs do not include support for a real-time clock (RTC). This is because
- many boards do not include the required hardware.
+If this is defined and the BSP does not have this device driver, then the
+user will get a link time error for an undefined symbol.
- If this is defined and the BSP does not have this device driver, then the
- user will get a link time error for an undefined symbol.
+.. Generated from spec:/acfg/if/appl-needs-simple-console-driver
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
@@ -234,41 +415,52 @@ NOTES:
CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
-------------------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
+
+.. rubric:: DEFAULT CONFIGURATION:
+
+If this configuration option is undefined, then the described feature is not
+enabled.
-OPTION TYPE:
- This configuration option is a boolean feature define.
+.. rubric:: DESCRIPTION:
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+In case this configuration option is defined, then the Simple Console Driver
+is initialized during system initialization.
-DESCRIPTION:
- In case this configuration option is defined, then the Simple Console Driver
- is initialized during system initialization.
+.. rubric:: NOTES:
-NOTES:
- This device driver is responsible for providing the :file:`/dev/console`
- device file. This device is used to initialize the standard input, output,
- and error file descriptors.
+This device driver is responsible for providing the :file:`/dev/console`
+device file. This device is used to initialize the standard input, output,
+and error file descriptors.
- This device driver reads via :c:func:`getchark`.
+This device driver reads via :ref:`InterfaceGetchark`.
- This device driver writes via :c:func:`rtems_putc`.
+This device driver writes via :ref:`InterfaceRtemsPutc`.
- The Termios framework is not used. There is no support to change device
- settings, e.g. baud, stop bits, parity, etc.
+The Termios framework is not used. There is no support to change device
+settings, e.g. baud, stop bits, parity, etc.
- The
+The
- * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`,
+* :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`,
- * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and
+* ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER``, and
- * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`
+* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`
- configuration options are mutually exclusive.
+configuration options are mutually exclusive.
+
+.. Generated from spec:/acfg/if/appl-needs-simple-task-console-driver
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
@@ -277,50 +469,61 @@ NOTES:
CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
------------------------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
-OPTION TYPE:
- This configuration option is a boolean feature define.
+.. rubric:: DEFAULT CONFIGURATION:
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+If this configuration option is undefined, then the described feature is not
+enabled.
-DESCRIPTION:
- In case this configuration option is defined, then the Simple Task Console
- Driver is initialized during system initialization.
+.. rubric:: DESCRIPTION:
-NOTES:
- This device driver is responsible for providing the :file:`/dev/console`
- device file. This device is used to initialize the standard input, output,
- and error file descriptors.
+In case this configuration option is defined, then the Simple Task Console
+Driver is initialized during system initialization.
- This device driver reads via :c:func:`getchark`.
+.. rubric:: NOTES:
- This device driver writes into a write buffer. The count of characters
- written into the write buffer is returned. It might be less than the
- requested count, in case the write buffer is full. The write is
- non-blocking and may be called from interrupt context. A dedicated task
- reads from the write buffer and outputs the characters via
- :c:func:`rtems_putc`. This task runs with the least important priority.
- The write buffer size is 2047 characters and it is not configurable.
+This device driver is responsible for providing the :file:`/dev/console`
+device file. This device is used to initialize the standard input, output,
+and error file descriptors.
- Use ``fsync(STDOUT_FILENO)`` or ``fdatasync(STDOUT_FILENO)`` to drain the
- write buffer.
+This device driver reads via :ref:`InterfaceGetchark`.
- The Termios framework is not used. There is no support to change device
- settings, e.g. baud, stop bits, parity, etc.
+This device driver writes into a write buffer. The count of characters
+written into the write buffer is returned. It might be less than the
+requested count, in case the write buffer is full. The write is
+non-blocking and may be called from interrupt context. A dedicated task
+reads from the write buffer and outputs the characters via
+:ref:`InterfaceRtemsPutc`. This task runs with the least important priority.
+The write buffer size is 2047 characters and it is not configurable.
- The
+Use ``fsync( STDOUT_FILENO )`` or ``fdatasync( STDOUT_FILENO )`` to drain the
+write buffer.
- * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`,
+The Termios framework is not used. There is no support to change device
+settings, e.g. baud, stop bits, parity, etc.
- * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and
+The
- * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`
+* :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`,
- configuration options are mutually exclusive.
+* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and
+
+* ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER``
+
+configuration options are mutually exclusive.
+
+.. Generated from spec:/acfg/if/appl-needs-stub-driver
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
@@ -329,23 +532,34 @@ NOTES:
CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
---------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER``
+
+.. rubric:: OPTION TYPE:
-OPTION TYPE:
- This configuration option is a boolean feature define.
+This configuration option is a boolean feature define.
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+.. rubric:: DEFAULT CONFIGURATION:
-DESCRIPTION:
- In case this configuration option is defined, then the Stub Driver is
- initialized during system initialization.
+If this configuration option is undefined, then the described feature is not
+enabled.
-NOTES:
- This device driver simply provides entry points that return successful and
- is primarily a test fixture. It is supported by all BSPs.
+.. rubric:: DESCRIPTION:
+
+In case this configuration option is defined, then the Stub Driver is
+initialized during system initialization.
+
+.. rubric:: NOTES:
+
+This device driver simply provides entry points that return successful and
+is primarily a test fixture. It is supported by all BSPs.
+
+.. Generated from spec:/acfg/if/appl-needs-timer-driver
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
@@ -354,33 +568,44 @@ NOTES:
CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
----------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER``
-OPTION TYPE:
- This configuration option is a boolean feature define.
+.. rubric:: OPTION TYPE:
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+This configuration option is a boolean feature define.
-DESCRIPTION:
- In case this configuration option is defined, then the Benchmark Timer Driver is
- initialized during system initialization.
+.. rubric:: DEFAULT CONFIGURATION:
-NOTES:
- The Benchmark Timer Driver is intended for the benchmark tests of the RTEMS
- Testsuite. Applications should not use this driver.
+If this configuration option is undefined, then the described feature is not
+enabled.
- The application must define exactly one of the following configuration options
+.. rubric:: DESCRIPTION:
- * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
+In case this configuration option is defined, then the Benchmark Timer Driver is
+initialized during system initialization.
- * :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or
+.. rubric:: NOTES:
- * :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`,
+The Benchmark Timer Driver is intended for the benchmark tests of the RTEMS
+Testsuite. Applications should not use this driver.
- otherwise a compile time error will occur.
+The application shall define exactly one of the following configuration options
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
+
+* :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or
+
+* ``CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER``,
+
+otherwise a compile time error will occur.
+
+.. Generated from spec:/acfg/if/appl-needs-watchdog-driver
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
@@ -389,26 +614,37 @@ NOTES:
CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
-------------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
+
+.. rubric:: DEFAULT CONFIGURATION:
+
+If this configuration option is undefined, then the described feature is not
+enabled.
+
+.. rubric:: DESCRIPTION:
-OPTION TYPE:
- This configuration option is a boolean feature define.
+In case this configuration option is defined, then the Watchdog Driver is
+initialized during system initialization.
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+.. rubric:: NOTES:
-DESCRIPTION:
- In case this configuration option is defined, then the Watchdog Driver is
- initialized during system initialization.
+Most BSPs do not include support for a watchdog device driver. This is
+because many boards do not include the required hardware.
-NOTES:
- Most BSPs do not include support for a watchdog device driver. This is
- because many boards do not include the required hardware.
+If this is defined and the BSP does not have this device driver, then the
+user will get a link time error for an undefined symbol.
- If this is defined and the BSP does not have this device driver, then the
- user will get a link time error for an undefined symbol.
+.. Generated from spec:/acfg/if/appl-needs-zero-driver
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
.. index:: /dev/zero
@@ -418,22 +654,33 @@ NOTES:
CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
---------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
+
+.. rubric:: DEFAULT CONFIGURATION:
+
+If this configuration option is undefined, then the described feature is not
+enabled.
-OPTION TYPE:
- This configuration option is a boolean feature define.
+.. rubric:: DESCRIPTION:
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+In case this configuration option is defined, then the :file:`/dev/zero`
+Driver is initialized during system initialization.
-DESCRIPTION:
- In case this configuration option is defined, then the :file:`/dev/zero`
- Driver is initialized during system initialization.
+.. rubric:: NOTES:
-NOTES:
- This device driver is supported by all BSPs.
+This device driver is supported by all BSPs.
+
+.. Generated from spec:/acfg/if/appl-prerequisite-drivers
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
@@ -442,31 +689,121 @@ NOTES:
CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
------------------------------------------
-CONSTANT:
- ``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is an initializer define.
+
+.. rubric:: DEFAULT VALUE:
+
+The default value is the empty list.
+
+.. rubric:: DESCRIPTION:
+
+The value of this configuration option is used to initialize the Device
+Driver Table.
+
+.. rubric:: NOTES:
+
+The value of this configuration option is placed after the entries defined by
+:c:macro:`CONFIGURE_BSP_PREREQUISITE_DRIVERS` and before all other device driver
+configuration options.
+
+See :ref:`CONFIGURE_APPLICATION_EXTRA_DRIVERS` for an alternative placement
+of application device driver initializers.
+
+.. rubric:: CONSTRAINTS:
+
+The value of the configuration option shall be a list of initializers for
+structures of type :ref:`InterfaceRtemsDriverAddressTable`.
+
+.. Generated from spec:/acfg/if/ata-driver-task-priority
+
+.. raw:: latex
+
+ \clearpage
+
+.. index:: CONFIGURE_ATA_DRIVER_TASK_PRIORITY
+
+.. _CONFIGURE_ATA_DRIVER_TASK_PRIORITY:
-DATA TYPE:
- device driver entry structures
+CONFIGURE_ATA_DRIVER_TASK_PRIORITY
+----------------------------------
-RANGE:
- Undefined or set of device driver entry structures
+.. rubric:: CONSTANT:
-DEFAULT VALUE:
- This is not defined by default.
+``CONFIGURE_ATA_DRIVER_TASK_PRIORITY``
-DESCRIPTION:
- ``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`` is defined if the
- application has device drivers it needs to include in the Device Driver
- Table. This should be defined to the set of device driver entries that
- will be placed in the table at the *FRONT* of the Device Driver Table and
- initialized before any other drivers *EXCEPT* any BSP prerequisite drivers.
+.. rubric:: OPTION TYPE:
-NOTES:
- In some cases, it is used by System On Chip BSPs to support peripheral
- buses beyond those normally found on the System On Chip. For example, this
- is used by one RTEMS system which has implemented a SPARC/ERC32 based board
- with VMEBus. The VMEBus Controller initialization is performed by a device
- driver configured via this configuration parameter.
+This configuration option is an integer define.
+
+.. rubric:: DEFAULT VALUE:
+
+The default value is 140.
+
+.. rubric:: DESCRIPTION:
+
+The value of this configuration option defines the ATA task priority.
+
+.. rubric:: NOTES:
+
+This configuration option is only evaluated if the configuration option
+:ref:`CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER` is defined.
+
+.. rubric:: CONSTRAINTS:
+
+The value of the configuration option shall be a valid Classic API task
+priority. The set of valid task priorities depends on the scheduler
+configuration.
+
+.. Generated from spec:/acfg/if/exception-to-signal-mapping
+
+.. raw:: latex
+
+ \clearpage
+
+.. index:: CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING
+
+.. _CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING:
+
+CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING
+-------------------------------------
+
+.. rubric:: CONSTANT:
+
+``CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
+
+.. rubric:: DEFAULT CONFIGURATION:
+
+If this configuration option is undefined, then the described feature is not
+enabled.
+
+.. rubric:: DESCRIPTION:
+
+In case this configuration option is defined, then the machine exception to
+POSIX signal mapping is configured during system initialization.
+
+.. rubric:: NOTES:
+
+This device driver is responsible for setting up a mapping from machine
+exceptions to POSIX signals so that applications may consume them and alter
+task execution as necessary.
+
+This is especially useful for applications written in Ada or C++.
+
+.. Generated from spec:/acfg/if/max-drivers
+
+.. raw:: latex
+
+ \clearpage
.. index:: CONFIGURE_MAXIMUM_DRIVERS
@@ -475,27 +812,77 @@ NOTES:
CONFIGURE_MAXIMUM_DRIVERS
-------------------------
-CONSTANT:
- ``CONFIGURE_MAXIMUM_DRIVERS``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_MAXIMUM_DRIVERS``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is an integer define.
+
+.. rubric:: DEFAULT VALUE:
+
+This is computed by default, and is set to the number of statically
+configured device drivers configured using the following configuration
+options:
+
+* :ref:`CONFIGURE_APPLICATION_EXTRA_DRIVERS`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_LIBBLOCK`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER`
+
+* :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`
+
+If the :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` configuration option is not defined and
+the :term:`BSP` provides
+:c:macro:`CONFIGURE_BSP_PREREQUISITE_DRIVERS`, then the BSP-provided
+prerequisite device drivers are also taken into account.
+
+.. rubric:: DESCRIPTION:
+
+The value of this configuration option defines the number of device drivers.
+
+.. rubric:: NOTES:
+
+If the application will dynamically install device drivers, then the
+configuration option value shall be larger than the number of statically
+configured device drivers.
-DATA TYPE:
- Unsigned integer (``uint32_t``).
+.. rubric:: CONSTRAINTS:
-RANGE:
- Zero or positive.
+The following constraints apply to this configuration option:
-DEFAULT VALUE:
- This is computed by default, and is set to the number of device drivers
- configured using the ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER``
- configuration parameters.
+* The value of the configuration option shall be less than or equal to
+ `SIZE_MAX <https://en.cppreference.com/w/c/types/limits>`_.
-DESCRIPTION:
- ``CONFIGURE_MAXIMUM_DRIVERS`` is defined as the number of device drivers
- per node.
+* The value of the configuration option shall be greater than or equal than the
+ number of statically configured device drivers.
-NOTES:
- If the application will dynamically install device drivers, then this
- configuration parameter must be larger than the number of statically
- configured device drivers. Drivers configured using the
- ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration parameters are
- statically installed.
+* The value of the configuration option shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.