summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--README.txt31
-rw-r--r--c-user/config/device-driver.rst7
-rw-r--r--c-user/config/face-technical-standard.rst76
-rw-r--r--c-user/config/general.rst62
-rw-r--r--c-user/config/idle-task.rst18
-rw-r--r--c-user/config/index.rst1
-rw-r--r--c-user/config/mpci.rst2
-rw-r--r--c-user/config/posix-api.rst20
-rw-r--r--c-user/glossary.rst5
-rw-r--r--c-user/key_concepts.rst2
-rw-r--r--c-user/task/background.rst54
-rw-r--r--c-user/task/directives.rst25
-rw-r--r--common/conf.py12
-rw-r--r--common/rtemsdomain.py64
-rw-r--r--common/version.py5
-rw-r--r--common/waf.py5
-rw-r--r--eng/coding-conventions.rst2
-rw-r--r--eng/req/howto.rst2
-rw-r--r--eng/req/items.rst20
-rw-r--r--posix-users/process_creation_and_execution.rst16
-rw-r--r--shell/rtems_specific_commands.rst95
-rw-r--r--user/bsps/aarch64/xilinx-zynqmp.rst16
-rw-r--r--user/bsps/arm/altera-cyclone-v.rst2
-rw-r--r--user/bsps/arm/beagle.rst13
-rw-r--r--user/bsps/arm/fvp.rst39
-rw-r--r--user/bsps/arm/imx.rst6
-rw-r--r--user/bsps/arm/imxrt.rst33
-rw-r--r--user/bsps/arm/raspberrypi.rst24
-rw-r--r--user/bsps/arm/xen.rst4
-rw-r--r--user/bsps/bsps-arm.rst47
-rw-r--r--user/bsps/bsps-microblaze.rst10
-rw-r--r--user/bsps/bsps-powerpc.rst8
-rw-r--r--user/bsps/bsps-riscv.rst3
-rw-r--r--user/bsps/bsps-x86_64.rst2
-rw-r--r--user/deployment/index.rst426
-rw-r--r--user/exe/initialization.rst10
-rw-r--r--user/exe/loader.rst24
-rw-r--r--user/hosts/os.rst2
-rw-r--r--user/index.rst3
-rw-r--r--user/installation/developer.rst287
-rw-r--r--user/installation/project-sandboxing.rst42
-rw-r--r--user/installation/releases.rst193
-rw-r--r--user/migration/v5-to-v6.rst30
-rw-r--r--user/rsb/project-sets.rst9
-rw-r--r--user/start/app.rst100
-rw-r--r--user/start/bsp-build.rst95
46 files changed, 1313 insertions, 639 deletions
diff --git a/README.txt b/README.txt
index 828c9e7..07bae0d 100644
--- a/README.txt
+++ b/README.txt
@@ -504,6 +504,9 @@ existing documentation for an example and if unsure ask.
identifed by the standard shell prompt characters where '$' is a
user prompt and '#' is a 'root' prompt.
+ Do not embed the version or version major number in the literal
+ commands or examples. Use the replacements listed in 10.
+
6. Use the directives for 'note', 'warning', and 'topic'. Do not add 'TIP',
'Important' or 'Warning' to the text. Let the mark-up language handle
this. The supported directives are:
@@ -582,3 +585,31 @@ existing documentation for an example and if unsure ask.
bugs : https://devel.rtems.org/wiki/Bugs/
gsoc : https://devel.rtems.org/wiki/GSoC/
socis : https://devel.rtems.org/wiki/SOCIS/
+
+10. Use the following to embed the version number in any part of the
+ documentation source:
+
+ 1. @rtems-version@
+
+ The complete version string of the documentation.
+
+ 2. @rtems-ver-major@
+
+ The version major number.
+
+ 2. @rtems-ver-minor@
+
+ The version minor number.
+
+ 2. @rtems-ver-revision@
+
+ The version revision number.
+
+ The replacement happens during the source read phase of the build
+ and is not context specific. The subsituation will happen in code
+ blocks and other normally quoated area.
+
+ It is a requirement these be used then embedded commands or
+ related text in the documentation to let the documentatoin track
+ the release. For example `microblaze-rtems6-gdb` should be written
+ as `microblaze-rtems@rtems-ver-major@-gdb`.
diff --git a/c-user/config/device-driver.rst b/c-user/config/device-driver.rst
index d84da0a..87ed27a 100644
--- a/c-user/config/device-driver.rst
+++ b/c-user/config/device-driver.rst
@@ -709,7 +709,7 @@ Driver Table.
.. rubric:: NOTES:
The value of this configuration option is placed after the entries defined by
-:ref:`CONFIGURE_BSP_PREREQUISITE_DRIVERS` and before all other device driver
+:c:macro:`CONFIGURE_BSP_PREREQUISITE_DRIVERS` and before all other device driver
configuration options.
See :ref:`CONFIGURE_APPLICATION_EXTRA_DRIVERS` for an alternative placement
@@ -858,7 +858,10 @@ options:
* :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`
-* :ref:`CONFIGURE_BSP_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:
diff --git a/c-user/config/face-technical-standard.rst b/c-user/config/face-technical-standard.rst
new file mode 100644
index 0000000..8772773
--- /dev/null
+++ b/c-user/config/face-technical-standard.rst
@@ -0,0 +1,76 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 2022 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-face
+
+FACE Technical Standard Related Configuration
+=============================================
+
+This section describes configuration options related to adapting
+RTEMS behavior to be aligned with the FACE Technical Standard.
+The FACE Technical Standard is a product of the FACE Consortium
+which operates under the Open Group. The FACE Consortium was founded
+by avionics organizations to improve the portability of cockpit software
+across various platforms. It addresses technical and business concerns.
+
+Most important from an RTEMS perspective, the FACE Technical Standard
+defines four POSIX profiles: Security, Safety Base, Safety Extended, and
+the General Purpose Profile. Each has an increasingly larger subset of
+POSIX APIs. In the Security and Safety profiles, ARINC 653 is required.
+It is optional in the General Purpose Profile.
+
+The RTEMS Project has been tracking alignment with the FACE POSIX profiles
+and they are included in the "RTEMS POSIX 1003.1 Compliance Guide."
+
+.. Generated from spec:/acfg/if/posix-timer-face-behavior
+
+.. raw:: latex
+
+ \clearpage
+
+.. index:: CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
+
+.. _CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR:
+
+CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
+------------------------------------
+
+.. rubric:: CONSTANT:
+
+``CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR``
+
+.. 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:
+
+If this configuration option is defined, then POSIX timers may not be created
+to use the :term:`CLOCK_REALTIME`. Per POSIX, this is allowed
+behavior but per the FACE Technical Standard, it is not. Using POSIX timers
+based on CLOCK_REALTIME (e.g., time of day) is unsafe for real-time safety
+systems as setting CLOCK_REALTIME will perturb any active timers.
+
+If this option is not defined, POSIX timers may be created to use the
+CLOCK_REALTIME in compliance with the POSIX specification.
diff --git a/c-user/config/general.rst b/c-user/config/general.rst
index 0da7530..c80d162 100644
--- a/c-user/config/general.rst
+++ b/c-user/config/general.rst
@@ -1,7 +1,7 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
.. Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
-.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+.. Copyright (C) 1988, 2022 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
@@ -67,6 +67,55 @@ memory is first dirtied and then zeroed.
See also :ref:`CONFIGURE_MALLOC_DIRTY`.
+.. Generated from spec:/acfg/if/disable-bsp-settings
+
+.. raw:: latex
+
+ \clearpage
+
+.. index:: CONFIGURE_DISABLE_BSP_SETTINGS
+
+.. _CONFIGURE_DISABLE_BSP_SETTINGS:
+
+CONFIGURE_DISABLE_BSP_SETTINGS
+------------------------------
+
+.. rubric:: CONSTANT:
+
+``CONFIGURE_DISABLE_BSP_SETTINGS``
+
+.. 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 optional BSP provided
+settings listed below are disabled.
+
+The optional BSP provided default values for the following application
+configuration options are disabled:
+
+* :ref:`CONFIGURE_IDLE_TASK_BODY`
+
+* :ref:`CONFIGURE_IDLE_TASK_STACK_SIZE`
+
+* :ref:`CONFIGURE_INTERRUPT_STACK_SIZE`
+
+The optional BSP provided initial extension set is disabled (see
+:term:`initial extension sets`). The optional BSP provided
+prerequisite IO device drivers are disabled (see
+Device Driver Configuration). The optional BSP provided support for
+:c:func:`sbrk` is disabled.
+
+This configuration option provides an all or nothing choice with respect to
+the optional BSP provided settings.
+
.. Generated from spec:/acfg/if/disable-newlib-reentrancy
.. raw:: latex
@@ -237,8 +286,8 @@ initial user extensions.
.. rubric:: NOTES:
The value of this configuration option is placed before the entries of
-:ref:`BSP_INITIAL_EXTENSION` and after the entries of all other initial
-user extensions.
+:c:macro:`BSP_INITIAL_EXTENSION` and after the entries of all other
+initial user extensions.
.. rubric:: CONSTRAINTS:
@@ -269,8 +318,11 @@ This configuration option is an integer define.
.. rubric:: DEFAULT VALUE:
-The default value is :ref:`BSP_INTERRUPT_STACK_SIZE` in case it is defined,
-otherwise the default value is :c:macro:`CPU_STACK_MINIMUM_SIZE`.
+If the :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` configuration option is not defined and
+:c:macro:`BSP_INTERRUPT_STACK_SIZE` is provided by the
+:term:`BSP`, then the default value is defined by
+:c:macro:`BSP_INTERRUPT_STACK_SIZE`, otherwise the default value is
+:c:macro:`CPU_STACK_MINIMUM_SIZE`.
.. rubric:: DESCRIPTION:
diff --git a/c-user/config/idle-task.rst b/c-user/config/idle-task.rst
index 5cf8364..359f862 100644
--- a/c-user/config/idle-task.rst
+++ b/c-user/config/idle-task.rst
@@ -48,8 +48,11 @@ This configuration option is an initializer define.
.. rubric:: DEFAULT VALUE:
-If :ref:`BSP_IDLE_TASK_BODY` is defined, then this will be the default value,
-otherwise the default value is ``_CPU_Thread_Idle_body``.
+If the :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` configuration option is not defined and
+:c:macro:`BSP_IDLE_TASK_BODY` is provided by the
+:term:`BSP`, then the default value is defined by
+:c:macro:`BSP_IDLE_TASK_BODY`, otherwise the default value is
+``_CPU_Thread_Idle_body``.
.. rubric:: DESCRIPTION:
@@ -64,6 +67,11 @@ exists.
IDLE threads can be used to initialize the application, see configuration
option :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`.
+The BSP may have knowledge of the specific CPU model, system controller
+logic, and peripheral buses, so a BSP-specific IDLE task may be capable of
+turning components off to save power during extended periods of no task
+activity.
+
.. rubric:: CONSTRAINTS:
The value of the configuration option shall be defined to a valid function
@@ -149,7 +157,11 @@ This configuration option is an integer define.
.. rubric:: DEFAULT VALUE:
-The default value is :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+If the :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` configuration option is not defined and
+:c:macro:`BSP_IDLE_TASK_STACK_SIZE` is provided by the
+:term:`BSP`, then the default value is defined by
+:c:macro:`BSP_IDLE_TASK_STACK_SIZE`, otherwise the default value is
+defined by the :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` configuration option.
.. rubric:: DESCRIPTION:
diff --git a/c-user/config/index.rst b/c-user/config/index.rst
index b0e21a4..fd877b5 100644
--- a/c-user/config/index.rst
+++ b/c-user/config/index.rst
@@ -24,6 +24,7 @@ Configuring a System
idle-task
scheduler-general
scheduler-clustered
+ face-technical-standard
bsp-related
mpci
libpci
diff --git a/c-user/config/mpci.rst b/c-user/config/mpci.rst
index d40f15c..003afd3 100644
--- a/c-user/config/mpci.rst
+++ b/c-user/config/mpci.rst
@@ -1,7 +1,7 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
.. Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
-.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+.. Copyright (C) 1988, 2022 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
diff --git a/c-user/config/posix-api.rst b/c-user/config/posix-api.rst
index 78cb724..f72124c 100644
--- a/c-user/config/posix-api.rst
+++ b/c-user/config/posix-api.rst
@@ -1,7 +1,7 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
.. Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
-.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+.. Copyright (C) 1988, 2022 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
@@ -477,26 +477,22 @@ configuration option enabled.
The following constraints apply to this configuration option:
-* The value of the configuration option shall be greater than or equal
-to zero.
+* The value of the configuration option shall be greater than or equal to zero.
-* The value of the configuration option shall be less than or equal
-to 65535.
+* The value of the configuration option shall be less than or equal to 65535.
* 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.
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.
* The value of the configuration option may be defined through
:c:func:`rtems_resource_unlimited` the enable unlimited objects for the
object class, if the value passed to :c:func:`rtems_resource_unlimited`
satisfies all other constraints of the configuration option.
-* The value of the configuration option shall be zero if the POSIX API
-is not
- enabled (e.g. RTEMS was built without the ``RTEMS_POSIX_API = True``
- build configuration option). Otherwise a compile time error in the
- configuration
+* The value of the configuration option shall be zero if the POSIX API is not
+ enabled (e.g. RTEMS was built without the ``RTEMS_POSIX_API = True`` build
+ configuration option). Otherwise a compile time error in the configuration
file will occur.
.. Generated from spec:/acfg/if/min-posix-thread-stack-size
diff --git a/c-user/glossary.rst b/c-user/glossary.rst
index 4474848..dbe2e60 100644
--- a/c-user/glossary.rst
+++ b/c-user/glossary.rst
@@ -1,7 +1,7 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
.. Copyright (C) 2020 Richi Dubey (richidubey@gmail.com)
-.. Copyright (C) 2017, 2021 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 2015, 2021 embedded brains GmbH (http://www.embedded-brains.de)
.. Copyright (C) 1988, 1998 On-Line Applications Research Corporation (OAR)
Glossary
@@ -725,7 +725,8 @@ Glossary
A simple approach to extend the priority inheritance protocol for
clustered scheduling is priority boosting. In case a mutex is owned by a
task of another cluster, then the priority of the owner task is raised to
- an artificially high priority, the pseudo-interrupt priority.
+ an artificially high priority. This approach is not used in RTEMS, see also
+ :term:`OMIP`.
priority inheritance
An algorithm that calls for the lower priority task holding a resource to
diff --git a/c-user/key_concepts.rst b/c-user/key_concepts.rst
index 6bc1c3e..3628954 100644
--- a/c-user/key_concepts.rst
+++ b/c-user/key_concepts.rst
@@ -330,7 +330,7 @@ O(m) Independence-Preserving Protocol (OMIP)
The :math:`O(m)` Independence-Preserving Protocol (OMIP) is a generalization of
the priority inheritance protocol to clustered scheduling which avoids the
-non-preemptive sections present with priority boosting
+non-preemptive sections present with :term:`priority boosting`
:cite:`Brandenburg:2013:OMIP`. The :math:`m` denotes the number of processors
in the system. Similar to the uniprocessor priority inheritance protocol, the
OMIP mutexes do not need any external configuration data, e.g. a ceiling
diff --git a/c-user/task/background.rst b/c-user/task/background.rst
index da6cabf..e7085cb 100644
--- a/c-user/task/background.rst
+++ b/c-user/task/background.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 2020, 2022 embedded brains GmbH (http://www.embedded-brains.de)
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
Background
@@ -233,6 +233,58 @@ the task will execute at interrupt level n.
The set of default modes may be selected by specifying the
``RTEMS_DEFAULT_MODES`` constant.
+.. index:: task life states
+
+Task Life States
+----------------
+
+Independent of the task state with respect to the scheduler, the task life is
+determined by several orthogonal states:
+
+* *protected* or *unprotected*
+
+* *deferred life changes* or *no deferred life changes*
+
+* *restarting* or *not restarting*
+
+* *terminating* or *not terminating*
+
+* *detached* or *not detached*
+
+While the task life is *protected*, asynchronous task restart and termination
+requests are blocked. A task may still restart or terminate itself. All tasks
+are created with an unprotected task life. The task life protection is used by
+the system to prevent system resources being affected by asynchronous task
+restart and termination requests. The task life protection can be enabled
+(``PTHREAD_CANCEL_DISABLE``) or disabled (``PTHREAD_CANCEL_ENABLE``) for the
+calling task through the ``pthread_setcancelstate()`` directive.
+
+While *deferred life changes* are enabled, asynchronous task restart and
+termination requests are delayed until the task performs a life change itself
+or calls ``pthread_testcancel()``. Cancellation points are not implemented in
+RTEMS. Deferred task life changes can be enabled (``PTHREAD_CANCEL_DEFERRED``)
+or disabled (``PTHREAD_CANCEL_ASYNCHRONOUS``) for the calling task through the
+``pthread_setcanceltype()`` directive. Classic API tasks are created with
+deferred life changes disabled. POSIX threads are created with deferred life
+changes enabled.
+
+A task is made *restarting* by issuing a task restart request through the
+:ref:`InterfaceRtemsTaskRestart` directive.
+
+A task is made *terminating* by issuing a task termination request through the
+:ref:`InterfaceRtemsTaskExit`, :ref:`InterfaceRtemsTaskDelete`,
+``pthread_exit()``, and ``pthread_cancel()`` directives.
+
+When a *detached* task terminates, the termination procedure completes without
+the need for another task to join with the terminated task. Classic API tasks
+are created as not detached. The detached state of created POSIX threads is
+determined by the thread attributes. They are created as not detached by
+default. The calling task is made detached through the ``pthread_detach()``
+directive. The :ref:`InterfaceRtemsTaskExit` directive and self deletion
+though :ref:`InterfaceRtemsTaskDelete` directive make the calling task
+detached. In contrast, the ``pthread_exit()`` directive does not change the
+detached state of the calling task.
+
.. index:: task arguments
.. index:: task prototype
diff --git a/c-user/task/directives.rst b/c-user/task/directives.rst
index 64b591d..b78aaa9 100644
--- a/c-user/task/directives.rst
+++ b/c-user/task/directives.rst
@@ -805,14 +805,26 @@ specified by ``id``.
:c:macro:`RTEMS_CALLED_FROM_ISR`
The directive was called from within interrupt context.
+:c:macro:`RTEMS_INCORRECT_STATE`
+ The task termination procedure was started, however, waiting for the
+ terminating task would have resulted in a deadlock.
+
:c:macro:`RTEMS_ILLEGAL_ON_REMOTE_OBJECT`
The task resided on a remote node.
.. rubric:: NOTES:
-RTEMS stops the execution of the task and reclaims the stack memory, any
-allocated delay or timeout timers, the TCB, and, if the task is
-:c:macro:`RTEMS_FLOATING_POINT`, its floating point context area. RTEMS
+The task deletion is done in several steps. Firstly, the task is marked as
+terminating. While the task life of the terminating task is protected, it
+executes normally until it disables the task life protection or it deletes
+itself. A terminating task will eventually stop its normal execution and start
+its termination procedure. The procedure executes in the context of the
+terminating task. The task termination procedure involves the destruction of
+POSIX key values and running the task termination user extensions. Once
+complete the execution of the task is stopped and task-specific resources are
+reclaimed by the system, such as the stack memory, any allocated delay or
+timeout timers, the :term:`TCB`, and, if the task is
+:c:macro:`RTEMS_FLOATING_POINT`, its floating point context area. RTEMS
explicitly does not reclaim the following resources: region segments, partition
buffers, semaphores, timers, or rate monotonic periods.
@@ -824,10 +836,13 @@ resources before deletion. A task can be directed to release its resources and
delete itself by restarting it with a special argument or by sending it a
message, an event, or a signal.
-Deletion of the current task (:c:macro:`RTEMS_SELF`) will force RTEMS to select
+Deletion of the calling task (:c:macro:`RTEMS_SELF`) will force RTEMS to select
another task to execute.
-The :term:`TCB` for the deleted task is reclaimed by RTEMS.
+When a task deletes another task, the calling task waits until the task
+termination procedure of the task being deleted has completed. The terminating
+task inherits the :term:`eligible priorities <eligible priority>` of the
+calling task.
When a global task is deleted, the task identifier must be transmitted to every
node in the system for deletion from the local copy of the global object table.
diff --git a/common/conf.py b/common/conf.py
index a652e2a..565e06d 100644
--- a/common/conf.py
+++ b/common/conf.py
@@ -1,4 +1,4 @@
-import version as rtems_version
+import datetime
extensions = [
"sphinx.ext.autodoc",
@@ -30,21 +30,17 @@ master_doc = 'index'
# General information about the project.
project = u'RTEMS Documentation Project'
-copyright = u'1988, 2020 RTEMS Project and contributors'
+copyright = u'1988, ' + str(datetime.datetime.now().year) + ' RTEMS Project and contributors'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
-version = rtems_version.version()
+#version = rtems_version.version()
# The full version, including alpha/beta/rc tags.
-release = rtems_version.string()
-
-major = rtems_version.major()
-minor = rtems_version.minor()
-revision = rtems_version.revision()
+#release = rtems_version.string()
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/common/rtemsdomain.py b/common/rtemsdomain.py
index 9b092a3..630f1e3 100644
--- a/common/rtemsdomain.py
+++ b/common/rtemsdomain.py
@@ -8,6 +8,8 @@ from sphinx.domains import Domain, ObjType, Index
from sphinx.util.nodes import make_refnode
from sphinx.util.docfields import Field, TypedField
+import version as rtems_version
+
"""
:r:bsp:`sparc/sis`
@@ -30,28 +32,28 @@ role_name = {
}
role_url = {
- "trac": ("Trac", "https://devel.rtems.org"),
- "devel": ("Developer Site", "https://devel.rtems.org"),
- "www": ("RTEMS Home", "https://www.rtems.org/"),
- "buildbot": ("Buildbot Instance", "https://buildbot.rtems.org/"),
- "builder": ("Builder Site", "https://builder.rtems.org/"),
- "docs": ("Documentation Site", "https://docs.rtems.org/"),
- "lists": ("Mailing Lists", "https://lists.rtems.org/"),
- "git": ("Git Repositories", "https://git.rtems.org/"),
- "ftp": ("FTP File Server", "https://ftp.rtems.org/"),
- "review": ("Gerrit Code Review", "https://review.rtems.org/"),
- "bugs": ("Bugs Database", "https://devel.rtems.org/wiki/Bugs/"),
- "gsoc": ("Google Summer of Code", "https://devel.rtems.org/wiki/GSoC/"),
- "socis": ("ESA SOCIS", "https://devel.rtems.org/wiki/SOCIS/")
+ "trac": ("Trac", "https://devel.rtems.org"),
+ "devel": ("Developer Site", "https://devel.rtems.org"),
+ "www": ("RTEMS Home", "https://www.rtems.org/"),
+ "buildbot": ("Buildbot Instance", "https://buildbot.rtems.org/"),
+ "builder": ("Builder Site", "https://builder.rtems.org/"),
+ "docs": ("Documentation Site", "https://docs.rtems.org/"),
+ "lists": ("Mailing Lists", "https://lists.rtems.org/"),
+ "git": ("Git Repositories", "https://git.rtems.org/"),
+ "ftp": ("FTP File Server", "https://ftp.rtems.org/"),
+ "review": ("Gerrit Code Review", "https://review.rtems.org/"),
+ "bugs": ("Bugs Database", "https://devel.rtems.org/wiki/Bugs/"),
+ "gsoc": ("Google Summer of Code", "https://devel.rtems.org/wiki/GSoC/"),
+ "socis": ("ESA SOCIS", "https://devel.rtems.org/wiki/SOCIS/")
}
role_list = {
- "announce": ("Announce Mailing List", "https://lists.rtems.org/mailman/listinfo/announce/"),
- "bugs": ("Bugs Mailing List", "https://lists.rtems.org/mailman/listinfo/bugs/"),
- "devel": ("Developers Mailing List", "https://lists.rtems.org/mailman/listinfo/devel/"),
- "build": ("Build Logs", "https://lists.rtems.org/mailman/listinfo/build"),
- "users": ("Users Mailing List", "https://lists.rtems.org/mailman/listinfo/users/"),
+ "announce": ("Announce Mailing List", "https://lists.rtems.org/mailman/listinfo/announce/"),
+ "bugs": ("Bugs Mailing List", "https://lists.rtems.org/mailman/listinfo/bugs/"),
+ "devel": ("Developers Mailing List", "https://lists.rtems.org/mailman/listinfo/devel/"),
+ "build": ("Build Logs", "https://lists.rtems.org/mailman/listinfo/build"),
+ "users": ("Users Mailing List", "https://lists.rtems.org/mailman/listinfo/users/"),
"vc": ("Version Control Mailing List", "https://lists.rtems.org/mailman/listinfo/vc/"),
}
@@ -119,7 +121,33 @@ class RTEMSDomain(Domain):
pass # XXX is this needed?
+def rtems_replace(app, docname, source):
+ dump = False
+ line = source[0]
+ for key in app.config.replacements:
+ line = line.replace(key, app.config.replacements[key])
+ source[0] = line
+
+replacements = {
+}
def setup(app):
+ app.add_config_value('rtems_major', str(app.config.overrides['rtems_major']), True)
+ app.add_config_value('rtems_minor', str(app.config.overrides['rtems_minor']), True)
+ app.add_config_value('rtems_revision', str(app.config.overrides['rtems_revision']), True)
+ major = str(app.config.overrides['rtems_major'])
+ minor = str(app.config.overrides['rtems_minor'])
+ revision = str(app.config.overrides['rtems_revision'])
+ if revision.isdigit():
+ majminrev = major + '.' + minor + '.' + revision
+ else:
+ majminrev = major + '.' + revision
+ replacements["@rtems-version@"] = str(app.config.overrides['version'])
+ replacements["@rtems-ver-major@"] = major
+ replacements["@rtems-ver-minor@"] = minor
+ replacements["@rtems-ver-revision@"] = revision
+ replacements["@rtems-ver-majminrev@"] = majminrev
+ app.add_config_value('replacements', replacements, True)
+ app.connect('source-read', rtems_replace)
app.add_domain(RTEMSDomain)
return {'version': "1.0", 'parallel_read_safe': True}
diff --git a/common/version.py b/common/version.py
index 281c880..bfe0e1b 100644
--- a/common/version.py
+++ b/common/version.py
@@ -111,6 +111,9 @@ def _pretty_day(ctx, date):
def get(ctx, rtems_major_version):
global _version
+ global _major
+ global _minor
+ global _revision
global _date
global _released
version = _version
@@ -184,7 +187,7 @@ def minor():
return _minor
def revision():
- return revision
+ return _revision
def date():
return _date
diff --git a/common/waf.py b/common/waf.py
index fa9aecb..8584f88 100644
--- a/common/waf.py
+++ b/common/waf.py
@@ -340,12 +340,15 @@ def doc_pdf(ctx, source_dir, conf_dir, sources):
target = ctx.path.find_or_declare("%s/%s.tex" % (buildtype,
ctx.path.name))
)
+ env_latex = ctx.env.derive()
+ env_latex.TEXINPUTS = output_dir + ':'
ctx(
features = 'tex',
cwd = output_dir,
type = ctx.env.LATEX_CMD,
source = "%s/%s.tex" % (buildtype, ctx.path.name),
- prompt = 0
+ prompt = 0,
+ env = env_latex
)
ctx.install_files('${PREFIX}',
'%s/%s.pdf' % (buildtype, ctx.path.name),
diff --git a/eng/coding-conventions.rst b/eng/coding-conventions.rst
index 575dd44..b56d3c2 100644
--- a/eng/coding-conventions.rst
+++ b/eng/coding-conventions.rst
@@ -206,7 +206,7 @@ Portability
Maintainability
---------------
-* Minimize modifications to `third-party code <https://devel.rtems.org/wiki/Developer/Coding/ThirdPartyCode>`_..
+* Minimize modifications to `third-party code <https://devel.rtems.org/wiki/Developer/Coding/ThirdPartyCode>`_.
* Keep it simple! Simple code is easier to debug and easier to read than clever code.
* Share code with other architectures, CPUs, and BSPs where possible.
* Do not duplicate standard OS or C Library routines.
diff --git a/eng/req/howto.rst b/eng/req/howto.rst
index bd94b77..42c35ac 100644
--- a/eng/req/howto.rst
+++ b/eng/req/howto.rst
@@ -238,7 +238,7 @@ make sure the Git submodules are up-to-date.
.. code-block:: none
- $ ./spec2dmodules.py
+ $ ./spec2modules.py
The script modifies or creates source files in :file:`modules/rtems` and
:file:`modules/rtems-docs`. Create patch sets for these changes just as if
diff --git a/eng/req/items.rst b/eng/req/items.rst
index e4f600a..1fdc257 100644
--- a/eng/req/items.rst
+++ b/eng/req/items.rst
@@ -284,6 +284,10 @@ cppflags
The attribute value shall be a list. Each list element shall be a
:ref:`SpecTypeBuildCPreprocessorOption`.
+cxxflags
+ The attribute value shall be a list. Each list element shall be a
+ :ref:`SpecTypeBuildCXXCompilerOption`.
+
includes
The attribute value shall be a list. Each list element shall be a
:ref:`SpecTypeBuildIncludePath`.
@@ -327,6 +331,7 @@ Please have a look at the following example:
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
cppflags: []
+ cxxflags: []
enabled-by: true
includes: []
ldflags: []
@@ -509,6 +514,18 @@ referenced build items. The ``includes``, ``ldflags``, ``objects``, and
attributes of the build group. All explicit attributes shall be specified. The
explicit attributes for this type are:
+cflags
+ The attribute value shall be a list. Each list element shall be a
+ :ref:`SpecTypeBuildCCompilerOption`.
+
+cppflags
+ The attribute value shall be a list. Each list element shall be a
+ :ref:`SpecTypeBuildCPreprocessorOption`.
+
+cxxflags
+ The attribute value shall be a list. Each list element shall be a
+ :ref:`SpecTypeBuildCXXCompilerOption`.
+
includes
The attribute value shall be a list. Each list element shall be a
:ref:`SpecTypeBuildIncludePath`.
@@ -536,8 +553,11 @@ Please have a look at the following example:
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
build-type: group
+ cflags: []
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ cppflags: []
+ cxxflags: []
enabled-by:
- BUILD_TESTS
- BUILD_SAMPLES
diff --git a/posix-users/process_creation_and_execution.rst b/posix-users/process_creation_and_execution.rst
index 835f3cc..9d47589 100644
--- a/posix-users/process_creation_and_execution.rst
+++ b/posix-users/process_creation_and_execution.rst
@@ -313,16 +313,22 @@ pthread_atfork - Register Fork Handlers
.. list-table::
:class: rtems-table
- * - ``ENOSYS``
- - This routine is not supported by RTEMS.
+ * - ``0``
+ - This routine is a non-functional stub.
**DESCRIPTION:**
-This routine is not supported by RTEMS.
+This routine is non-functional stub.
**NOTES:**
-NONE
+The POSIX specification for ``pthread_atfork()`` does not address the behavior
+when in a single process environment. Originally, the RTEMS implementation
+returned -1 and set errno to ``ENOSYS``. This was an arbitrary decision
+part with no basis from the wider POSIX community. The FACE Technical
+Standard includes profiles without multiple process support and defined
+the behavior in a single process environment to return 0. Logically, the
+application can register atfork handlers but they will never be invoked.
.. _wait:
@@ -344,7 +350,7 @@ wait - Wait for Process Termination
**STATUS CODES:**
.. list-table::
- :class: rtems-table
+
* - ``ENOSYS``
- This routine is not supported by RTEMS.
diff --git a/shell/rtems_specific_commands.rst b/shell/rtems_specific_commands.rst
index c67f635..a8fcb9b 100644
--- a/shell/rtems_specific_commands.rst
+++ b/shell/rtems_specific_commands.rst
@@ -10,6 +10,8 @@ Introduction
The RTEMS shell has the following RTEMS specific commands:
+- rtems_ - Display RTEMS specific detail
+
- shutdown_ - Shutdown the system
- cpuinfo_ - print per-processor information
@@ -59,6 +61,99 @@ of that command as well as providing an example usage.
\clearpage
+.. _rtems:
+
+rtems - RTEMS Details
+---------------------
+.. index:: rtems
+
+SYNOPSYS:
+ .. code-block:: shell
+
+ rtems
+
+DESCRIPTION:
+ This command reports various RTEMS specific details such as a the
+ version, CPU and CPU module, BSP name, version of tools and the
+ build options.
+
+EXIT STATUS:
+ This command returns 0 on success and non-zero if an error is encountered.
+
+NOTES:
+ The following commands are supported:
+
+ - ``ver``:
+ Version of RTEMS running
+
+ - ``cpu``:
+ CPU name and model
+
+ - ``bsp``:
+ Name of the BSP
+
+ - ``tools``:
+ Version of the tools used to build RTEMS
+
+ - ``opts``:
+ RTEMS build options
+
+ - ``all``:
+ All of the available commands
+
+
+EXAMPLES:
+ The following is an example of how to use ``rtems``:
+
+ .. code-block:: shell
+
+ SHLL [/] # rtems
+ RTEMS: 6.0.0 (071640d310b432d15350188c2ebf086653a0d578)
+
+ The version of RTEMS running is displayed. To see the CPU name and
+ moduel enter:
+
+ .. code-block:: shell
+
+ SHLL [/] # rtems cpu
+ CPU: SPARC (w/FPU)
+
+ The ``help`` command will list all available commands. The ``all``
+ command will display all avalable output:
+
+ .. code-block:: shell
+
+ SHLL [/] # rtems all
+ RTEMS: 6.0.0 (071640d310b432d15350188c2ebf086653a0d578)
+ CPU: SPARC (w/FPU)
+ BSP: erc32
+ Tools: 12.1.1 20220622 (RTEMS 6, RSB f4f5d43a98051f7562103aaa2ec7723c628c6947, Newlib ea99f21)
+ Options: DEBUG POSIX
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_RTEMS
+.. index:: CONFIGURE_SHELL_COMMAND_RTEMS
+
+CONFIGURATION:
+ This command is included in the default shell command set. When building a
+ custom command set, define ``CONFIGURE_SHELL_COMMAND_RTEMS`` to have
+ this command included.
+
+ This command can be excluded from the shell command set by defining
+ ``CONFIGURE_SHELL_NO_COMMAND_RTEMS`` when all shell commands have been
+ configured.
+
+PROGRAMMING INFORMATION:
+ The configuration structure for the ``rtems`` has the following
+ prototype:
+
+ .. code-block:: c
+
+ extern rtems_shell_cmd_t rtems_shell_RTEMS_Command;
+
+.. raw:: latex
+
+ \clearpage
+
.. _shutdown:
shutdown - Shutdown the system
diff --git a/user/bsps/aarch64/xilinx-zynqmp.rst b/user/bsps/aarch64/xilinx-zynqmp.rst
index 78bff12..2b28132 100644
--- a/user/bsps/aarch64/xilinx-zynqmp.rst
+++ b/user/bsps/aarch64/xilinx-zynqmp.rst
@@ -116,7 +116,7 @@ Prepare your RTEMS image to boot from u-boot with the following commands:
.. code-block:: shell
- $ aarch64-rtems6-objcopy -Obinary ticker.exe ticker.bin
+ $ aarch64-rtems@rtems-ver-major@-objcopy -Obinary ticker.exe ticker.bin
$ gzip -9 ticker.bin
$ mkimage -A arm64 -O rtems -T kernel -a 0x10000000 -e 0x10000000 -n RTEMS -d ticker.bin.gz rtems.img
@@ -179,7 +179,7 @@ This is the entire boot sequence:
## Transferring control to RTEMS (at address 10000000) ...
*** BEGIN OF TEST CLOCK TICK ***
- *** TEST VERSION: 6.0.0.f381e9bab29278e4434b1a93e70d17a7562dc64c
+ *** TEST VERSION: @rtems-version@.f381e9bab29278e4434b1a93e70d17a7562dc64c
*** TEST STATE: EXPECTED_PASS
*** TEST BUILD: RTEMS_POSIX_API RTEMS_SMP
*** TEST TOOLS: 10.3.1 20210409 (RTEMS 6, RSB ad54d1dd3cf8249d9d39deb1dd28b2f294df062d, Newlib eb03ac1)
@@ -244,6 +244,18 @@ Cadence GEM instances present on all ZynqMP hardware variants. All interfaces
are enabled by default, but only interfaces with operational MII busses will be
recognized and usable in RTEMS. Most ZynqMP dev boards use CGEM3.
+When used with lwIP from the rtems-lwip integration repository, these BSP
+variants support networking via CGEM0 and one of the other CGEM* instances
+simultaneously. This is a limitation of the Xilinx driver, specifically
+in code referring directly to XPAR_XEMACPS_0_BASEADDR. Attempting to use more
+than two interfaces simultaneously may cause unexpected behavior. Attempting to
+use a set of two interfaces that does not include CGEM0 may cause unexpected
+behavior.
+
+The interfaces will not come up by default under lwIP and must be configured
+manually. There are examples of this in the start_networking() implementation
+in netstart.c as used by the network tests.
+
Running Executables on QEMU
---------------------------
diff --git a/user/bsps/arm/altera-cyclone-v.rst b/user/bsps/arm/altera-cyclone-v.rst
index 14c026c..eaa02e3 100644
--- a/user/bsps/arm/altera-cyclone-v.rst
+++ b/user/bsps/arm/altera-cyclone-v.rst
@@ -27,7 +27,7 @@ image. Use the following commands:
.. code-block:: none
- arm-rtems5-objcopy -O binary app.exe app.bin
+ arm-rtems@rtems-ver-major@-objcopy -O binary app.exe app.bin
gzip -9 -f -c app.bin > app.bin.gz
mkimage -A arm -O linux -T kernel -a 0x00300000 -e 0x00300000 -n RTEMS -d app.bin.gz app.img
diff --git a/user/bsps/arm/beagle.rst b/user/bsps/arm/beagle.rst
index 696b89d..55f75c0 100644
--- a/user/bsps/arm/beagle.rst
+++ b/user/bsps/arm/beagle.rst
@@ -32,7 +32,7 @@ To boot via uboot, the ELF must be converted to a U-Boot image like below:
.. code-block:: none
- arm-rtems5-objcopy hello.exe -O binary app.bin
+ arm-rtems@rtems-ver-major@-objcopy hello.exe -O binary app.bin
gzip -9 app.bin
mkimage -A arm -O linux -T kernel -a 0x80000000 -e 0x80000000 -n RTEMS -d app.bin.gz rtems-app.img
@@ -77,7 +77,8 @@ overlay has to be provided. The overlay must add an additional attribute
For example,
-.. code-block::
+.. code-block:: none
+
/dts-v1/;
/ {
@@ -109,7 +110,7 @@ For registering with a custom path, the ``bsp_register_spi()`` can be used.
The function prototype is given below:
-.. code-block:: C
+.. code-block:: c
rtems_status_code bsp_register_spi(
const char *bus_path,
@@ -153,7 +154,7 @@ The modification is:
The resulting wiring is:
-.. code-block::
+.. code-block:: none
1 === /--=== 2
3 === | === 4
@@ -166,7 +167,7 @@ The resulting wiring is:
17 === === 18
19 === === 20
-.. figure:: ../../images/user/bbb-p2-debug-mod.jpg
+.. figure:: ../../../images/user/bbb-p2-debug-mod.jpg
:width: 50%
:align: center
:alt: BeagleBone Black JTAG Hardware Modification
@@ -198,7 +199,7 @@ Cortex M only debuggers (like the Segger J-Link Edu Mini) won't work.
If the debugger offers a gdb server (like OpenOCD or Segger J-Link) the
following gdb start script can be used:
-.. code-block::
+.. code-block:: none
define reset
echo -- Reset target and wait for U-Boot to start kernel.\n
diff --git a/user/bsps/arm/fvp.rst b/user/bsps/arm/fvp.rst
new file mode 100644
index 0000000..a1e186a
--- /dev/null
+++ b/user/bsps/arm/fvp.rst
@@ -0,0 +1,39 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 2022 embedded brains GmbH
+
+fvp (Fixed Virtual Platform)
+============================
+
+The BSP for the
+`Arm Fixed Virtual Platforms <https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms>`_
+offers one variant. You need a license from Arm to run the simulator. The
+`fvp_cortex_r52` variant supports a simulation of the Cortex-R52 processor.
+The BSP supports the SMP configuration.
+
+Run an Executable
+-----------------
+
+To run an executable on a single Cortex-R52 processor use:
+
+.. code-block:: none
+
+ FVP_BaseR_Cortex-R52x1 -C bp.vis.disable_visualisation=1 -a build/arm/fvp_cortex_r52/testsuites/samples/ticker.exe
+
+To run an executable on a four Cortex-R52 processors use:
+
+.. code-block:: none
+
+ FVP_BaseR_Cortex-R52x4 -C bp.vis.disable_visualisation=1 -a build/arm/fvp_cortex_r52/testsuites/samples/ticker.exe
+
+Clock Driver
+------------
+
+The clock driver uses the `ARMv7-AR Generic Timer`.
+
+Console Driver
+--------------
+
+The console driver uses the
+`semihosting <https://developer.arm.com/documentation/dui0471/g/Semihosting/Semihosting-operations?lang=en>`_
+``SYS_READC`` and ``SYS_WRITEC`` system calls.
diff --git a/user/bsps/arm/imx.rst b/user/bsps/arm/imx.rst
index e2fd7f2..f0ac928 100644
--- a/user/bsps/arm/imx.rst
+++ b/user/bsps/arm/imx.rst
@@ -15,7 +15,9 @@ U-Boot or barebox.
Build Configuration Options
---------------------------
-The following options are available at the configure command line.
+The following options can be used in the BSP section of the waf
+configuration INI file. The waf defaults can be used to inspect the
+values.
``BSP_PRESS_KEY_FOR_RESET``
If defined to a non-zero value, then print a message and wait until pressed
@@ -73,7 +75,7 @@ image. Use the following commands:
.. code-block:: none
- arm-rtems5-objcopy -O binary app.exe app.bin
+ arm-rtems@rtems-ver-major@-objcopy -O binary app.exe app.bin
gzip -9 -f -c app.bin > app.bin.gz
mkimage -A arm -O linux -T kernel -a 0x80200000 -e 0x80200000 -n RTEMS -d app.bin.gz app.img
diff --git a/user/bsps/arm/imxrt.rst b/user/bsps/arm/imxrt.rst
index 6dacfd9..e185823 100644
--- a/user/bsps/arm/imxrt.rst
+++ b/user/bsps/arm/imxrt.rst
@@ -39,7 +39,7 @@ For programming the HyperFlash in case 1, you can use the on board debugger
integrated into the IMXRT1050-EVKB. You can generate a flash image out of a
compiled RTEMS application with for example::
- arm-rtems6-objcopy -O binary build/arm/imxrt1052/testsuites/samples/hello.exe hello.bin
+ arm-rtems@rtems-ver-major@-objcopy -O binary build/arm/imxrt1052/testsuites/samples/hello.exe hello.bin
Then just copy the generated binary to the mass storage provided by the
debugger. Wait a bit till the mass storage vanishes and re-appears. After that,
@@ -91,25 +91,26 @@ The BSP uses a FDT based initialization. The FDT is linked into the application.
You can find the default FDT used in the BSP in
`bsps/arm/imxrt/dts/imxrt1050-evkb.dts`. The FDT is split up into two parts. The
core part is put into an `dtsi` file and is installed together with normal
-headers into `${PREFIX}/arm-rtems6/imxrt1052/lib/include`. You can use that to
-create your own device tree based on that. Basically use something like::
+headers into `${PREFIX}/arm-rtems@rtems-ver-major@/imxrt1052/lib/include`. You
+can use that to create your own device tree based on that. Basically use
+something like::
/dts-v1/;
-
+
#include <imxrt/imxrt1050-pinfunc.h>
#include <imxrt/imxrt1050.dtsi>
-
+
&lpuart1 {
pinctrl-0 = <&pinctrl_lpuart1>;
status = "okay";
};
-
+
&chosen {
stdout-path = &lpuart1;
};
-
+
/* put your further devices here */
-
+
&iomuxc {
pinctrl_lpuart1: lpuart1grp {
fsl,pins = <
@@ -117,17 +118,19 @@ create your own device tree based on that. Basically use something like::
IMXRT_PAD_GPIO_AD_B0_13__LPUART1_RX 0x13000
>;
};
-
+
/* put your further pinctrl groups here */
};
You can then convert your FDT into a C file with (replace `YOUR.dts` and similar
-with your FDT source names)::
+with your FDT source names):
- sh> arm-rtems6-cpp -P -x assembler-with-cpp \
- -I ${PREFIX}/arm-rtems6/imxrt1052/lib/include \
- -include "YOUR.dts" /dev/null | \
- dtc -O dtb -o "YOUR.dtb" -b 0 -p 64
+.. code-block:: none
+
+ sh> arm-rtems@rtems-ver-major@-cpp -P -x assembler-with-cpp \
+ -I ${PREFIX}/arm-rtems@rtems-ver-major@/imxrt1052/lib/include \
+ -include "YOUR.dts" /dev/null | \
+ dtc -O dtb -o "YOUR.dtb" -b 0 -p 64
sh> rtems-bin2c -A 8 -C -N imxrt_dtb "YOUR.dtb" "YOUR.c"
You'll get a C file which defines the `imxrt_dtb` array. Make sure that your new
@@ -145,7 +148,7 @@ can overwrite the following constant:
.. code-block:: c
#include "fsl_clock_config.h"
-
+
const clock_arm_pll_config_t armPllConfig_BOARD_BootClockRUN = {
.loopDivider = 100,
.src = 0,
diff --git a/user/bsps/arm/raspberrypi.rst b/user/bsps/arm/raspberrypi.rst
index 235134f..8f40e92 100644
--- a/user/bsps/arm/raspberrypi.rst
+++ b/user/bsps/arm/raspberrypi.rst
@@ -12,7 +12,7 @@ The default bootloader on the Raspberry Pi which is used to boot Raspbian
or other OS can be also used to boot RTEMS. U-boot can also be used.
Setup SD card
-----------------
+-------------
The Raspberry Pis have an unconventional booting mechanism. The GPU
boots first, initializes itself, runs the bootloader and starts the CPU.
@@ -20,13 +20,13 @@ The bootloader looks for a kernel image, by default the kernel images must
have a name of the form ``kernel*.img`` but this can be changed by adding
`kernel=<img_name>` to ``config.txt``.
-You must provide the required firmware files on the SD card for the GPU to proceed,
-and thereby to boot RTEMS.
-The BSP currently boots up with an older version of the official firmware. These files
-can be downloaded from
-`the Raspberry Pi Firmware Repository <https://github.com/raspberrypi/firmware/tree/1.20200601/boot>`_.
-You can remove the ``kernel*.img`` files if you want to, but don't touch
-the other files.
+You must provide the required firmware files on the SD card for the GPU to
+proceed, and thereby to boot RTEMS. The BSP currently boots up with an older
+version of the official firmware. These files can be downloaded from `the
+Raspberry Pi Firmware Repository
+<https://github.com/raspberrypi/firmware/tree/1.20200601/boot>`_. You can
+remove the ``kernel*.img`` files if you want to, but don't touch the other
+files.
Copy these files in to a SD card with FAT filesystem.
@@ -41,7 +41,7 @@ To create the kernel image:
.. code-block:: none
- $ arm-rtems5-objcopy -Obinary hello.exe kernel.img
+ $ xsarm-rtems@rtems-ver-major@-objcopy -Obinary hello.exe kernel.img
Copy the kernel image to the SD card.
@@ -54,7 +54,7 @@ Make sure you have these lines below, in your ``config.txt``.
kernel=kernel.img
SPI Driver
-------------
+----------
SPI drivers are registered by the ``rpi_spi_init(bool bidirectional_mode)`` function.
@@ -72,7 +72,7 @@ SPI drivers are registered by the ``rpi_spi_init(bool bidirectional_mode)`` func
}
I2C Driver
-------------
+----------
I2C drivers are registered by the ``rpi_setup_i2c_bus()`` function.
@@ -132,7 +132,7 @@ In a new terminal, run GDB using
.. code-block:: none
- $ arm-rtems5-gdb hello.exe
+ $ arm-rtems@rtems-ver-major@-gdb hello.exe
This will open GDB and will load the symbol table from hello.exe. Issue the
following commands in the GDB prompt.
diff --git a/user/bsps/arm/xen.rst b/user/bsps/arm/xen.rst
index c7085ce..d7538f0 100644
--- a/user/bsps/arm/xen.rst
+++ b/user/bsps/arm/xen.rst
@@ -42,13 +42,13 @@ The ``ticker.exe`` file can be found in the BSP build tree at:
.. code-block:: none
- arm-rtems5/c/xen_virtual/testsuites/samples/ticker.exe
+ arm-rtems@rtems-ver-major@/c/xen_virtual/testsuites/samples/ticker.exe
The ``ticker.exe`` elf file must be translated to a binary format.
.. code-block:: none
- arm-rtems5-objcopy -O binary ticker.exe ticker.bin
+ arm-rtems@rtems-ver-major@-objcopy -O binary ticker.exe ticker.bin
Then place the ``ticker.bin`` file on the dom0 filesystem.
diff --git a/user/bsps/bsps-arm.rst b/user/bsps/bsps-arm.rst
index 7f1e9d4..d9b5d01 100644
--- a/user/bsps/bsps-arm.rst
+++ b/user/bsps/bsps-arm.rst
@@ -6,25 +6,28 @@
arm (ARM)
*********
-.. include:: arm/altera-cyclone-v.rst
-.. include:: arm/atsam.rst
-.. include:: arm/beagle.rst
-.. include:: arm/csb336.rst
-.. include:: arm/csb337.rst
-.. include:: arm/edb7312.rst
-.. include:: arm/gumstix.rst
-.. include:: arm/imx.rst
-.. include:: arm/imxrt.rst
-.. include:: arm/lm3s69xx.rst
-.. include:: arm/lpc176x.rst
-.. include:: arm/lpc24xx.rst
-.. include:: arm/raspberrypi.rst
-.. include:: arm/realview-pbx-a9.rst
-.. include:: arm/rtl22xx.rst
-.. include:: arm/smdk2410.rst
-.. include:: arm/stm32f4.rst
-.. include:: arm/stm32h7.rst
-.. include:: arm/tms570.rst
-.. include:: arm/xen.rst
-.. include:: arm/xilinx-zynq.rst
-.. include:: arm/xilinx-zynqmp.rst
+.. toctree::
+
+ arm/altera-cyclone-v.rst
+ arm/atsam.rst
+ arm/beagle.rst
+ arm/csb336.rst
+ arm/csb337.rst
+ arm/edb7312.rst
+ arm/fvp.rst
+ arm/gumstix.rst
+ arm/imx.rst
+ arm/imxrt.rst
+ arm/lm3s69xx.rst
+ arm/lpc176x.rst
+ arm/lpc24xx.rst
+ arm/raspberrypi.rst
+ arm/realview-pbx-a9.rst
+ arm/rtl22xx.rst
+ arm/smdk2410.rst
+ arm/stm32f4.rst
+ arm/stm32h7.rst
+ arm/tms570.rst
+ arm/xen.rst
+ arm/xilinx-zynq.rst
+ arm/xilinx-zynqmp.rst
diff --git a/user/bsps/bsps-microblaze.rst b/user/bsps/bsps-microblaze.rst
index e20df53..32aad90 100644
--- a/user/bsps/bsps-microblaze.rst
+++ b/user/bsps/bsps-microblaze.rst
@@ -53,8 +53,8 @@ The name ``system_dtb`` is significant as it is the name expected by the BSP.
$ rtems-bin2c -C -A 8 -N system_dtb my_device_tree.dtb my_dtb
The ``BSP_MICROBLAZE_FPGA_DTB_HEADER_PATH`` BSP configuration option can then be
-set to the path of the resulting source file, ``my_dtb.c``, to include it in the
-BSP build.
+set to the path of the resulting source file, ``my_dtb.c``, in the waf INI file
+to include it in the BSP build.
.. code-block:: none
@@ -64,7 +64,7 @@ BSP build.
Running Executables
-------------------
-A .dtb (device tree blob) file should be provided to QEMU via the ``-hw-dtb``
+A ``.dtb`` (device tree blob) file should be provided to QEMU via the ``-hw-dtb``
option. In the example command below, the device tree blob comes from the Xilinx
Petalinux KCU105 MicroBlaze BSP (https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools.html).
@@ -94,7 +94,7 @@ Then start GDB and connect to QEMU.
.. code-block:: none
- $ microblaze-rtems6-gdb build/microblaze/kcu105_qemu/testsuites/samples/hello.exe
+ $ microblaze-rtems@rtems-ver-major@-gdb build/microblaze/kcu105_qemu/testsuites/samples/hello.exe
(gdb) target remote localhost:1234
(gdb) break Init
(gdb) continue
@@ -146,7 +146,7 @@ application, and debug as usual. By default the GDB server listens on port 3002.
.. code-block:: none
- $ microblaze-rtems6-gdb example.exe
+ $ microblaze-rtems@rtems-ver-major@-gdb example.exe
(gdb) target extended-remote localhost:3002
(gdb) load
(gdb) break Init
diff --git a/user/bsps/bsps-powerpc.rst b/user/bsps/bsps-powerpc.rst
index 80edfae..3d1ce88 100644
--- a/user/bsps/bsps-powerpc.rst
+++ b/user/bsps/bsps-powerpc.rst
@@ -36,10 +36,10 @@ image. Use the following commands:
.. code-block:: none
- powerpc-rtems5-objcopy -O binary -R .comment -S ticker.exe rtems
+ powerpc-rtems@rtems-ver-major@-objcopy -O binary -R .comment -S ticker.exe rtems
gzip -9 -f rtems
- powerpc-rtems5-ld -o ticker.boot bootloader.o --just-symbols=ticker.exe -b binary rtems.gz -T ppcboot.lds -no-warn-mismatch
- powerpc-rtems5-objcopy -O binary ticker.boot ticker.bin
+ powerpc-rtems@rtems-ver-major@-ld -o ticker.boot bootloader.o --just-symbols=ticker.exe -b binary rtems.gz -T ppcboot.lds -no-warn-mismatch
+ powerpc-rtems@rtems-ver-major@-objcopy -O binary ticker.boot ticker.bin
mpc55xxevb
==========
@@ -107,7 +107,7 @@ image. Use the following commands:
.. code-block:: none
- powerpc-rtems5-objcopy -O binary app.exe app.bin
+ powerpc-rtems@rtems-ver-major@-objcopy -O binary app.exe app.bin
gzip -9 -f -c app.bin > app.bin.gz
mkimage -A ppc -O linux -T kernel -a 0x4000 -e 0x4000 -n RTEMS -d app.bin.gz app.img
diff --git a/user/bsps/bsps-riscv.rst b/user/bsps/bsps-riscv.rst
index 0799ad6..5faa87b 100644
--- a/user/bsps/bsps-riscv.rst
+++ b/user/bsps/bsps-riscv.rst
@@ -50,7 +50,8 @@ The reference platform for this BSP is the Qemu `virt` machine.
Build Configuration Options
---------------------------
-The following options are available at the configure command line.
+The following options can be used in the BSP section of the ``waf``
+configuration INI file. The ``waf`` defaults can be used to inspect the values.
``BSP_PRESS_KEY_FOR_RESET``
If defined to a non-zero value, then print a message and wait until pressed
diff --git a/user/bsps/bsps-x86_64.rst b/user/bsps/bsps-x86_64.rst
index eefffab..a7f7326 100644
--- a/user/bsps/bsps-x86_64.rst
+++ b/user/bsps/bsps-x86_64.rst
@@ -20,7 +20,7 @@ in the RTEMS testsuite.
Build Configuration Options
---------------------------
-There are no options available to ``configure`` at build time, at the moment.
+There are no BSP configuration options available at build time.
Testing with QEMU
-----------------
diff --git a/user/deployment/index.rst b/user/deployment/index.rst
new file mode 100644
index 0000000..d1315af
--- /dev/null
+++ b/user/deployment/index.rst
@@ -0,0 +1,426 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 2022 Chris Johns
+
+.. _BSPs:
+
+Deployment
+**********
+.. index:: Deployment
+.. index:: packages
+
+Deployment is a process companies, organizations or teams use to
+control and manage delivery of RTEMS tools, kernels and third party
+libraries. Deployed tools, kernels and libraries are packaged and
+controlled so the same tools and libraries are used in all phases of a
+project.
+
+The Quick Start guide details how tools are built using the RSB. The
+tools are installed on your development computer and available for you
+to build applications. That build can be viewed as the simplest form
+of deployment because it is simple and easy however it does not
+scale. Building the tools and kernel on each development machine in a
+project or company is time consuming, difficult to get right and
+costly to audit.
+
+This section covers the building of tools, kernels and third party
+libraries using the RSB for deployment. Custom RSB buildset files are
+supported across releases giving you an easy update path. The RSB can
+generate a single tarfile for any prefix without needing to install
+the pieces built helping ease integration with packaging systems and
+continuous integration (CI) for automated workflows.
+
+RSB Deployment
+--------------
+
+The RSB provides support for deployment using custom buildset files. A
+custom buildset file resides outside the RSB and can build tools for a
+number of architectures and kernels for BSPs. Deployment can include
+third party libraries if a single BSP is being built.
+
+The RSB ``--no-install`` option builds the tools and kernel without
+the final installation phase. A prefix that is not accessible when
+running the RSB can be used. This is important if a CI flow is being
+used.
+
+The buildset tar file option ``--bset-tar-file`` packages the build's
+staging directory tree into a single tar file. The tar file can be
+used as the input source to a packaging system.
+
+Buildset configuration files can be tested by adding the ``--dry-run``
+option to the ``sb-set-builder`` command line.
+
+The buildset examples that follow assume the prefix path used does not
+exist or is not writable and the environment path does not include any
+RTEMS tools.
+
+Deployment Repository
+^^^^^^^^^^^^^^^^^^^^^
+
+Create a repository to hold a project's buildset configuration
+files:
+
+.. code-block:: none
+
+ $ mkdir a-project
+ $ cd a-project
+ $ git init
+
+Add the RSB as a sub-module:
+
+.. code-block:: none
+
+ $ git submodule add git://git.rtems.org/rtems-source-builder.git
+
+Create a configuration directory:
+
+.. code-block:: none
+
+ $ mkdir config
+ $ git add config
+
+Tools Configuration
+^^^^^^^^^^^^^^^^^^^
+
+This example will build a single tool set with a local configuration
+file.
+
+Create a configuration file for the ``project``:
+
+.. code-block:: none
+
+ $ vi config/project-tools.bset
+
+Add the following to the buildset configuration file:
+
+.. code-block:: none
+
+ #
+ # Project Tools
+ #
+ @rtems-ver-major@/rtems-aarch64
+
+Commit the changes to the repository:
+
+.. code-block:: none
+
+ $ git add config/project-tools.bset
+ $ git commit -m "Add project aarch64 tools buildset"
+
+Build a tarfile containing the tools using the RSB submodule:
+
+.. code-block:: none
+
+ $ ./rtems-source-builder/source-builder/sb-set-builder \
+ --prefix=/opt/project --log=project.txt \
+ --bset-tar-file --no-install \
+ project-tools
+
+Once the build has finished the ``tar`` directory will contain the
+``project`` tools in a tarfile:
+
+.. code-block:: none
+
+ $ ls tar
+ project-tools.tar.bz2
+
+Inspect the tarfile to check the path matches the prefix used to build
+the tools (sizes may vary):
+
+.. code-block:: none
+
+ $ tar Jtvf tar/project-tools.tar.bz2 | less
+ drwxr-xr-x 0 chris eng 0 Sep 6 14:27 opt/project/bin/
+ -rwxr-xr-x 0 chris eng 1320888 Sep 6 14:20 opt/project/bin/aarch64-rtems@rtems-ver-major@-addr2line
+ -rwxr-xr-x 0 chris eng 1358688 Sep 6 14:20 opt/project/bin/aarch64-rtems@rtems-ver-major@-ar
+ -rwxr-xr-x 0 chris eng 2381976 Sep 6 14:20 opt/project/bin/aarch64-rtems@rtems-ver-major@-as
+ -rwxr-xr-x 0 chris eng 1328440 Sep 6 14:27 opt/project/bin/aarch64-rtems@rtems-ver-major@-c++
+ -rwxr-xr-x 0 chris eng 1316240 Sep 6 14:20 opt/project/bin/aarch64-rtems@rtems-ver-major@-c++filt
+ -rwxr-xr-x 0 chris eng 1328440 Sep 6 14:27 opt/project/bin/aarch64-rtems@rtems-ver-major@-cpp
+ -rwxr-xr-x 0 chris eng 60792 Sep 6 14:20 opt/project/bin/aarch64-rtems@rtems-ver-major@-elfedit
+ -rwxr-xr-x 0 chris eng 1328440 Sep 6 14:27 opt/project/bin/aarch64-rtems@rtems-ver-major@-g++
+ -rwxr-xr-x 0 chris eng 1328440 Sep 6 14:27 opt/project/bin/aarch64-rtems@rtems-ver-major@-gcc
+ -rwxr-xr-x 0 chris eng 1328440 Sep 6 14:27 opt/project/bin/aarch64-rtems@rtems-ver-major@-gcc-12.1.1
+ -rwxr-xr-x 0 chris eng 48568 Sep 6 14:27 opt/project/bin/aarch64-rtems@rtems-ver-major@-gcc-ar
+ -rwxr-xr-x 0 chris eng 48568 Sep 6 14:27 opt/project/bin/aarch64-rtems@rtems-ver-major@-gcc-nm
+ -rwxr-xr-x 0 chris eng 48576 Sep 6 14:27 opt/project/bin/aarch64-rtems@rtems-ver-major@-gcc-ranlib
+ .....
+
+Tools and Kernel
+^^^^^^^^^^^^^^^^
+
+This example builds a single tool set and an RTEMS kernel for a BSP
+using a buildset defined BSP settings.
+
+We use the same ``a-project`` repository from the previous example and
+add a new configuration. Add a configuration file to build the tools
+and a BSP:
+
+.. code-block:: none
+
+ $ vi config/project-tools-bsp.bset
+
+Add the following to the buildset configuration file and save:
+
+.. code-block:: none
+
+ #
+ # Project Tools and BSP
+ #
+ %define with_rtems_bsp aarch64/xilinx_versal_aiedge
+ %define with_rtems_bspopts BSP_XILINX_VERSAL_NOCACHE_LENGTH=0x4000000 \
+ BSP_XILINX_VERSAL_RAM_LENGTH=0x200000000
+ @rtems-ver-major@/rtems-aarch64
+ @rtems-ver-major@/rtems-kernel
+
+The configuration provides BSP options. Commit the changes to the
+repository:
+
+.. code-block:: none
+
+ $ git add config/project-tools-bsp.bset
+ $ git commit -m "Add project tools and BSP buildset"
+
+Build a tarfile of the tools and BSP using the RSB submodule:
+
+.. code-block:: none
+
+ $ ./rtems-source-builder/source-builder/sb-set-builder \
+ --prefix=/opt/project --log=project.txt \
+ --bset-tar-file --no-install \
+ project-tools-bsp
+
+A buildset configuration file that uses buildset BSP defines is
+limited to a single architecture and the tools built need to match the
+architecture of the BSP.
+
+You can specify more than one BSP to be built. An updated
+configuration could be:
+
+.. code-block:: none
+
+ %define with_rtems_bsp aarch64/xilinx_versal_aiedge \
+ aarch64/xilinx_zynqmp_lp64_zu3eg
+
+This is useful when deploying more than one BSP. If you need multiple
+architectures and BSPs consider the Tools and Kernel With Config
+example.
+
+Buildset BSP options are applied to all BSPs in the BSP list. If they
+are specific to a BSP only specify a single BSP in the BSP define.
+
+RTEMS 5 supports this type of buildset file.
+
+Tools and Kernel with Config
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This example builds tool sets for different architectures and multiple
+BSPs for the architectures using a kernel configuration INI file.
+
+Tools for the ``arch64`` and ``arm`` architectures are built and three
+BSPs each with different options.
+
+We use the same ``a-project`` repository from the previous example and
+add the new configurations. Add a configuration file to build the
+tools and BSPs:
+
+.. code-block:: none
+
+ $ vi config/project-tools-bsp-config.bset
+
+Add the following to the buildset configuration file and save:
+
+.. code-block:: none
+
+ #
+ # Project Tools and BSPs
+ #
+ %define with_rtems_bsp_config config/project-bsps.ini
+ @rtems-ver-major@/rtems-aarch64
+ @rtems-ver-major@/rtems-arm
+ @rtems-ver-major@/rtems-kernel
+
+Add a kernel configuration INI file:
+
+.. code-block:: none
+
+ $ vi config/project-bsps.bset
+
+Add the following to the kernel configuration INI file and save:
+
+.. code-block:: none
+
+ #
+ # Project BSPs
+ #
+ [DEFAULT]
+ RTEMS_POSIX_API = True
+ BUILD_SAMPLES = True
+ BUILD_TESTS = False
+
+ [aarch64/xilinx_versal_aiedge]
+ BSP_XILINX_VERSAL_NOCACHE_LENGTH = 0x4000000
+ BSP_XILINX_VERSAL_RAM_LENGTH = 0x200000000
+
+ [aarch64/xilinx_zynqmp_lp64_zu3eg]
+ RTEMS_SMP = True
+
+ [arm/xilinx_zynq_zc706]
+ RTEMS_SMP = True
+ BSP_XILINX_VERSAL_NOCACHE_LENGTH = 0x4000000
+ BSP_XILINX_VERSAL_RAM_LENGTH = 0x200000000
+
+Commit the changes to the repository:
+
+.. code-block:: none
+
+ $ git add config/project-tools-bsp-config.bset
+ $ git add config/project-bsps.ini
+ $ git commit -m "Add project tools and BSPs buildset and kernel config"
+
+Build a tarfile of the tools and BSPs using the RSB submodule:
+
+.. code-block:: none
+
+ $ ./rtems-source-builder/source-builder/sb-set-builder \
+ --prefix=/opt/project --log=project.txt \
+ --bset-tar-file --no-install \
+ project-tools-bsp-config
+
+Tools, Kernel and Packages
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Third party libraries can be built as part of a single RSB
+configuration if only one BSP is built at a time. The RSB support for
+building packages does not support building for multiple BSPs.
+
+We use the same ``a-project`` repository from the previous example and
+add a new configuration. Add a configuration file to build the tools,
+BSPs and LibBSD:
+
+.. code-block:: none
+
+ $ vi config/project-aarch64-tools-bsp-libbsd.bset
+
+Add the following to the buildset configuration file and save:
+
+.. code-block:: none
+
+ #
+ # Project Tools, BSP and LibBSD
+ #
+ %define with_rtems_bsp aarch64/xilinx_versal_aiedge
+ %define with_rtems_bspopts BSP_XILINX_VERSAL_NOCACHE_LENGTH=0x4000000 \
+ BSP_XILINX_VERSAL_RAM_LENGTH=0x200000000
+ 6/rtems-aarch64
+ 6/rtems-kernel
+ 6/rtems-libbsd
+
+Commit the changes to the repository:
+
+.. code-block:: none
+
+ $ git add config/project-aarch64-tools-bsp-libbsd.bset
+ $ git commit -m "Add project aarch64 tools, BSP and libbsd"
+
+Build a tarfile of the tools, BSP and LibBSD using the RSB
+submodule:
+
+.. code-block:: none
+
+ $ ./rtems-source-builder/source-builder/sb-set-builder \
+ --prefix=/opt/project --log=project.txt \
+ --bset-tar-file --no-install \
+ project-aarch64-tools-bsp-libbsd
+
+The tarfile can be reviewed to see the BSP libraries built (sizes may vary):
+
+.. code-block:: none
+
+ $ tar jtvf tar/project-aarch64-tools-bsp-libbsd.tar.bz2 | \
+ grep -e '\.a$' | grep -e 'xilinx_versal_aiedge'
+ -rw-r--r-- 0 chris eng 138936312 Sep 7 14:58 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/libbsd.a
+ -rw-r--r-- 0 chris eng 686190 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/libdebugger.a
+ -rw-r--r-- 0 chris eng 164086 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/libftpd.a
+ -rw-r--r-- 0 chris eng 107560 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/libftpfs.a
+ -rw-r--r-- 0 chris eng 978812 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/libjffs2.a
+ -rw-r--r-- 0 chris eng 412354 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/libmghttpd.a
+ -rw-r--r-- 0 chris eng 2099962 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/librtemsbsp.a
+ -rw-r--r-- 0 chris eng 29693496 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/librtemscpu.a
+ -rw-r--r-- 0 chris eng 435236 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/librtemscxx.a
+ -rw-r--r-- 0 chris eng 141234 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/librtemsdefaultconfig.a
+ -rw-r--r-- 0 chris eng 856514 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/librtemstest.a
+ -rw-r--r-- 0 chris eng 159004 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/libtelnetd.a
+ -rw-r--r-- 0 chris eng 137386 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/libtftpfs.a
+ -rw-r--r-- 0 chris eng 476692 Sep 7 14:56 opt/project/aarch64-rtems@rtems-ver-major@/xilinx_versal_aiedge/lib/libz.a
+
+Tools, Kernel with Config and Packages
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This example builds the tools, kernel and LibBSD using an RSB
+configuration file and a kernel configuration file. The kernel
+configuration provides easier kernel and BSP option management.
+
+Third party libraries can be built as part of a single RSB
+configuration if only one BSP is built at a time. The RSB support for
+building packages does not support building for multiple BSPs.
+
+We use the same ``a-project`` repository from the previous example and
+add a new configuration. Add a configuration file to build the tools,
+BSPs and LibBSD:
+
+.. code-block:: none
+
+ $ vi config/project-aarch-tools-bsp-libbsd-config.bset
+
+Add the following to the buildset configuration file and save:
+
+.. code-block:: none
+
+ #
+ # Project Tools, BSP and LibBSD
+ #
+ %define with_rtems_bsp_config config/project-aarch64-bsp.ini
+ 6/rtems-aarch64
+ 6/rtems-kernel
+ 6/rtems-libbsd
+
+Add a kernel configuration INI file:
+
+.. code-block:: none
+
+ $ vi config/project-aarch64-bsp.bset
+
+Add the following kernel configuration INI file and save:
+
+.. code-block:: none
+
+ #
+ # Project Versal AI Edge BSP
+ #
+ [DEFAULT]
+ RTEMS_POSIX_API = True
+ BUILD_SAMPLES = True
+ BUILD_TESTS = False
+
+ [aarch64/xilinx_versal_aiedge]
+ BSP_XILINX_VERSAL_NOCACHE_LENGTH = 0x4000000
+ BSP_XILINX_VERSAL_RAM_LENGTH = 0x200000000
+
+Commit the changes to the repository:
+
+.. code-block:: none
+
+ $ git add config/project-aarch64-tools-bsp-libbsd-config.bset
+ $ git add config/project-aarch64-bsp.ini
+ $ git commit -m "Add project aarch64 tools, BSP (with config) and libbsd"
+
+Build the tarfile of the tools, BSP and LibBSD using the RSB
+submodule:
+
+.. code-block:: none
+
+ $ ./rtems-source-builder/source-builder/sb-set-builder \
+ --prefix=/opt/project --log=project.txt \
+ --bset-tar-file --no-install \
+ project-aarch64-tools-bsp-libbsd-config
diff --git a/user/exe/initialization.rst b/user/exe/initialization.rst
index 6c9d657..f4b5d7e 100644
--- a/user/exe/initialization.rst
+++ b/user/exe/initialization.rst
@@ -87,15 +87,15 @@ sample application in the RTEMS kernel's testsuite::
.. code-block:: none
- $ rtems-exeinfo --init arm-rtems5/c/xilinx_zynq_zedboard/testsuites/samples/hello.exe
- RTEMS Executable Info 5.5416cfa39dd6
- $ rtems-exeinfo --init arm-rtems5/c/xilinx_zynq_zedboard/testsuites/samples/hello.exe
- exe: arm-rtems5/c/xilinx_zynq_zedboard/testsuites/samples/hello.exe
+ $ rtems-exeinfo --init arm-rtems@rtems-ver-major@/c/xilinx_zynq_zedboard/testsuites/samples/hello.exe
+ RTEMS Executable Info @rtems-ver-major@.5416cfa39dd6
+ $ rtems-exeinfo --init arm-rtems@rtems-ver-major@/c/xilinx_zynq_zedboard/testsuites/samples/hello.exe
+ exe: arm-rtems@rtems-ver-major@/c/xilinx_zynq_zedboard/testsuites/samples/hello.exe
Compilation:
Producers: 2
| GNU AS 2.31.1: 14 objects
- | GNU C11 7.3.0 20180125 (RTEMS 5, RSB e55769c64cf1a201588565a5662deafe3f1ccdcc, Newlib 103b055035fea328f8bc7826801760fb1c055683): 284 objects
+ | GNU C11 7.3.0 20180125 (RTEMS @rtems-ver-major@, RSB e55769c64cf1a201588565a5662deafe3f1ccdcc, Newlib 103b055035fea328f8bc7826801760fb1c055683): 284 objects
Common flags: 4
| -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard
diff --git a/user/exe/loader.rst b/user/exe/loader.rst
index c11f363..be2e78e 100644
--- a/user/exe/loader.rst
+++ b/user/exe/loader.rst
@@ -458,9 +458,9 @@ into the base image.
.. code-block:: none
- $ sparc-rtems5-gcc -mcpu=cypress foo.o -lrtemsbsp -lrtemscpu -o foo.pre
- $ rtems-syms -e -C sparc-rtems5-gcc -c "-mcpu=cypress" -o foo-sym.o foo.pre
- $ sparc-rtems5-gcc -mcpu=cypress foo.o foo-sym.o -lrtemsbsp -lrtemscpu -o foo.exe
+ $ sparc-rtems@rtems-ver-major@-gcc -mcpu=cypress foo.o -lrtemsbsp -lrtemscpu -o foo.pre
+ $ rtems-syms -e -C sparc-rtems@rtems-ver-major@-gcc -c "-mcpu=cypress" -o foo-sym.o foo.pre
+ $ sparc-rtems@rtems-ver-major@-gcc -mcpu=cypress foo.o foo-sym.o -lrtemsbsp -lrtemscpu -o foo.exe
The link command line steps in this example are not complete.
@@ -486,8 +486,8 @@ file. First create the symbol table's executable object file:
.. code-block:: none
- $ sparc-rtems5-gcc -mcpu=cypress foo.o -lrtemsbsp -lrtemscpu -o foo.exe
- $ rtems-syms -C sparc-rtems5-gcc -c "-mcpu=cypress" -o foo-sym.o foo.exe
+ $ sparc-rtems@rtems-ver-major@-gcc -mcpu=cypress foo.o -lrtemsbsp -lrtemscpu -o foo.exe
+ $ rtems-syms -C sparc-rtems@rtems-ver-major@-gcc -c "-mcpu=cypress" -o foo-sym.o foo.exe
The link command line steps in this example are not complete.
@@ -632,7 +632,7 @@ in a library with a single command.
.. code-block:: none
- $ sparc-rtems5-strip libc.a
+ $ sparc-rtems@rtems-ver-major@-strip libc.a
Large Memory
------------
@@ -837,6 +837,7 @@ Architectures
The following architectures are supported:
+ - AArch64
- ARM
- Blackfin
- H8300
@@ -849,10 +850,19 @@ The following architectures are supported:
- SPARC
- V850
+AArch64
+^^^^^^^
+
+The AArch64 relocation backend supports veneers which is trampolines.
+
+The veneer implementation is two instructions and a 64bit target address
+making the overhead 16 bytes for each veneer. The performance overhead is two
+instructions.
+
ARM
^^^
-The ARM relocation backend supports veneers which is trampolines.
+The ARM relocation backend supports veneers.
The veneer implementation is a single instruction and a 32bit target address
making the overhead 8 bytes for each veneer. The performance overhead is a
diff --git a/user/hosts/os.rst b/user/hosts/os.rst
index 4bb873e..49d7e7e 100644
--- a/user/hosts/os.rst
+++ b/user/hosts/os.rst
@@ -79,4 +79,4 @@ proven over the years to be difficult to manage in production systems.
$ git checkout -t origin/4.11
- Branches are available for the 4.9, 4.10, and 4.11 versions of RTEMS.
+ Branches are available for the 4.9, 4.10, 4.11 and 5 versions of RTEMS.
diff --git a/user/index.rst b/user/index.rst
index a91aa55..38ade81 100644
--- a/user/index.rst
+++ b/user/index.rst
@@ -20,7 +20,7 @@ RTEMS User Manual (|version|).
| |copy| 2017 Tanu Hari Dixit
| |copy| 2016, 2019 embedded brains GmbH
| |copy| 2016, 2019 Sebastian Huber
- | |copy| 2012, 2020 Chris Johns
+ | |copy| 2012, 2022 Chris Johns
| |copy| 2012, 2020 Gedare Bloom
| |copy| 1988, 2018 On-Line Applications Research Corporation (OAR)
@@ -37,6 +37,7 @@ RTEMS User Manual (|version|).
support/index
hosts/index
installation/index
+ deployment/index
hardware/index
bld/index
diff --git a/user/installation/developer.rst b/user/installation/developer.rst
index 1b2b785..8acd68c 100644
--- a/user/installation/developer.rst
+++ b/user/installation/developer.rst
@@ -34,8 +34,8 @@ you can do this without needing to be root. You can also use
The location used to install the tools and kernel is called the `prefix`. It is
best to have a `prefix` for each different version of RTEMS you are using. If
-you are using RTEMS 4.11 in production it is not a good idea to install a
-development version of 5 over the top. A separate `prefix` for each version
+you are using RTEMS 5 in production it is not a good idea to install a
+development version of 6 over the top. A separate `prefix` for each version
avoids this.
The RTEMS tool chain changes less often than the RTEMS kernel. One method of
@@ -84,7 +84,7 @@ requires:
$ cd rsb
$ ./source-builder/sb-check
- RTEMS Source Builder - Check, 5 (089327b5dcf9)
+ RTEMS Source Builder - Check, @rtems-ver-major@ (089327b5dcf9)
Environment is ok
If you are unsure how to specify the build set for the architecture you wish to
@@ -93,58 +93,102 @@ build, just ask the tool:
.. code-block:: none
$ ../source-builder/sb-set-builder --list-bsets <1>
- RTEMS Source Builder - Set Builder, v4.11.0
+ RTEMS Source Builder - Set Builder, 6 (7d80719f7472)
Examining: config
- Examining: ../source-builder/config <2>
- 4.10/rtems-all.bset <3>
- 4.10/rtems-arm.bset <4>
- 4.10/rtems-autotools.bset
- 4.10/rtems-avr.bset
- 4.10/rtems-bfin.bset
- 4.10/rtems-h8300.bset
- 4.10/rtems-i386.bset
- 4.10/rtems-lm32.bset
- 4.10/rtems-m32c.bset
- 4.10/rtems-m32r.bset
- 4.10/rtems-m68k.bset
- 4.10/rtems-mips.bset
- 4.10/rtems-nios2.bset
- 4.10/rtems-powerpc.bset
- 4.10/rtems-sh.bset
- 4.10/rtems-sparc.bset
- 4.11/rtems-all.bset
- 4.11/rtems-arm.bset
- 4.11/rtems-autotools.bset
- 4.11/rtems-avr.bset
- 4.11/rtems-bfin.bset
- 4.11/rtems-h8300.bset
- 4.11/rtems-i386.bset
- 4.11/rtems-lm32.bset
- 4.11/rtems-m32c.bset
- 4.11/rtems-m32r.bset
- 4.11/rtems-m68k.bset
- 4.11/rtems-microblaze.bset
- 4.11/rtems-mips.bset
- 4.11/rtems-moxie.bset
- 4.11/rtems-nios2.bset
- 4.11/rtems-powerpc.bset
- 4.11/rtems-sh.bset
- 4.11/rtems-sparc.bset
- 4.11/rtems-sparc64.bset
- 4.11/rtems-v850.bset
- 4.9/rtems-all.bset
- 4.9/rtems-arm.bset
- 4.9/rtems-autotools.bset
- 4.9/rtems-i386.bset
- 4.9/rtems-m68k.bset
- 4.9/rtems-mips.bset
- 4.9/rtems-powerpc.bset
- 4.9/rtems-sparc.bset
+ Examining: ../source-builder/config <2>
+ Examining: ../bare/config
+ 6/rtems-aarch64.bset
+ 6/rtems-all.bset <3>
+ 6/rtems-arm.bset <4>
+ 6/rtems-base.bset
+ 6/rtems-bfin.bset
+ 6/rtems-default.bset
+ 6/rtems-i386.bset
+ 6/rtems-kernel.bset
+ 6/rtems-libbsd.bset
+ 6/rtems-llvm.bset
+ 6/rtems-lm32.bset
+ 6/rtems-m68k.bset
+ 6/rtems-microblaze.bset
+ 6/rtems-mips.bset
+ 6/rtems-moxie.bset
+ 6/rtems-net-legacy.bset
+ 6/rtems-nios2.bset
+ 6/rtems-or1k.bset
+ 6/rtems-packages.bset
+ 6/rtems-powerpc.bset
+ 6/rtems-riscv.bset
+ 6/rtems-sh.bset
+ 6/rtems-sparc.bset
+ 6/rtems-sparc64.bset
+ 6/rtems-tools.bset
+ 6/rtems-v850.bset
+ 6/rtems-x86_64.bset
+ 7/rtems-aarch64.bset
+ 7/rtems-all.bset
+ 7/rtems-arm.bset
+ 7/rtems-base.bset
+ 7/rtems-bfin.bset
+ 7/rtems-default.bset
+ 7/rtems-i386.bset
+ 7/rtems-lm32.bset
+ 7/rtems-m68k.bset
+ 7/rtems-microblaze.bset
+ 7/rtems-mips.bset
+ 7/rtems-moxie.bset
+ 7/rtems-nios2.bset
+ 7/rtems-or1k.bset
+ 7/rtems-powerpc.bset
+ 7/rtems-riscv.bset
+ 7/rtems-sh.bset
+ 7/rtems-sparc.bset
+ 7/rtems-sparc64.bset
+ 7/rtems-v850.bset
+ 7/rtems-x86_64.bset
+ bsps/atsamv.bset
+ bsps/beagleboneblack.bset
+ bsps/erc32.bset
+ bsps/gr712rc.bset
+ bsps/gr740.bset
+ bsps/imx7.bset
+ bsps/pc.bset
+ bsps/qoriq_e500.bset
+ bsps/qoriq_e6500_32.bset
+ bsps/qoriq_e6500_64.bset
+ bsps/raspberrypi2.bset
+ bsps/xilinx_zynq_zc702.bset
+ bsps/xilinx_zynq_zc706.bset
+ bsps/xilinx_zynq_zedboard.bset
+ databases/sqlite.bset
+ devel/autotools-base.bset
+ devel/autotools-internal.bset
+ devel/autotools.bset
+ devel/capstone.bset
+ devel/dtc.bset
+ devel/libtool.bset
+ devel/libusb.bset
+ devel/or1ksim.bset
+ devel/qemu-couverture.bset
+ devel/qemu-xilinx.bset
+ devel/qemu.bset
+ devel/sis.bset
+ devel/spike.bset
+ devel/swig.bset
+ ftp/curl.bset
gnu-tools-4.6.bset
- rtems-4.10-base.bset <5>
- rtems-4.11-base.bset
- rtems-4.9-base.bset
- rtems-base.bset <5>
+ gnu-tools-4.8.2.bset
+ graphics/freetype2.bset
+ graphics/graphics-all.bset
+ graphics/libjpeg.bset
+ graphics/libpng.bset
+ graphics/libtiff.bset
+ graphics/microwindows.bset
+ graphics/nxlib.bset
+ graphics/t1lib.bset
+ lang/gcc491.bset
+ net-mgmt/net-snmp.bset
+ net/lwip.bset
+ net/ntp.bset
.. topic:: Items:
@@ -152,142 +196,15 @@ build, just ask the tool:
2. The paths inspected. See :ref:`Configuration`.
- 3. A build set to build all RTEMS 4.10 supported architectures.
+ 3. A build set to build all RTEMS @rtems-ver-major@ supported architectures.
- 4. The build set for the ARM architecture on RTEMS 4.10.
-
- 5. Support build set file with common functionality included by other build
- set files.
+ 4. The build set for the ARM architecture on RTEMS @rtems-ver-major@.
Build a tool chain for the SPARC architecture. We are using the SPARC
-architecture because GDB has a good simulator that lets us run and test the
-samples RTEMS builds by default. The current development version
-is `5` and is on master:
-
-.. code-block:: none
+architecture because GDB has a good simulator that lets us run and
+test the samples RTEMS builds by default. The development version is
+one more than ``@rtems-ver-major@` and is on the ``master`` branch:
- $ cd rtems
- $ ../source-builder/sb-set-builder --prefix=/usr/home/chris/development/rtems/5 5/rtems-sparc
- RTEMS Source Builder - Set Builder, 5 (089327b5dcf9)
- Build Set: 5/rtems-sparc
- Build Set: 5/rtems-autotools.bset
- Build Set: 5/rtems-autotools-internal.bset
- config: tools/rtems-autoconf-2.69-1.cfg
- package: autoconf-2.69-x86_64-linux-gnu-1
- Creating source directory: sources
- download: ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz -> sources/autoconf-2.69.tar.gz
- downloading: sources/autoconf-2.69.tar.gz - 1.8MB of 1.8MB (100%)
- building: autoconf-2.69-x86_64-linux-gnu-1
- config: tools/rtems-automake-1.12.6-1.cfg
- package: automake-1.12.6-x86_64-linux-gnu-1
- download: ftp://ftp.gnu.org/gnu/automake/automake-1.12.6.tar.gz -> sources/automake-1.12.6.tar.gz
- downloading: sources/automake-1.12.6.tar.gz - 2.0MB of 2.0MB (100%)
- Creating source directory: patches
- download: https://git.rtems.org/rtems-tools/plain/tools/5/automake/automake-1.12.6-bugzilla.redhat.com-1239379.diff -> patches/automake-1.12.6-bugzilla.redhat.com-1239379.diff
- downloading: patches/automake-1.12.6-bugzilla.redhat.com-1239379.diff - 408.0 bytes of 408.0 bytes (100%)
- building: automake-1.12.6-x86_64-linux-gnu-1
- cleaning: autoconf-2.69-x86_64-linux-gnu-1
- cleaning: automake-1.12.6-x86_64-linux-gnu-1
- Build Set: Time 0:00:12.713221
- Build Set: 5/rtems-autotools-base.bset
- config: tools/rtems-autoconf-2.69-1.cfg
- package: autoconf-2.69-x86_64-linux-gnu-1
- building: autoconf-2.69-x86_64-linux-gnu-1
- reporting: tools/rtems-autoconf-2.69-1.cfg -> autoconf-2.69-x86_64-linux-gnu-1.txt
- reporting: tools/rtems-autoconf-2.69-1.cfg -> autoconf-2.69-x86_64-linux-gnu-1.xml
- config: tools/rtems-automake-1.12.6-1.cfg
- package: automake-1.12.6-x86_64-linux-gnu-1
- building: automake-1.12.6-x86_64-linux-gnu-1
- reporting: tools/rtems-automake-1.12.6-1.cfg -> automake-1.12.6-x86_64-linux-gnu-1.txt
- reporting: tools/rtems-automake-1.12.6-1.cfg -> automake-1.12.6-x86_64-linux-gnu-1.xml
- installing: autoconf-2.69-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/5
- installing: automake-1.12.6-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/5
- cleaning: autoconf-2.69-x86_64-linux-gnu-1
- cleaning: automake-1.12.6-x86_64-linux-gnu-1
- Build Set: Time 0:00:09.105363
- Build Set: Time 0:00:21.822083
- config: devel/expat-2.1.0-1.cfg
- package: expat-2.1.0-x86_64-linux-gnu-1
- download: http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz -> sources/expat-2.1.0.tar.gz
- redirect: https://vorboss.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz
- downloading: sources/expat-2.1.0.tar.gz - 549.4kB of 549.4kB (100%)
- building: expat-2.1.0-x86_64-linux-gnu-1
- reporting: devel/expat-2.1.0-1.cfg -> expat-2.1.0-x86_64-linux-gnu-1.txt
- reporting: devel/expat-2.1.0-1.cfg -> expat-2.1.0-x86_64-linux-gnu-1.xml
- config: tools/rtems-binutils-2.29-1.cfg
- package: sparc-rtems5-binutils-2.29-x86_64-linux-gnu-1
- download: ftp://ftp.gnu.org/gnu/binutils/binutils-2.29.tar.bz2 -> sources/binutils-2.29.tar.bz2
- downloading: sources/binutils-2.29.tar.bz2 - 27.7MB of 27.7MB (100%)
- download: https://devel.rtems.org/raw-attachment/ticket/3091/0001-Fix-Binutils-2.29-PR21884.patch -> patches/0001-Fix-Binutils-2.29-PR21884.patch
- downloading: patches/0001-Fix-Binutils-2.29-PR21884.patch - 8.8kB of 8.8kB (100%)
- building: sparc-rtems5-binutils-2.29-x86_64-linux-gnu-1
- reporting: tools/rtems-binutils-2.29-1.cfg -> sparc-rtems5-binutils-2.29-x86_64-linux-gnu-1.txt
- reporting: tools/rtems-binutils-2.29-1.cfg -> sparc-rtems5-binutils-2.29-x86_64-linux-gnu-1.xml
- config: tools/rtems-gcc-7.2.0-newlib-2.5.0.20170922-1.cfg
- package: sparc-rtems5-gcc-7.2.0-newlib-2.5.0.20170922-x86_64-linux-gnu-1
- download: https://ftp.gnu.org/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.xz -> sources/gcc-7.2.0.tar.xz
- downloading: sources/gcc-7.2.0.tar.xz - 59.4MB of 59.4MB (100%)
- download: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=62ffbcb7502f0ff88ff7566cd6d7c59c0483ecc0 -> patches/gcc-62ffbcb7502f0ff88ff7566cd6d7c59c0483ecc0.patch
- downloading: patches/gcc-62ffbcb7502f0ff88ff7566cd6d7c59c0483ecc0.patch - 1.8kB
- download: https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff_plain;f=gcc/config.gcc;h=593631849bb5e0df5cc4ff42c1a1cc34b7eec2f8;hp=a9196cd26d9ec24c2e3f6026f63348cae3734861;hb=e840389000b8339a63bee56d8b3...<see log> -> patches/gcc-593631849bb5e0df5cc4ff42c1a1cc34b7eec2f8.patch
- downloading: patches/gcc-593631849bb5e0df5cc4ff42c1a1cc34b7eec2f8.patch - 806.0 bytes
- download: https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff_plain;f=gcc/config/rs6000/rtems.h;h=7ea9ebdb77b6a9b7060ad2362318e0e12b9058ae;hp=8a62fdcbaf321d616021c4c396619b7f56cf5ed2;hb=e840389000b8339a...<see log> -> patches/gcc-7ea9ebdb77b6a9b7060ad2362318e0e12b9058ae.patch
- downloading: patches/gcc-7ea9ebdb77b6a9b7060ad2362318e0e12b9058ae.patch - 3.2kB
- download: ftp://sourceware.org/pub/newlib/newlib-2.5.0.20170922.tar.gz -> sources/newlib-2.5.0.20170922.tar.gz
- downloading: sources/newlib-2.5.0.20170922.tar.gz - 17.3MB of 17.3MB (100%)
- download: https://devel.rtems.org/raw-attachment/ticket/2514/0001-RTEMS-Self-contained-POSIX-objects.patch -> patches/0001-RTEMS-Self-contained-POSIX-objects.patch
- downloading: patches/0001-RTEMS-Self-contained-POSIX-objects.patch - 5.7kB of 5.7kB (100%)
- download: https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=patch;h=c165a27c0147471977377acd8918ab3b446f947a -> patches/newlib-cygwin-git-c165a27c0147471977377acd8918ab3b446f947a.patch
- downloading: patches/newlib-cygwin-git-c165a27c0147471977377acd8918ab3b446f947a.patch - 986.0 bytes
- download: https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=patch;h=ce189d8afef720b0977b5cae7f9eabf5d49b530c -> patches/newlib-cygwin-git-ce189d8afef720b0977b5cae7f9eabf5d49b530c.patch
- downloading: patches/newlib-cygwin-git-ce189d8afef720b0977b5cae7f9eabf5d49b530c.patch - 3.4kB
- download: https://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.bz2 -> sources/mpfr-3.1.4.tar.bz2
- downloading: sources/mpfr-3.1.4.tar.bz2 - 1.2MB of 1.2MB (100%)
- download: https://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz -> sources/mpc-1.0.3.tar.gz
- downloading: sources/mpc-1.0.3.tar.gz - 654.2kB of 654.2kB (100%)
- download: https://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2 -> sources/gmp-6.1.0.tar.bz2
- downloading: sources/gmp-6.1.0.tar.bz2 - 2.3MB of 2.3MB (100%)
- building: sparc-rtems5-gcc-7.2.0-newlib-2.5.0.20170922-x86_64-linux-gnu-1
- reporting: tools/rtems-gcc-7.2.0-newlib-2.5.0.20170922-1.cfg -> sparc-rtems5-gcc-7.2.0-newlib-2.5.0.20170922-x86_64-linux-gnu-1.txt
- reporting: tools/rtems-gcc-7.2.0-newlib-2.5.0.20170922-1.cfg -> sparc-rtems5-gcc-7.2.0-newlib-2.5.0.20170922-x86_64-linux-gnu-1.xml
- config: tools/rtems-gdb-8.0.1-1.cfg
- package: sparc-rtems5-gdb-8.0.1-x86_64-linux-gnu-1
- download: http://ftp.gnu.org/gnu/gdb/gdb-8.0.1.tar.xz -> sources/gdb-8.0.1.tar.xz
- downloading: sources/gdb-8.0.1.tar.xz - 18.7MB of 18.7MB (100%)
- download: https://gaisler.org/gdb/gdb-8.0.1-sis-leon2-leon3.diff -> patches/gdb-8.0.1-sis-leon2-leon3.diff
- downloading: patches/gdb-8.0.1-sis-leon2-leon3.diff - 224.5kB of 224.5kB (100%)
- building: sparc-rtems5-gdb-8.0.1-x86_64-linux-gnu-1
- reporting: tools/rtems-gdb-8.0.1-1.cfg -> sparc-rtems5-gdb-8.0.1-x86_64-linux-gnu-1.txt
- reporting: tools/rtems-gdb-8.0.1-1.cfg -> sparc-rtems5-gdb-8.0.1-x86_64-linux-gnu-1.xml
- config: tools/rtems-tools-5-1.cfg
- package: rtems-tools-HEAD-1
- Creating source directory: sources/git
- git: clone: git://git.rtems.org/rtems-tools.git -> sources/git/rtems-tools.git
- git: reset: git://git.rtems.org/rtems-tools.git
- git: fetch: git://git.rtems.org/rtems-tools.git -> sources/git/rtems-tools.git
- git: checkout: git://git.rtems.org/rtems-tools.git => HEAD
- git: pull: git://git.rtems.org/rtems-tools.git
- building: rtems-tools-HEAD-1
- reporting: tools/rtems-tools-5-1.cfg -> rtems-tools-HEAD-1.txt
- reporting: tools/rtems-tools-5-1.cfg -> rtems-tools-HEAD-1.xml
- config: tools/rtems-kernel-5.cfg
- package: sparc-rtems5-kernel-5-1
- building: sparc-rtems5-kernel-5-1
- reporting: tools/rtems-kernel-5.cfg -> sparc-rtems5-kernel-5-1.txt
- reporting: tools/rtems-kernel-5.cfg -> sparc-rtems5-kernel-5-1.xml
- installing: expat-2.1.0-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/5
- installing: sparc-rtems5-binutils-2.29-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/5
- installing: sparc-rtems5-gcc-7.2.0-newlib-2.5.0.20170922-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/5
- installing: sparc-rtems5-gdb-8.0.1-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/5
- installing: rtems-tools-HEAD-1 -> /usr/home/chris/development/rtems/5
- installing: sparc-rtems5-kernel-5-1 -> /usr/home/chris/development/rtems/5
- cleaning: expat-2.1.0-x86_64-linux-gnu-1
- cleaning: sparc-rtems5-binutils-2.29-x86_64-linux-gnu-1
- cleaning: sparc-rtems5-gcc-7.2.0-newlib-2.5.0.20170922-x86_64-linux-gnu-1
- cleaning: sparc-rtems5-gdb-8.0.1-x86_64-linux-gnu-1
- cleaning: rtems-tools-HEAD-1
- cleaning: sparc-rtems5-kernel-5-1
- Build Set: Time 0:39:33.988995
.. _windows-tool-chain:
Windows Host Tool Chain
diff --git a/user/installation/project-sandboxing.rst b/user/installation/project-sandboxing.rst
index 248a136..bba7e8a 100644
--- a/user/installation/project-sandboxing.rst
+++ b/user/installation/project-sandboxing.rst
@@ -18,11 +18,12 @@ directory suitable permissions to be writable by you as a user.
Lets create a project sandbox for my *Box Sorter* project. First create a
project directory called :file:`/bd/projects/box-sorter`. Under this create
-:file:`rtems` and under that create :file:`rtems-4.11.0`. Under this path you
-can follow the :ref:`released-version` procedure to build a tool set using the
-prefix of :file:`/bd/projects/box-sorter/rtems/4.11.0`. You are free to create
-your project specific directories under :file:`/bd/projects/box-sorter`. The
-top level directories would be:
+:file:`rtems` and under that create :file:`rtems-@rtems-ver-majminrev@`. Under
+this path you can follow the :ref:`released-version` procedure to build a tool
+set using the prefix of
+:file:`/bd/projects/box-sorter/rtems/@rtems-ver-majminrev@`. You are free to
+create your project specific directories under
+:file:`/bd/projects/box-sorter`. The top level directories would be:
:file:`/bd/projects`
Project specific development trees.
@@ -30,9 +31,9 @@ top level directories would be:
:file:`/bd/projects/box-sorter`
Box Sorter project sandbox.
-:file:`/bd/projects/box-sorter/rtems/4.11.0`
- Project prefix for RTEMS 4.11.0 compiler, debuggers, tools and installed
- Board Support Package (BSP).
+:file:`/bd/projects/box-sorter/rtems/@rtems-ver-majminrev@`
+ Project prefix for RTEMS @rtems-ver-majminrev@ compiler, debuggers, tools and
+ installed Board Support Package (BSP).
A variation is to use the ``--without-rtems`` option with the RSB to not build
the BSPs when building the tools and to build RTEMS specifically for each
@@ -43,8 +44,9 @@ RTEMS. The top level directories would be:
:file:`/bd/rtems`
The top path to production tools.
-:file:`/bd/rtems/4.11.0`
- Production prefix for RTEMS 4.11.0 compiler, debuggers and tools.
+:file:`/bd/rtems/@rtems-ver-majminrev@`
+ Production prefix for RTEMS @rtems-ver-majminrev@ compiler, debuggers and
+ tools.
:file:`/bd/projects`
Project specific development trees.
@@ -62,14 +64,16 @@ up with:
:file:`/bd/rtems`
The top path to production tools and kernels.
-:file:`/bd/rtems/4.11.0`
- Production prefix for RTEMS 4.11.0.
+:file:`/bd/rtems/@rtems-ver-majminrev@`
+ Production prefix for RTEMS @rtems-ver-majminrev@.
-:file:`/bd/rtems/4.11.0/tools`
- Production prefix for RTEMS 4.11.0 compiler, debuggers and tools.
+:file:`/bd/rtems/@rtems-ver-majminrev@/tools`
+ Production prefix for RTEMS @rtems-ver-majminrev@ compiler, debuggers and
+ tools.
-:file:`/bd/rtems/4.11.0/bsps`
- Production prefix for RTEMS 4.11.0 Board Support Packages (BSPs).
+:file:`/bd/rtems/@rtems-ver-majminrev@/bsps`
+ Production prefix for RTEMS @rtems-ver-majminrev@ Board Support Packages
+ (BSPs).
:file:`/bd/projects`
Project specific development trees.
@@ -84,9 +88,9 @@ directories would be:
:file:`/bd/rtems`
The top path to production tools and kernels.
-:file:`/bd/rtems/4.11.0`
- Production prefix for RTEMS 4.11.0 compiler, debuggers, tools and Board
- Support Packages (BSPs).
+:file:`/bd/rtems/@rtems-ver-majminrev@`
+ Production prefix for RTEMS @rtems-ver-majminrev@ compiler, debuggers, tools
+ and Board Support Packages (BSPs).
:file:`/bd/projects`
Project specific development trees.
diff --git a/user/installation/releases.rst b/user/installation/releases.rst
index a20f948..6694806 100644
--- a/user/installation/releases.rst
+++ b/user/installation/releases.rst
@@ -30,11 +30,11 @@ more detail about path lengths on Windows.
The location used to install the tools and kernel is called the `prefix`.
:ref:`QuickStartPrefixes` explains prefixes and how to use them. It is best to
have a `prefix` for each different version of RTEMS you are using. If you are
-using RTEMS 4.11 in production it is **not** a good idea to install a
-development version of 5 over the top by using the same `prefix` as the 4.11
-build. A separate `prefix` for each version avoids this.
+using RTEMS in production it is **not** a good idea to install a development
+version of over the top by using the same `prefix`. A separate `prefix` for each
+version avoids this.
-Released versions of the RTEMS Source Builder (RSB) downloads all source code
+Released versions of the RTEMS Source Builder (RSB) download all source code
for all packages from the :r:url:`ftp` rather than from the package's home
site. Hosting all the source on the :r:url:`ftp` ensures the source is present
for the life of the release on the :r:url:`ftp`. If there is a problem
@@ -47,9 +47,8 @@ shosted here. It has excellent internet access and performance.
.. note:: **Controlling the RTEMS Kernel Build**
- Building releases by default does not build the RTEMS kernel. To
- build the RTEMS kernel add the ``--with-rtems`` option to the RSB
- command line.
+ Building RSB releases by default does not build the RTEMS kernel. To build
+ the RTEMS kernel add the ``--with-rtems`` option to the RSB command line.
By default all the BSPs for an architecture are built. If you only wish to
have a specific BSP built you can specify the BSP list by providing to the
@@ -86,33 +85,33 @@ Download the RTEMS Source Builder (RSB) from the RTEMS FTP server:
.. code-block:: none
- $ wget https://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/rtems-source-builder-4.11.0.tar.xz
- --2016-03-21 10:50:04-- https://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/rtems-source-builder-4.11.0.tar.xz
+ $ wget https://ftp.rtems.org/pub/rtems/releases/@rtems-ver-major@/@rtems-ver-majminrev@/rtems-source-builder-@rtems-ver-majminrev@.tar.xz
+ --2016-03-21 10:50:04-- https://ftp.rtems.org/pub/rtems/releases/@rtems-ver-major/@rtems-ver-majminrev@/rtems-source-builder-@rtems-ver-majminrev@.tar.xz
Resolving ftp.rtems.org (ftp.rtems.org)... 140.211.10.151
Connecting to ftp.rtems.org (ftp.rtems.org)|140.211.10.151|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 967056 (944K) [application/x-xz]
- Saving to: 'rtems-source-builder-4.11.0.tar.xz'
+ Saving to: 'rtems-source-builder-@rtems-ver-majminrev@.tar.xz'
- rtems-source-builder-4.1 100%[====================================>] 944.39K 206KB/s in 5.5s
+ rtems-source-builder-@rtems-ver-majminrev@ 100%[====================================>] 944.39K 206KB/s in 5.5s
- 2016-03-21 10:50:11 (173 KB/s) - 'rtems-source-builder-4.11.0.tar.xz' saved [967056/967056]
+ 2016-03-21 10:50:11 (173 KB/s) - 'rtems-source-builder-@rtems-ver-majminrev@.tar.xz' saved [967056/967056]
On Unix unpack the RSB release tar file using:
.. code-block:: none
- $ tar Jxf rtems-source-builder-4.11.0.tar.xz
- $ cd rtems-source-builder-4.11.0/rtems/
+ $ tar Jxf rtems-source-builder-@rtems-ver-majminrev@.tar.xz
+ $ cd rtems-source-builder-@rtems-ver-majminrev@/rtems/
On Windows you need to shorten the path (See :ref:`windows-path-length`) after
you have unpacked the tar file:
.. code-block:: none
- $ tar Jxf rtems-source-builder-4.11.0.tar.xz
- $ mv rtems-source-builder-4.11.0 4.110
- $ cd 4.11.0
+ $ tar Jxf rtems-source-builder-@rtems-ver-majminrev@.tar.xz
+ $ mv rtems-source-builder-@rtems-ver-majminrev@ @rtems-ver-majminrev@
+ $ cd @rtems-ver-majminrev@
Build a tool chain for the SPARC architecure. We are using the SPARC
architecture in our example because GDB has a good simulator that lets us run
@@ -124,164 +123,6 @@ discussed in :ref:`msys2_parallel_builds`.
.. code-block:: none
$ ../source-builder/sb-set-builder \
- --prefix=/opt/rtems/4.11 4.11/rtems-sparc
- Build Set: 4.11/rtems-sparc
- Build Set: 4.11/rtems-autotools.bset
- Build Set: 4.11/rtems-autotools-internal.bset
- config: tools/rtems-autoconf-2.69-1.cfg
- package: autoconf-2.69-x86_64-freebsd10.1-1
- Creating source directory: sources
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/autoconf-2.69.tar.gz -> sources/autoconf-2.69.tar.gz
- downloading: sources/autoconf-2.69.tar.gz - 1.8MB of 1.8MB (100%)
- building: autoconf-2.69-x86_64-freebsd10.1-1
- config: tools/rtems-automake-1.12.6-1.cfg
- package: automake-1.12.6-x86_64-freebsd10.1-1
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/automake-1.12.6.tar.gz -> sources/automake-1.12.6.tar.gz
- downloading: sources/automake-1.12.6.tar.gz - 2.0MB of 2.0MB (100%)
- Creating source directory: patches
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/automake-1.12.6-bugzilla.redhat.com-1239379.diff -> patches/automake-1.12.6-bugzilla.redhat.com-1239379.diff
- downloading: patches/automake-1.12.6-bugzilla.redhat.com-1239379.diff - 408.0 bytes of 408.0 bytes (100%)
- building: automake-1.12.6-x86_64-freebsd10.1-1
- cleaning: autoconf-2.69-x86_64-freebsd10.1-1
- cleaning: automake-1.12.6-x86_64-freebsd10.1-1
- Build Set: Time 0:00:32.749337
- Build Set: 4.11/rtems-autotools-base.bset
- config: tools/rtems-autoconf-2.69-1.cfg
- package: autoconf-2.69-x86_64-freebsd10.1-1
- building: autoconf-2.69-x86_64-freebsd10.1-1
- reporting: tools/rtems-autoconf-2.69-1.cfg -> autoconf-2.69-x86_64-freebsd10.1-1.txt
- reporting: tools/rtems-autoconf-2.69-1.cfg -> autoconf-2.69-x86_64-freebsd10.1-1.xml
- config: tools/rtems-automake-1.12.6-1.cfg
- package: automake-1.12.6-x86_64-freebsd10.1-1
- building: automake-1.12.6-x86_64-freebsd10.1-1
- reporting: tools/rtems-automake-1.12.6-1.cfg -> automake-1.12.6-x86_64-freebsd10.1-1.txt
- reporting: tools/rtems-automake-1.12.6-1.cfg -> automake-1.12.6-x86_64-freebsd10.1-1.xml
- installing: autoconf-2.69-x86_64-freebsd10.1-1 -> /opt/work/rtems/4.11.0
- installing: automake-1.12.6-x86_64-freebsd10.1-1 -> /opt/work/rtems/4.11.0
- cleaning: autoconf-2.69-x86_64-freebsd10.1-1
- cleaning: automake-1.12.6-x86_64-freebsd10.1-1
- Build Set: Time 0:00:15.619219
- Build Set: Time 0:00:48.371085
- config: devel/expat-2.1.0-1.cfg
- package: expat-2.1.0-x86_64-freebsd10.1-1
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/expat-2.1.0.tar.gz -> sources/expat-2.1.0.tar.gz
- downloading: sources/expat-2.1.0.tar.gz - 549.4kB of 549.4kB (100%)
- building: expat-2.1.0-x86_64-freebsd10.1-1
- reporting: devel/expat-2.1.0-1.cfg -> expat-2.1.0-x86_64-freebsd10.1-1.txt
- reporting: devel/expat-2.1.0-1.cfg -> expat-2.1.0-x86_64-freebsd10.1-1.xml
- config: tools/rtems-binutils-2.26-1.cfg
- package: sparc-rtems4.11-binutils-2.26-x86_64-freebsd10.1-1
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/binutils-2.26.tar.bz2 -> sources/binutils-2.26.tar.bz2
- downloading: sources/binutils-2.26.tar.bz2 - 24.4MB of 24.4MB (100%)
- building: sparc-rtems4.11-binutils-2.26-x86_64-freebsd10.1-1
- reporting: tools/rtems-binutils-2.26-1.cfg ->
- sparc-rtems4.11-binutils-2.26-x86_64-freebsd10.1-1.txt
- reporting: tools/rtems-binutils-2.26-1.cfg ->
- sparc-rtems4.11-binutils-2.26-x86_64-freebsd10.1-1.xml
- config: tools/rtems-gcc-4.9.3-newlib-2.2.0-20150423-1.cfg
- package: sparc-rtems4.11-gcc-4.9.3-newlib-2.2.0.20150423-x86_64-freebsd10.1-1
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/gcc-4.9.3.tar.bz2 -> sources/gcc-4.9.3.tar.bz2
- downloading: sources/gcc-4.9.3.tar.bz2 - 85.8MB of 85.8MB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/newlib-2.2.0.20150423.tar.gz -> sources/newlib-2.2.0.20150423.tar.gz
- downloading: sources/newlib-2.2.0.20150423.tar.gz - 16.7MB of 16.7MB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/mpfr-3.0.1.tar.bz2 -> sources/mpfr-3.0.1.tar.bz2
- downloading: sources/mpfr-3.0.1.tar.bz2 - 1.1MB of 1.1MB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/mpc-0.8.2.tar.gz -> sources/mpc-0.8.2.tar.gz
- downloading: sources/mpc-0.8.2.tar.gz - 535.5kB of 535.5kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/gmp-5.0.5.tar.bz2 -> sources/gmp-5.0.5.tar.bz2
- downloading: sources/gmp-5.0.5.tar.bz2 - 2.0MB of 2.0MB (100%)
- building: sparc-rtems4.11-gcc-4.9.3-newlib-2.2.0.20150423-x86_64-freebsd10.1-1
- reporting: tools/rtems-gcc-4.9.3-newlib-2.2.0-20150423-1.cfg ->
- sparc-rtems4.11-gcc-4.9.3-newlib-2.2.0.20150423-x86_64-freebsd10.1-1.txt
- reporting: tools/rtems-gcc-4.9.3-newlib-2.2.0-20150423-1.cfg ->
- sparc-rtems4.11-gcc-4.9.3-newlib-2.2.0.20150423-x86_64-freebsd10.1-1.xml
- config: tools/rtems-gdb-7.9-1.cfg
- package: sparc-rtems4.11-gdb-7.9-x86_64-freebsd10.1-1
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/gdb-7.9.tar.xz -> sources/gdb-7.9.tar.xz
- downloading: sources/gdb-7.9.tar.xz - 17.0MB of 17.0MB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0001-sim-erc32-Disassembly-in-stand-alone-mode-did-not-wo.patch -> patches/0001-sim-erc32-Disassembly-in-stand-alone-mode-did-not-wo.patch
- downloading: patches/0001-sim-erc32-Disassembly-in-stand-alone-mode-did-not-wo.patch - 1.9kB of 1.9kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0002-sim-erc32-Corrected-wrong-CPU-implementation-and-ver.patch -> patches/0002-sim-erc32-Corrected-wrong-CPU-implementation-and-ver.patch
- downloading: patches/0002-sim-erc32-Corrected-wrong-CPU-implementation-and-ver.patch - 827.0 bytes of 827.0 bytes (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0003-sim-erc32-Perform-pseudo-init-if-binary-linked-to-no.patch -> patches/0003-sim-erc32-Perform-pseudo-init-if-binary-linked-to-no.patch
- downloading: patches/0003-sim-erc32-Perform-pseudo-init-if-binary-linked-to-no.patch - 2.6kB of 2.6kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0004-sim-erc32-Use-fenv.h-for-host-FPU-access.patch -> patches/0004-sim-erc32-Use-fenv.h-for-host-FPU-access.patch
- downloading: patches/0004-sim-erc32-Use-fenv.h-for-host-FPU-access.patch - 4.9kB of 4.9kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0005-sim-erc32-Remove-unused-defines-in-Makefile-and-swit.patch -> patches/0005-sim-erc32-Remove-unused-defines-in-Makefile-and-swit.patch
- downloading: patches/0005-sim-erc32-Remove-unused-defines-in-Makefile-and-swit.patch - 871.0 bytes of 871.0 bytes (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0006-sim-erc32-Fix-incorrect-simulator-performance-report.patch -> patches/0006-sim-erc32-Fix-incorrect-simulator-performance-report.patch
- downloading: patches/0006-sim-erc32-Fix-incorrect-simulator-performance-report.patch - 5.6kB of 5.6kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0007-sim-erc32-File-loading-via-command-line-did-not-work.patch -> patches/0007-sim-erc32-File-loading-via-command-line-did-not-work.patch
- downloading: patches/0007-sim-erc32-File-loading-via-command-line-did-not-work.patch - 1.0kB of 1.0kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0008-sim-erc32-Added-v-command-line-switch-for-verbose-ou.patch -> patches/0008-sim-erc32-Added-v-command-line-switch-for-verbose-ou.patch
- downloading: patches/0008-sim-erc32-Added-v-command-line-switch-for-verbose-ou.patch - 3.6kB of 3.6kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0009-sim-erc32-Removed-type-mismatch-compiler-warnings.patch -> patches/0009-sim-erc32-Removed-type-mismatch-compiler-warnings.patch
- downloading: patches/0009-sim-erc32-Removed-type-mismatch-compiler-warnings.patch - 1.9kB of 1.9kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0010-sim-erc32-Switched-emulated-memory-to-host-endian-or.patch -> patches/0010-sim-erc32-Switched-emulated-memory-to-host-endian-or.patch
- downloading: patches/0010-sim-erc32-Switched-emulated-memory-to-host-endian-or.patch - 16.0kB of 16.0kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0011-sim-erc32-use-SIM_AC_OPTION_HOSTENDIAN-to-probe-for-.patch -> patches/0011-sim-erc32-use-SIM_AC_OPTION_HOSTENDIAN-to-probe-for-.patch
- downloading: patches/0011-sim-erc32-use-SIM_AC_OPTION_HOSTENDIAN-to-probe-for-.patch - 14.8kB of 14.8kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0012-sim-erc32-Use-memory_iread-function-for-instruction-.patch -> patches/0012-sim-erc32-Use-memory_iread-function-for-instruction-.patch
- downloading: patches/0012-sim-erc32-Use-memory_iread-function-for-instruction-.patch - 3.8kB of 3.8kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0013-sim-erc32-Fix-a-few-compiler-warnings.patch-> patches/0013-sim-erc32-Fix-a-few-compiler-warnings.patch
- downloading: patches/0013-sim-erc32-Fix-a-few-compiler-warnings.patch - 2.2kB of 2.2kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0014-sim-erc32-Use-gdb-callback-for-UART-I-O-when-linked-.patch -> patches/0014-sim-erc32-Use-gdb-callback-for-UART-I-O-when-linked-.patch
- downloading: patches/0014-sim-erc32-Use-gdb-callback-for-UART-I-O-when-linked-.patch - 9.2kB of 9.2kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0015-sim-erc32-Access-memory-subsystem-through-struct-mem.patch -> patches/0015-sim-erc32-Access-memory-subsystem-through-struct-mem.patch
- downloading: patches/0015-sim-erc32-Access-memory-subsystem-through-struct-mem.patch - 22.9kB of 22.9kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0016-sim-erc32-Use-readline.h-for-readline-types-and-func.patch -> patches/0016-sim-erc32-Use-readline.h-for-readline-types-and-func.patch
- downloading: patches/0016-sim-erc32-Use-readline.h-for-readline-types-and-func.patch - 1.5kB of 1.5kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0017-sim-erc32-Move-local-extern-declarations-into-sis.h.patch -> patches/0017-sim-erc32-Move-local-extern-declarations-into-sis.h.patch
- downloading: patches/0017-sim-erc32-Move-local-extern-declarations-into-sis.h.patch - 5.8kB of 5.8kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0018-sim-erc32-Add-support-for-LEON3-processor-emulation.patch -> patches/0018-sim-erc32-Add-support-for-LEON3-processor-emulation.patch
- downloading: patches/0018-sim-erc32-Add-support-for-LEON3-processor-emulation.patch - 66.7kB of 66.7kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0019-sim-erc32-Add-support-for-LEON2-processor-emulation.patch -> patches/0019-sim-erc32-Add-support-for-LEON2-processor-emulation.patch
- downloading: patches/0019-sim-erc32-Add-support-for-LEON2-processor-emulation.patch - 26.1kB of 26.1kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0020-sim-erc32-Updated-documentation.patch -> patches/0020-sim-erc32-Updated-documentation.patch
- downloading: patches/0020-sim-erc32-Updated-documentation.patch - 16.1kB of 16.1kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0021-sim-erc32-Add-data-watchpoint-support.patch -> patches/0021-sim-erc32-Add-data-watchpoint-support.patch
- downloading: patches/0021-sim-erc32-Add-data-watchpoint-support.patch - 10.1kB of 10.1kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0022-Add-watchpoint-support-to-gdb-simulator-interface.patch -> patches/0022-Add-watchpoint-support-to-gdb-simulator-interface.patch
- downloading: patches/0022-Add-watchpoint-support-to-gdb-simulator-interface.patch - 25.5kB of 25.5kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/0023-sim-erc32-ELF-loading-could-fail-on-unaligned-sectio.patch -> patches/0023-sim-erc32-ELF-loading-could-fail-on-unaligned-sectio.patch
- downloading: patches/0023-sim-erc32-ELF-loading-could-fail-on-unaligned-sectio.patch - 1.3kB of 1.3kB (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/gdb-sim-arange-inline.diff -> patches/gdb-sim-arange-inline.diff
- downloading: patches/gdb-sim-arange-inline.diff - 761.0 bytes of 761.0 bytes (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/gdb-sim-cgen-inline.diff -> patches/gdb-sim-cgen-inline.diff
- downloading: patches/gdb-sim-cgen-inline.diff - 706.0 bytes of 706.0 bytes (100%)
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/sources/patch-gdb-python-python-config.py -> patches/patch-gdb-python-python-config.py
- downloading: patches/patch-gdb-python-python-config.py - 449.0 bytes of 449.0 bytes (100%)
- building: sparc-rtems4.11-gdb-7.9-x86_64-freebsd10.1-1
- reporting: tools/rtems-gdb-7.9-1.cfg ->
- sparc-rtems4.11-gdb-7.9-x86_64-freebsd10.1-1.txt
- reporting: tools/rtems-gdb-7.9-1.cfg ->
- sparc-rtems4.11-gdb-7.9-x86_64-freebsd10.1-1.xml
- config: tools/rtems-tools-4.11-1.cfg
- package: rtems-tools-4.11.0-1
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/rtems-tools-4.11.0.tar.xz -> sources/rtems-tools-4.11.0.tar.xz
- downloading: sources/rtems-tools-4.11.0.tar.xz - 1.6MB of 1.6MB (100%)
- building: rtems-tools-4.11.0-1
- reporting: tools/rtems-tools-4.11-1.cfg -> rtems-tools-4.11.0-1.txt
- reporting: tools/rtems-tools-4.11-1.cfg -> rtems-tools-4.11.0-1.xml
- config: tools/rtems-kernel-4.11.cfg
- package: sparc-rtems4.11-kernel-4.11.0-1
- download: ftp://ftp.rtems.org/pub/rtems/releases/4.11/4.11.0/rtems-4.11.0.tar.xz -> sources/rtems-4.11.0.tar.xz
- downloading: sources/rtems-4.11.0.tar.xz - 9.3MB of 9.3MB (100%)
- building: sparc-rtems4.11-kernel-4.11.0-1
- reporting: tools/rtems-kernel-4.11.cfg -> sparc-rtems4.11-kernel-4.11.0-1.txt
- reporting: tools/rtems-kernel-4.11.cfg -> sparc-rtems4.11-kernel-4.11.0-1.xml
- installing: expat-2.1.0-x86_64-freebsd10.1-1 -> /opt/work/rtems/4.11.0
- installing: sparc-rtems4.11-binutils-2.26-x86_64-freebsd10.1-1 -> /opt/work/rtems/4.11.0
- installing: sparc-rtems4.11-gcc-4.9.3-newlib-2.2.0.20150423-x86_64-freebsd10.1-1 -> /opt/work/rtems/4.11.0
- installing: sparc-rtems4.11-gdb-7.9-x86_64-freebsd10.1-1 -> /opt/work/rtems/4.11.0
- installing: rtems-tools-4.11.0-1 -> /opt/work/rtems/4.11.0
- installing: sparc-rtems4.11-kernel-4.11.0-1 -> /opt/work/rtems/4.11.0
- cleaning: expat-2.1.0-x86_64-freebsd10.1-1
- cleaning: sparc-rtems4.11-binutils-2.26-x86_64-freebsd10.1-1
- cleaning: sparc-rtems4.11-gcc-4.9.3-newlib-2.2.0.20150423-x86_64-freebsd10.1-1
- cleaning: sparc-rtems4.11-gdb-7.9-x86_64-freebsd10.1-1
- cleaning: rtems-tools-4.11.0-1
- cleaning: sparc-rtems4.11-kernel-4.11.0-1
- Build Set: Time 0:19:15.713662
+ --prefix=/opt/rtems/@rtems-ver-major@ @rtems-ver-major@/rtems-sparc
You can now build a third-party library or an application as defaulted in TBD.
diff --git a/user/migration/v5-to-v6.rst b/user/migration/v5-to-v6.rst
index d4691ff..079f640 100644
--- a/user/migration/v5-to-v6.rst
+++ b/user/migration/v5-to-v6.rst
@@ -10,14 +10,28 @@ RTEMS 5 to RTEMS 6
This section provides helpful information when migrating from RTEMS 5 to
RTEMS 6.
-Update to GCC 10
-----------------
-
-The tool suite for RTEMS 6 uses GCC 10. GCC 10 enables ``-fno-common`` by
-default. Code bases which never used this option before may observe now
-multiple definition linker errors. For example, if global variables are
-declared and defined in header files (usually a missing ``extern`` in the header
-file).
+Update to GCC 10 and Later
+--------------------------
+
+The tool suite for RTEMS 6 uses at least GCC 10. GCC 10 and later enable
+``-fno-common`` by default. Code bases which never used this option before may
+observe now multiple definition linker errors. For example, if global
+variables are declared and defined in header files (usually a missing
+``extern`` in the header file).
+
+No -specs bsp_specs GCC Option
+------------------------------
+
+The ``-spec bsp_specs`` GCC Option is no longer needed to build RTEMS
+applications and there is no :file:`bsp_specs` file installed. If you use this
+option, then you get an error like this:
+
+.. code-block:: none
+
+ sparc-rtems6-gcc: fatal error: cannot read spec file 'bsp_specs': No such file or directory
+
+You can remove this GCC option from your build to fix this error.
+Alternatively, you can add an empty :file:`bsp_specs` file.
Replacements for Removed APIs
-----------------------------
diff --git a/user/rsb/project-sets.rst b/user/rsb/project-sets.rst
index 54a3f8e..ce839c5 100644
--- a/user/rsb/project-sets.rst
+++ b/user/rsb/project-sets.rst
@@ -116,6 +116,15 @@ build sets:
``--with-objc``
Attempt to build a C++ compiler.
+``--with-newlib-tls`` or ``--without-newlib-tls``
+ Enable or disable the ``--enable-newlib-reent-thread-local`` Newlib
+ configuration option. This option is enabled by default on the aarch64, arm,
+ nios2, powerpc, riscv, and sparc targets. If this option is enabled, then
+ each member of the Newlib struct _reent is replaced by a dedicated
+ thread-local object. The thread-local objects are defined in translation
+ units which use the corresponding object so that only objects used by the
+ application are linked in.
+
The RSB provides build sets for some BSPs. These build sets will build:
- Compiler, linker, debugger and RTEMS Tools.
diff --git a/user/start/app.rst b/user/start/app.rst
index 19ae3e1..ce9a44d 100644
--- a/user/start/app.rst
+++ b/user/start/app.rst
@@ -8,7 +8,7 @@ Build Your Application
======================
You tested a BSP in the previous section. We built the ``erc32`` BSP
-and it is installed under :file:`$HOME/quick-start/rtems/6`.
+and it is installed under :file:`$HOME/quick-start/rtems/@rtems-ver-major@`.
We will now create a simple Hello World application with a Git
repository and using the `Waf <https://waf.io>`_ build system.
@@ -148,45 +148,45 @@ The output will be something close to:
.. code-block:: none
- Setting top to : $BASE/app/hello
- Setting out to : $BASE/app/hello/build
- RTEMS Version : 6
- Architectures : sparc-rtems6
- Board Support Package (BSP) : sparc-rtems6-erc32
- Show commands : no
- Long commands : no
- Checking for program 'sparc-rtems6-gcc' : $BASE/rtems/6/bin/sparc-rtems6-gcc
- Checking for program 'sparc-rtems6-g++' : $BASE/rtems/6/bin/sparc-rtems6-g++
- Checking for program 'sparc-rtems6-gcc' : $BASE/rtems/6/bin/sparc-rtems6-gcc
- Checking for program 'sparc-rtems6-ld' : $BASE/rtems/6/bin/sparc-rtems6-ld
- Checking for program 'sparc-rtems6-ar' : $BASE/rtems/6/bin/sparc-rtems6-ar
- Checking for program 'sparc-rtems6-nm' : $BASE/rtems/6/bin/sparc-rtems6-nm
- Checking for program 'sparc-rtems6-objdump' : $BASE/rtems/6/bin/sparc-rtems6-objdump
- Checking for program 'sparc-rtems6-objcopy' : $BASE/rtems/6/bin/sparc-rtems6-objcopy
- Checking for program 'sparc-rtems6-readelf' : $BASE/rtems/6/bin/sparc-rtems6-readelf
- Checking for program 'sparc-rtems6-strip' : $BASE/rtems/6/bin/sparc-rtems6-strip
- Checking for program 'sparc-rtems6-ranlib' : $BASE/rtems/6/bin/sparc-rtems6-ranlib
- Checking for program 'rtems-ld' : $BASE/rtems/6/bin/rtems-ld
- Checking for program 'rtems-tld' : $BASE/rtems/6/bin/rtems-tld
- Checking for program 'rtems-syms' : $BASE/rtems/6/bin/rtems-syms
- Checking for program 'rtems-bin2c' : $BASE/rtems/6/bin/rtems-bin2c
- Checking for program 'tar' : /usr/bin/tar
- Checking for program 'gcc, cc' : $BASE/rtems/6/bin/sparc-rtems6-gcc
- Checking for program 'ar' : $BASE/rtems/6/bin/sparc-rtems6-ar
- Checking for program 'g++, c++' : $BASE/rtems/6/bin/sparc-rtems6-g++
- Checking for program 'ar' : $BASE/rtems/6/bin/sparc-rtems6-ar
- Checking for program 'gas, gcc' : $BASE/rtems/6/bin/sparc-rtems6-gcc
- Checking for program 'ar' : $BASE/rtems/6/bin/sparc-rtems6-ar
- Checking for c flags '-MMD' : yes
- Checking for cxx flags '-MMD' : yes
- Compiler version (sparc-rtems6-gcc) : 10.2.1 20210309 (RTEMS 6, RSB 5e449fb5c2cb6812a238f9f9764fd339cbbf05c2, Newlib d10d0d9)
- Checking for a valid RTEMS BSP installation : yes
- Checking for RTEMS_DEBUG : no
- Checking for RTEMS_MULTIPROCESSING : no
- Checking for RTEMS_NEWLIB : yes
- Checking for RTEMS_POSIX_API : no
- Checking for RTEMS_SMP : no
- Checking for RTEMS_NETWORKING : no
+ Setting top to : $BASE/app/hello
+ Setting out to : $BASE/app/hello/build
+ RTEMS Version : @rtems-ver-major@
+ Architectures : sparc-rtems@rtems-ver-major@
+ Board Support Package (BSP) : sparc-rtems@rtems-ver-major@-erc32
+ Show commands : no
+ Long commands : no
+ Checking for program 'sparc-rtems@rtems-ver-major@-gcc' : $BASE/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-gcc
+ Checking for program 'sparc-rtems@rtems-ver-major@-g++' : $BASE/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-g++
+ Checking for program 'sparc-rtems@rtems-ver-major@-gcc' : $BASE/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-gcc
+ Checking for program 'sparc-rtems@rtems-ver-major@-ld' : $BASE/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ld
+ Checking for program 'sparc-rtems@rtems-ver-major@-ar' : $BASE/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ar
+ Checking for program 'sparc-rtems@rtems-ver-major@-nm' : $BASE/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-nm
+ Checking for program 'sparc-rtems@rtems-ver-major@-objdump' : $BASE/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-objdump
+ Checking for program 'sparc-rtems@rtems-ver-major@-objcopy' : $BASE/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-objcopy
+ Checking for program 'sparc-rtems@rtems-ver-major@-readelf' : $BASE/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-readelf
+ Checking for program 'sparc-rtems6-strip' : $BASE/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-strip
+ Checking for program 'sparc-rtems6-ranlib' : $BASE/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ranlib
+ Checking for program 'rtems-ld' : $BASE/rtems/@rtems-ver-major@/bin/rtems-ld
+ Checking for program 'rtems-tld' : $BASE/rtems/@rtems-ver-major@/bin/rtems-tld
+ Checking for program 'rtems-syms' : $BASE/rtems/@rtems-ver-major@/bin/rtems-syms
+ Checking for program 'rtems-bin2c' : $BASE/rtems/@rtems-ver-major@/bin/rtems-bin2c
+ Checking for program 'tar' : /usr/bin/tar
+ Checking for program 'gcc, cc' : $BASE/rtems/6/bin/sparc-rtems6-gcc
+ Checking for program 'ar' : $BASE/rtems/6/bin/sparc-rtems6-ar
+ Checking for program 'g++, c++' : $BASE/rtems/6/bin/sparc-rtems6-g++
+ Checking for program 'ar' : $BASE/rtems/6/bin/sparc-rtems6-ar
+ Checking for program 'gas, gcc' : $BASE/rtems/6/bin/sparc-rtems6-gcc
+ Checking for program 'ar' : $BASE/rtems/6/bin/sparc-rtems6-ar
+ Checking for c flags '-MMD' : yes
+ Checking for cxx flags '-MMD' : yes
+ Compiler version (sparc-rtems@rtems-ver-major@-gcc) : 10.2.1 20210309 (RTEMS @rtems-ver-major@, RSB 5e449fb5c2cb6812a238f9f9764fd339cbbf05c2, Newlib d10d0d9)
+ Checking for a valid RTEMS BSP installation : yes
+ Checking for RTEMS_DEBUG : no
+ Checking for RTEMS_MULTIPROCESSING : no
+ Checking for RTEMS_NEWLIB : yes
+ Checking for RTEMS_POSIX_API : no
+ Checking for RTEMS_SMP : no
+ Checking for RTEMS_NETWORKING : no
'configure' finished successfully (1.142s)
Build the application:
@@ -198,25 +198,25 @@ The output will be something close to:
.. code-block:: none
- Waf: Entering directory `$BASE/app/hello/build/sparc-rtems6-erc32'
+ Waf: Entering directory `$BASE/app/hello/build/sparc-rtems@rtems-ver-major@-erc32'
[1/3] Compiling init.c
[2/3] Compiling hello.c
- [3/3] Linking build/sparc-rtems6-erc32/hello.exe
- Waf: Leaving directory `$BASE/app/hello/build/sparc-rtems6-erc32'
- 'build-sparc-rtems6-erc32' finished successfully (0.183s)
+ [3/3] Linking build/sparc-rtems@rtems-ver-major@-erc32/hello.exe
+ Waf: Leaving directory `$BASE/app/hello/build/sparc-rtems@rtems-ver-major@-erc32'
+ 'build-sparc-rtems@rtems-ver-major@-erc32' finished successfully (0.183s)
Run the executable:
.. code-block:: none
- $HOME/quick-start/rtems/6/bin/rtems-run --rtems-bsps=erc32-sis build/sparc-rtems6-erc32/hello.exe
+ $HOME/quick-start/rtems/@rtems-ver-major@/bin/rtems-run --rtems-bsps=erc32-sis build/sparc-rtems@rtems-ver-major@-erc32/hello.exe
The output will be something close to:
.. code-block:: none
- RTEMS Testing - Run, 6.0.not_released
- Command Line: $BASE/quick-start/rtems/6/bin/rtems-run --rtems-bsps=erc32-sis build/sparc-rtems6-erc32/hello.exe
+ RTEMS Testing - Run, @rtems-ver-mjminrev@
+ Command Line: $BASE/quick-start/rtems/@rtems-ver-major@/bin/rtems-run --rtems-bsps=erc32-sis build/sparc-rtems@rtems-ver-major@-erc32/hello.exe
Host: Linux 5.8.0-44-generic #50~20.04.1-Ubuntu SMP Wed Feb 10 21:07:30 UTC 2021 x86_64
Python: 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]
Host: Linux-5.8.0-44-generic-x86_64-with-glibc2.29 (Linux 5.8.0-44-generic #50~20.04.1-Ubuntu SMP Wed Feb 10 21:07:30 UTC 2021 x86_64 x86_64)
@@ -226,7 +226,7 @@ The output will be something close to:
ERC32 emulation enabled
- Loaded build/sparc-rtems6-erc32/hello.exe, entry 0x02000000
+ Loaded build/sparc-rtems@rtems-ver-major@-erc32/hello.exe, entry 0x02000000
Hello World
@@ -234,9 +234,9 @@ The output will be something close to:
fatal source: 5 (RTEMS_FATAL_SOURCE_EXIT)
fatal code: 0 (0x00000000)
RTEMS version: 6.0.0.586e06ec6222f1cd1f005aa8f4a34a8b33f5d862
- RTEMS tools: 10.2.1 20210309 (RTEMS 6, RSB 5e449fb5c2cb6812a238f9f9764fd339cbbf05c2, Newlib d10d0d9)
+ RTEMS tools: 10.2.1 20210309 (RTEMS @rtems-ver-major@, RSB 5e449fb5c2cb6812a238f9f9764fd339cbbf05c2, Newlib d10d0d9)
executing thread ID: 0x08a010001
- executing thread name: UI1
+ executing thread name: UI1
cpu 0 in error mode (tt = 0x101)
158479 0200d500: 91d02000 ta 0x0
Run time : 0:00:00.259136
diff --git a/user/start/bsp-build.rst b/user/start/bsp-build.rst
index 6ffe9b0..8401d71 100644
--- a/user/start/bsp-build.rst
+++ b/user/start/bsp-build.rst
@@ -45,23 +45,23 @@ To build the BSP with all the tests run this command:
cd $HOME/quick-start/src/rsb/rtems
../source-builder/sb-set-builder --prefix=$HOME/quick-start/rtems/5 \
- --target=sparc-rtems5 --with-rtems-bsp=erc32 --with-rtems-tests=yes 5/rtems-kernel
+ --target=sparc-rtems@rtems-ver-major@ --with-rtems-bsp=erc32 --with-rtems-tests=yes @rtems-ver-major@/rtems-kernel
-This command should output something like this:
+This command should output something like:
.. code-block:: none
- RTEMS Source Builder - Set Builder, 5.1.0
- Build Set: 5/rtems-kernel
- config: tools/rtems-kernel-5.cfg
- package: sparc-rtems5-kernel-erc32-1
- building: sparc-rtems5-kernel-erc32-1
- sizes: sparc-rtems5-kernel-erc32-1: 2.279GB (installed: 44.612MB)
- cleaning: sparc-rtems5-kernel-erc32-1
- reporting: tools/rtems-kernel-5.cfg -> sparc-rtems5-kernel-erc32-1.txt
- reporting: tools/rtems-kernel-5.cfg -> sparc-rtems5-kernel-erc32-1.xml
- installing: sparc-rtems5-kernel-erc32-1 -> $BASE/
- cleaning: sparc-rtems5-kernel-erc32-1
+ RTEMS Source Builder - Set Builder, @rtems-ver-majminver@
+ Build Set: @rtems-ver-major@/rtems-kernel
+ config: tools/rtems-kernel-@rtems-ver-major@.cfg
+ package: sparc-rtems@rtems-ver-major@-kernel-erc32-1
+ building: sparc-rtems@rtems-ver-major@-kernel-erc32-1
+ sizes: sparc-rtems@rtems-ver-major@-kernel-erc32-1: 2.279GB (installed: 44.612MB)
+ cleaning: sparc-rtems@rtems-ver-major@-kernel-erc32-1
+ reporting: tools/rtems-kernel-@rtems-ver-major@.cfg -> sparc-rtems@rtems-ver-major@-kernel-erc32-1.txt
+ reporting: tools/rtems-kernel-@rtems-ver-major@.cfg -> sparc-rtems@rtems-ver-major@-kernel-erc32-1.xml
+ installing: sparc-rtems@rtems-ver-major@-kernel-erc32-1 -> $BASE/
+ cleaning: sparc-rtems@rtems-ver-major@-kernel-erc32-1
Build Set: Time 0:03:09.896961
The RSB BSP build can be customised with following RSB command line options:
@@ -112,13 +112,13 @@ directory to your ``$PATH`` throughout the remaining steps. Run the command:
.. code-block:: none
- export PATH=$HOME/quick-start/rtems/6/bin:"$PATH"
+ export PATH=$HOME/quick-start/rtems/@rtems-ver-major@/bin:"$PATH"
Check your installed tools can be found by running:
.. code-block:: none
- command -v sparc-rtems6-gcc && echo "found" || echo "not found"
+ command -v sparc-rtems@rtems-ver-major@-gcc && echo "found" || echo "not found"
The output should be:
@@ -128,9 +128,10 @@ The output should be:
If ``not found`` is printed the tools are not correctly installed or the path
has not been correctly set. Check the contents of the path
-:file:`$HOME/quick-start/rtems/6/bin` manually and if :file:`sparc-rtems6-gcc`
-is present the path is wrong. If the file cannot be found return to
-:ref:`QuickStartTools` and install the tools again.
+:file:`$HOME/quick-start/rtems/@rtems-ver-major@/bin` manually and if
+:file:`sparc-rtems@rtems-ver-major@-gcc` is present the path is wrong. If the
+file cannot be found return to :ref:`QuickStartTools` and install the tools
+again.
The first step is to configure the BSP. There are various BSP build
configuration options available. Some options are BSP-specific. Each section
@@ -145,7 +146,7 @@ everything else. For detailed information about the BSP build system, see
cd $HOME/quick-start/src/rtems
echo "[sparc/erc32]" > config.ini
echo "BUILD_TESTS = True" >> config.ini
- ./waf configure --prefix=$HOME/quick-start/rtems/6
+ ./waf configure --prefix=$HOME/quick-start/rtems/@rtems-ver-major@
The first invocation of ``./waf`` needs a bit of time (e.g. 10 seconds) since an
internal cache file is populated. This command should output something like
@@ -154,28 +155,28 @@ by ``$BASE``.
.. code-block:: none
- Setting top to : $BASE/quick-start/src/rtems
- Setting out to : $BASE/quick-start/src/rtems/build
- Configure board support package (BSP) : sparc/erc32
- Checking for program 'sparc-rtems6-gcc' : $BASE/quick-start/rtems/6/bin/sparc-rtems6-gcc
- Checking for program 'sparc-rtems6-g++' : $BASE/quick-start/rtems/6/bin/sparc-rtems6-g++
- Checking for program 'sparc-rtems6-ar' : $BASE/quick-start/rtems/6/bin/sparc-rtems6-ar
- Checking for program 'sparc-rtems6-ld' : $BASE/quick-start/rtems/6/bin/sparc-rtems6-ld
- Checking for program 'ar' : $BASE/quick-start/rtems/6/bin/sparc-rtems6-ar
- Checking for program 'g++, c++' : $BASE/quick-start/rtems/6/bin/sparc-rtems6-g++
- Checking for program 'ar' : $BASE/quick-start/rtems/6/bin/sparc-rtems6-ar
- Checking for program 'gas, gcc' : $BASE/quick-start/rtems/6/bin/sparc-rtems6-gcc
- Checking for program 'ar' : $BASE/quick-start/rtems/6/bin/sparc-rtems6-ar
- Checking for program 'gcc, cc' : $BASE/quick-start/rtems/6/bin/sparc-rtems6-gcc
- Checking for program 'ar' : $BASE/quick-start/rtems/6/bin/sparc-rtems6-ar
- Checking for asm flags '-MMD' : yes
- Checking for c flags '-MMD' : yes
- Checking for cxx flags '-MMD' : yes
- Checking for program 'rtems-bin2c' : $BASE/quick-start/rtems/6/bin/rtems-bin2c
- Checking for program 'gzip' : /usr/bin/gzip
- Checking for program 'rtems-ld' : $BASE/quick-start/rtems/6/bin/rtems-ld
- Checking for program 'rtems-syms' : $BASE/quick-start/rtems/6/bin/rtems-syms
- Checking for program 'xz' : $BASE/anaconda3/bin/xz
+ Setting top to : $BASE/quick-start/src/rtems
+ Setting out to : $BASE/quick-start/src/rtems/build
+ Configure board support package (BSP) : sparc/erc32
+ Checking for program 'sparc-rtems@rtems-ver-major@-gcc' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-gcc
+ Checking for program 'sparc-rtems@rtems-ver-major@-g++' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-g++
+ Checking for program 'sparc-rtems@rtems-ver-major@-ar' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ar
+ Checking for program 'sparc-rtems@rtems-ver-major@-ld' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ld
+ Checking for program 'ar' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ar
+ Checking for program 'g++, c++' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-g++
+ Checking for program 'ar' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ar
+ Checking for program 'gas, gcc' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-gcc
+ Checking for program 'ar' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ar
+ Checking for program 'gcc, cc' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-gcc
+ Checking for program 'ar' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ar
+ Checking for asm flags '-MMD' : yes
+ Checking for c flags '-MMD' : yes
+ Checking for cxx flags '-MMD' : yes
+ Checking for program 'rtems-bin2c' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/rtems-bin2c
+ Checking for program 'gzip' : /usr/bin/gzip
+ Checking for program 'rtems-ld' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/rtems-ld
+ Checking for program 'rtems-syms' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/rtems-syms
+ Checking for program 'xz' : $BASE/anaconda3/bin/xz
'configure' finished successfully (0.414s)
Building the BSP is the second step.
@@ -219,12 +220,12 @@ by ``$BASE``.
Waf: Leaving directory `$BASE/quick-start/src/rtems/build'
'install' finished successfully (0.081s)
Waf: Entering directory `$BASE/quick-start/src/rtems/build/sparc/erc32'
- + install $BASE/quick-start/rtems/6/sparc-rtems6/erc32/lib/include/libchip/am29lv160.h (from bsps/include/libchip/am29lv160.h)
- + install $BASE/quick-start/rtems/6/sparc-rtems6/erc32/lib/include/libchip/mc146818a.h (from bsps/include/libchip/mc146818a.h)
- + install $BASE/quick-start/rtems/6/sparc-rtems6/erc32/lib/include/libchip/mc68681.h (from bsps/include/libchip/mc68681.h))
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/libchip/am29lv16.h (from bsps/include/libchip/am29lv1.h)
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/libchip/mc146818a.h (from bsps/include/libchip/mc146818a.h)
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/libchip/mc68681.h (from bsps/include/libchip/mc68681.h))
...
- + install $BASE/quick-start/rtems/6/sparc-rtems6/erc32/lib/include/rtems/score/watchdogticks.h (from cpukit/include/rtems/score/watchdogticks.h)
- + install $BASE/quick-start/rtems/6/sparc-rtems6/erc32/lib/include/rtems/score/wkspace.h (from cpukit/include/rtems/score/wkspace.h)
- + install $BASE/quick-start/rtems/6/sparc-rtems6/erc32/lib/include/rtems/score/wkspacedata.h (from cpukit/include/rtems/score/wkspacedata.h)
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/rtems/score/watchdogticks.h (from cpukit/include/rtems/score/watchdogticks.h)
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/rtems/score/wkspace.h (from cpukit/include/rtems/score/wkspace.h)
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/rtems/score/wkspacedata.h (from cpukit/include/rtems/score/wkspacedata.h)
Waf: Leaving directory `$BASE/quick-start/src/rtems/build/sparc/erc32'
'install_sparc/erc32' finished successfully (1.834s))