summaryrefslogtreecommitdiffstats
path: root/user
diff options
context:
space:
mode:
Diffstat (limited to 'user')
-rw-r--r--user/bld/index.rst30
-rw-r--r--user/bsps/aarch64/raspberrypi4.rst109
-rw-r--r--user/bsps/aarch64/xilinx-zynqmp.rst229
-rw-r--r--user/bsps/arm/altera-cyclone-v.rst4
-rw-r--r--user/bsps/arm/beagle.rst13
-rw-r--r--user/bsps/arm/bsp-stm32h7.rst32
-rw-r--r--user/bsps/arm/fvp.rst39
-rw-r--r--user/bsps/arm/imx.rst25
-rw-r--r--user/bsps/arm/imxrt.rst176
-rw-r--r--user/bsps/arm/lpc24xx.rst2
-rw-r--r--user/bsps/arm/raspberrypi.rst24
-rw-r--r--user/bsps/arm/realview-pbx-a9.rst2
-rw-r--r--user/bsps/arm/stm32h7.rst546
-rw-r--r--user/bsps/arm/xen.rst4
-rw-r--r--user/bsps/arm/xilinx-zynq.rst18
-rw-r--r--user/bsps/arm/xilinx-zynqmp-rpu.rst95
-rw-r--r--user/bsps/arm/xilinx-zynqmp.rst2
-rw-r--r--user/bsps/bsps-aarch64.rst3
-rw-r--r--user/bsps/bsps-arm.rst51
-rw-r--r--user/bsps/bsps-bfin.rst2
-rw-r--r--user/bsps/bsps-i386.rst2
-rw-r--r--user/bsps/bsps-lm32.rst2
-rw-r--r--user/bsps/bsps-m68k.rst2
-rw-r--r--user/bsps/bsps-microblaze.rst180
-rw-r--r--user/bsps/bsps-mips.rst2
-rw-r--r--user/bsps/bsps-moxie.rst2
-rw-r--r--user/bsps/bsps-nios2.rst2
-rw-r--r--user/bsps/bsps-or1k.rst2
-rw-r--r--user/bsps/bsps-powerpc.rst10
-rw-r--r--user/bsps/bsps-riscv.rst403
-rw-r--r--user/bsps/bsps-sh.rst2
-rw-r--r--user/bsps/bsps-sparc.rst76
-rw-r--r--user/bsps/bsps-sparc64.rst2
-rw-r--r--user/bsps/bsps-v850.rst2
-rw-r--r--user/bsps/bsps-x86_64.rst4
-rw-r--r--user/bsps/index.rst2
-rw-r--r--user/deployment/index.rst426
-rw-r--r--user/exe/initialization.rst11
-rw-r--r--user/exe/loader.rst25
-rw-r--r--user/hardware/architectures.rst2
-rw-r--r--user/hosts/macos.rst105
-rw-r--r--user/hosts/os.rst2
-rw-r--r--user/hosts/posix.rst27
-rw-r--r--user/hosts/windows.rst3
-rw-r--r--user/index.rst5
-rw-r--r--user/installation/developer.rst287
-rw-r--r--user/installation/kernel.rst308
-rw-r--r--user/installation/project-sandboxing.rst42
-rw-r--r--user/installation/releases.rst193
-rw-r--r--user/migration/v4_11-to-v5.rst2
-rw-r--r--user/migration/v5-to-v6.rst30
-rw-r--r--user/overview/index.rst7
-rw-r--r--user/rsb/project-sets.rst9
-rw-r--r--user/start/app.rst100
-rw-r--r--user/start/bsp-build.rst114
-rw-r--r--user/start/bsp-test.rst2
-rw-r--r--user/start/prefixes.rst2
-rw-r--r--user/start/preparation.rst2
-rw-r--r--user/start/sources.rst2
-rw-r--r--user/start/tools.rst2
-rw-r--r--user/support/bugs.rst2
-rw-r--r--user/support/contrib.rst2
-rw-r--r--user/support/index.rst2
-rw-r--r--user/support/support-project.rst2
-rw-r--r--user/tracing/captureengine.rst20
-rw-r--r--user/tracing/eventrecording.rst67
-rw-r--r--user/tracing/examples.rst16
67 files changed, 2829 insertions, 1091 deletions
diff --git a/user/bld/index.rst b/user/bld/index.rst
index 411b3a2..dbad167 100644
--- a/user/bld/index.rst
+++ b/user/bld/index.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019, 2020 embedded brains GmbH
+.. Copyright (C) 2019, 2020 embedded brains GmbH & Co. KG
.. Copyright (C) 2019, 2020 Sebastian Huber
.. index:: BSP build system
@@ -25,7 +25,7 @@ RTEMS sources
* the `waf <https://waf.io/>`_ meta build system command line tool,
-* a `wscript <https://git.rtems.org/rtems/tree/wcript>`_ file used by ``waf``,
+* a `wscript <https://git.rtems.org/rtems/tree/wscript>`_ file used by ``waf``,
and
* a
@@ -54,7 +54,7 @@ Work Flow
There are five steps necessary to build and install one or more BSPs.
1. Select which BSPs you want to build. See also :ref:`BSPs` and
- ``./waf bsp_list``.
+ ``./waf bsplist``.
2. Write a BSP build configuration file (e.g. ``config.ini``) which determines
which BSPs are built and how they are configured.
@@ -93,7 +93,7 @@ Use ``./waf --help`` to get a list of commands and options.
BSP List
--------
-The BSP list command ``./waf bsp_list`` loads the build specification items and
+The BSP list command ``./waf bsplist`` loads the build specification items and
generates a list of base BSPs from it. The list is sorted by architecture and
base BSP name. Which base BSPs are listed can be controlled by the
``--rtems-bsps`` command line option. It expects a comma-separated list of
@@ -103,7 +103,7 @@ items can be specified by the ``--rtems-specs`` command line option.
.. code-block:: none
- $ ./waf bsp_list --rtems-bsps=sparc/
+ $ ./waf bsplist --rtems-bsps=sparc/
sparc/at697f
sparc/erc32
sparc/gr712rc
@@ -115,7 +115,7 @@ items can be specified by the ``--rtems-specs`` command line option.
.. code-block:: none
- $ ./waf bsp_list --rtems-bsps='/leon,/rv64imac$'
+ $ ./waf bsplist --rtems-bsps='/leon,/rv64imac$'
riscv/rv64imac
sparc/leon2
sparc/leon3
@@ -123,7 +123,7 @@ items can be specified by the ``--rtems-specs`` command line option.
BSP Defaults
------------
-The BSP defaults command ``./waf bsp_defaults`` loads the build specification
+The BSP defaults command ``./waf bspdefaults`` loads the build specification
items and generates a list options with default values for each base BSP from
it. The list is sorted by architecture and base BSP name. Which base BSPs are
listed can be controlled by the ``--rtems-bsps`` command line option. Default
@@ -134,12 +134,12 @@ option.
.. code-block:: none
- $ ./waf bsp_defaults --rtems-bsps=gr712rc --rtems-compiler=gcc | grep ABI_FLAGS
+ $ ./waf bspdefaults --rtems-bsps=gr712rc --rtems-compiler=gcc | grep ABI_FLAGS
ABI_FLAGS = -mcpu=leon3 -mfix-gr712rc
.. code-block:: none
- $ ./waf bsp_defaults --rtems-bsps=gr712rc --rtems-compiler=clang | grep ABI_FLAGS
+ $ ./waf bspdefaults --rtems-bsps=gr712rc --rtems-compiler=clang | grep ABI_FLAGS
ABI_FLAGS = -mcpu=gr712rc
Configure
@@ -186,7 +186,7 @@ name.
This one line configuration file is sufficient to build the base BSP
`sparc/erc32` with default values for all options. The base BSPs are determined
-by the build specification. The ``./waf bsp_list`` command lists all base BSPs.
+by the build specification. The ``./waf bsplist`` command lists all base BSPs.
You can create your own BSP names. However, in this case you have to inherit
from a base BSP. The inheritance works only within an architecture, e.g. a
`riscv` BSP cannot inherit options from an `arm` BSP.
@@ -222,12 +222,12 @@ option.
INHERIT = gr740
COMPILER = clang
-Use the ``./waf bsp_defaults`` command to get a list of all configuration
+Use the ``./waf bspdefaults`` command to get a list of all configuration
options with default values.
.. code-block:: none
- $ ./waf bsp_defaults --rtems-bsps=sparc/erc32
+ $ ./waf bspdefaults --rtems-bsps=sparc/erc32
[sparc/erc32]
# Flags passed to the library archiver
ARFLAGS = crD
@@ -246,7 +246,7 @@ options with default values.
INSTALL_LEGACY_MAKEFILES = True
It is not recommended to blindly add all the options obtained through the
-``./waf bsp_defaults`` command to custom configuration files. The specified
+``./waf bspdefaults`` command to custom configuration files. The specified
options should be kept at the necessary minimum to get the desired build.
Some projects may still want to specify all options in a configuration file to
@@ -255,9 +255,9 @@ the user and base BSP values with the ``diff`` command.
.. code-block:: none
- $ ./waf bsp_defaults --rtems-bsps=sparc/erc32 > config.ini
+ $ ./waf bspdefaults --rtems-bsps=sparc/erc32 > config.ini
$ sed -i 's/BUILD_TESTS = False/BUILD_TESTS = True/' config.ini
- $ ./waf bsp_defaults --rtems-bsps=sparc/erc32 | diff -u - config.ini
+ $ ./waf bspdefaults --rtems-bsps=sparc/erc32 | diff -u - config.ini
--- config.ini 2019-12-04 08:21:36.049335872 +0100
+++ - 2019-12-04 08:21:41.187432405 +0100
@@ -31,7 +31,7 @@
diff --git a/user/bsps/aarch64/raspberrypi4.rst b/user/bsps/aarch64/raspberrypi4.rst
new file mode 100644
index 0000000..efb09b6
--- /dev/null
+++ b/user/bsps/aarch64/raspberrypi4.rst
@@ -0,0 +1,109 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 2022 Mohd Noor Aman
+
+.. _BSP_aarch64_Raspberrypi_4:
+
+Raspberry Pi 4B
+===============
+
+The 'raspberrypi4b' BSP currently supports only the LP64 ABI. ILP32 is not
+supported. Raspberry pi 4B all variants and Raspberry Pi 400 are supported. The
+default bootloader which is used by the Raspbian OS or other OS can be used to
+boot RTEMS. SMP is currently not supported.
+
+Raspberry Pi 4B has 2 types of interrupt controller, GIC-400 (GICv2) and ARM
+legacy generic controller. Both are supported. By default, raspberrypi 4B uses
+ARM legacy generic controller. Set ``enable_gic=1`` in the ``config.txt`` file
+to enable GIC.
+
+Clock Driver
+------------
+
+The clock driver uses the `ARM Generic Timer`.
+
+Console Driver
+--------------
+
+Raspberry pi 4B has 2 types of UARTs, ARM PL011 and Mini-uart. The PL011 is a
+capable, broadly 16550-compatible UART, while the mini UART has a reduced
+feature set. The console driver supports the default Qemu emulated ARM PL011
+PrimeCell UART as well as the physical ARM PL011 PrimeCell UART in the
+raspberrypi hardware. Mini-uart is not supported.
+
+Preparing to boot
+------------------
+
+Raspberry Pi uses a different mechanism to boot when compared with any ARM SoC.
+First the GPU initializes, loads the bootloader (Raspberry pi firmware) and then
+looks for the kernel img. This whole process is done by the GPU (VideoCore IV)
+till the kernel is loaded. More information can be found on the `Raspberry pi
+documentation page
+<https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#boot-sequence>`_.
+By default the arm64 mode looks for the ``kernel8.img``. Any other kernel can be
+loaded by adding ``kernel=<img_name>`` to the ``config.txt`` file.
+
+The Firmware files are required in order to boot RTEMS. The latest firmware can
+be downloaded from the `Raspberry Pi Firmware Repository
+<https://github.com/raspberrypi/firmware/>`_. USB boot is supported. All the
+files (Firmwares and kernel) must be place in the FAT32 partition only. Add
+``arm_64bit=1`` in the ``config.txt`` file in order to boot the BSP in 64bit
+kernel mode.
+
+
+UART Setup
+^^^^^^^^^^
+
+Connect your serial device to the GPIO15 and GPIO14. Add the following to the
+``config.txt`` file in order to use the PL011 UART0 and thus disabling the
+default Mini-uart.
+
+.. code-block:: none
+
+ # if user wants to enable GIC, uncomment the next line
+ # enable_gic=1
+ arm_64bit=1
+ dtoverlay = disable-bt
+ enable_uart=1
+
+.. note::
+ The Raspberry Pi 4B and 400 have an additional four PL011 UARTs. They are not
+ supported.
+
+Generating kernel image
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The following steps show how to run ``hello.exe`` on the BSP. Other executables
+can be processed in a similar way.
+
+To create the kernel image:
+
+.. code-block:: shell
+
+ $ aarch64-rtems@rtems-ver-major@-objcopy -Obinary hello.exe kernel8.img
+
+Copy the kernel image to the SD card.
+
+JTAG Setup
+----------
+
+The Raspberry Pi 4 doesn't have dedicated JTAG pins. Instead, you must configure
+the GPIO pins (GPIO22-GPIO27) to activate the JTAG functionality. The RPi 4
+documentation refers to this as Alt4 functions of those pins. Alt5 does exist
+too, which goes from GPIO4, 5, 6, 12 and 13. you can check this out from
+`pinout.xyz <https://pinout.xyz/pinout/jtag#>`_ or `eLinux
+<https://elinux.org/RPi_BCM2835_GPIOs>`_
+
+One more thing to note on JTAG with Raspberry pi 4B is that, by default, All the
+GPIO pins are pulled down, according to the `BCM2711 documentation
+<https://datasheets.raspberrypi.com/bcm2711/bcm2711-peripherals.pdf>`_. This
+wasn't the case in the earlier models. So in order to let the data flow freely,
+we will have to disable them.
+
+.. code-block:: none
+
+ # Disable pull downs
+ gpio=22-27=np
+
+ # Enable jtag pins (i.e. GPIO22-GPIO27)
+ enable_jtag_gpio=1
diff --git a/user/bsps/aarch64/xilinx-zynqmp.rst b/user/bsps/aarch64/xilinx-zynqmp.rst
index ca232de..4de0115 100644
--- a/user/bsps/aarch64/xilinx-zynqmp.rst
+++ b/user/bsps/aarch64/xilinx-zynqmp.rst
@@ -6,19 +6,39 @@
.. _BSP_aarch64_qemu_xilinx_zynqmp_lp64_qemu:
.. _BSP_aarch64_qemu_xilinx_zynqmp_ilp32_zu3eg:
.. _BSP_aarch64_qemu_xilinx_zynqmp_lp64_zu3eg:
+.. _BSP_aarch64_qemu_xilinx_zynqmp_lp64_cfc400x:
Qemu Xilinx ZynqMP
==================
-This BSP supports four variants: `xilinx-zynqmp-ilp32-qemu`,
-`xilinx-zynqmp-lp64-qemu`, `xilinx-zynqmp-ilp32-zu3eg`, and
-`xilinx-zynqmp-lp64-zu3eg`. Platform-specific hardware initialization is
-performed by ARM Trusted Firmware (ATF). Other basic hardware initialization is
-performed by the BSP. These BSPs support the GICv2 interrupt controller present
-in all ZynqMP systems. The zu3eg BSPs have also been tested to be fully
-functional on zu2cg boards and should also work on any other ZynqMP chip variant
-since the Processing Subsystem (PS) does not vary among chip variants other than
-the number of CPU cores available.
+This BSP family supports the following variants:
+
+* `xilinx-zynqmp-ilp32-qemu`
+
+* `xilinx-zynqmp-lp64-qemu`
+
+* `xilinx-zynqmp-ilp32-zu3eg`
+
+* `xilinx-zynqmp-lp64-zu3eg`
+
+* `xilinx-zynqmp-lp64-cfc400x`
+
+Platform-specific hardware initialization is performed by ARM Trusted Firmware
+(ATF). Other basic hardware initialization is performed by the BSP. These BSPs
+support the GICv2 interrupt controller present in all ZynqMP systems. The zu3eg
+BSPs have also been tested to be fully functional on zu2cg boards and should
+also work on any other ZynqMP chip variant since the Processing Subsystem (PS)
+does not vary among chip variants other than the number of CPU cores available.
+
+This BSP family has been tested on the following hardware:
+
+* `Avnet UltraZed-EG SOM`
+
+* `Innoflight CFC-400X`
+
+* `Trenz TE0802`
+
+* `Xilinx ZCU102`
Boot on QEMU
------------
@@ -33,6 +53,14 @@ will drop to EL1 for execution. For quick turnaround during testing, it is
recommended to use the u-boot BOOT.bin that comes with the PetaLinux prebuilts
for the board in question.
+Some systems such as the CFC-400X may require a bitstream to be loaded into the
+FPGA portion of the chip to operate as expected. This bitstream must be loaded
+before RTEMS begins operation since accesses to programmable logic (PL) memory
+space can cause the CPU to hang if the FPGA is not initialized. This can be
+performed as part of BOOT.bin or by a bootloader such as u-boot. Loading
+bitstreams from RTEMS has not been tested on the ZynqMP platform and requires
+additional libraries from Xilinx.
+
Hardware Boot Image Generation
------------------------------
@@ -44,6 +72,173 @@ When booting via u-boot, RTEMS must be packaged into a u-boot image or booted
as a raw binary since u-boot does not currently support ELF64 which is required
for AArch64 ELF binaries.
+Example: Booting a RTEMS image on the ZCU102 ZynqMP board
+---------------------------------------------------------
+
+This example will walk through the steps needed for booting RTEMS from a SD card
+on the
+`ZCU102 ZynqMP board. <https://www.xilinx.com/products/boards-and-kits/ek-u1-zcu102-g.html>`_
+The reference for setting up a SD card and obtaining pre-built boot images is
+`here. <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841858/Board+bring+up+using+pre-built+images>`_
+
+Hardware Setup
+^^^^^^^^^^^^^^
+
+Set the dip switch SW6 according to the table below. This will allow the board
+to boot from the SD card. Connect a Micro-USB cable to the USB UART interface
+J83. This is a quad USB UART interface which will show up on the development
+host computer as four different serial or tty devices. Use the first channel
+for the console UART. It should be set to 115k baud.
+
++---------------------------+
+| Dip Switch JW6 |
++------+------+------+------+
+| ON | OFF | OFF | OFF |
++------+------+------+------+
+
+Prepare a SD card with a bootable partition
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The goal is to have a bootable SD card with a partition that is formatted with
+the FAT file system. The file system will contain the boot artifacts including
+BOOT.bin and the u-boot image. The RTEMS image will be placed on this volume. To
+create the bootable SD card, follow the directions
+`here. <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842385/How+to+format+SD+card+for+SD+boot>`_
+
+Once you have the card formatted correctly, you need to place the files from
+`this archive <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/2202763266/2021.2+Release#Downloads>`_
+on the FAT partition. The following file was used for this example:
+`xilinx-vck190-v2021.2-final.bsp <https://www.xilinx.com/member/forms/download/xef.html?filename=xilinx-vck190-v2021.2-final.bsp>`_
+
+In order to download these files, you need to have a Xilinx account login. As an
+alternative, you can download a bootable image for Ubuntu 20.04 and write it to
+an SD card using a utility such as `Balena Etcher <https://www.balena.io/etcher>`_
+or dd. The Ubuntu image is available `here. <https://ubuntu.com/download/xilinx>`_
+Download the image for the Zynq Ultrascale+ MPSoC Development boards, uncompress
+it and write it to the SD card. This image creates multiple partitions, but we
+only need to use the FAT partition with the boot artifacts on it.
+
+Verify that the board can boot from the SD card
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+It is worth booting the board from the SD card before trying to boot RTEMS.
+Insert the card and power on the board. You should see the messages on the first
+console indicating the various boot loader stages and eventually the Linux
+kernel. The goal is to interrupt u-boot when given the chance to access the
+u-boot command prompt.
+
+Build RTEMS with examples
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Build the RTEMS `xilinx-zynqmp-lp64-zu3eg` BSP. Use the ticker.exe sample which
+can be found in the directory:
+
+.. code-block:: shell
+
+ build/aarch64/xilinx-zynqmp-lp64-zu3eg/testsuites/samples
+
+Prepare the RTEMS image
+^^^^^^^^^^^^^^^^^^^^^^^
+
+Prepare your RTEMS image to boot from u-boot with the following commands:
+
+.. code-block:: shell
+
+ $ 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
+
+Boot the RTEMS image
+^^^^^^^^^^^^^^^^^^^^
+Copy the prepared RTEMS image to the SD card and insert the SD crd in the ZCU102
+board. Power on the board. When you see the prompt on the console to interupt
+u-boot, hit a key to bring up the u-boot command prompt. On the u-boot command
+prompt you can boot your RTEMS image:
+
+.. code-block:: shell
+
+ Zynq-MP> fatload mmc 0:1 0x1000 rtems.img
+ Zynq-MP> bootm 0x1000
+
+This is the entire boot sequence:
+
+.. code-block:: shell
+
+ Pre-FSBL boot Started
+ Xilinx Zynq MP First Stage Boot Loader
+ Release 2020.2 Nov 18 2020 - 11:46:01
+ NOTICE: ATF running on XCZU9EG/silicon v1/RTL5.1 at 0xfffea000
+ NOTICE: BL31: v2.2(release):xilinx_rebase_v2.2_2020.1-10-ge6eea88b1
+ NOTICE: BL31: Built : 12:28:45, Nov 17 2020
+
+ U-Boot 2020.01 (Jun 15 2021 - 14:24:32 +0000)
+
+ Model: ZynqMP ZCU102 Rev1.0
+ Board: Xilinx ZynqMP
+ DRAM: 4 GiB
+ PMUFW: v1.1
+ EL Level: EL2
+ Chip ID: zu9eg
+ NAND: 0 MiB
+ MMC: mmc@ff170000: 0
+ In: serial@ff000000
+ Out: serial@ff000000
+ Err: serial@ff000000
+ Bootmode: SD_MODE1
+ Reset reason: SOFT
+ Net:
+ ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id
+
+ Warning: ethernet@ff0e0000 (eth0) using random MAC address - 82:32:1d:80:d9:c9
+ eth0: ethernet@ff0e0000
+ Hit any key to stop autoboot: 0
+
+ ZynqMP> fatload mmc 0:1 0x1000 rtems.img
+ 46669 bytes read in 27 ms (1.6 MiB/s)
+ ZynqMP> bootm 0x1000
+ ## Booting kernel from Legacy Image at 00001000 ...
+ Image Name: RTEMS
+ Image Type: AArch64 RTEMS Kernel Image (gzip compressed)
+ Data Size: 46605 Bytes = 45.5 KiB
+ Load Address: 10000000
+ Entry Point: 10000000
+ Verifying Checksum ... OK
+ Uncompressing Kernel Image
+ ## Transferring control to RTEMS (at address 10000000) ...
+
+ *** BEGIN OF TEST CLOCK TICK ***
+ *** 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)
+ TA1 - rtems_clock_get_tod - 09:00:00 12/31/1988
+ TA2 - rtems_clock_get_tod - 09:00:00 12/31/1988
+ TA3 - rtems_clock_get_tod - 09:00:00 12/31/1988
+ TA1 - rtems_clock_get_tod - 09:00:05 12/31/1988
+ TA2 - rtems_clock_get_tod - 09:00:10 12/31/1988
+ TA1 - rtems_clock_get_tod - 09:00:10 12/31/1988
+ TA1 - rtems_clock_get_tod - 09:00:15 12/31/1988
+ TA3 - rtems_clock_get_tod - 09:00:15 12/31/1988
+ TA2 - rtems_clock_get_tod - 09:00:20 12/31/1988
+ TA1 - rtems_clock_get_tod - 09:00:20 12/31/1988
+ TA1 - rtems_clock_get_tod - 09:00:25 12/31/1988
+ TA2 - rtems_clock_get_tod - 09:00:30 12/31/1988
+ TA1 - rtems_clock_get_tod - 09:00:30 12/31/1988
+ TA3 - rtems_clock_get_tod - 09:00:30 12/31/1988
+
+ *** END OF TEST CLOCK TICK ***
+
+ [ RTEMS shutdown ]
+
+
+Follow up
+^^^^^^^^^
+
+This is just one possible way to boot the RTEMS image. For a development
+environment you may wish to configure u-boot to boot the RTEMS image from a TFTP
+server. For a production environment, you may wish to download, configure, and
+build u-boot, or develop a BOOT.BIN image with the RTEMS application.
+
Clock Driver
------------
@@ -58,7 +253,7 @@ as well as the physical ARM PL011 PrimeCell UART in the ZynqMP hardware.
SDHCI Driver
------------
-The ZynqMP bsp has an SDHCI driver which allows reading to and writing from SD
+The ZynqMP bsp has an SDHCI driver which allows writing to and reading from SD
cards. These can be tested in qemu using the "-sd" option. For example:
.. code-block:: shell
@@ -75,7 +270,19 @@ Network Configuration
When used with LibBSD, these BSP variants support networking via the four
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.
+recognized and usable in RTEMS. Most ZynqMP dev boards use RGMII with 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..12e563e 100644
--- a/user/bsps/arm/altera-cyclone-v.rst
+++ b/user/bsps/arm/altera-cyclone-v.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2017, 2019 embedded brains GmbH
+.. Copyright (C) 2017, 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2017, 2019 Sebastian Huber
altera-cyclone-v (Intel Cyclone V)
@@ -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/bsp-stm32h7.rst b/user/bsps/arm/bsp-stm32h7.rst
deleted file mode 100644
index bc2b471..0000000
--- a/user/bsps/arm/bsp-stm32h7.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-.. SPDX-License-Identifier: CC-BY-SA-4.0
-
-.. Copyright (C) 2020 embedded brains GmbH
-
-stm32h7
-=======
-
-This BSP supports the
-`STM32H7 Series <https://www.st.com/en/microcontrollers-microprocessors/stm32h7-series.html>`_.
-The BSP is known to run on these boards:
-
-* `STM32H743I-EVAL 2 <https://www.st.com/en/evaluation-tools/stm32h743i-eval.html>`_
-
-Clock Driver
-------------
-
-The clock driver uses the `ARMv7-M Systick` module.
-
-Console Driver
---------------
-
-The console driver supports the on-chip UART and USART modules.
-
-Network Interface Driver
-------------------------
-
-The network interface driver ``if_stmac`` is provided by the ``libbsd``.
-
-USB Host Driver
----------------
-
-The USB host driver ``dwc_otg`` is provided by the ``libbsd``.
diff --git a/user/bsps/arm/fvp.rst b/user/bsps/arm/fvp.rst
new file mode 100644
index 0000000..b938e30
--- /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 & Co. KG
+
+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 ee98f0b..47ad503 100644
--- a/user/bsps/arm/imx.rst
+++ b/user/bsps/arm/imx.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2017, 2019 embedded brains GmbH
+.. Copyright (C) 2017, 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2017, 2019 Sebastian Huber
imx (NXP i.MX)
@@ -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
@@ -174,6 +176,23 @@ config like that:
SYSINIT_DRIVER_REFERENCE(ksz8091rnb, miibus);
#include <machine/rtems-bsd-config.h>
+On chips with two Ethernet controllers, the MDIO lines are shared between the
+two controllers for a number of chips variants. This is currently supported with
+some restrictions on the initialization order. For this configuration to work,
+you have to make sure that the pins are assigned to the Ethernet controller that
+is initialized first. The initialization order in `libbsd` depends on the order
+of the Ethernet controllers in the device tree. So if (for example) `fec2` is
+defined in the device tree sources before `fec1`, make sure that the MDIO lines
+are routed to `fec2` and that the Ethernet PHYs are a sub-node of `fec2` in the
+device tree.
+
+Note that the clock for the second Ethernet controller is not necessarily
+enabled in the `CCM`. On the i.MX6UL/ULL, the clock will be enabled by the
+startup code if the node that is compatible with `fsl,imx6ul-anatop` can be
+found in the device tree. If you have trouble with the second Ethernet
+controller make sure that the `ENET2_125M_EN` bit in the `CCM_ANALOG_PLL_ENET`
+register is set as expected.
+
MMC/SDCard Driver
-----------------
diff --git a/user/bsps/arm/imxrt.rst b/user/bsps/arm/imxrt.rst
index f8d9731..30b1437 100644
--- a/user/bsps/arm/imxrt.rst
+++ b/user/bsps/arm/imxrt.rst
@@ -1,29 +1,48 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2020 embedded brains GmbH
+.. Copyright (C) 2020 embedded brains GmbH & Co. KG
.. Copyright (C) 2020 Christian Mauderer
imxrt (NXP i.MXRT)
==================
-This BSP offers only one variant, the `imxrt1052`. This variant supports the
-i.MXRT 1052 processor on a IMXRT1050-EVKB (tested with rev A1). You can also
-configure it to work with custom boards.
+This BSP offers multiple variants. The `imxrt1052` supports the i.MXRT 1052
+processor on a IMXRT1050-EVKB (tested with rev A1). Some possibilities to adapt
+it to a custom board are described below.
NOTE: The IMXRT1050-EVKB has an backlight controller that must not be enabled
without load. Make sure to either attach a load, disable it by software or
disable it by removing the 0-Ohm resistor on it's input.
+The `imxrt1166-cm7-saltshaker` supports an application specific board. Adapting
+it to another i.MXRT1166 based board works similar like for the `imxrt1052` BSP.
+
Build Configuration Options
---------------------------
Please see the documentation of the `IMXRT_*` and `BSP_*` configuration options
for that. You can generate a default set of options with::
- ./waf bsp_defaults --rtems-bsps=arm/imxrt1052 > config.ini
+ ./waf bspdefaults --rtems-bsps=arm/imxrt1052 > config.ini
-Boot Process
-------------
+Adapting to a different board
+-----------------------------
+
+This is only a short overview for the most important steps to adapt the BSP to
+another board. Details for most steps follow further below.
+
+#. The device tree has to be adapted to fit the target hardware.
+#. A matching clock configuration is necessary (simplest method is to generate
+ it with the NXP PinMux tool)
+#. The `dcd_data` has to be adapted. That is used for example to initialize
+ SDRAM.
+#. `imxrt_flexspi_config` has to be adapted to match the Flash connected to
+ FlexSPI (if that is used).
+#. `BOARD_InitDEBUG_UARTPins` should be adapted to match the used system
+ console.
+
+Boot Process of IMXRT1050-EVKB
+------------------------------
There are two possible boot processes supported:
@@ -39,7 +58,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,
@@ -82,34 +101,36 @@ ones that need different values):
You can find the default definitions in `bsps/arm/imxrt/start/flash-*.c`. Take a
look at the `i.MX RT1050 Processor Reference Manual, Rev. 4, 12/2019` chapter
-`9.7 Program image` for details about the contents.
+`9.7 Program image` or `i.MX RT1166 Processor Reference Manual, Rev. 0, 05/2021`
+chapter `10.7 Program image` for details about the contents.
FDT
---
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
+You can find the default FDT used in the BSPs in `bsps/arm/imxrt/dts`. The FDT
+is split up into two parts. The controller specific part is put into an `dtsi`
+file. The board specific one is in the dts file. Both are installed together
+with normal headers into
+`${PREFIX}/arm-rtems@rtems-ver-major@/${BSP}/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,40 +138,24 @@ 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)::
-
- 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
- sh> rtems-bin2c -C -N imxrt_dtb "YOUR.dtb" "YOUR.c"
+with your FDT source names):
-Make sure that your new C file is compiled and linked into the application.
-
-PLL Settings
-------------
+.. code-block:: none
-The commercial variant of the i.MXRT1052 on the evaluation board allows a clock
-up to 600MHz for the ARM core. For some industrial variants only up to 528MHz
-are specified. To make it possible to adapt to these variants the application
-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,
- };
+ 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"
-With the default configuration of a 24MHz oscillator, the loopDivider has to be
-88 for the 528MHz.
+You'll get a C file which defines the `imxrt_dtb` array. Make sure that your new
+C file is compiled and linked into the application. It will overwrite the
+existing definition of the `imxrt_dtb` in RTEMS.
Clock Driver
------------
@@ -193,10 +198,38 @@ Note that the SPI-pins on the evaluation board are shared with the SD card.
Populate R278, R279, R280, R281 on the IMXRT1050-EVKB (Rev A) to use the SPI
pins on the Arduino connector.
+By default, the native chip selects are used. If you want to use GPIOs as chip
+select instead, you can use the `cs-gpios` and `num-cs` attributes just like on
+a Linux SPI controller. A maximum of `IMXRT_LPSPI_MAX_CS` pins can be used.
+
+The hardware doesn't support selecting no native chip select during a transfer.
+Therefore one native chip select has to be reserved as a dummy if you want to be
+able to use GPIOs. The pin function for this chip select must not be configured
+on any pin. Dummy will be the first of the first four chip selects that is not a
+native one. Example configuration::
+
+ &lpspi4 {
+ status = "okay";
+ pinctrl-0 = <&my_pinctrl_lpspi4>;
+ cs-gpios = <0>, <0>, <&gpio1 1 0>, <0>, <&gpio11 5 1>;
+ num-cs = <5>;
+ }
+
+In this case, CS2 will be the dummy chip select and no pin must be configured
+with that function. CS0, CS1 and CS3 are just native chip selects and should be
+used via pin functions. GPIO1.1 is used as a high active CS and GPIO11.5 a low
+active one.
+
Limitations:
* Only a basic SPI driver is implemented. This is mostly a driver limitation and
not a hardware one.
+* GPIO CS pins on i.MXRT10xx are not tested. The chip has a lot of errate so
+ they might not work.
+* Switching from one mode (CPOL/CPHA) to another one can lead to single wrong
+ edges on the CLK line if GPIO CS pins are involved. Make sure to stuff a dummy
+ transfer with `SPI_NO_CS` set if you use multiple modes together with a GPIO
+ CS.
Network Interface Driver
------------------------
@@ -220,13 +253,58 @@ the SDK. But please note that they are not tested and maybe won't work out of
the box. Everything that works with interrupts most likely needs some special
treatment.
-Caveats
--------
+The SDK files are imported to RTEMS from the NXP mcux-sdk git repository that
+you can find here: https://github.com/nxp-mcuxpresso/mcux-sdk/
+
+The directory structure has been preserved and all files are in a
+`bsps/arm/imxrt/mcux-sdk` directory. All patches to the files are marked with
+`#ifdef __rtems__` markers.
+
+The suggested method to import new or updated files is to apply all RTEMS
+patches to the mcux-sdk repository, rebase them to the latest mcux-sdk release
+and re-import the files. The new base revision should be mentioned in the commit
+description to make future updates simpler.
+
+A import helper script (that might or might not work on newer releases of the
+mcux-sdk) can be found here:
+https://raw.githubusercontent.com/c-mauderer/nxp-mcux-sdk/d21c3e61eb8602b2cf8f45fed0afa50c6aee932f/export_to_RTEMS.py
+
+Clocks and SDRAM
+----------------
The clock configuration support is quite rudimentary. The same is true for
SDRAM. It mostly relies on the DCD and on a static clock configuration that is
taken from the NXP SDK example projects.
-The MPU settings are currently quite permissive.
+If you need to adapt the DCD or clock config to support a different hardware,
+you should generate these files using the NXP MCUXpresso Configuration Tools.
+You can add the generated files to your application to overwrite the default
+RTEMS ones or you can add them to RTEMS in a new BSP variant.
+
+As a special case, the imxrt1052 BSP will adapt it's PLL setting based on the
+chip variant. The commercial variant of the i.MXRT1052 will use a core clock of
+600MHz for the ARM core. The industrial variants only uses 528MHz. For other
+chip or BSP variants, you should adapt the files generated with the MCUXpresso
+Configuration Tools.
+
+Caveats
+-------
+
+* The MPU settings are currently quite permissive.
+
+* There is no power management support.
+
+* On the i.MXRT1166, sleeping of the Cortex M7 can't be disabled even for
+ debugging purposes. That makes it hard for a debugger to access the
+ controller. To make debugging a bit easier, it's possible to overwrite the
+ idle thread with the following one in the application:
+
+ .. code-block:: c
-There is no power management support.
+ void * _CPU_Thread_Idle_body(uintptr_t ignored)
+ {
+ (void)ignored;
+ while (true) {
+ /* void */
+ }
+ }
diff --git a/user/bsps/arm/lpc24xx.rst b/user/bsps/arm/lpc24xx.rst
index ecf1d84..f287dc8 100644
--- a/user/bsps/arm/lpc24xx.rst
+++ b/user/bsps/arm/lpc24xx.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2017, 2019 embedded brains GmbH
+.. Copyright (C) 2017, 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2017, 2019 Sebastian Huber
lpc24xx (NXP LPC17XX/LPC24XX/LPC40XX)
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/realview-pbx-a9.rst b/user/bsps/arm/realview-pbx-a9.rst
index 15d1fbf..bbe0269 100644
--- a/user/bsps/arm/realview-pbx-a9.rst
+++ b/user/bsps/arm/realview-pbx-a9.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 embedded brains GmbH & Co. KG
realview-pbx-a9
===============
diff --git a/user/bsps/arm/stm32h7.rst b/user/bsps/arm/stm32h7.rst
index b508595..cdf4d43 100644
--- a/user/bsps/arm/stm32h7.rst
+++ b/user/bsps/arm/stm32h7.rst
@@ -1,6 +1,8 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2020 embedded brains GmbH
+.. Copyright (C) 2020 embedded brains GmbH & Co. KG
+
+.. Copyright (C) 2022 Karel Gardas <karel@functional.vision>
stm32h7
=======
@@ -8,10 +10,28 @@ stm32h7
This BSP supports the
`STM32H7 Series <https://www.st.com/en/microcontrollers-microprocessors/stm32h7-series.html>`_.
-The BSP is known to run on these boards:
+The BSP is known to run on these boards on specified core with using specified BSP variant.
+
+.. table::
+
+ +----------------------------------------------------------------------------------+-----------+------------------------+
+ | Board name | Core name | BSP variant name |
+ +==================================================================================+===========+========================+
+ |`STM32H743I-EVAL 2 <https://www.st.com/en/evaluation-tools/stm32h743i-eval.html>`_| M7 | arm/stm32h7 |
+ +----------------------------------------------------------------------------------+-----------+------------------------+
+ |`STM32H743ZI-Nucleo <https://www.st.com/en/evaluation-tools/nucleo-h743zi.html>`_ | M7 | arm/nucleo-h743zi |
+ +----------------------------------------------------------------------------------+-----------+------------------------+
+ |`STM32H7B3I-DK <https://www.st.com/en/evaluation-tools/stm32h7b3i-dk.html>`_ | M7 | arm/stm32h7b3i-dk |
+ +----------------------------------------------------------------------------------+-----------+------------------------+
+ |`STM32H757I-EVAL <https://www.st.com/en/evaluation-tools/stm32h757i-eval.html>`_ | M7 | arm/stm32h757i-eval |
+ | +-----------+------------------------+
+ | | M4 | arm/stm32h757i-eval-m4 |
+ +----------------------------------------------------------------------------------+-----------+------------------------+
+ |`STM32H747I-DISCO <https://www.st.com/en/evaluation-tools/stm32h747i-disco.html>`_| M7 | arm/stm32h747i-disco |
+ | +-----------+------------------------+
+ | | M4 | arm/stm32h747i-disco-m4|
+ +----------------------------------------------------------------------------------+-----------+------------------------+
-* `STM32H743I-EVAL 2 <https://www.st.com/en/evaluation-tools/stm32h743i-eval.html>`_
-* `STM32H743ZI-Nucleo <https://www.st.com/en/evaluation-tools/nucleo-h743zi.html>`_
Clock Driver
------------
@@ -23,20 +43,28 @@ boards, so it is recommended to check the default values of the BSP.
Console Driver
--------------
-The console driver supports the on-chip UART and USART modules.
-Different board variations use different GPIO pins and blocks for the default
-communication UART and it is recommended to check whether the default
-configuration provided is valid in the BSP.
+The console driver supports the on-chip UART and USART modules. Even
+the MCU supports about 10 U(S)ARTs, only those supported by the chosen
+board are enabled by default configuration. The board needs to support
+some kind of connector-based connection to the U(S)ART in order for the
+feature to be considered supported here.
+..
+.. Leaving previous notes here as a comment. They may still be useful
+.. and incorporated into the later version of the document.
+..
+.. Different board variations use different GPIO pins and blocks for the default
+.. communication UART and it is recommended to check whether the default
+.. configuration provided is valid in the BSP.
-To specify that the BSP should be built for the STM32H743ZI-Nucleo board,
-users can supply ``STM32H743ZI_NUCLEO = True`` to ``config.ini`` when
-building the BSP.
+.. To specify that the BSP should be built for the STM32H743ZI-Nucleo board,
+.. users can supply ``STM32H743ZI_NUCLEO = True`` to ``config.ini`` when
+.. building the BSP.
-Alternatively, users can supply the configuration structs defined in ``hal.h``
-in the application for other boards. For the console driver, the
-``stm32h7_usartX_config`` structs are used to configure the GPIO pins and other
-parameters. The default implementations can be found in
-``bsps/arm/stm32ht/console`` in the RTEMS sources.
+.. Alternatively, users can supply the configuration structs defined in ``hal.h``
+.. in the application for other boards. For the console driver, the
+.. ``stm32h7_usartX_config`` structs are used to configure the GPIO pins and other
+.. parameters. The default implementations can be found in
+.. ``bsps/arm/stm32ht/console`` in the RTEMS sources.
Network Interface Driver
------------------------
@@ -70,6 +98,490 @@ Known limitations:
for UHS cards are not available. All cards fall back to High Speed transfers.
* The driver uses the IDMA only. MDMA is currently not implemented. For SDMMC1
that means that the memory buffers can only come from AXI SRAM, QSPI memory,
- Flash or the FMC (SDRAM, ...). The internal SRAM1, SRAM2, SRAM3 and SRAM4 is
+ Flash or the FMC (SDRAM, ...). The internal SRAM1, SRAM2, SRAM3 and SRAM4 are
not supported. SDMMC2 should not have that limitation. See ST AN5200 "Getting
started with STM32H7 Series SDMMC host controller" for more details.
+
+
+How to run RTEMS on the board
+-----------------------------
+Following few paragraphs save a purpose of simple HOWTO or a quick
+starting guide for the users not versed in STM32 toolchain and their
+boards workflow.
+
+Board hardware setup
+^^^^^^^^^^^^^^^^^^^^
+Connect board with the host computer using micro-USB cable connected
+to micro-USB connector on the board marked with 'ST-LINK V3E' in case of evaluation
+and discovery boards or with 'USB PWR' in case of Nucleo board.
+
+STM32CubeIDE installation
+^^^^^^^^^^^^^^^^^^^^^^^^^
+Download and install STM32CubeIDE from
+https://www.st.com/en/development-tools/stm32cubeide.html. Install the
+software into the user directory. On Linux install with 'sudo' command
+to install as a root since as part of the installation USB permissions
+rules for ST-Link GDB server are also installed. The reason for
+installing into the user directory is that the IDE is based on
+Eclipse, which provides
+its own update method and this will not work well in case of read-only
+access to the installation directory. In case of any troubles consult
+installation manual provided by ST here https://www.st.com/resource/en/user_manual/um2563-stm32cubeide-installation-guide-stmicroelectronics.pdf.
+Although we will not used full fledged IDE here, the package provides ST-Link GDB Server which will be used for uploading RTEMS binaries to the board
+memory.
+
+STM32CubeProgrammer installation
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Download and install STM32CubeProgrammer from
+https://www.st.com/en/development-tools/stm32cubeprog.html. We will
+use this software for board setup required for RTEMS and later when
+something goes wrong to delete content of the MCU flash memory. The
+software is also internally used by the ST-Link GDB Server from
+STM32CubeIDE so it is crucial to have it installed.
+
+Board ST-Link firmware upgrade
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Download ST-Link board firmware upgrade package from
+https://www.st.com/en/development-tools/stsw-link007.html. The
+software is distributed in a form of Java jar file for Linux and Mac
+OSX and in a form of Windows binary for MS Windows. Unpack it
+somewhere and run it with
+
+.. code-block:: shell
+
+ $ unzip en.stsw-link007-v3-9-3_v3.9.3.zip
+ $ cd stsw-link007/AllPlatforms
+ $ java -jar STLinkUpgrade.jar
+
+Click on *Open in update mode* button and then if *Version* and *Update
+to Firmware* version information are different in shown version number/code, click on *Upgrade*
+button and wait till upgrade finishes.
+
+.. note: On Linux you will need to have libusb library installed in
+ order to make upgrade process working. On Ubuntu 20.04 LTS you can do
+ that with following command.
+
+.. code-block:: shell
+
+ $ sudo apt install libusb-1.0-0
+
+
+Dual core board setup for RTEMS
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Current RTEMS BSP supports
+running MCU in a single-core mode only on either M7 core or M4
+core. That means that to not leave other core interfering with the
+system we either need to upload short infinite loop code to it or we
+may switch off the core completely. The second option is what is
+described here. The board by default switches on and starts both
+cores. Based on chosen BSP variant you may like to switch off other
+core with using STMCubeProgrammer tool.
+Go to the directory where you have installed STMCubeProgrammer
+software and run it with
+
+.. code-block:: shell
+
+ $ cd bin
+ $ ./STM32CubeProgrammer
+
+
+.. important:: It is absolutely necessary you will do that from inside the bin
+ directory where STM32CubeProgrammer binary resides. If you don't, then
+ programmer UI will crash on attempt to connect to the board. Probable
+ reason is a bug in the programmer which is not able to correctly locate
+ its C dynamic library responsible for connecting to the ST-Link board
+ interface. Version 2.9.0 of the programmer is described here. Other
+ versions may behave a bit differently.
+
+When you start the programmer application, the UI window of the programmer will
+appear.
+Click on green *Connect* button in the right upper corner of
+the UI. This will connect programmer to the board.
+Then click on *OB*
+icon in the left upper corner. Actually this is hidden menu item which you
+can un-hide by clicking on menu icon (three horizontal stripes) in the
+upper left corner.
+When you click on *OB* or *Option bytes* in un-hidden state, then
+click on *User Configuration* in the options list and when the user
+configuration list opens
+unselect preselected *BCM4* item inside it to switch off M4 core or
+unselect preselected *BCM7* item to switch off M7 core from
+starting up. The action needs to be saved by clicking on *Apply* button
+below the option table.
+
+.. warning:: Be careful! Wrong setup in STM32H7 configuration may result in
+ *bricked* board.
+
+Do not forget to disconnect the programmer application from the board by clicking on green *Disconnect* button
+in the upper right corner and then close the programmer UI.
+
+.. important:: If you keep programmer connected then you will not be able
+ to connect ST-Link GDB server to the board and upload RTEMS binary to
+ it.
+
+
+STM32CubeIDE ST-Link GDB Server setup
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+In order to use STM provided ST-Link GDB server externally, that is
+not from inside the IDE, we need to configure it. Please go to the
+directory where you have installed STM32CubeIDE software. Look for
+file containing *ST-LINK* string inside its name. Following shell
+command sequence shows example about how to find it.
+
+.. code-block:: shell
+
+ $ cd $HOME/sfw/stm32cubeide_1.8.0
+ $ find . -name 'ST-LINK*'
+ ./plugins/com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.linux64_2.0.200.202202231230/tools/bin/ST-LINK_gdbserver.sh
+ ./plugins/com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.linux64_2.0.200.202202231230/tools/bin/ST-LINK_gdbserver
+ ./plugins/com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.linux64_2.0.100.202109301221/tools/bin/ST-LINK_gdbserver.sh
+ ./plugins/com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.linux64_2.0.100.202109301221/tools/bin/ST-LINK_gdbserver
+
+Notice that in this particular installation case we already have two
+versions of GDB server installed. This is due to fact that version
+1.8.0 of the IDE was later upgraded to 1.9.0 version. Anyway, we will choose
+to use the latest one, or if there is only one, then the only one
+installed. Please go to its *bin* directory. E.g.
+
+.. code-block:: shell
+
+ $ cd plugins/com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.linux64_2.0.200.202202231230/tools/bin
+
+Now, you will need to edit provided *config.txt* file inside the
+directory. Use your favorite editor. Open the file and scroll
+down to its end. You will see following comment:
+
+.. code-block:: none
+
+ ###############################################################
+ # -cp <path> : Path to STM32CubeProgrammer
+ # Modify to correct path
+ # for STM32_Programmer_CLI executable
+ ###############################################################
+ -cp
+
+and here you will need to place path where your STM32CubeProgrammer is
+installed directly behind the *-cp* parameter. E.g.
+
+.. code-block:: none
+
+ ###############################################################
+ # -cp <path> : Path to STM32CubeProgrammer
+ # Modify to correct path
+ # for STM32_Programmer_CLI executable
+ ###############################################################
+ -cp /home/karel/sfw/stm32cubeide_1.8.0/plugins/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.linux64_2.0.200.202202231230/tools/bin
+
+Once you are done with it, you can save the file and close the
+editor. Let's verify that GDB server is configured and running well by starting
+it inside the shell. Please go inside the directory where
+ST-LINK_gdbserver.sh is located and run it by:
+
+.. code-block:: shell
+
+ $ ./ST-LINK_gdbserver.sh
+
+If everything is all right and if you have board still connected to
+the host computer then you should see output like following:
+
+.. code-block:: shell
+
+ $ ./ST-LINK_gdbserver.sh
+
+ STMicroelectronics ST-LINK GDB server. Version 6.1.0
+ Copyright (c) 2022, STMicroelectronics. All rights reserved.
+
+ Starting server with the following options:
+ Persistent Mode : Enabled
+ LogFile Name : debug.log
+ Logging Level : 31
+ Listen Port Number : 61234
+ Status Refresh Delay : 15s
+ Verbose Mode : Disabled
+ SWD Debug : Enabled
+
+ COM frequency = 24000 kHz
+ Target connection mode: Default
+ Reading ROM table for AP 0 @0xe00fefd0
+ Hardware watchpoint supported by the target
+ ST-LINK Firmware version : V3J9M3
+ Device ID: 0x450
+ PC: 0x8028fa4
+ ST-LINK device status: HALT_MODE
+ ST-LINK detects target voltage = 3.28 V
+ ST-LINK device status: HALT_MODE
+ ST-LINK device initialization OK
+ Stm32Device, pollAndNotify running...
+ SwvSrv state change: 0 -> 1
+ Waiting for connection on port 61235...
+ Waiting for debugger connection...
+ Waiting for connection on port 61234...
+
+In output above you can see ST-Link GDB server waiting for debugger
+connection. If this is the case in your case, then you can finish GDB server by hitting
+*Ctrl-C* key combination.
+
+RTEMS BSP samples build and run
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+We will use STM32H747I-DISCO board as an example hereafter. If you use
+different board please adjust configuration steps in BSP configuration
+accordingly. You should use BSP variant name specified for your
+particular board in the table above.
+
+Generate default configuration for the board:
+
+.. code-block:: shell
+
+ $ ./waf bspdefaults --rtems-bsps=arm/stm32h747i-disco > stm32h747i-disco.ini
+ Regenerate build specification cache (needs a couple of seconds)...
+
+To run basic hello world or ticker samples you do not need to modify
+default BSP configuration here as the compilation of basic RTEMS demo samples is
+enabled by default. Let's continue with configuration of
+the RTEMS source by running following command. Please change the RTEMS
+tools installation prefix to suite your installation.
+
+.. code-block:: shell
+
+ $ ./waf configure --rtems-bsps=arm/stm32h747i-disco --rtems-config=./stm32h747i-disco.ini --rtems-tools=$HOME/workspace/rtems-tools
+ Setting top to : /home/rtems/workspace/rtems
+ Setting out to : /home/rtems/workspace/rtems/build
+ Configure board support package (BSP) : arm/stm32h747i-disco
+ Checking for program 'arm-rtems6-gcc' : /home/rtems/workspace/rtems-tools/bin/arm-rtems6-gcc
+ Checking for program 'arm-rtems6-g++' : /home/rtems/workspace/rtems-tools/bin/arm-rtems6-g++
+ Checking for program 'arm-rtems6-ar' : /home/rtems/workspace/rtems-tools/bin/arm-rtems6-ar
+ Checking for program 'arm-rtems6-ld' : /home/rtems/workspace/rtems-tools/bin/arm-rtems6-ld
+ Checking for program 'ar' : /home/rtems/workspace/rtems-tools/bin/arm-rtems6-ar
+ Checking for program 'g++, c++' : /home/rtems/workspace/rtems-tools/bin/arm-rtems6-g++
+ Checking for program 'ar' : /home/rtems/workspace/rtems-tools/bin/arm-rtems6-ar
+ Checking for program 'gas, gcc' : /home/rtems/workspace/rtems-tools/bin/arm-rtems6-gcc
+ Checking for program 'ar' : /home/rtems/workspace/rtems-tools/bin/arm-rtems6-ar
+ Checking for program 'gcc, cc' : /home/rtems/workspace/rtems-tools/bin/arm-rtems6-gcc
+ Checking for program 'ar' : /home/rtems/workspace/rtems-tools/bin/arm-rtems6-ar
+ Checking for asm flags '-MMD' : yes
+ Checking for c flags '-MMD' : yes
+ Checking for cxx flags '-MMD' : yes
+ 'configure' finished successfully (0.454s)
+
+Build the BSP including samples using *build* command:
+
+.. code-block:: shell
+
+ $ ./waf build
+
+the command outputs a lot of information about files being compiled
+and ends with output like:
+
+.. code-block:: shell
+
+ Waf: Leaving directory `/home/rtems/workspace/rtems/build/arm/stm32h747i-disco'
+ 'build_arm/stm32h747i-disco' finished successfully (12.086s)
+
+As your RTEMS BSP including samples is compiled, we will proceed with
+running the hello world sample on the board now.
+Open 3 shell windows for the test on the host computer. Also make sure
+board is connected to the computer and is running. It does not matter
+if manufacturer's demo is running there or if you navigated to some
+demo part and left it there. ST-Link GDB server always takes over the
+board when connected to it.
+
+Start GDB server in the first window by switching to GDB server
+directory and running the shell script. This is from testing machine
+installation, the path to GDB server will probably look different in your
+installation case.
+
+.. code-block:: shell
+
+ $ cd sfw/stm32cubeide_1.8.0/plugins/com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.linux64_2.0.200.202202231230/tools/bin
+ $ ./ST-LINK_gdbserver.sh
+
+ STMicroelectronics ST-LINK GDB server. Version 6.1.0
+ Copyright (c) 2022, STMicroelectronics. All rights reserved.
+
+ Starting server with the following options:
+ Persistent Mode : Enabled
+ LogFile Name : debug.log
+ Logging Level : 31
+ Listen Port Number : 61234
+ Status Refresh Delay : 15s
+ Verbose Mode : Disabled
+ SWD Debug : Enabled
+
+ COM frequency = 24000 kHz
+ Target connection mode: Default
+ Reading ROM table for AP 0 @0xe00fefd0
+ Hardware watchpoint supported by the target
+ ST-LINK Firmware version : V3J9M3
+ Device ID: 0x450
+ PC: 0x8028fa4
+ ST-LINK device status: HALT_MODE
+ ST-LINK detects target voltage = 3.28 V
+ ST-LINK device status: HALT_MODE
+ ST-LINK device initialization OK
+ Stm32Device, pollAndNotify running...
+ SwvSrv state change: 0 -> 1
+ Waiting for connection on port 61235...
+ Waiting for debugger connection...
+ Waiting for connection on port 61234...
+
+In second shell window you will need to run your terminal program and
+connect to the board virtual serial port. Following steps describes
+how to do that on the Ubuntu 20.04. The recommended way here is to use minicom. Let's install it
+first by:
+
+.. code-block:: shell
+
+ $ sudo apt install minicom
+
+And run it with root privileges to be able to reach USB serial port
+provided by board:
+
+.. code-block:: shell
+
+ $ sudo minicom -s
+
+The minicom is invoked with configuration menu open. Go into the
+*Serial port setup* and hit *a* key to select *Serial Device*
+setup. Change */dev/modem* from there into */dev/ttyACM0* and hit
+*Enter* key. Hit *f* key to change hardware flow control from *Yes* to
+*No*. When you are done with it, you can hit *Enter* key to finish
+this part of configuration and then scrolls in menu to *Exit* and hit
+*Enter* key on it. The minicom will switch to terminal mode with just
+provided configuration.
+
+In the third shell window navigate into the BSP build directory and start
+RTEMS GDB with the hello.exe sample.
+
+.. code-block:: shell
+
+ $ arm-rtems6-gdb build/arm/stm32h747i-disco/testsuites/samples/hello.exe
+ GNU gdb (GDB) 10.1.90.20210409-git
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+ Type "show copying" and "show warranty" for details.
+ This GDB was configured as "--host=x86_64-linux-gnu --target=arm-rtems6".
+ Type "show configuration" for configuration details.
+ For bug reporting instructions, please see:
+ <https://www.gnu.org/software/gdb/bugs/>.
+ Find the GDB manual and other documentation resources online at:
+ <http://www.gnu.org/software/gdb/documentation/>.
+
+ For help, type "help".
+ Type "apropos word" to search for commands related to "word"...
+ Reading symbols from build/arm/stm32h747i-disco/testsuites/samples/hello.exe...
+ (gdb)
+
+Now, you need to connect GDB with the ST's GDB server by:
+
+.. code-block:: shell
+
+ (gdb) target extended-remote :61234
+ Remote debugging using :61234
+ 0x08028fa4 in ?? ()
+ (gdb)
+
+and finally you will need to load hello.exe binary into the board
+memory by:
+
+.. code-block:: shell
+
+ (gdb) load
+ Loading section .start, size 0x458 lma 0x24000000
+ Loading section .text, size 0xfca8 lma 0x24000480
+ Loading section .init, size 0xc lma 0x24010128
+ Loading section .fini, size 0xfecc lma 0x24010134
+ Loading section .rodata, size 0x1aab lma 0x24020000
+ Loading section .ARM.exidx, size 0x8 lma 0x24021aac
+ Loading section .eh_frame, size 0x4 lma 0x24021ab4
+ Loading section .init_array, size 0x4 lma 0x24021ab8
+ Loading section .fini_array, size 0x4 lma 0x24021abc
+ Loading section .rtemsroset, size 0x540 lma 0x24021ac0
+ Loading section .data, size 0x6a4 lma 0x24022000
+ Start address 0x24000400, load size 140923
+ Transfer rate: 684 KB/sec, 2562 bytes/write.
+ (gdb)
+
+If everything went fine, then you can run the RTEMS binary by using
+*cont* GDB command.
+
+.. note:: Memory address values in the load output in the gdb shows
+ that we have loaded our application into the AXI
+ SRAM. Memory addresses will be different when loading into
+ different part of MCU memory.
+
+.. code-block:: shell
+
+ (gdb) cont
+ Continuing.
+
+Note that this command should never finish. To see the actual output
+from RTEMS switch to
+the second shell window with minicom (or other terminal emulation
+program) running and you should see hello output
+there:
+
+.. code-block:: none
+
+ *** BEGIN OF TEST HELLO WORLD ***
+ *** TEST VERSION: 6.0.0.50ce036cfbd9807a54af47eb60eadb6a33a9e82d
+ *** TEST STATE: EXPECTED_PASS
+ *** TEST BUILD:
+ *** TEST TOOLS: 10.3.1 20220224 (RTEMS 6, RSB 49e3dac17765fa82ce2f754da839638ee352f95c, Newlib 64b2081)
+ Hello World
+
+ *** END OF TEST HELLO WORLD ***
+
+
+ [ RTEMS shutdown ]
+ RTEMS version: 6.0.0.50ce036cfbd9807a54af47eb60eadb6a33a9e82d
+ RTEMS tools: 10.3.1 20220224 (RTEMS 6, RSB 49e3dac17765fa82ce2f754da839638ee352f95c, Newlib 64b2081)
+ executing thread ID: 0x08a010001
+
+Since default RTEMS BSP configuration resets the board after run
+immediately you can also see output from the immediately started ST
+demo:
+
+.. code-block:: none
+
+ STM32H747I-DISCO_MB1248: Out Of the Box Demonstration V1.0.1 (Build Aug 22 2019 at 11:56:22)
+ STM32H747I-DISCO_MB1248: ST Menu Launcher V1.1.0
+ CPU running at 400MHz, Peripherals at 100MHz/100Mz
+
+which is not a problem here at all. Later we can reconfigure BSP to
+not reset board to prevent demo output here.
+
+How to load binary file into the QSPI NOR
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Connect the board to your host computer using micro-USB
+cable. Start STM32CubeProgrammer and connect it to the board by
+clicking on *Connect* button which is located in the right upper
+corner of the programmer application UI. For accessing QSPI connected
+memory you will need to configure programmer's external loader which
+needs to match your target board. Click on *EL* icon (or *External
+loaders*) in the left sidebar menu. Either go thorough the list of
+external loaders or just search for your board by typing board
+name (or part of the name) into the search bar located on top of the table view. When
+you find your board, select it by selecting rectangle in the *Select*
+table column. That's what is needed to make programmer ready to
+program your board memory.
+For uploading file to the board, you need to continue with clicking on
+*Erase & programming* menu item in the left sidebar menu. It's second item
+from the top. Now, let's select
+your file to upload by clicking on *Browse* button and selecting the
+file name from your host computer filesystem. The most important thing here is
+to specify start address of flashing process. You need to do that by
+typing start address into the *Start address* field.
+
+.. note:: Usually external memory connected to QSPI has 0x90000000 starting
+ address.
+
+When all is set you can click on *Start Programming* button.
+
+.. important:: Cube programmer is very picky about files it shows in the file list. The only recognized suffixes are: elf, bin, hex and
+ similar. Also do not try to fool programmer by renaming let's say text
+ file to bin file. It'll detect file type as ascii text and will not
+ show it in the list of files to flash. So bin file type is really for
+ media types like avi, jpeg, mpeg or for binary dumps from elf
+ files. If you need to save text file, convert it to hex file first.
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/arm/xilinx-zynq.rst b/user/bsps/arm/xilinx-zynq.rst
index 29f9cb0..0ac4487 100644
--- a/user/bsps/arm/xilinx-zynq.rst
+++ b/user/bsps/arm/xilinx-zynq.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2020 Chris Johns (chrisj@rtems.org)
+.. Copyright (C) 2015, 2020 Chris Johns (chrisj@rtems.org)
xilinx-zynq
===========
@@ -49,6 +49,22 @@ tools or a bootloader will be overwritten.
The settings for the console driver can be changed by the user
application through the termios API afterwards.
+Network
+-------
+
+The Cadence network interface driver of LibBSD works on the Xilinx Zynq
+platform. The hardware checksum support works on real hardware but does not
+seem to be supported on Qemu therefore the default state is to disable
+``IFCAP_TXCSUM`` and ``IFCAP_RXCSUM`` and this can be enabled from the shell
+with:
+
+.. code-block:: none
+
+ ifconfig cgem0 rxcsum txcsum
+
+or with an ``ioctl()`` call to the network interface driver with ``SIOCSIFCAP``
+and the mask ``IFCAP_TXCSUM`` and ``IFCAP_RXCSUM`` set.
+
Debugging with xilinx_zynq_a9_qemu
----------------------------------
diff --git a/user/bsps/arm/xilinx-zynqmp-rpu.rst b/user/bsps/arm/xilinx-zynqmp-rpu.rst
new file mode 100644
index 0000000..0dfb77e
--- /dev/null
+++ b/user/bsps/arm/xilinx-zynqmp-rpu.rst
@@ -0,0 +1,95 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 2024 On-Line Applications Research Corporation (OAR)
+
+.. _BSP_arm_xilinx_zynqmp_rpu:
+
+Xilinx ZynqMP RPU
+=================
+
+This BSP supports the Cortex-R5 processor on the Xilinx Zynq UltraScale+ MPSoC
+platform. Basic hardware initialization is performed by the Cortex-R5 FSBL and
+the BSP. This BSP supports the GICv2 interrupt controller available to the
+Cortex-R5 subsystem. Since the Cortex-R5 subsystem only varies in speed, this
+BSP should be functional across all chip variants as well as on Xilinx's QEMU
+branch. SMP operation is not currently supported.
+
+Clock Driver
+------------
+
+The clock driver uses one of the available triple timer counters (TTCs) as the
+timer interrupt source.
+
+Console Driver
+--------------
+
+The console driver supports the default Qemu emulated ARM PL011 PrimeCell UART
+as well as the physical ARM PL011 PrimeCell UART in the ZynqMP hardware.
+
+Boot on ZynqMP Hardware
+-----------------------
+
+On the ZynqMP RPU, RTEMS can be started by Cortes-R5 u-boot, Cortex-A53 u-boot,
+via JTAG, or directly as part of BOOT.bin. For quick turnaround during testing,
+it is recommended to use Cortex-A53 u-boot to avoid repeated BOOT.bin
+generation since the provided Cortex-R5 u-boot is highly limited and has no
+network or MMC/SD access.
+
+Note that if the RPU image is started by the Cortex-A53 u-boot, the program
+sections located at ZYNQMP_RPU_RAM_INT_0_ORIGIN and ZYNQMP_RPU_RAM_INT_1_ORIGIN
+must be manually relocated from DDR to TCM since the TCMs are not directly
+available to the Cortex-A53 cores at their Cortex-R5 internal addresses. This
+can be accomplished by disabling dcache in u-boot and using u-boot's "cp"
+command. Once this is done, the program can be started at 0x0 by using u-boot's
+"cpu" command to first disable core 4 and then release it in split mode.
+
+Hardware Boot Image Generation
+------------------------------
+
+When generating BOOT.bin from components, the BIF file should include at least
+entries for the Cortex-R5 FSBL ([bootloader,destination_cpu=r5-0]) and the
+Cortex-R5 application ([destination_cpu=r5-0]). The Cortex-R5 application should
+be either a u-boot or RTEMS ELF binary. The Cortex-R5 u-boot binary can be
+obtained by building it from Xilinx's u-boot repository. The Cortex-R5 FSBL can
+be obtained setting up an appropriate platform project in Xilinx's current
+development system.
+
+Boot on QEMU
+------------
+The executable image is booted by Qemu in ELF format.
+
+Running Executables on QEMU
+---------------------------
+
+Xilinx's qemu-devicetrees repository must be used in conjunction with the Xilinx
+QEMU available via RSB. Executables generated by this BSP can be run using the
+following command:
+
+.. code-block:: shell
+
+ qemu-system-aarch64 -no-reboot -nographic -M arm-generic-fdt -serial null \
+ -serial mon:stdio -device loader,file=example.exe,cpu-num=4 \
+ -device loader,addr=0xff5e023c,data=0x80088fde,data-len=4 \
+ -device loader,addr=0xff9a0000,data=0x80000218,data-len=4 \
+ -hw-dtb /xlnx-qemu-devtrees-path/LATEST/SINGLE_ARCH/board-zynqmp-zcu102.dtb \
+ -m 4096 -display none
+
+Debugging Executables on QEMU
+-----------------------------
+
+Debugging the RPU cores under QEMU presents unique challenges due to requiring
+the AArch64 QEMU to emulate the entire processing subsystem. Debugging requires
+a multi-arch GDB which can be created by adding "--enable-targets=all" to the
+normal GDB configure line and then building as normal.
+
+To attach to the RPU core once QEMU is started with "-s -S", The following steps
+are required:
+
+.. code-block:: shell
+
+ aarch64-rtems6-gdb
+ (gdb) tar ext :1234
+ (gdb) add-inferior
+ (gdb) inferior 2
+ (gdb) file example.exe
+ (gdb) attach 2
diff --git a/user/bsps/arm/xilinx-zynqmp.rst b/user/bsps/arm/xilinx-zynqmp.rst
index 9a605bb..fa60470 100644
--- a/user/bsps/arm/xilinx-zynqmp.rst
+++ b/user/bsps/arm/xilinx-zynqmp.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
xilinx-zynqmp
=============
diff --git a/user/bsps/bsps-aarch64.rst b/user/bsps/bsps-aarch64.rst
index 933370f..f99843a 100644
--- a/user/bsps/bsps-aarch64.rst
+++ b/user/bsps/bsps-aarch64.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
aarch64 (AArch64)
*****************
@@ -9,3 +9,4 @@ aarch64 (AArch64)
.. include:: aarch64/a72.rst
.. include:: aarch64/xilinx-versal.rst
.. include:: aarch64/xilinx-zynqmp.rst
+.. include:: aarch64/raspberrypi4.rst \ No newline at end of file
diff --git a/user/bsps/bsps-arm.rst b/user/bsps/bsps-arm.rst
index f8a1d60..bd335fa 100644
--- a/user/bsps/bsps-arm.rst
+++ b/user/bsps/bsps-arm.rst
@@ -1,31 +1,34 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2017, 2019 embedded brains GmbH
+.. Copyright (C) 2017, 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2017, 2019 Sebastian Huber
arm (ARM)
*********
-.. include:: arm/altera-cyclone-v.rst
-.. include:: arm/atsam.rst
-.. include:: arm/beagle.rst
-.. include:: arm/bsp-stm32h7.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
+ arm/xilinx-zynqmp-rpu.rst
diff --git a/user/bsps/bsps-bfin.rst b/user/bsps/bsps-bfin.rst
index db7f721..eeb426e 100644
--- a/user/bsps/bsps-bfin.rst
+++ b/user/bsps/bsps-bfin.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
bfin (Blackfin)
***************
diff --git a/user/bsps/bsps-i386.rst b/user/bsps/bsps-i386.rst
index 0b273ee..81f5fd8 100644
--- a/user/bsps/bsps-i386.rst
+++ b/user/bsps/bsps-i386.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
i386
****
diff --git a/user/bsps/bsps-lm32.rst b/user/bsps/bsps-lm32.rst
index 2db5b12..98ffb91 100644
--- a/user/bsps/bsps-lm32.rst
+++ b/user/bsps/bsps-lm32.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
lm32 (LatticeMicro32)
*********************
diff --git a/user/bsps/bsps-m68k.rst b/user/bsps/bsps-m68k.rst
index bdb516b..a820d96 100644
--- a/user/bsps/bsps-m68k.rst
+++ b/user/bsps/bsps-m68k.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
m68k (Motorola 68000 / ColdFire)
********************************
diff --git a/user/bsps/bsps-microblaze.rst b/user/bsps/bsps-microblaze.rst
index dbb574f..6fe4891 100644
--- a/user/bsps/bsps-microblaze.rst
+++ b/user/bsps/bsps-microblaze.rst
@@ -1,8 +1,182 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
+.. Copyright (C) 2022 On-Line Applications Research Corporation (OAR)
-microblaze (Microblaze)
+microblaze (MicroBlaze)
***********************
-There are no Microblaze BSPs yet.
+KCU105 QEMU
+===========
+
+The basic hardware initialization is performed by the BSP. This BSP supports the
+QEMU emulated Xilinx AXI Interrupt Controller v4.1.
+
+Boot via ELF
+------------
+
+The executable image is booted by QEMU in ELF format.
+
+Clock Driver
+------------
+
+The clock driver supports the QEMU emulated Xilinx AXI Timer v2.0. It is
+implemented as a simple downcounter. If device tree support is enabled in the
+build configuration, the clock driver will use the node that is compatible with
+`xlnx,xps-timer-1.00.a` from the device tree to configure the clock. The
+following device tree node properties are used to configure the clock driver:
+``reg``, ``clock-frequency``, and ``interrupts``.
+
+Console Driver
+--------------
+
+The console driver supports the QEMU emulated Xilinx AXI UART Lite v2.0. It is
+initialized to a baud rate of 115200. If device tree support is enabled in the
+build configuration, the console driver will use the node that is compatible
+with `xlnx,xps-uartlite-1.00.a` from the device tree to configure the console.
+The following device tree node properties are used to configure the console
+driver: ``reg``, ``status``, ``port-number``, and ``interrupts``.
+
+Network Driver
+--------------
+
+Support for networking is provided by the libbsd library. Network interface
+configuration is extracted from the device tree binary which, by default, is
+in `<bsp/microblaze-dtb.h> <https://git.rtems.org/rtems/tree/bsps/microblaze/microblaze_fpga/include/bsp/microblaze-dtb.h>`_.
+The device tree source for the default device tree is at `dts/system.dts <https://git.rtems.org/rtems/tree/bsps/microblaze/microblaze_fpga/dts/system.dts>`_.
+
+To replace the default device tree with your own, assuming ``my_device_tree.dts``
+is the name of your device tree source file, first you must convert your device
+tree to .dtb format.
+
+.. code-block:: none
+
+ $ dtc -I dts -O dtb my_device_tree.dts > my_device_tree.dtb
+
+The device tree blob, ``my_device_tree.dtb``, can now be converted to a C file.
+The name ``system_dtb`` is significant as it is the name expected by the BSP.
+
+.. code-block:: none
+
+ $ 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``, in the waf INI file
+to include it in the BSP build.
+
+.. code-block:: none
+
+ BSP_MICROBLAZE_FPGA_DTB_HEADER_PATH = /path/to/my_dtb.c
+
+
+QSPI NOR JFFS2 Driver
+---------------------
+
+The QSPI NOR JFFS2 driver supports the QEMU emulated n25q512a11 QSPI NOR flash
+device. It is initialized to a page size of 256 bytes and a sector size of 64
+KiB. If device tree support is enabled in the build configuration, the QSPI NOR
+JFFS2 driver will use the node that is compatible with `xlnx,xps-spi-2.00.a`
+from the device tree to configure the QSPI NOR JFFS2 driver. The following
+device tree node properties are used to configure the QSPI NOR JFFS2 driver:
+``reg`` and ``interrupts``.
+
+
+Running Executables
+-------------------
+
+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).
+
+Executables generated by this BSP can be run using the following command:
+
+.. code-block:: none
+
+ $ qemu-system-microblazeel -no-reboot -nographic -M microblaze-fdt-plnx -m 256 \
+ -serial mon:stdio -display none -hw-dtb system.dtb -kernel example.exe
+
+Debugging with QEMU
+-------------------
+
+To debug an application, add the option ``-s`` to make QEMU listen for GDB
+connections on port 1234. Add the ``-S`` option to also stop execution until
+a connection is made.
+
+For example, to debug the hello sample and break at ``Init``, first start QEMU.
+
+.. code-block:: none
+
+ $ qemu-system-microblazeel -no-reboot -nographic -M microblaze-fdt-plnx -m 256 \
+ -serial mon:stdio -display none -hw-dtb system.dtb -kernel \
+ build/microblaze/kcu105_qemu/testsuites/samples/hello.exe -s -S
+
+Then start GDB and connect to QEMU.
+
+.. code-block:: none
+
+ $ microblaze-rtems@rtems-ver-major@-gdb build/microblaze/kcu105_qemu/testsuites/samples/hello.exe
+ (gdb) target remote localhost:1234
+ (gdb) break Init
+ (gdb) continue
+
+KCU105
+======
+
+The basic hardware initialization is performed by the BSP. This BSP supports the
+Xilinx AXI Interrupt Controller v4.1.
+
+This BSP was tested using the Xilinx Kintex UltraScale FPGA KCU105 board
+configured with the default Petalinux KCU105 MicroBlaze BSP. The defaults may
+need to be adjusted using BSP configuration options to match the memory layout
+and configuration of your board.
+
+Clock Driver
+------------
+
+The clock driver supports the Xilinx AXI Timer v2.0. It is implemented as a
+simple downcounter. If device tree support is enabled in the
+build configuration, the clock driver will use the node that is compatible with
+`xlnx,xps-timer-1.00.a` from the device tree to configure the clock. The
+following device tree node properties are used to configure the clock driver:
+``reg``, ``clock-frequency``, and ``interrupts``.
+
+Console Driver
+--------------
+
+The console driver supports the Xilinx AXI UART Lite v2.0. It is initialized to
+a baud rate of 115200. If device tree support is enabled in the build
+configuration, the console driver will use the node that is compatible with
+`xlnx,xps-uartlite-1.00.a` from the device tree to configure the console. The
+following device tree node properties are used to configure the console driver:
+``reg``, ``status``, ``port-number``, and ``interrupts``.
+
+Debugging
+---------
+
+The following debugging procedure was used for debugging RTEMS applications
+running on the Xilinx KCU105 board using GDB.
+
+First send an FPGA bitstream to the board using OpenOCD.
+
+.. code-block:: none
+
+ $ openocd -f board/kcu105.cfg -c "init; pld load 0 system.bit; exit"
+
+After the board has been programmed, start the Vivado ``hw_server`` application
+to serve as the debug server. Leave it running in the background for the rest of
+the process.
+
+.. code-block:: none
+
+ $ tools/Xilinx/Vivado/2020.2/bin/hw_server
+
+With the debug server running, connect to the debug server with GDB, load the
+application, and debug as usual. By default the GDB server listens on port 3002.
+
+.. code-block:: none
+
+ $ microblaze-rtems@rtems-ver-major@-gdb example.exe
+ (gdb) target extended-remote localhost:3002
+ (gdb) load
+ (gdb) break Init
+ (gdb) continue
diff --git a/user/bsps/bsps-mips.rst b/user/bsps/bsps-mips.rst
index 9f83811..f90732a 100644
--- a/user/bsps/bsps-mips.rst
+++ b/user/bsps/bsps-mips.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
mips (MIPS)
***********
diff --git a/user/bsps/bsps-moxie.rst b/user/bsps/bsps-moxie.rst
index eab88cc..8548777 100644
--- a/user/bsps/bsps-moxie.rst
+++ b/user/bsps/bsps-moxie.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
moxie
*****
diff --git a/user/bsps/bsps-nios2.rst b/user/bsps/bsps-nios2.rst
index ad21dd3..5280025 100644
--- a/user/bsps/bsps-nios2.rst
+++ b/user/bsps/bsps-nios2.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
nios2 (Nios II)
***************
diff --git a/user/bsps/bsps-or1k.rst b/user/bsps/bsps-or1k.rst
index 6295c23..e7d9a10 100644
--- a/user/bsps/bsps-or1k.rst
+++ b/user/bsps/bsps-or1k.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
or1k (OpenRISC 1000)
********************
diff --git a/user/bsps/bsps-powerpc.rst b/user/bsps/bsps-powerpc.rst
index 80edfae..6b63936 100644
--- a/user/bsps/bsps-powerpc.rst
+++ b/user/bsps/bsps-powerpc.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
powerpc (PowerPC)
*****************
@@ -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..263796e 100644
--- a/user/bsps/bsps-riscv.rst
+++ b/user/bsps/bsps-riscv.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
riscv (RISC-V)
**************
@@ -8,7 +8,8 @@ riscv (RISC-V)
riscv
=====
-This BSP offers 13 variants:
+**Each variant in this first group corresponds to a GCC multilib option with
+different RISC-V standard extensions.**
* rv32i
@@ -26,31 +27,36 @@ This BSP offers 13 variants:
* rv64imac
-* rv64imac_medany
-
* rv64imafd
-* rv64imafd_medany
-
* rv64imafdc
-* rv64imafdc_medany
+Each variant reflects an ISA with ABI and code model choice. All rv64 BSPs have
+medany code model by default, while rv32 BSPs are medlow. The reason is that
+RV32 medlow can access the entire 32-bit address space, while RV64 medlow can
+only access addresses below 0x80000000. With RV64 medany, it's possible to
+perform accesses above 0x80000000. The BSP must be started in machine mode.
+
+The reference platforms for the rv* variants include the QEMU `virt` and
+`spike` machines and the Spike RISC-V ISA simulator.
+
+**The BSP also provides the following variants for specific hardware targets:**
-* frdme310arty
+* frdme310arty - The reference platform for this variant is the Arty FPGA board
+ with the SiFive Freedom E310 reference design.
-Each variant corresponds to a GCC multilib. A particular variant reflects an
-ISA with ABI and code model choice.
+* mpfs64imafdc - The reference platform for this variant is the Microchip
+ PolarFire SoC Icicle Kit.
-The basic hardware initialization is not performed by the BSP. A boot loader
-with device tree support must be used to start the BSP, e.g. BBL. The BSP must
-be started im machine mode.
+* kendrytek210 - The reference platform for this variant is the Kendryte K210
+ SoC on the Sipeed MAiX BiT or Maixduino board.
-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
@@ -67,31 +73,51 @@ The following options are available at the configure command line.
``BSP_FDT_BLOB_SIZE_MAX``
The maximum size of the device tree blob in bytes (default is 65536).
+``BSP_DTB_IS_SUPPORTED``
+ If defined to a non-zero value, then the device tree blob is embedded in
+ the BSP.
+
+``BSP_DTB_HEADER_PATH``
+ The path to the header file containing the device tree blob.
+
``BSP_CONSOLE_BAUD``
- The default baud for console driver devices (default 115200).
+ The default baud for console driver devices (default is 115200).
``RISCV_MAXIMUM_EXTERNAL_INTERRUPTS``
The maximum number of external interrupts supported by the BSP (default
- 64).
+ is 64).
``RISCV_ENABLE_HTIF_SUPPORT``
- Enables the HTIF support if defined to a non-zero value, otherwise it is
- disabled (disabled by default).
+ Enable the Host/Target Interface (HTIF) support (enabled by default).
``RISCV_CONSOLE_MAX_NS16550_DEVICES``
- The maximum number of NS16550 devices supported by the console driver (2
- by default).
+ The maximum number of NS16550 devices supported by the console driver
+ (default is 2).
+
+``RISCV_ENABLE_SIFIVE_UART_SUPPORT``
+ Enable the SiFive console UART (disabled by default).
``RISCV_RAM_REGION_BEGIN``
- The begin of the RAM region for linker command file (default is 0x70000000
- for 64-bit with -mcmodel=medlow and 0x80000000 for all other).
+ The begin of the RAM region for linker command file
+ (default is 0x80000000).
``RISCV_RAM_REGION_SIZE``
The size of the RAM region for linker command file (default 64MiB).
``RISCV_ENABLE_FRDME310ARTY_SUPPORT``
Enables support sifive Freedom E310 Arty board if defined to a non-zero
- value,otherwise it is disabled (disabled by default)
+ value,otherwise it is disabled (disabled by default).
+
+``RISCV_ENABLE_MPFS_SUPPORT``
+ Enables support Microchip PolarFire SoC if defined to a non-zero
+ value, otherwise it is disabled (disabled by default).
+
+``RISCV_ENABLE_KENDRYTE_K210_SUPPORT``
+ Enables support for the Kendtryte K210 SoC if defined to a non-zero
+ value, otherwise it is disabled (disabled by default).
+
+``RISCV_BOOT_HARTID``
+ The boot hartid (processor number) of risc-v cpu by default 0.
Interrupt Controller
--------------------
@@ -109,20 +135,341 @@ The clock driver uses the CLINT timer.
Console Driver
--------------
-The console driver supports devices compatible to
+The console driver supports devices compatible to:
* "ucb,htif0" (depending on the ``RISCV_ENABLE_HTIF_SUPPORT`` BSP option),
-* "ns16550a" (see ``RISCV_CONSOLE_MAX_NS16550_DEVICES`` BSP option), and
+* "ns16550a" (see ``RISCV_CONSOLE_MAX_NS16550_DEVICES`` BSP option),
-* "ns16750" (see ``RISCV_CONSOLE_MAX_NS16550_DEVICES`` BSP option).
+* "ns16750" (see ``RISCV_CONSOLE_MAX_NS16550_DEVICES`` BSP option), and
-* "sifive,uart0" (see ``RISCV_ENABLE_FRDME310ARTY_SUPPORT`` BSP option).
+* "sifive,uart0" (see ``RISCV_ENABLE_SIFIVE_UART_SUPPORT`` BSP option).
They are initialized according to the device tree. The console driver does not
configure the pins or peripheral clocks. The console device is selected
according to the device tree "/chosen/stdout-path" property value.
+QEMU
+----
+
+All of the BSP variants that start with rv can be run on QEMU's virt
+and spike machines. For instance, to run the ``rv64imafdc`` BSP with the
+following "config.ini" file.
+
+.. code-block:: none
+
+ [riscv/rv64imafdc]
+
+Run the following QEMU command.
+
+.. code-block:: shell
+
+ $ qemu-system-riscv64 -M virt -nographic -bios $RTEMS_EXE
+ $ qemu-system-riscv64 -M spike -nographic -bios $RTEMS_EXE
+
+Spike
+----
+
+All of the BSP variants that start with rv can be run on Spike. For instance,
+to run the ``rv64imafdc`` BSP with the following "config.ini" file.
+
+.. code-block:: none
+
+ [riscv/rv64imafdc]
+
+Run the following Spike command.
+
+.. code-block:: shell
+
+ $ spike --isa=rv64imafdc $RTEMS_EXE
+
+Unlike QEMU, Spike supports enabling/disabling a subset of the imafdc
+extensions and has support for further RISC-V extensions as well. A fault will
+be triggered if an executable built with rv64imafdc RISC-V's -march option run
+on Spike with --isa=rv64i option. If no --isa option is specified, the default
+is rv64imafdc.
+
+Microchip PolarFire SoC
+-----------------------
+
+The PolarFire SoC is the 4x 64-bit RISC-V U54 cores and a 64-bit RISC-V E51
+monitor core SoC from the Microchip.
+
+The ``mpfs64imafdc`` BSP variant supports the U54 cores but not the E51 because
+the E51 monitor core is reserved for the first stage bootloader (Hart Software
+Services). In order to boot from the first U54 core, ``RISCV_BOOT_HARTID`` is
+set to 1 by default.
+
+The device tree blob is embedded in the ``mpfs64imafdc`` BSP variant by default
+with the ``BSP_DTB_IS_SUPPORTED`` enabled and the DTB header path
+``BSP_DTB_HEADER_PATH`` is set to bsp/mpfs-dtb.h.
+
+**SMP test procedure for the Microchip PolarFire Icicle Kit:**
+
+The "config.ini" file.
+
+.. code-block:: none
+
+ [riscv/mpfs64imafdc]
+ BUILD_TESTS = True
+ RTEMS_POSIX_API=True
+ RTEMS_SMP = True
+ BSP_START_COPY_FDT_FROM_U_BOOT=False
+ BSP_VERBOSE_FATAL_EXTENSION = False
+
+Build RTEMS.
+
+.. code-block:: shell
+
+ $ ./waf configure --prefix=$HOME/rtems-start/rtems/@rtems-ver-major@
+ $ ./waf
+
+Convert .exe to .elf file.
+
+.. code-block:: shell
+
+ $ riscv-rtems@rtems-ver-major@-objcopy build/riscv/mpfs64imafdc/testsuites/smptests/smp01.exe build/riscv/mpfs64imafdc/testsuites/smptests/smp01.elf
+
+Generate a payload for the `smp01.elf` using the `hss-payload-generator <https://github.com/polarfire-soc/hart-software-services/blob/master/tools/hss-payload-generator>`_.
+
+* Copy `smp01.elf` file to the HSS/tools/hss-payload-generator/test directory.
+
+* Go to hss-payload-generator source directory.
+
+.. code-block:: shell
+
+ $ cd hart-software-services/tools/hss-payload-generator
+
+* Edit test/uboot.yaml file for the hart entry points and correct name of the
+ binary file.
+
+.. code-block:: none
+
+ set-name: 'PolarFire-SoC-HSS::RTEMS'
+ hart-entry-points: {u54_1: '0x1000000000', u54_2: '0x1000000000', u54_3: '0x1000000000', u54_4: '0x1000000000'}
+ payloads:
+ test/smp01.elf: {exec-addr: '0x1000000000', owner-hart: u54_1, secondary-hart: u54_2, secondary-hart: u54_3, secondary-hart: u54_4, priv-mode: prv_m, skip-opensbi: true}
+
+* Generate payload
+
+.. code-block:: shell
+
+ $ ./hss-payload-generator -c test/uboot.yaml payload.bin
+
+Once the payload binary is generated, it should be copied to the eMMC/SD.
+
+`FPGA design with HSS programming file <https://github.com/polarfire-soc/polarfire-soc-documentation/blob/master/boards/mpfs-icicle-kit-es/updating-icicle-kit/updating-icicle-kit-design-and-linux.md>`_.
+
+Program the eMMC/SD with the payload binary.
+
+* Power Cycle the Microchip PolarFire Icicle Kit and stop at the HSS.
+
+* type "mmc" and then "usbdmsc" on the HSS terminal(UART0).
+
+* Load the payload.bin from the Host PC.
+
+.. code-block:: shell
+
+ $ sudo dd if=payload.bin of=/dev/sdb bs=512
+
+Reset the Microchip PolarFire SoC Icicle Kit.
+
+Serial terminal UART1 displays the SMP example messages
+
+.. code-block:: none
+
+ *** BEGIN OF TEST SMP 1 ***
+ *** TEST VERSION: 6.0.0.ef33f861e16de9bf4190a36e4d18062c7300986c
+ *** TEST STATE: EXPECTED_PASS
+ *** TEST BUILD: RTEMS_POSIX_API RTEMS_SMP
+ *** TEST TOOLS: 12.1.1 20220622 (RTEMS 6, RSB 3cb78b0b815ba05d17f5c6
+ 5865d246a8333aa087, Newlib ea99f21)
+
+ CPU 3 start task TA0
+ CPU 2 running Task TA0
+ CPU 3 start task TA1
+ CPU 1 running Task TA1
+ CPU 3 start task TA2
+ CPU 0 running Task TA2
+
+ *** END OF TEST SMP 1 ***
+
+Kendryte K210
+-------------
+
+The Kendryte K210 SoC is a dual core 64-bit RISC-V SoC with an AI NPU, built in
+SRAM, and a variety of peripherals. Currently just the console UART, interrupt
+controller, and timer are supported.
+
+The device tree blob is embedded in the ``kendrytek210`` BSP variant by
+default. When the kendrytek210 BSP variant is selected,
+``BSP_DTB_IS_SUPPORTED`` enabled and the DTB header path
+``BSP_DTB_HEADER_PATH`` is set to ``bsp/kendryte-k210-dtb.h``.
+
+The ``kendrytek210`` BSP variant has been tested on the following simulator and
+boards:
+
+* Renode.io simulator using the Kendrtye k210 model
+* Sipeed MAiX BiT board
+* Sipeed Maixduino board
+* Sipeed MAiX Dock board
+
+**Building the Kendryte K210 BSP**
+
+Configuration file ``config.ini``:
+
+.. code-block:: none
+
+ [riscv/kendrytek210]
+ RTEMS_SMP = True
+
+Build RTEMS:
+
+.. code-block:: shell
+
+ $ ./waf configure --prefix=$HOME/rtems-start/rtems/@rtems-ver-major@
+ $ ./waf
+
+**Flash an executable to a supported K210 board**
+
+Binary images can be flashed to the Sipeed boards through the USB port using
+the ``kflash.py`` utility available from the python pip utility.
+
+.. code-block:: shell
+
+ $ riscv-rtems@rtems-ver-major@-objcopy -Obinary ticker.exe ticker.bin
+ $ kflash.py --uart /dev/ttyUSB0 ticker.bin
+
+After the image is flashed, the RTEMS image will automatically boot. It will
+also run when the board is reset or powered through the USB cable. The USB port
+provides the power and console UART. Plug the USB cable into a host PC and
+bring up a terminal emulator at 115200 baud, 8 data bits, 1 stop bit, no
+parity, and no flow control. On Linux the UART device is often
+``/dev/ttyUSB0``.
+
+**Run a RTEMS application on the Renode.io simulator**
+
+RTEMS executables compiled with the kendrytek210 BSP can run on the renode.io
+simulator using the built-in K210 model. The simulator currently supports the
+console UART, interrupt controller, and timer.
+
+To install renode.io please refer to the `installation instructions <https://github.com/renode/renode#installation>`_.
+Once installed, save the following file as `k210_rtems.resc`.
+
+.. code-block:: shell
+
+ using sysbus
+
+ $bin?=@ticker.exe
+
+ mach create "K210"
+
+ machine LoadPlatformDescription @platforms/cpus/kendryte_k210.repl
+
+ showAnalyzer uart
+
+ sysbus Tag <0x50440000 0x10000> "SYSCTL"
+ sysbus Tag <0x50440018 0x4> "pll_lock" 0xFFFFFFFF
+ sysbus Tag <0x5044000C 0x4> "pll1"
+ sysbus Tag <0x50440008 0x4> "pll0"
+ sysbus Tag <0x50440020 0x4> "clk_sel0"
+ sysbus Tag <0x50440028 0x4> "clk_en_cent"
+ sysbus Tag <0x5044002c 0x4> "clk_en_peri"
+
+ macro reset
+ """
+ sysbus LoadELF $bin
+ """
+ runMacro $reset
+
+After saving the above file in in the same directory as your RTEMS ELF images,
+start renode and load the `k210_rtems.resc` script to start the emulation.
+
+.. code-block:: shell
+
+ (monitor) s @k210_rtems.resc
+
+You should see a renode UART window and the RTEMS ticker example output. If you
+want to run a different RTEMS image, you can edit the file or enter the
+following on the renode console.
+
+.. code-block:: shell
+
+ (monitor) $bin=@smp08.exe
+ (monitor) s @k210_rtems.resc
+
+The above example will run the SMP08 example instead of ticker.
+
+**Generating the Device Tree Header**
+
+The kendrytek210 BSP uses a built in device tree blob. If additional peripheral
+support is added to the BSP, the device tree may need to be updated. After
+editing the device tree source, compile it to a device tree blob with the
+following command:
+
+.. code-block:: shell
+
+ $ dtc -O dtb -b 0 -o kendryte-k210.dtb kendryte-k210.dts
+
+The dtb file can then be converted to a C array using the rtems-bin2c tool.
+The data for the device tree binary can then replace the existing device tree
+binary data in the ``kendryte-k210-dtb.h`` header file.
+
+noel
+====
+
+This BSP supports the `NOEL-V <https://gaisler.com/noel-v>`_ systems from
+Cobham Gaisler. The NOEL-V is a synthesizable VHDL model of a processor that
+implements the RISC-V architecture. It is part of the open source `GRLIB
+<https://gaisler.com/grlib>`_ IP Library. The following BSP variants correspond
+to common NOEL-V configurations:
+
+* noel32im
+
+* noel32imafd
+
+* noel64imac
+
+* noel64imafd
+
+* noel64imafdc
+
+The start of the memory is set to 0x0 to match a standard NOEL-V system, but
+can be changed using the ``RISCV_RAM_REGION_BEGIN`` configuration option. The
+size of the memory is taken from the information available in the device tree.
+
+Reference Designs
+-----------------
+
+The BSP has been tested with NOEL-V reference designs for `Digilent Arty A7
+<https://gaisler.com/noel-artya7>`_, `Microchip PolarFire Splash Kit
+<https://gaisler.com/noel-pf>`_, and `Xilinx KCU105
+<https://gaisler.com/noel-xcku>`_. See the accompanying quickstart guide for
+each reference design to determine which BSP configuration to use.
+
+Build Configuration Options
+---------------------------
+
+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_CONSOLE_USE_INTERRUPTS``
+ Use the Termios interrupt mode in the console driver (true by default).
+
+``BSP_FDT_BLOB_SIZE_MAX``
+ The maximum size of the device tree blob in bytes (262144 by default).
+
+``RISCV_CONSOLE_MAX_APBUART_DEVICES``
+ The maximum number of APBUART devices supported by the console driver
+ (2 by default).
+
+``RISCV_RAM_REGION_BEGIN``
+ The begin of the RAM region for linker command file (0x0 by default).
+
+``RISCV_MAXIMUM_EXTERNAL_INTERRUPTS``
+ The maximum number of external interrupts supported by the BSP (64 by
+ default).
+
griscv
======
diff --git a/user/bsps/bsps-sh.rst b/user/bsps/bsps-sh.rst
index b147251..8c245c4 100644
--- a/user/bsps/bsps-sh.rst
+++ b/user/bsps/bsps-sh.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
sh (SuperH)
***********
diff --git a/user/bsps/bsps-sparc.rst b/user/bsps/bsps-sparc.rst
index d0316a9..325c7fa 100644
--- a/user/bsps/bsps-sparc.rst
+++ b/user/bsps/bsps-sparc.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
.. Copyright (C) 2020 Chris Johns
sparc (SPARC / LEON)
@@ -20,11 +20,81 @@ TODO.
leon2
=====
-TODO.
+This BSP supports LEON2 systems, in particular the `Microchip AT697F
+<https://www.microchip.com/en-us/product/AT697F>`_. The following
+default build configurations are provided:
+
+* leon2 - A generic LEON2 system with memory at 0x4000000.
+
+* at697f - For the AT697F. Built with ``-mcpu=leon -mfix-at697f``.
+
+The BSP contains UART, timer, and interrupt controller drivers.
+Drivers for PCI are available through the :ref:`driver manager <BSP_sparc_leon3_drv_mgr>`.
.. _BSP_sparc_leon3:
leon3
=====
-TODO.
+This BSP supports the LEON3/4/5 systems from Cobham Gaisler.
+The following default build configurations are provided:
+
+* leon3 - A generic `LEON3/4/5 <https://www.gaisler.com/leon5>`_ system with memory at 0x4000000.
+
+* ut700 - For the `UT700 <https://caes.com/product/ut700>`_. Built with ``-mcpu=leon3 -mfix-ut700``.
+
+* ut699 - For the `UT699 <https://caes.com/product/ut699>`_. Built with ``-mcpu=leon -mfix-ut699``.
+
+* gr712rc - For the `GR712RC <https://www.gaisler.com/gr712rc>`_. Built with ``-mcpu=leon3 -mfix-gr712rc``.
+
+* gr740 - For the `GR740 <https://www.gaisler.com/gr740>`_. Memory located at address 0x0.
+
+The BSP contains UART, timer, and interrupt controller drivers. Drivers for additional
+peripherals are available through the driver manager.
+
+.. _BSP_sparc_leon3_drv_mgr:
+
+Driver Manager
+--------------
+
+The leon3 BSP includes an optional driver manager that handles drivers and
+devices on the AMBA and PCI Plug & Play buses. The driver manager can either
+be initialized manually by the user, or started automatically on startup by
+setting the ``RTEMS_DRVMGR_STARTUP`` option. It can be configured to
+automatically instantiate a driver for each hardware device found.
+
+Drivers for the following devices are provided and handled via the driver manager:
+
+* SpaceWire (GRSPW, GRSPW2, GRSPW2_DMA)
+* SpaceWire Router (GRSPWROUTER)
+* SpaceWire Time Distribution Protocol (SPWTDP)
+* CAN - non-DMA (OCCAN) and DMA (GRCAN, GRCANFD)
+- GPIO (GRGPIO)
+- L2 Cache (L2CACHE)
+- IOMMU (GRIOMMU)
+- ADC/DAC (GRADCDAC)
+- Timers (GPTIMER, GRTIMER)
+- 1553 BC, RT and BM support (GR1553B)
+- I2C Master (I2CMST)
+- PCI (GRPCI2, GRPCI, PCIF)
+- Memory Controller (MCTRL)
+- Memory Scrubber (MEMSCRUB)
+- Pulse Width Modulation Generator (GRPWM)
+- CCSDS/ECSS Telemetry Encoder/Decoder (GRTM/GRTC)
+- CSDS Time Manager (GRCTM)
+- Ethernet (GRETH 10/100/1000) (requires network stack)
+- Performance counters (L4STAT)
+- Serial Peripheral Interface (AHBSTAT)
+- AHB Status (AHBSTAT)
+
+Build Configuration Options
+---------------------------
+
+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.
+
+``CONSOLE_USE_INTERRUPTS``
+ Use the Termios interrupt mode in the console driver (false by default).
+
+``RTEMS_DRVMGR_STARTUP``
+ Enable the Driver Manager at startup (false by default).
diff --git a/user/bsps/bsps-sparc64.rst b/user/bsps/bsps-sparc64.rst
index e7be4ea..7b598b7 100644
--- a/user/bsps/bsps-sparc64.rst
+++ b/user/bsps/bsps-sparc64.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
sparc64 (SPARC V9)
******************
diff --git a/user/bsps/bsps-v850.rst b/user/bsps/bsps-v850.rst
index 39973db..220ccc0 100644
--- a/user/bsps/bsps-v850.rst
+++ b/user/bsps/bsps-v850.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
v850 (V850)
***********
diff --git a/user/bsps/bsps-x86_64.rst b/user/bsps/bsps-x86_64.rst
index eefffab..38d84e4 100644
--- a/user/bsps/bsps-x86_64.rst
+++ b/user/bsps/bsps-x86_64.rst
@@ -1,7 +1,7 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
.. Copyright (C) 2018 Amaan Cheval <amaan.cheval@gmail.com>
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
x86_64
******
@@ -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/bsps/index.rst b/user/bsps/index.rst
index bf590e0..5c1b3b7 100644
--- a/user/bsps/index.rst
+++ b/user/bsps/index.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2018 embedded brains GmbH
+.. Copyright (C) 2018 embedded brains GmbH & Co. KG
.. _BSPs:
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..1100006 100644
--- a/user/exe/initialization.rst
+++ b/user/exe/initialization.rst
@@ -83,19 +83,18 @@ initialization is performed before multitasking is started.
The RTEMS Tool ``rtems-exeinfo`` can provide some detail about the registered
handlers. The following shows the initialization handlers for the Hello World
-sample application in the RTEMS kernel's testsuite::
+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
+ 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..fdc54a8 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,22 +837,33 @@ Architectures
The following architectures are supported:
+ - AArch64
- ARM
- Blackfin
- H8300
- Intel x86 (i386)
- LM32
- M68K
+ - MicroBlaze
- MIPS
- Moxie
- PowerPC
- 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/hardware/architectures.rst b/user/hardware/architectures.rst
index b604782..2e0cb9e 100644
--- a/user/hardware/architectures.rst
+++ b/user/hardware/architectures.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. Copyright (C) 2016 Chris Johns <chrisj@rtems.org>
diff --git a/user/hosts/macos.rst b/user/hosts/macos.rst
index 78cef88..75ac5a3 100644
--- a/user/hosts/macos.rst
+++ b/user/hosts/macos.rst
@@ -7,18 +7,105 @@
Apple macOS
===========
-Apple's macOS is fully supported. You need to download and install a recent
-version of the Apple developer application Xcode. Xocde is available in the App
-Store. Make sure you install the Command Line Tools add on available for
-download within Xcode and once installed open a Terminal shell and enter the
-command ``cc`` and accept the license agreement.
+Apple's macOS is supported. You need to download and install a recent
+version of the Apple developer application Xcode. Xcode is available
+in the App Store. Make sure you install the Command Line Tools add on
+available for download within Xcode and once installed open a Terminal
+shell and enter the command ``cc`` and accept the license agreement.
-The normal prefix when working on macOS as a user is under your home directory.
-Prefixes of :file:`$HOME/development/rtems` or :file:`$HOME/rtems` are
-suitable.
+The normal prefix when working on macOS as a user is under your home
+directory. Prefixes of :file:`$HOME/development/rtems` or
+:file:`$HOME/rtems` are suitable.
:ref:`QuickStartPrefixes` details using Prefixes to manage the installation.
+Homebrew and Macports should work but are not tested by the project as
+they are rolling releases making it difficult to reproduce any
+problems there may be. We recommend reaching out to those projects for
+support.
+
+Intel and Apple silicon is supported.
+
+Python
+~~~~~~
+
+Building GDB requires the installation of Python's development
+libraries. Building GDB includes the Python runtime header
+``Python.h`` and linking to the Python runtime libraries. The RSB
+detects a valid header and libraries before starting a GDB
+build.
+
+It is recommended you run the RSB in a Python virtual environment. A
+virtual environment manages paths for you, provides a ``python``
+executable mapped to the version the virtual environment is built with
+and a command to find the appropiate runtime header and library files
+GDB needs. Virtual environments make it easier to update Python to a
+newer version if this is needed.
+
+Apple has removed support for Python's development libraries from
+recent versions of MacOS as users can manage Python using the
+installer packages provided by the Python project.
+
+To install:
+
+#. Download a Python installer for MacOS from https://www.python.org/.
+
+#. Run the installer and install Python.
+
+#. Open a terminal and update your shell profile using the command
+ Python provides. For Python 3.12 the command is:
+
+ .. code-block:: shell
+
+ /Applications/Python\ 3.12/Update\ Shell\ Profile.command
+
+ Check with:
+
+ .. code-block:: shell
+
+ % type python3.12
+ python3.12 is /Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12
+
+#. Create a virtual environment:
+
+ .. code-block:: shell
+
+ mkdir $HOME/development/rtems
+ cd $HOME/development/rtems
+ python3.12 -m venv py3.12
+
+ Activate the virtual environment:
+
+ .. code-block:: shell
+
+ . $HOME/development/rtems/py3.12/bin/activate
+
+ You are now ready to the build the tools within the virtual
+ environment.
+
+.. _Sonoma:
+
+Sonoma
+~~~~~~
+
+The RSB is supported on Sonoma and Applie silicon.
+
+.. _Ventura:
+
+Ventura
+~~~~~~~
+
+The RSB is supported on Ventura and Intel silicon.
+
+.. _Monterey:
+
+Monterey
+~~~~~~~~
+
+The RSB is supported on Ventura and Intel silicon.
+
+.. _Catalina:
+
Catalina
~~~~~~~~
@@ -30,6 +117,8 @@ also
Due to the deprecated Python 2.7 support, we recommend to install and use the
`latest Python 3 release from python.org <https://www.python.org/downloads/mac-osx/>`_.
+.. _Sierra:
+
Sierra
~~~~~~
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/hosts/posix.rst b/user/hosts/posix.rst
index 8bcb3bd..d79e183 100644
--- a/user/hosts/posix.rst
+++ b/user/hosts/posix.rst
@@ -74,7 +74,7 @@ provide a manual override:
CentOS
~~~~~~
-The following packages are required on a minimal CentOS 6.3 or Cent)S 7
+The following packages are required on a minimal CentOS 6.3 or CentOS 7
64-bit installation:
.. code-block:: none
@@ -137,16 +137,16 @@ prefix under your home directory as recommended and end up on the SD card.
Ubuntu
~~~~~~
-The latest version is Ubuntu 20.04.3 LTS 64-bit. This section also includes
+The latest version is Ubuntu 22.04 LTS 64-bit. This section also includes
Xubuntu. A minimal installation was used and the following packages installed:
.. code-block:: none
- $ sudo apt-get build-dep build-essential gcc-defaults g++ gdb unzip \
- pax bison flex texinfo python3-dev libpython2-dev libncurses5-dev \
- zlib1g-dev
+ $ sudo apt install build-essential g++ gdb unzip pax bison flex texinfo \
+ python3-dev python-is-python3 libpython2-dev libncurses5-dev zlib1g-dev \
+ ninja-build pkg-config
-Note that in previous versions of Ubuntu, the package libpython2-dev was
+Note that in older versions of Ubuntu, the package libpython2-dev was
python2.7-dev. The name of packages changes over time. You need the
package with Python development libraries for C/C++ programs. The following
is needed for recent versions:
@@ -179,8 +179,19 @@ than the usual zlib-dev):
openSUSE
~~~~~~~~
-This has been reported to work but no instructions were provided. This is an
-opportunity to contribute. Please submit any guidance you can provide.
+The RTEMS Source Builder has been tested on openSUSE Leap 15.4 64bit.
+Starting with a clean install with source repositories enabled, the following
+zypper command installs the required packages:
+
+.. code-block:: none
+
+ # sudo zypper in -t pattern devel_C_C++ devel_python3
+
+In addition, the following command can set python3 as the default python interpreter:
+
+.. code-block:: none
+
+ # sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
.. _FreeBSD:
diff --git a/user/hosts/windows.rst b/user/hosts/windows.rst
index fac1366..fd7ff55 100644
--- a/user/hosts/windows.rst
+++ b/user/hosts/windows.rst
@@ -156,6 +156,7 @@ The packages we require are:
* python
* mingw-w64-x86_64-python2
* mingw-w64-x86_64-gcc
+* flex
* git
* bison
* cvs
@@ -176,7 +177,7 @@ Install the packages using ``pacman``:
.. code-block:: none
$ pacman -S python mingw-w64-x86_64-python2 mingw-w64-x86_64-gcc \
- bison cvs diffutils git make patch tar texinfo unzip
+ bison flex cvs diffutils git make patch tar texinfo unzip
resolving dependencies...
looking for conflicting packages...
.... output shortened for brevity ....
diff --git a/user/index.rst b/user/index.rst
index a91aa55..5b7f3ce 100644
--- a/user/index.rst
+++ b/user/index.rst
@@ -18,9 +18,9 @@ RTEMS User Manual (|version|).
| |copy| 2018 Shashvat Jain
| |copy| 2018 Vidushi Vashishth
| |copy| 2017 Tanu Hari Dixit
- | |copy| 2016, 2019 embedded brains GmbH
+ | |copy| 2016, 2019 embedded brains GmbH & Co. KG
| |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/kernel.rst b/user/installation/kernel.rst
index fca4ed7..d61f17f 100644
--- a/user/installation/kernel.rst
+++ b/user/installation/kernel.rst
@@ -18,10 +18,9 @@ Create a new location to build the RTEMS kernel:
.. code-block:: none
- $ cd
- $ cd development/rtems
- $ mkdir kernel
- $ cd kernel
+ $ cd $HOME/development/rtems
+ $ mkdir src
+ $ cd src
Clone the RTEMS respository:
@@ -36,209 +35,72 @@ Clone the RTEMS respository:
Resolving deltas: 100% (390053/390053), done.
Checking connectivity... done.
-Tools Path Set Up
------------------
-
-We need to set our path to include the RTEMS tools we built in the previous
-section. The RTEMS tools needs to be first in your path because RTEMS provides
-specific versions of the ``autoconf`` and ``automake`` tools. We want to use
-the RTEMS version and not your host's versions:
-
-.. code-block:: none
-
- $ export PATH=$HOME/development/rtems/5/bin:$PATH
-
-.. _bootstrapping:
-
-Bootstrapping
--------------
-
-The developers version of the code from git requires we ``bootstrap`` the
-source code. This is an ``autoconf`` and ``automake`` bootstrap to create the
-various files generated by ``autoconf`` and ``automake``. RTEMS does not keep
-these generated files under version control. The bootstrap process is slow so
-to speed it up we provide a command that can perform the bootstrap in
-parallel using your available cores. We need to enter the cloned source
-directory then run the bootstrap commands:
-
-.. code-block:: none
-
- $ cd rtems
- $ ./bootstrap -c && ./rtems-bootstrap
- removing automake generated Makefile.in files
- removing configure files
- removing aclocal.m4 files
- RTEMS Bootstrap, 5 (089327b5dcf9)
- 1/139: autoreconf: configure.ac
- 2/139: autoreconf: cpukit/configure.ac
- 3/139: autoreconf: tools/cpu/configure.ac
- 4/139: autoreconf: tools/cpu/generic/configure.ac
- 5/139: autoreconf: tools/cpu/sh/configure.ac
- 6/139: autoreconf: tools/cpu/nios2/configure.ac
- 7/139: autoreconf: tools/build/configure.ac
- 8/139: autoreconf: doc/configure.ac
- ......
- 124/139: autoreconf: c/src/make/configure.ac
- 125/139: autoreconf: c/src/librtems++/configure.ac
- 126/139: autoreconf: c/src/ada-tests/configure.ac
- 127/139: autoreconf: testsuites/configure.ac
- 128/139: autoreconf: testsuites/libtests/configure.ac
- 129/139: autoreconf: testsuites/mptests/configure.ac
- 130/139: autoreconf: testsuites/fstests/configure.ac
- 131/139: autoreconf: testsuites/sptests/configure.ac
- 132/139: autoreconf: testsuites/tmtests/configure.ac
- 133/139: autoreconf: testsuites/smptests/configure.ac
- 134/139: autoreconf: testsuites/tools/configure.ac
- 135/139: autoreconf: testsuites/tools/generic/configure.ac
- 136/139: autoreconf: testsuites/psxtests/configure.ac
- 137/139: autoreconf: testsuites/psxtmtests/configure.ac
- 138/139: autoreconf: testsuites/rhealstone/configure.ac
- 139/139: autoreconf: testsuites/samples/configure.ac
- Bootstrap time: 0:02:47.398824
-
Building a BSP
--------------
-We build RTEMS in a directory outside of the source tree we have just cloned
-and ``bootstrapped``. You cannot build RTEMS while in the source tree. Lets
-create a suitable directory using the name of the BSP we are going to build:
+We build RTEMS in a directory within the source tree we have just cloned. For
+the details, see the :ref:`BSPBuildSystem`. We will build for the ``erc32``
+BSP with POSIX enabled. Firstly, create the file :file:`config.ini` in the
+source tree root directory with the BSP build configuration, for example:
-.. code-block:: none
+.. code-block:: ini
- $ cd ..
- $ mkdir erc32
- $ cd erc32
+ [sparc/erc32]
+ RTEMS_POSIX_API = True
-Configure RTEMS using the ``configure`` command. We use a full path to
-``configure`` so the object files built contain the absolute path of the source
-files. If you are source level debugging you will be able to access the source
-code to RTEMS from the debugger. We will build for the ``erc32`` BSP with POSIX
-enabled and the networking stack disabled:
+Configure RTEMS using the ``waf configure`` command:
.. code-block:: none
- $ $HOME/development/rtems/kernel/rtems/configure --prefix=$HOME/development/rtems/5 \
- --target=sparc-rtems5 --enable-rtemsbsp=erc32 --enable-posix \
- --disable-networking
- checking for gmake... no
- checking for make... make
- checking for RTEMS Version... 4.11.99.0
- checking build system type... x86_64-pc-linux-gnu
- checking host system type... x86_64-pc-linux-gnu
- checking target system type... sparc-unknown-rtems5
- checking for a BSD-compatible install... /usr/bin/install -c
- checking whether build environment is sane... yes
- checking for a thread-safe mkdir -p... /bin/mkdir -p
- checking for gawk... no
- checking for mawk... mawk
- checking whether make sets $(MAKE)... yes
- checking whether to enable maintainer-specific portions of Makefiles... no
- checking that generated files are newer than configure... done
- ......
- checking target system type... sparc-unknown-rtems5
- checking rtems target cpu... sparc
- checking for a BSD-compatible install... /usr/bin/install -c
- checking whether build environment is sane... yes
- checking for sparc-rtems5-strip... sparc-rtems5-strip
- checking for a thread-safe mkdir -p... /bin/mkdir -p
- checking for gawk... no
- checking for mawk... mawk
- checking whether make sets $(MAKE)... yes
- checking whether to enable maintainer-specific portions of Makefiles... no
- checking that generated files are newer than configure... done
- configure: creating ./config.status
- config.status: creating Makefile
-
- target architecture: sparc.
- available BSPs: erc32.
- 'make all' will build the following BSPs: erc32.
- other BSPs can be built with 'make RTEMS_BSP="bsp1 bsp2 ..."'
-
- config.status: creating Makefile
-
-Build RTEMS using two cores:
+ $ cd $HOME/development/rtems/src/rtems
+ $ ./waf configure --prefix=$HOME/development/rtems/6
+ Setting top to : $HOME/development/rtems/src/rtems
+ Setting out to : $HOME/development/rtems/src/rtems/build
+ Regenerate build specification cache (needs a couple of seconds)...
+ Configure board support package (BSP) : sparc/erc32
+ Checking for program 'sparc-rtems6-gcc' : $HOME/development/rtems/6/bin/sparc-rtems6-gcc
+ Checking for program 'sparc-rtems6-g++' : $HOME/development/rtems/6/bin/sparc-rtems6-g++
+ Checking for program 'sparc-rtems6-ar' : $HOME/development/rtems/6/bin/sparc-rtems6-ar
+ Checking for program 'sparc-rtems6-ld' : $HOME/development/rtems/6/bin/sparc-rtems6-ld
+ Checking for program 'ar' : $HOME/development/rtems/6/bin/sparc-rtems6-ar
+ Checking for program 'g++, c++' : $HOME/development/rtems/6/bin/sparc-rtems6-g++
+ Checking for program 'ar' : $HOME/development/rtems/6/bin/sparc-rtems6-ar
+ Checking for program 'gas, gcc' : $HOME/development/rtems/6/bin/sparc-rtems6-gcc
+ Checking for program 'ar' : $HOME/development/rtems/6/bin/sparc-rtems6-ar
+ Checking for program 'gcc, cc' : $HOME/development/rtems/6/bin/sparc-rtems6-gcc
+ Checking for program 'ar' : $HOME/development/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' : $HOME/development/rtems/6/bin/rtems-bin2c
+ Checking for program 'gzip' : /usr/bin/gzip
+ Checking for program 'xz' : /usr/bin/xz
+ Checking for program 'rtems-ld' : $HOME/development/rtems/6/bin/rtems-ld
+ Checking for program 'rtems-syms' : $HOME/development/rtems/6/bin/rtems-syms
+ Checking for program 'rtems-bin2c' : $HOME/development/rtems/6/bin/rtems-bin2c
+ Checking for program 'gzip' : /usr/bin/gzip
+ Checking for program 'xz' : /usr/bin/xz
+ 'configure' finished successfully (7.996s)
+
+Build RTEMS:
.. code-block:: none
- $ make -j 2
- Making all in tools/build
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- make all-am
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT cklength.o -MD -MP -MF .deps/cklength.Tpo -c -o cklength.o /home/chris/development/rtems/kernel/rtems/tools/build/cklength.c
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT eolstrip.o -MD -MP -MF .deps/eolstrip.Tpo -c -o eolstrip.o /home/chris/development/rtems/kernel/rtems/tools/build/eolstrip.c
- mv -f .deps/cklength.Tpo .deps/cklength.Po
- mv -f .deps/eolstrip.Tpo .deps/eolstrip.Po
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT compat.o -MD -MP -MF .deps/compat.Tpo -c -o compat.o /home/chris/development/rtems/kernel/rtems/tools/build/compat.c
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT packhex.o -MD -MP -MF .deps/packhex.Tpo -c -o packhex.o /home/chris/development/rtems/kernel/rtems/tools/build/packhex.c
- mv -f .deps/compat.Tpo .deps/compat.Po
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT unhex.o -MD -MP -MF .deps/unhex.Tpo -c -o unhex.o /home/chris/development/rtems/kernel/rtems/tools/build/unhex.c
- mv -f .deps/packhex.Tpo .deps/packhex.Po
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT rtems-bin2c.o -MD -MP -MF .deps/rtems-bin2c.Tpo -c -o rtems-bin2c.o /home/chris/development/rtems/kernel/rtems/tools/build/rtems-bin2c.c
- mv -f .deps/unhex.Tpo .deps/unhex.Po
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT binpatch.o -MD -MP -MF .deps/binpatch.Tpo -c -o binpatch.o /home/chris/development/rtems/kernel/rtems/tools/build/binpatch.c
- mv -f .deps/rtems-bin2c.Tpo .deps/rtems-bin2c.Po
- gcc -g -O2 -o cklength cklength.o
- mv -f .deps/binpatch.Tpo .deps/binpatch.Po
- gcc -g -O2 -o eolstrip eolstrip.o compat.o
- gcc -g -O2 -o packhex packhex.o
- gcc -g -O2 -o rtems-bin2c rtems-bin2c.o compat.o
- gcc -g -O2 -o unhex unhex.o compat.o
- gcc -g -O2 -o binpatch binpatch.o
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- Making all in tools/cpu
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- Making all in generic
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[2]: Nothing to be done for 'all'.
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[2]: Nothing to be done for 'all-am'.
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- Making all in testsuites/tools
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools'
- Making all in generic
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools/generic'
- make[2]: Nothing to be done for 'all'.
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools/generic'
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools'
- make[2]: Nothing to be done for 'all-am'.
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools'
- Making all in sparc-rtems5/c
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems5/c'
- Making all in .
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems5/c'
- Configuring RTEMS_BSP=erc32
- checking for gmake... no
- checking for make... make
- checking build system type... x86_64-pc-linux-gnu
- checking host system type... sparc-unknown-rtems5
- ......
- sparc-rtems5-gcc -B../../../../../erc32/lib/ -specs bsp_specs -qrtems -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/nsecs -I.. -I/home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/../support/include -mcpu=cypress -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT init.o -MD -MP -MF .deps/init.Tpo -c -o init.o /home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/nsecs/init.c
- sparc-rtems5-gcc -B../../../../../erc32/lib/ -specs bsp_specs -qrtems -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/nsecs -I.. -I/home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/../support/include -mcpu=cypress -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT empty.o -MD -MP -MF .deps/empty.Tpo -c -o empty.o /home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/nsecs/empty.c
- mv -f .deps/empty.Tpo .deps/empty.Po
- mv -f .deps/init.Tpo .deps/init.Po
- sparc-rtems5-gcc -B../../../../../erc32/lib/ -specs bsp_specs -qrtems -mcpu=cypress -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -Wl,--gc-sections -mcpu=cypress -o nsecs.exe init.o empty.o
- sparc-rtems5-nm -g -n nsecs.exe > nsecs.num
- sparc-rtems5-size nsecs.exe
- text data bss dec hex filename
- 121392 1888 6624 129904 1fb70 nsecs.exe
- cp nsecs.exe nsecs.ralf
- make[6]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems5/ c/erc32/testsuites/samples/nsecs'
- make[5]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems5/ c/erc32/testsuites/samples'
- make[4]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems5/ c/erc32/testsuites/samples'
- make[4]: Entering directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems5/ c/erc32/testsuites'
- make[4]: Nothing to be done for 'all-am'.
- make[4]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems5/ c/erc32/testsuites'
- make[3]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems5/ c/erc32/testsuites'
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems5/ c/erc32'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems5/c'
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32'
- make[1]: Nothing to be done for 'all-am'.
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32'
+ $ ./waf
+ Waf: Entering directory `$HOME/development/rtems/src/rtems/build'
+ Waf: Leaving directory `$HOME/development/rtems/src/rtems/build'
+ 'build' finished successfully (0.051s)
+ Waf: Entering directory `$HOME/development/rtems/src/rtems/build/sparc/erc32'
+ [ 1/1524] Compiling bsps/shared/dev/serial/mc68681_reg2.c
+ [ 2/1524] Compiling bsps/shared/dev/rtc/mc146818a_ioreg.c
+ [ 3/1524] Compiling bsps/shared/dev/flash/am29lv160.c
+ ...
+ [1521/1524] Linking $HOME/development/rtems/src/rtems/build/sparc/erc32/libz.a
+ [1522/1524] Linking $HOME/development/rtems/src/rtems/build/sparc/erc32/librtemscxx.a
+ [1523/1524] Linking $HOME/development/rtems/src/rtems/build/sparc/erc32/testsuites/samples/paranoia.exe
+ [1524/1524] Linking $HOME/development/rtems/src/rtems/build/sparc/erc32/libmghttpd.a
+ Waf: Leaving directory `$HOME/development/rtems/src/rtems/build/sparc/erc32'
+ 'build_sparc/erc32' finished successfully (4.894s)
Installing A BSP
----------------
@@ -252,46 +114,20 @@ RTEMS with the following command:
.. code-block:: none
- $ make install
- Making install in tools/build
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- /bin/mkdir -p '/home/chris/development/rtems/5/bin'
- /usr/bin/install -c cklength eolstrip packhex unhex rtems-bin2c '/home/chris/development/rtems/5/bin'
- /bin/mkdir -p '/home/chris/development/rtems/5/bin'
- /usr/bin/install -c install-if-change '/home/chris/development/rtems/5/bin'
- make[2]: Nothing to be done for 'install-data-am'.
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- Making install in tools/cpu
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- Making install in generic
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[3]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[3]: Nothing to be done for 'install-exec-am'.
- make[3]: Nothing to be done for 'install-data-am'.
- make[3]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[3]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[3]: Nothing to be done for 'install-exec-am'.
- make[3]: Nothing to be done for 'install-data-am'.
- make[3]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- ....
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems5/c'
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32'
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32'
- make[2]: Nothing to be done for 'install-exec-am'.
- /bin/mkdir -p '/home/chris/development/rtems/5/make'
- /usr/bin/install -c -m 644 /home/chris/development/rtems/kernel/rtems/make/main.cfg /home/chris/development/rtems/kernel/rtems/make/leaf.cfg '/home/chris/development/rtems/5/make'
- /bin/mkdir -p '/home/chris/development/rtems/5/share/rtems5/make/Templates'
- /usr/bin/install -c -m 644 /home/chris/development/rtems/kernel/rtems/make/Templates/Makefile.dir /home/chris/development/rtems/kernel/rtems/make/Templates/Makefile.leaf /home/chris/development/rtems/kernel/rtems/make/Templates/Makefile.lib '/home/chris/development/rtems/5/share/rtems5/make/Templates'
- /bin/mkdir -p '/home/chris/development/rtems/5/make/custom'
- /usr/bin/install -c -m 644 /home/chris/development/rtems/kernel/rtems/make/custom/default.cfg '/home/chris/development/rtems/5/make/custom'
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32'
+ $ ./waf install
+ Waf: Entering directory `$HOME/development/rtems/src/rtems/build'
+ Waf: Leaving directory `$HOME/development/rtems/src/rtems/build'
+ 'install' finished successfully (0.074s)
+ Waf: Entering directory `$HOME/development/rtems/src/rtems/build/sparc/erc32'
+ + install $HOME/development/rtems/6/sparc-rtems6/erc32/lib/include/libchip/am29lv160.h (from bsps/include/libchip/am29lv160.h)
+ + install $HOME/development/rtems/6/sparc-rtems6/erc32/lib/include/libchip/mc146818a.h (from bsps/include/libchip/mc146818a.h)
+ + install $HOME/development/rtems/6/sparc-rtems6/erc32/lib/include/libchip/mc68681.h (from bsps/include/libchip/mc68681.h)
+ ...
+ + install $HOME/development/rtems/6/sparc-rtems6/erc32/lib/include/rtems/version.h (from cpukit/include/rtems/version.h)
+ + install $HOME/development/rtems/6/sparc-rtems6/erc32/lib/include/rtems/vmeintr.h (from cpukit/include/rtems/vmeintr.h)
+ + install $HOME/development/rtems/6/sparc-rtems6/erc32/lib/include/rtems/watchdogdrv.h (from cpukit/include/rtems/watchdogdrv.h)
+ Waf: Leaving directory `$HOME/development/rtems/src/rtems/build/sparc/erc32'
+ 'install_sparc/erc32' finished successfully (0.637s)
Contributing Patches
--------------------
@@ -313,7 +149,7 @@ has changed:
.. code-block:: none
- $ cd ../rtems
+ $ cd $HOME/development/rtems/src/rtems
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
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/v4_11-to-v5.rst b/user/migration/v4_11-to-v5.rst
index bde84c2..2dc97ec 100644
--- a/user/migration/v4_11-to-v5.rst
+++ b/user/migration/v4_11-to-v5.rst
@@ -1,7 +1,7 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
.. Copyright (C) 2020 Chris Johns
-.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 2020 embedded brains GmbH & Co. KG
.. _Migration_4_11_to_5:
diff --git a/user/migration/v5-to-v6.rst b/user/migration/v5-to-v6.rst
index d4691ff..98c7366 100644
--- a/user/migration/v5-to-v6.rst
+++ b/user/migration/v5-to-v6.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 embedded brains GmbH & Co. KG
.. _Migration_5_to_6:
@@ -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
-----------------
+Update to GCC 10 and Later
+--------------------------
-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).
+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/overview/index.rst b/user/overview/index.rst
index 550724a..16389d9 100644
--- a/user/overview/index.rst
+++ b/user/overview/index.rst
@@ -355,6 +355,7 @@ sophisticated real-time applications are significantly reduced.
.. [#] Thread-local storage requires some support by the tool chain and the
RTEMS architecture support, e.g. context-switch code. It is supported
- at least on ARM, PowerPC, RISC-V, SPARC and m68k. Check the
- `RTEMS CPU Architecture Supplement <https://docs.rtems.org/branches/master/cpu-supplement.pdf>`_
- if it is supported.
+ at least on ARM, AArch64, PowerPC, RISC-V, SPARC, MicroBlaze, Nios II,
+ and m68k. Check the `RTEMS CPU Architecture Supplement
+ <https://docs.rtems.org/branches/master/cpu-supplement.pdf>`_ if it is
+ supported.
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..0599305 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
+ 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..962cd43 100644
--- a/user/start/bsp-build.rst
+++ b/user/start/bsp-build.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. _QuickStartBSPBuild:
@@ -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=sparc/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:
@@ -99,26 +99,19 @@ If you have built a BSP with the RSB, you can move on to
Manual BSP Build
----------------
-We manually build the BSP in four steps. The first step is to create a build
-directory. It must be separate from the RTEMS source directory. We use
-:file:`$HOME/quick-start/build/b-erc32`.
+We manually build the BSP in four steps. The first step is to set your path.
+Prepend the RTEMS tool suite binary directory to your ``$PATH`` throughout the
+remaining steps. Run the command:
.. code-block:: none
- mkdir -p $HOME/quick-start/build/b-erc32
-
-The second step is to set your path. Prepend the RTEMS tool suite binary
-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,11 +121,12 @@ 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
+The second step is to configure the BSP. There are various BSP build
configuration options available. Some options are BSP-specific. Each section
in the INI-style configuration file ``config.ini`` instructs the build system to
build a particular BSP variant (`sparc/erc32` in our case). We enable the build
@@ -145,7 +139,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,31 +148,31 @@ 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.
+Building the BSP is the third step.
.. code-block:: none
@@ -219,12 +213,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))
diff --git a/user/start/bsp-test.rst b/user/start/bsp-test.rst
index 575f19e..a354663 100644
--- a/user/start/bsp-test.rst
+++ b/user/start/bsp-test.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. _QuickStartBSPTest:
diff --git a/user/start/prefixes.rst b/user/start/prefixes.rst
index 826ce85..aee7440 100644
--- a/user/start/prefixes.rst
+++ b/user/start/prefixes.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. Copyright (C) 2016 Chris Johns <chrisj@rtems.org>
diff --git a/user/start/preparation.rst b/user/start/preparation.rst
index 3670885..4bfc214 100644
--- a/user/start/preparation.rst
+++ b/user/start/preparation.rst
@@ -1,7 +1,7 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
.. Copyright (C) 2018 Shashvat Jain
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. Copyright (C) 2020 Chris Johns
.. Copyright (C) 2020 Gedare Bloom
diff --git a/user/start/sources.rst b/user/start/sources.rst
index 6585e3d..a6e66df 100644
--- a/user/start/sources.rst
+++ b/user/start/sources.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. Copyright (C) 2020 Chris Johns
diff --git a/user/start/tools.rst b/user/start/tools.rst
index 2706f71..3656867 100644
--- a/user/start/tools.rst
+++ b/user/start/tools.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. Copyright (C) 2020 Chris Johns
.. Copyright (C) 2020 Utkarsh Rai
diff --git a/user/support/bugs.rst b/user/support/bugs.rst
index d75c9b4..02788d9 100644
--- a/user/support/bugs.rst
+++ b/user/support/bugs.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. Copyright (C) 2015 Chris Johns <chrisj@rtems.org>
.. Copyright (C) 2012 Gedare Bloom
diff --git a/user/support/contrib.rst b/user/support/contrib.rst
index c42d41b..5d61b46 100644
--- a/user/support/contrib.rst
+++ b/user/support/contrib.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. Copyright (C) 2018 Joel Sherill
.. Copyright (C) 2016 Chris Johns <chrisj@rtems.org>
diff --git a/user/support/index.rst b/user/support/index.rst
index 6147c06..5320488 100644
--- a/user/support/index.rst
+++ b/user/support/index.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. index:: support
diff --git a/user/support/support-project.rst b/user/support/support-project.rst
index b782029..4aef902 100644
--- a/user/support/support-project.rst
+++ b/user/support/support-project.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. Copyright (C) 2016 Chris Johns <chrisj@rtems.org>
diff --git a/user/tracing/captureengine.rst b/user/tracing/captureengine.rst
index a8bca53..137c555 100644
--- a/user/tracing/captureengine.rst
+++ b/user/tracing/captureengine.rst
@@ -14,22 +14,22 @@ runtime and does not require RTEMS or your application to be rebuilt in order
to use it.
The Capture Engine's sample testcase for the `sparc/erc32` is available in
-build directory created when building RTEMS in the path
-file: `sparc-rtems5/c/erc32/testsuites/samples`. In order to access the capture
-testcase perform the following set of operations inside the RTEMS build
-directory.
+build directory created when building RTEMS in the path file:
+`sparc-rtems@rtems-ver-major@/c/erc32/testsuites/samples`. In order to access
+the capture testcase perform the following set of operations inside the RTEMS
+build directory.
.. code-block:: none
- $ cd /sparc-rtems5/c/erc32/testsuites/samples
- $ sparc-rtems5-run ./capture.exe
+ $ cd /sparc-rtems@rtems-ver-major@/c/erc32/testsuites/samples
+ $ sparc-rtems@rtems-ver-major@-run ./capture.exe
*** BEGIN OF TEST CAPTURE ENGINE ***
- *** TEST VERSION: 5.0.0.de9b7d712bf5da6593386fd4fbca0d5f8b8431d8
+ *** TEST VERSION: @rtems-ver-major@.@rtems-ver-minor@.0.de9b7d712bf5da6593386fd4fbca0d5f8b8431d8
*** TEST STATE: USER_INPUT
*** TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API
- *** TEST TOOLS: 7.3.0 20180125 (RTEMS 5, RSB a3a6c34c150a357e57769a26a460c475e188438f, Newlib 3.0.0)
+ *** TEST TOOLS: 7.3.0 20180125 (RTEMS @rtems-ver-major@, RSB a3a6c34c150a357e57769a26a460c475e188438f, Newlib 3.0.0)
Press any key to start capture engine (20s remaining)
Press any key to start capture engine (19s remaining)
Press any key to start capture engine (18s remaining)
@@ -101,10 +101,10 @@ number of context switches between tasks we are not interested in.
.. code-block:: none
*** BEGIN OF TEST CAPTURE ENGINE ***
- *** TEST VERSION: 5.0.0.de9b7d712bf5da6593386fd4fbca0d5f8b8431d8
+ *** TEST VERSION: @rtems-ver-major@.@rtems-ver-minor@.0.de9b7d712bf5da6593386fd4fbca0d5f8b8431d8
*** TEST STATE: USER_INPUT
*** TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API
- *** TEST TOOLS: 7.3.0 20180125 (RTEMS 5, RSB a3a6c34c150a357e57769a26a460c475e188438f, Newlib 3.0.0)
+ *** TEST TOOLS: 7.3.0 20180125 (RTEMS @rtems-ver-major@, RSB a3a6c34c150a357e57769a26a460c475e188438f, Newlib 3.0.0)
Press any key to start capture engine (20s remaining)
Press any key to start capture engine (19s remaining)
Press any key to start capture engine (18s remaining)
diff --git a/user/tracing/eventrecording.rst b/user/tracing/eventrecording.rst
index 7130658..c011000 100644
--- a/user/tracing/eventrecording.rst
+++ b/user/tracing/eventrecording.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019, 2020 embedded brains GmbH
+.. Copyright (C) 2019, 2020 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. _EventRecording:
@@ -48,8 +48,11 @@ The application enables the event recording support via the configuration
option :c:macro:`CONFIGURE_RECORD_PER_PROCESSOR_ITEMS`. The configuration
option :c:macro:`CONFIGURE_RECORD_EXTENSIONS_ENABLED` enables the generation of
thread create, start, restart, delete, switch, begin, exitted and terminate
-events. Dumps of the event records in a fatal error handler can be enabled by
-the mutually exclusive :c:macro:`CONFIGURE_RECORD_FATAL_DUMP_BASE64` and
+events. The configuration option
+:c:macro:`CONFIGURE_RECORD_INTERRUPTS_ENABLED` enables the generation of
+interrupt entry and exit events. Dumps of the event records in a fatal error
+handler can be enabled by the mutually exclusive
+:c:macro:`CONFIGURE_RECORD_FATAL_DUMP_BASE64` and
:c:macro:`CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB` configuration options.
Custom events can be recorded for example with the
@@ -98,64 +101,6 @@ instrumented functions:
);
}
-To generate interrupt handler entry/exit events, the following patch can be
-used:
-
-.. code-block:: diff
-
- diff --git a/bsps/arm/shared/clock/clock-armv7m.c b/bsps/arm/shared/clock/clock-armv7m.c
- index 255de1ca42..0d37c63ac6 100644
- --- a/bsps/arm/shared/clock/clock-armv7m.c
- +++ b/bsps/arm/shared/clock/clock-armv7m.c
- @@ -29,6 +29,7 @@
- #include <bsp/clock-armv7m.h>
-
- #include <rtems.h>
- +#include <rtems/record.h>
- #include <rtems/sysinit.h>
-
- #ifdef ARM_MULTILIB_ARCH_V7M
- @@ -45,9 +46,11 @@ static uint32_t _ARMV7M_TC_get_timecount(struct timecounter *base)
-
- void _ARMV7M_Clock_handler(void)
- {
- + rtems_record_produce(RTEMS_RECORD_INTERRUPT_ENTRY, ARMV7M_VECTOR_SYSTICK);
- _ARMV7M_Interrupt_service_enter();
- Clock_isr(NULL);
- _ARMV7M_Interrupt_service_leave();
- + rtems_record_produce(RTEMS_RECORD_INTERRUPT_EXIT, ARMV7M_VECTOR_SYSTICK);
- }
-
- static void _ARMV7M_Clock_handler_install(void)
- diff --git a/bsps/include/bsp/irq-generic.h b/bsps/include/bsp/irq-generic.h
- index 31835d07ba..2ab2f78b65 100644
- --- a/bsps/include/bsp/irq-generic.h
- +++ b/bsps/include/bsp/irq-generic.h
- @@ -30,6 +30,7 @@
- #include <stdbool.h>
-
- #include <rtems/irq-extension.h>
- +#include <rtems/record.h>
- #include <rtems/score/assert.h>
-
- #ifdef RTEMS_SMP
- @@ -258,6 +259,7 @@ void bsp_interrupt_vector_disable(rtems_vector_number vector);
- */
- static inline void bsp_interrupt_handler_dispatch(rtems_vector_number vector)
- {
- + rtems_record_produce(RTEMS_RECORD_INTERRUPT_ENTRY, vector);
- if (bsp_interrupt_is_valid_vector(vector)) {
- const bsp_interrupt_handler_entry *e =
- &bsp_interrupt_handler_table [bsp_interrupt_handler_index(vector)];
- @@ -276,6 +278,7 @@ static inline void bsp_interrupt_handler_dispatch(rtems_vector_number vector)
- } else {
- bsp_interrupt_handler_default(vector);
- }
- + rtems_record_produce(RTEMS_RECORD_INTERRUPT_EXIT, vector);
- }
-
- /**
-
Transfer of Event Records to the Host Computer
----------------------------------------------
diff --git a/user/tracing/examples.rst b/user/tracing/examples.rst
index d0bef0b..ed0c722 100644
--- a/user/tracing/examples.rst
+++ b/user/tracing/examples.rst
@@ -48,20 +48,20 @@ BSP is configured with the following command -
.. code-block:: none
- ../rtems/configure --target=sparc-rtems5 --prefix=/development/rtems/5 \
+ ../rtems/configure --target=sparc-rtems@rtems-ver-major@ --prefix=/development/rtems/5 \
--enable-networking --enable-tests --enable-rtemsbsp=erc32 --enable-cxx
The next two commands are used to link the fileio executable.The `-B` option
signifies the use of the complete path to the required directory or file. Write
-the full path instead of the path file: `sparc-rtems5/erc32/lib/` in the
+the full path instead of the path file: `sparc-rtems@rtems-ver-major@/erc32/lib/` in the
following commands according to your installation. Also confirm the path of the
fileio's executable and object files in the last line of the command according
to your installation.
.. code-block:: none
- sparc-rtems5-gcc -Bsparc-rtems5/erc32/lib/ \
- -specs bsp_specs -qrtems -mcpu=cypress -O2 -g -ffunction-sections \
+ sparc-rtems@rtems-ver-major@-gcc -Bsparc-rtems@rtems-ver-major@/erc32/lib/ \
+ -qrtems -mcpu=cypress -O2 -g -ffunction-sections \
-fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration \
-Wstrict-prototypes -Wnested-externs -Wl,--gc-sections -mcpu=cypress \
-o sparc-rtems5/c/erc32/testsuites/samples/fileio.exe sparc-rtems5/c/erc32/\
@@ -75,7 +75,7 @@ the wrapper c file.
.. code-block:: none
rtems-tld -C fileio-trace.ini -W fileio-wrapper -- -Bsparc-rtems5/erc32/lib/ \
- -specs bsp_specs -qrtems -mcpu=cypress -O2 -g -ffunction-sections \
+ -qrtems -mcpu=cypress -O2 -g -ffunction-sections \
-fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration \
-Wstrict-prototypes -Wnested-externs -Wl,--gc-sections -mcpu=cypress \
-o sparc-rtems5/c/erc32/testsuites/samples/fileio.exe sparc-rtems5/c/erc32/\
@@ -97,10 +97,10 @@ The output from the above commands will be as follows:
.. code-block:: none
*** BEGIN OF TEST FILE I/O ***
- *** TEST VERSION: 5.0.0.de9b7d712bf5da6593386fd4fbca0d5f8b8431d8
+ *** TEST VERSION: @rtems-ver-major@.@rtems-ver-minor@.0.de9b7d712bf5da6593386fd4fbca0d5f8b8431d8
*** TEST STATE: USER_INPUT
*** TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API
- *** TEST TOOLS: 7.3.0 20180125 (RTEMS 5, RSB a3a6c34c150a357e57769a26a460c475e188438f, Newlib 3.0.0)
+ *** TEST TOOLS: 7.3.0 20180125 (RTEMS @rtems-ver-major@, RSB a3a6c34c150a357e57769a26a460c475e188438f, Newlib 3.0.0)
Press any key to start file I/O sample (20s remaining)
Press any key to start file I/O sample (19s remaining)
Press any key to start file I/O sample (18s remaining)
@@ -128,7 +128,7 @@ The output from the above commands will be as follows:
starting shell
=========================
- Welcome to rtems-5.0.0 (SPARC/w/FPU/erc32)
+ Welcome to rtems-@rtems-ver-major@.@rtems-ver-minor@.0 (SPARC/w/FPU/erc32)
COPYRIGHT (c) 1989-2008.
On-Line Applications Research Corporation (OAR).