mirror of
https://git.rtems.org/rtems-docs/
synced 2025-07-24 02:42:08 +08:00
user: Split the ARM BSPs source into separate files.
This commit is contained in:
parent
a1d63745d9
commit
248c7089b9
83
user/bsps/arm/altera-cyclone-v.rst
Normal file
83
user/bsps/arm/altera-cyclone-v.rst
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2017, 2019 embedded brains GmbH
|
||||||
|
.. Copyright (C) 2017, 2019 Sebastian Huber
|
||||||
|
|
||||||
|
altera-cyclone-v (Intel Cyclone V)
|
||||||
|
==================================
|
||||||
|
|
||||||
|
This BSP offers only one variant, the `altcycv_devkit`. This variant supports
|
||||||
|
the Intel Cyclone V system on chip. 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. U-Boot.
|
||||||
|
|
||||||
|
The BSP is known to run on these boards:
|
||||||
|
|
||||||
|
* `Cyclone V SoC Development Kit <https://www.intel.com/content/www/us/en/programmable/products/boards_and_kits/dev-kits/altera/kit-cyclone-v-soc.html>`_
|
||||||
|
|
||||||
|
* `Enclustra Mars MA3 SoC Module <https://www.enclustra.com/en/products/system-on-chip-modules/mars-ma3/>`_
|
||||||
|
|
||||||
|
* `Terasic DE10-Standard Development Kit <https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=165&No=1081>`_
|
||||||
|
|
||||||
|
Boot via U-Boot
|
||||||
|
---------------
|
||||||
|
|
||||||
|
The application executable file (ELF file) must be converted to an U-Boot
|
||||||
|
image. Use the following commands:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
arm-rtems5-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
|
||||||
|
|
||||||
|
Use the following U-Boot commands to boot an application via TFTP download:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
tftpboot ${loadaddr} app.img && run loadfdt && bootm ${loadaddr} - ${fdt_addr} ; reset
|
||||||
|
|
||||||
|
The ``loadfdt`` command may be not defined in your U-Boot environment. Just
|
||||||
|
replace it with the appropriate commands to load the device tree at
|
||||||
|
``${fdt_addr}``.
|
||||||
|
|
||||||
|
Clock Driver
|
||||||
|
------------
|
||||||
|
|
||||||
|
The clock driver uses the `Cortex-A9 MPCore Global Timer`.
|
||||||
|
|
||||||
|
Console Driver
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The console driver supports up to two on-chip NS16550 UARTs. The console
|
||||||
|
driver does not configure the pins.
|
||||||
|
|
||||||
|
I2C Driver
|
||||||
|
----------
|
||||||
|
|
||||||
|
There is a legacy I2C driver. It should be converted to the I2C driver framework.
|
||||||
|
|
||||||
|
Network Interface Driver
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
The network interface driver is provided by the `libbsd`. It is initialized
|
||||||
|
according to the device tree. It supports checksum offload.
|
||||||
|
|
||||||
|
MMC/SDCard Driver
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
The MMC/SDCard driver is provided by the `libbsd`. It is
|
||||||
|
initialized according to the device tree. Pin re-configuration according to
|
||||||
|
the serial clock frequency is not supported. DMA transfers are supported.
|
||||||
|
|
||||||
|
USB Host Driver
|
||||||
|
---------------
|
||||||
|
|
||||||
|
The USB host driver is provided by the `libbsd`. It is initialized according
|
||||||
|
to the device tree. The driver works in polled mode.
|
||||||
|
|
||||||
|
Caveats
|
||||||
|
-------
|
||||||
|
|
||||||
|
The clock and pin configuration support is quite rudimentary and mostly relies
|
||||||
|
on the boot loader.
|
8
user/bsps/arm/atsam.rst
Normal file
8
user/bsps/arm/atsam.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
atsam
|
||||||
|
=====
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/beagle.rst
Normal file
8
user/bsps/arm/beagle.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
beagle
|
||||||
|
======
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/bsp-csb337.rst
Normal file
8
user/bsps/arm/bsp-csb337.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
csb337
|
||||||
|
======
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/bsp-stm32f4.rst
Normal file
8
user/bsps/arm/bsp-stm32f4.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
stm32f4
|
||||||
|
=======
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/csb336.rst
Normal file
8
user/bsps/arm/csb336.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
csb336
|
||||||
|
======
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/edb7312.rst
Normal file
8
user/bsps/arm/edb7312.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
edb7312
|
||||||
|
=======
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/gdbarmsim.rst
Normal file
8
user/bsps/arm/gdbarmsim.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
gdbarmsim
|
||||||
|
=========
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/gumstix.rst
Normal file
8
user/bsps/arm/gumstix.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
gumstix
|
||||||
|
=======
|
||||||
|
|
||||||
|
TODO.
|
149
user/bsps/arm/imx.rst
Normal file
149
user/bsps/arm/imx.rst
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2017, 2019 embedded brains GmbH
|
||||||
|
.. Copyright (C) 2017, 2019 Sebastian Huber
|
||||||
|
|
||||||
|
imx (NXP i.MX)
|
||||||
|
==============
|
||||||
|
|
||||||
|
This BSP offers only one variant, the `imx7`. This variant supports the i.MX
|
||||||
|
7Dual processor. 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. U-Boot.
|
||||||
|
|
||||||
|
Build Configuration Options
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
The following options are available at the configure command line.
|
||||||
|
|
||||||
|
``BSP_PRESS_KEY_FOR_RESET``
|
||||||
|
If defined to a non-zero value, then print a message and wait until pressed
|
||||||
|
before resetting board when application terminates.
|
||||||
|
|
||||||
|
``BSP_RESET_BOARD_AT_EXIT``
|
||||||
|
If defined to a non-zero value, then reset the board when the application
|
||||||
|
terminates.
|
||||||
|
|
||||||
|
``BSP_PRINT_EXCEPTION_CONTEXT``
|
||||||
|
If defined to a non-zero value, then print the exception context when an
|
||||||
|
unexpected exception occurs.
|
||||||
|
|
||||||
|
``BSP_FDT_BLOB_SIZE_MAX``
|
||||||
|
The maximum size of the device tree blob in bytes (default is 262144).
|
||||||
|
|
||||||
|
``CONSOLE_USE_INTERRUPTS``
|
||||||
|
Use interrupt driven mode for console devices (enabled by default).
|
||||||
|
|
||||||
|
``IMX_CCM_IPG_HZ``
|
||||||
|
The IPG clock frequency in Hz (default is 67500000).
|
||||||
|
|
||||||
|
``IMX_CCM_UART_HZ``
|
||||||
|
The UART clock frequency in Hz (default is 24000000).
|
||||||
|
|
||||||
|
``IMX_CCM_AHB_HZ``
|
||||||
|
The AHB clock frequency in Hz (default is 135000000).
|
||||||
|
|
||||||
|
Boot via U-Boot
|
||||||
|
---------------
|
||||||
|
|
||||||
|
The application executable file (ELF file) must be converted to an U-Boot
|
||||||
|
image. Use the following commands:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
arm-rtems5-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
|
||||||
|
|
||||||
|
Use the following U-Boot commands to boot an application via TFTP download:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
tftpboot ${loadaddr} app.img && run loadfdt && bootm ${loadaddr} - ${fdt_addr} ; reset
|
||||||
|
|
||||||
|
The ``loadfdt`` command may be not defined in your U-Boot environment. Just
|
||||||
|
replace it with the appropriate commands to load the device tree at
|
||||||
|
``${fdt_addr}``.
|
||||||
|
|
||||||
|
Clock Driver
|
||||||
|
------------
|
||||||
|
|
||||||
|
The clock driver uses the `ARMv7-AR Generic Timer`.
|
||||||
|
|
||||||
|
Console Driver
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The console driver supports up to seven on-chip UARTs. They are initialized
|
||||||
|
according to the device tree. The console driver does not configure the pins.
|
||||||
|
|
||||||
|
I2C Driver
|
||||||
|
----------
|
||||||
|
|
||||||
|
I2C drivers are registered by the ``i2c_bus_register_imx()`` function. The I2C
|
||||||
|
driver does not configure the pins.
|
||||||
|
|
||||||
|
.. code-block:: c
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <bsp.h>
|
||||||
|
|
||||||
|
void i2c_init(void)
|
||||||
|
{
|
||||||
|
int rv;
|
||||||
|
|
||||||
|
rv = i2c_bus_register_imx("/dev/i2c-0", "i2c0");
|
||||||
|
assert(rv == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
SPI Driver
|
||||||
|
----------
|
||||||
|
|
||||||
|
SPI drivers are registered by the ``spi_bus_register_imx()`` function. The SPI
|
||||||
|
driver configures the pins according to the ``pinctrl-0`` device tree property.
|
||||||
|
SPI transfers with a continuous chip select are limited by the FIFO size of 64
|
||||||
|
bytes. The driver has no DMA support.
|
||||||
|
|
||||||
|
.. code-block:: c
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <bsp.h>
|
||||||
|
|
||||||
|
void spi_init(void)
|
||||||
|
{
|
||||||
|
int rv;
|
||||||
|
|
||||||
|
rv = spi_bus_register_imx("/dev/spi-0", "spi0");
|
||||||
|
assert(rv == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
Network Interface Driver
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
The network interface driver is provided by the `libbsd`. It is initialized
|
||||||
|
according to the device tree. It supports checksum offload and interrupt
|
||||||
|
coalescing. IPv6 transmit checksum offload is not implemented. The interrupt
|
||||||
|
coalescing uses the MII/GMII clocks and can be controlled by the following
|
||||||
|
system controls:
|
||||||
|
|
||||||
|
* ``dev.ffec.<unit>.int_coal.rx_time``
|
||||||
|
* ``dev.ffec.<unit>.int_coal.rx_count``
|
||||||
|
* ``dev.ffec.<unit>.int_coal.tx_time``
|
||||||
|
* ``dev.ffec.<unit>.int_coal.tx_count``
|
||||||
|
|
||||||
|
A value of zero for the time or count disables the interrupt coalescing in the
|
||||||
|
corresponding direction.
|
||||||
|
|
||||||
|
MMC/SDCard Driver
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
The MMC/SDCard driver (uSDHC module) is provided by the `libbsd`. It is
|
||||||
|
initialized according to the device tree. Pin re-configuration according to
|
||||||
|
the serial clock frequency is not supported. Data transfers are extremely
|
||||||
|
slow. This is probably due to the missing DMA support.
|
||||||
|
|
||||||
|
Caveats
|
||||||
|
-------
|
||||||
|
|
||||||
|
The clock and pin configuration support is quite rudimentary and mostly relies
|
||||||
|
on the boot loader. For a pin group configuration see
|
||||||
|
``imx_iomux_configure_pins()``. There is no power management support.
|
8
user/bsps/arm/lm3s69xx.rst
Normal file
8
user/bsps/arm/lm3s69xx.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
lm3s69xx
|
||||||
|
========
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/lpc176x.rst
Normal file
8
user/bsps/arm/lpc176x.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
lpc176x
|
||||||
|
=======
|
||||||
|
|
||||||
|
TODO.
|
78
user/bsps/arm/lpc24xx.rst
Normal file
78
user/bsps/arm/lpc24xx.rst
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2017, 2019 embedded brains GmbH
|
||||||
|
.. Copyright (C) 2017, 2019 Sebastian Huber
|
||||||
|
|
||||||
|
lpc24xx (NXP LPC17XX/LPC24XX/LPC40XX)
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
This BSP offers only several variants. The following variants support the
|
||||||
|
`Embedded Artits LPC4088 Developer's Kit <https://www.embeddedartists.com/products/lpc4088-developers-kit/>`_
|
||||||
|
and earlier board generations:
|
||||||
|
|
||||||
|
* lpc17xx_ea_ram
|
||||||
|
|
||||||
|
* lpc17xx_ea_rom_int
|
||||||
|
|
||||||
|
* lpc24xx_ea
|
||||||
|
|
||||||
|
* lpc40xx_ea_ram
|
||||||
|
|
||||||
|
* lpc40xx_ea_rom_int
|
||||||
|
|
||||||
|
They can be used as a base line for customization. The basic hardware
|
||||||
|
initialization is performed by the BSP. It can be customized via configuration
|
||||||
|
options and configuration tables. See also
|
||||||
|
`<bsp/start-config.h> <https://git.rtems.org/rtems/tree/bsps/arm/lpc24xx/include/bsp/start-config.h>`_.
|
||||||
|
|
||||||
|
Clock Driver
|
||||||
|
------------
|
||||||
|
|
||||||
|
The clock driver of the Cortex-M variants uses the `ARMv7-M Systick`. The
|
||||||
|
older ARM7TDMI variants use the `TMR0` timer module.
|
||||||
|
|
||||||
|
Console Driver
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The console driver supports up to four on-chip UARTs. Initialization can be
|
||||||
|
customized via the ``lpc24xx_uart_probe_1()``, ``lpc24xx_uart_probe_2()`` and
|
||||||
|
``lpc24xx_uart_probe_3()`` functions.
|
||||||
|
|
||||||
|
I2C Bus Driver
|
||||||
|
--------------
|
||||||
|
|
||||||
|
I2C bus drivers are registered by the ``lpc24xx_register_i2c_0()``,
|
||||||
|
``lpc24xx_register_i2c_1()`` and ``lpc24xx_register_i2c_2()`` functions. The
|
||||||
|
I2C driver does not configure the pins. See also
|
||||||
|
`<bsp/i2c.h> <https://git.rtems.org/rtems/tree/bsps/arm/lpc24xx/include/bsp/i2c.h>`_.
|
||||||
|
|
||||||
|
SPI Bus Driver
|
||||||
|
--------------
|
||||||
|
|
||||||
|
SPI bus drivers are registered by the ``lpc24xx_register_ssp_0()``,
|
||||||
|
``lpc24xx_register_ssp_1()`` and ``lpc24xx_register_ssp_2()`` functions. The
|
||||||
|
SSP driver does not configure the pins. See also
|
||||||
|
`<bsp/ssp.h> <https://git.rtems.org/rtems/tree/bsps/arm/lpc24xx/include/bsp/ssp.h>`_.
|
||||||
|
|
||||||
|
Network Interface Driver
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Only a legacy network driver is support. For a `libbsd` base driver the
|
||||||
|
platform support is missing, see
|
||||||
|
`if_lpe.c <https://git.rtems.org/rtems-libbsd/tree/rtemsbsd/sys/arm/lpc/if_lpe.c>`_.
|
||||||
|
|
||||||
|
USB Driver
|
||||||
|
----------
|
||||||
|
|
||||||
|
The USB host driver (OHCI) is provided by the `libbsd`.
|
||||||
|
|
||||||
|
Framebuffer Driver
|
||||||
|
------------------
|
||||||
|
|
||||||
|
For a custom framebuffer driver see
|
||||||
|
`<bsp/lcd.h> <https://git.rtems.org/rtems/tree/bsps/arm/lpc24xx/include/bsp/lcd.h>`_.
|
||||||
|
|
||||||
|
RTC Driver
|
||||||
|
----------
|
||||||
|
|
||||||
|
There is a standard RTC driver available using the on-chip RTC module.
|
8
user/bsps/arm/raspberrypi.rst
Normal file
8
user/bsps/arm/raspberrypi.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
raspberrypi
|
||||||
|
===========
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/realview-pbx-a9.rst
Normal file
8
user/bsps/arm/realview-pbx-a9.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
realview-pbx-a9
|
||||||
|
===============
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/rtl22xx.rst
Normal file
8
user/bsps/arm/rtl22xx.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
rtl22xx
|
||||||
|
=======
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/smdk2410.rst
Normal file
8
user/bsps/arm/smdk2410.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
smdk2410
|
||||||
|
========
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/tms570.rst
Normal file
8
user/bsps/arm/tms570.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
tms570
|
||||||
|
======
|
||||||
|
|
||||||
|
TODO.
|
8
user/bsps/arm/xilinx-zynq.rst
Normal file
8
user/bsps/arm/xilinx-zynq.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
|
.. Copyright (C) 2019 TBD
|
||||||
|
|
||||||
|
xilinx-zynq
|
||||||
|
===========
|
||||||
|
|
||||||
|
TODO.
|
@ -6,385 +6,23 @@
|
|||||||
arm (ARM)
|
arm (ARM)
|
||||||
*********
|
*********
|
||||||
|
|
||||||
altera-cyclone-v (Intel Cyclone V)
|
.. include:: arm/altera-cyclone-v.rst
|
||||||
==================================
|
.. include:: arm/atsam.rst
|
||||||
|
.. include:: arm/beagle.rst
|
||||||
This BSP offers only one variant, the `altcycv_devkit`. This variant supports
|
.. include:: arm/csb336.rst
|
||||||
the Intel Cyclone V system on chip. The basic hardware initialization is not
|
.. include:: arm/csb337.rst
|
||||||
performed by the BSP. A boot loader with device tree support must be used to
|
.. include:: arm/edb7312.rst
|
||||||
start the BSP, e.g. U-Boot.
|
.. include:: arm/gdbarmsim.rst
|
||||||
|
.. include:: arm/gumstix.rst
|
||||||
The BSP is known to run on these boards:
|
.. include:: arm/imx.rst
|
||||||
|
.. include:: arm/lm3s69xx.rst
|
||||||
* `Cyclone V SoC Development Kit <https://www.intel.com/content/www/us/en/programmable/products/boards_and_kits/dev-kits/altera/kit-cyclone-v-soc.html>`_
|
.. include:: arm/lpc176x.rst
|
||||||
|
.. include:: arm/imx.rst
|
||||||
* `Enclustra Mars MA3 SoC Module <https://www.enclustra.com/en/products/system-on-chip-modules/mars-ma3/>`_
|
.. include:: arm/lpc32xx.rst
|
||||||
|
.. include:: arm/raspberrypi.rst
|
||||||
* `Terasic DE10-Standard Development Kit <https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=165&No=1081>`_
|
.. include:: arm/realview-pbx-a9.rst
|
||||||
|
.. include:: arm/rtl22xx.rst
|
||||||
Boot via U-Boot
|
.. include:: arm/smdk2410.rst
|
||||||
---------------
|
.. include:: arm/stm32f4.rst
|
||||||
|
.. include:: arm/tms570.rst
|
||||||
The application executable file (ELF file) must be converted to an U-Boot
|
.. include:: arm/xilinx-zynq.rst
|
||||||
image. Use the following commands:
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
arm-rtems5-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
|
|
||||||
|
|
||||||
Use the following U-Boot commands to boot an application via TFTP download:
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
tftpboot ${loadaddr} app.img && run loadfdt && bootm ${loadaddr} - ${fdt_addr} ; reset
|
|
||||||
|
|
||||||
The ``loadfdt`` command may be not defined in your U-Boot environment. Just
|
|
||||||
replace it with the appropriate commands to load the device tree at
|
|
||||||
``${fdt_addr}``.
|
|
||||||
|
|
||||||
Clock Driver
|
|
||||||
------------
|
|
||||||
|
|
||||||
The clock driver uses the `Cortex-A9 MPCore Global Timer`.
|
|
||||||
|
|
||||||
Console Driver
|
|
||||||
--------------
|
|
||||||
|
|
||||||
The console driver supports up to two on-chip NS16550 UARTs. The console
|
|
||||||
driver does not configure the pins.
|
|
||||||
|
|
||||||
I2C Driver
|
|
||||||
----------
|
|
||||||
|
|
||||||
There is a legacy I2C driver. It should be converted to the I2C driver framework.
|
|
||||||
|
|
||||||
Network Interface Driver
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
The network interface driver is provided by the `libbsd`. It is initialized
|
|
||||||
according to the device tree. It supports checksum offload.
|
|
||||||
|
|
||||||
MMC/SDCard Driver
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
The MMC/SDCard driver is provided by the `libbsd`. It is
|
|
||||||
initialized according to the device tree. Pin re-configuration according to
|
|
||||||
the serial clock frequency is not supported. DMA transfers are supported.
|
|
||||||
|
|
||||||
USB Host Driver
|
|
||||||
---------------
|
|
||||||
|
|
||||||
The USB host driver is provided by the `libbsd`. It is initialized according
|
|
||||||
to the device tree. The driver works in polled mode.
|
|
||||||
|
|
||||||
Caveats
|
|
||||||
-------
|
|
||||||
|
|
||||||
The clock and pin configuration support is quite rudimentary and mostly relies
|
|
||||||
on the boot loader.
|
|
||||||
|
|
||||||
atsam
|
|
||||||
=====
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
beagle
|
|
||||||
======
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
csb336
|
|
||||||
======
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
csb337
|
|
||||||
======
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
edb7312
|
|
||||||
=======
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
gdbarmsim
|
|
||||||
=========
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
gumstix
|
|
||||||
=======
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
imx (NXP i.MX)
|
|
||||||
==============
|
|
||||||
|
|
||||||
This BSP offers only one variant, the `imx7`. This variant supports the i.MX
|
|
||||||
7Dual processor. 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. U-Boot.
|
|
||||||
|
|
||||||
Build Configuration Options
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
The following options are available at the configure command line.
|
|
||||||
|
|
||||||
``BSP_PRESS_KEY_FOR_RESET``
|
|
||||||
If defined to a non-zero value, then print a message and wait until pressed
|
|
||||||
before resetting board when application terminates.
|
|
||||||
|
|
||||||
``BSP_RESET_BOARD_AT_EXIT``
|
|
||||||
If defined to a non-zero value, then reset the board when the application
|
|
||||||
terminates.
|
|
||||||
|
|
||||||
``BSP_PRINT_EXCEPTION_CONTEXT``
|
|
||||||
If defined to a non-zero value, then print the exception context when an
|
|
||||||
unexpected exception occurs.
|
|
||||||
|
|
||||||
``BSP_FDT_BLOB_SIZE_MAX``
|
|
||||||
The maximum size of the device tree blob in bytes (default is 262144).
|
|
||||||
|
|
||||||
``CONSOLE_USE_INTERRUPTS``
|
|
||||||
Use interrupt driven mode for console devices (enabled by default).
|
|
||||||
|
|
||||||
``IMX_CCM_IPG_HZ``
|
|
||||||
The IPG clock frequency in Hz (default is 67500000).
|
|
||||||
|
|
||||||
``IMX_CCM_UART_HZ``
|
|
||||||
The UART clock frequency in Hz (default is 24000000).
|
|
||||||
|
|
||||||
``IMX_CCM_AHB_HZ``
|
|
||||||
The AHB clock frequency in Hz (default is 135000000).
|
|
||||||
|
|
||||||
Boot via U-Boot
|
|
||||||
---------------
|
|
||||||
|
|
||||||
The application executable file (ELF file) must be converted to an U-Boot
|
|
||||||
image. Use the following commands:
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
arm-rtems5-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
|
|
||||||
|
|
||||||
Use the following U-Boot commands to boot an application via TFTP download:
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
tftpboot ${loadaddr} app.img && run loadfdt && bootm ${loadaddr} - ${fdt_addr} ; reset
|
|
||||||
|
|
||||||
The ``loadfdt`` command may be not defined in your U-Boot environment. Just
|
|
||||||
replace it with the appropriate commands to load the device tree at
|
|
||||||
``${fdt_addr}``.
|
|
||||||
|
|
||||||
Clock Driver
|
|
||||||
------------
|
|
||||||
|
|
||||||
The clock driver uses the `ARMv7-AR Generic Timer`.
|
|
||||||
|
|
||||||
Console Driver
|
|
||||||
--------------
|
|
||||||
|
|
||||||
The console driver supports up to seven on-chip UARTs. They are initialized
|
|
||||||
according to the device tree. The console driver does not configure the pins.
|
|
||||||
|
|
||||||
I2C Driver
|
|
||||||
----------
|
|
||||||
|
|
||||||
I2C drivers are registered by the ``i2c_bus_register_imx()`` function. The I2C
|
|
||||||
driver does not configure the pins.
|
|
||||||
|
|
||||||
.. code-block:: c
|
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#include <bsp.h>
|
|
||||||
|
|
||||||
void i2c_init(void)
|
|
||||||
{
|
|
||||||
int rv;
|
|
||||||
|
|
||||||
rv = i2c_bus_register_imx("/dev/i2c-0", "i2c0");
|
|
||||||
assert(rv == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
SPI Driver
|
|
||||||
----------
|
|
||||||
|
|
||||||
SPI drivers are registered by the ``spi_bus_register_imx()`` function. The SPI
|
|
||||||
driver configures the pins according to the ``pinctrl-0`` device tree property.
|
|
||||||
SPI transfers with a continuous chip select are limited by the FIFO size of 64
|
|
||||||
bytes. The driver has no DMA support.
|
|
||||||
|
|
||||||
.. code-block:: c
|
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#include <bsp.h>
|
|
||||||
|
|
||||||
void spi_init(void)
|
|
||||||
{
|
|
||||||
int rv;
|
|
||||||
|
|
||||||
rv = spi_bus_register_imx("/dev/spi-0", "spi0");
|
|
||||||
assert(rv == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
Network Interface Driver
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
The network interface driver is provided by the `libbsd`. It is initialized
|
|
||||||
according to the device tree. It supports checksum offload and interrupt
|
|
||||||
coalescing. IPv6 transmit checksum offload is not implemented. The interrupt
|
|
||||||
coalescing uses the MII/GMII clocks and can be controlled by the following
|
|
||||||
system controls:
|
|
||||||
|
|
||||||
* ``dev.ffec.<unit>.int_coal.rx_time``
|
|
||||||
* ``dev.ffec.<unit>.int_coal.rx_count``
|
|
||||||
* ``dev.ffec.<unit>.int_coal.tx_time``
|
|
||||||
* ``dev.ffec.<unit>.int_coal.tx_count``
|
|
||||||
|
|
||||||
A value of zero for the time or count disables the interrupt coalescing in the
|
|
||||||
corresponding direction.
|
|
||||||
|
|
||||||
MMC/SDCard Driver
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
The MMC/SDCard driver (uSDHC module) is provided by the `libbsd`. It is
|
|
||||||
initialized according to the device tree. Pin re-configuration according to
|
|
||||||
the serial clock frequency is not supported. Data transfers are extremely
|
|
||||||
slow. This is probably due to the missing DMA support.
|
|
||||||
|
|
||||||
Caveats
|
|
||||||
-------
|
|
||||||
|
|
||||||
The clock and pin configuration support is quite rudimentary and mostly relies
|
|
||||||
on the boot loader. For a pin group configuration see
|
|
||||||
``imx_iomux_configure_pins()``. There is no power management support.
|
|
||||||
|
|
||||||
lm3s69xx
|
|
||||||
========
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
lpc176x
|
|
||||||
=======
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
lpc24xx (NXP LPC17XX/LPC24XX/LPC40XX)
|
|
||||||
=====================================
|
|
||||||
|
|
||||||
This BSP offers only several variants. The following variants support the
|
|
||||||
`Embedded Artits LPC4088 Developer's Kit <https://www.embeddedartists.com/products/lpc4088-developers-kit/>`_
|
|
||||||
and earlier board generations:
|
|
||||||
|
|
||||||
* lpc17xx_ea_ram
|
|
||||||
|
|
||||||
* lpc17xx_ea_rom_int
|
|
||||||
|
|
||||||
* lpc24xx_ea
|
|
||||||
|
|
||||||
* lpc40xx_ea_ram
|
|
||||||
|
|
||||||
* lpc40xx_ea_rom_int
|
|
||||||
|
|
||||||
They can be used as a base line for customization. The basic hardware
|
|
||||||
initialization is performed by the BSP. It can be customized via configuration
|
|
||||||
options and configuration tables. See also
|
|
||||||
`<bsp/start-config.h> <https://git.rtems.org/rtems/tree/bsps/arm/lpc24xx/include/bsp/start-config.h>`_.
|
|
||||||
|
|
||||||
Clock Driver
|
|
||||||
------------
|
|
||||||
|
|
||||||
The clock driver of the Cortex-M variants uses the `ARMv7-M Systick`. The
|
|
||||||
older ARM7TDMI variants use the `TMR0` timer module.
|
|
||||||
|
|
||||||
Console Driver
|
|
||||||
--------------
|
|
||||||
|
|
||||||
The console driver supports up to four on-chip UARTs. Initialization can be
|
|
||||||
customized via the ``lpc24xx_uart_probe_1()``, ``lpc24xx_uart_probe_2()`` and
|
|
||||||
``lpc24xx_uart_probe_3()`` functions.
|
|
||||||
|
|
||||||
I2C Bus Driver
|
|
||||||
--------------
|
|
||||||
|
|
||||||
I2C bus drivers are registered by the ``lpc24xx_register_i2c_0()``,
|
|
||||||
``lpc24xx_register_i2c_1()`` and ``lpc24xx_register_i2c_2()`` functions. The
|
|
||||||
I2C driver does not configure the pins. See also
|
|
||||||
`<bsp/i2c.h> <https://git.rtems.org/rtems/tree/bsps/arm/lpc24xx/include/bsp/i2c.h>`_.
|
|
||||||
|
|
||||||
SPI Bus Driver
|
|
||||||
--------------
|
|
||||||
|
|
||||||
SPI bus drivers are registered by the ``lpc24xx_register_ssp_0()``,
|
|
||||||
``lpc24xx_register_ssp_1()`` and ``lpc24xx_register_ssp_2()`` functions. The
|
|
||||||
SSP driver does not configure the pins. See also
|
|
||||||
`<bsp/ssp.h> <https://git.rtems.org/rtems/tree/bsps/arm/lpc24xx/include/bsp/ssp.h>`_.
|
|
||||||
|
|
||||||
Network Interface Driver
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Only a legacy network driver is support. For a `libbsd` base driver the
|
|
||||||
platform support is missing, see
|
|
||||||
`if_lpe.c <https://git.rtems.org/rtems-libbsd/tree/rtemsbsd/sys/arm/lpc/if_lpe.c>`_.
|
|
||||||
|
|
||||||
USB Driver
|
|
||||||
----------
|
|
||||||
|
|
||||||
The USB host driver (OHCI) is provided by the `libbsd`.
|
|
||||||
|
|
||||||
Framebuffer Driver
|
|
||||||
------------------
|
|
||||||
|
|
||||||
For a custom framebuffer driver see
|
|
||||||
`<bsp/lcd.h> <https://git.rtems.org/rtems/tree/bsps/arm/lpc24xx/include/bsp/lcd.h>`_.
|
|
||||||
|
|
||||||
RTC Driver
|
|
||||||
----------
|
|
||||||
|
|
||||||
There is a standard RTC driver available using the on-chip RTC module.
|
|
||||||
|
|
||||||
lpc32xx
|
|
||||||
=======
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
raspberrypi
|
|
||||||
===========
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
realview-pbx-a9
|
|
||||||
===============
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
rtl22xx
|
|
||||||
=======
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
smdk2410
|
|
||||||
========
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
stm32f4
|
|
||||||
=======
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
tms570
|
|
||||||
======
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
xilinx-zynq
|
|
||||||
===========
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user