source: rtems-docs/user/bsps/bsps-arm.rst @ 924b9ef

5
Last change on this file since 924b9ef was 924b9ef, checked in by Sebastian Huber <sebastian.huber@…>, on 02/18/19 at 08:16:28

user: Add product name

  • Property mode set to 100644
File size: 6.8 KB
RevLine 
[e52906b]1.. SPDX-License-Identifier: CC-BY-SA-4.0
[4886d60]2
[9f24b6e]3.. Copyright (C) 2017, 2019 embedded brains GmbH
4.. Copyright (C) 2017, 2019 Sebastian Huber
[8e3de16]5
6arm (ARM)
7*********
8
[924b9ef]9altera-cyclone-v (Intel Cyclone V)
10==================================
[05d066a]11
[9f24b6e]12This BSP offers only one variant, the `altcycv_devkit`.  This variant supports
13the Intel Cyclone V system on chip.  The basic hardware initialization is not
14performed by the BSP.  A boot loader with device tree support must be used to
15start the BSP, e.g. U-Boot.
16
17The BSP is known to run on these boards:
18
19* `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>`_
20
21* `Enclustra Mars MA3 SoC Module <https://www.enclustra.com/en/products/system-on-chip-modules/mars-ma3/>`_
22
23* `Terasic DE10-Standard Development Kit <https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=165&No=1081>`_
24
25Boot via U-Boot
26---------------
27
28The application executable file (ELF file) must be converted to an U-Boot
29image.  Use the following commands:
30
31::
32
33    arm-rtems5-objcopy -O binary app.exe app.bin
34    gzip -9 -f -c app.bin > app.bin.gz
35    mkimage -A arm -O linux -T kernel -a 0x00300000 -e 0x00300000 -n RTEMS -d app.bin.gz app.img
36
37Use the following U-Boot commands to boot an application via TFTP download:
38
39::
40
41    tftpboot ${loadaddr} app.img && run loadfdt && bootm ${loadaddr} - ${fdt_addr} ; reset
42
43Clock Driver
44------------
45
46The clock driver uses the `Cortex-A9 MPCore Global Timer`.
47
48Console Driver
49--------------
50
51The console driver supports up to two on-chip NS16550 UARTs.  The console
52driver does not configure the pins.
53
54I2C Driver
55----------
56
57There is a legacy I2C driver.  It should be converted to the I2C driver framework.
58
59Network Interface Driver
60------------------------
61
62The network interface driver is provided by the `libbsd`.  It is initialized
63according to the device tree.  It supports checksum offload.
64
65MMC/SDCard Driver
66-----------------
67
68The MMC/SDCard driver is provided by the `libbsd`.  It is
69initialized according to the device tree.  Pin re-configuration according to
70the serial clock frequency is not supported.  DMA transfers are supported.
71
72USB Host Driver
73---------------
74
75The USB host driver is provided by the `libbsd`.  It is initialized according
76to the device tree.  The driver works in polled mode.
77
78Caveats
79-------
80
81The clock and pin configuration support is quite rudimentary and mostly relies
82on the boot loader.
[05d066a]83
84atsam
85=====
86
87TODO.
88
89beagle
90======
91
92TODO.
93
94csb336
95======
96
97TODO.
98
99csb337
100======
101
102TODO.
103
104edb7312
105=======
106
107TODO.
108
109gdbarmsim
110=========
111
112TODO.
113
114gumstix
115=======
116
117TODO.
118
119imx (NXP i.MX)
120==============
[8e3de16]121
122This BSP offers only one variant, the `imx7`.  This variant supports the i.MX
1237Dual processor.  The basic hardware initialization is not performed by the
124BSP.  A boot loader with device tree support must be used to start the BSP,
125e.g. U-Boot.
126
127Build Configuration Options
128---------------------------
129
130The following options are available at the configure command line.
131
132``BSP_PRESS_KEY_FOR_RESET``
133    If defined to a non-zero value, then print a message and wait until pressed
134    before resetting board when application terminates.
135
136``BSP_RESET_BOARD_AT_EXIT``
137    If defined to a non-zero value, then reset the board when the application
138    terminates.
139
140``BSP_PRINT_EXCEPTION_CONTEXT``
141    If defined to a non-zero value, then print the exception context when an
142    unexpected exception occurs.
143
144``BSP_FDT_BLOB_SIZE_MAX``
145    The maximum size of the device tree blob in bytes (default is 262144).
146
147``CONSOLE_USE_INTERRUPTS``
148    Use interrupt driven mode for console devices (enabled by default).
149
150``IMX_CCM_IPG_HZ``
151   The IPG clock frequency in Hz (default is 67500000).
152
153``IMX_CCM_UART_HZ``
154   The UART clock frequency in Hz (default is 24000000).
155
156``IMX_CCM_AHB_HZ``
157   The AHB clock frequency in Hz (default is 135000000).
158
159Boot via U-Boot
160---------------
161
162The application executable file (ELF file) must be converted to an U-Boot
163image.  Use the following commands:
164
165::
166
167    arm-rtems5-objcopy -O binary app.exe app.bin
168    gzip -9 -f -c app.bin > app.bin.gz
169    mkimage -A arm -O linux -T kernel -a 0x80200000 -e 0x80200000 -n RTEMS -d app.bin.gz app.img
170
171Use the following U-Boot commands to boot an application via TFTP download:
172
173::
174
175    tftpboot ${loadaddr} app.img && run loadfdt && bootm ${loadaddr} - ${fdt_addr} ; reset
176
177Clock Driver
178------------
179
180The clock driver uses the `ARMv7-AR Generic Timer`.
181
182Console Driver
183--------------
184
185The console driver supports up to seven on-chip UARTs.  They are initialized
186according to the device tree.  The console driver does not configure the pins.
187
188I2C Driver
189----------
190
191I2C drivers are registered by the ``i2c_bus_register_imx()`` function.  The I2C
192driver does not configure the pins.
193
194.. code-block:: c
195
196    #include <assert.h>
197    #include <bsp.h>
198
199    void i2c_init(void)
200    {
201      int rv;
202
203      rv = i2c_bus_register_imx("/dev/i2c-0", "i2c0");
204      assert(rv == 0);
205    }
206
207SPI Driver
208----------
209
210SPI drivers are registered by the ``spi_bus_register_imx()`` function.  The SPI
211driver configures the pins according to the ``pinctrl-0`` device tree property.
212SPI transfers with a continuous chip select are limited by the FIFO size of 64
213bytes.  The driver has no DMA support.
214
215.. code-block:: c
216
217    #include <assert.h>
218    #include <bsp.h>
219
220    void spi_init(void)
221    {
222      int rv;
223
224      rv =  spi_bus_register_imx("/dev/spi-0", "spi0");
225      assert(rv == 0);
226    }
227
228Network Interface Driver
229------------------------
230
231The network interface driver is provided by the `libbsd`.  It is initialized
232according to the device tree.  It supports checksum offload and interrupt
233coalescing.  IPv6 transmit checksum offload is not implemented.  The interrupt
234coalescing uses the MII/GMII clocks and can be controlled by the following
235system controls:
236
237 * ``dev.ffec.<unit>.int_coal.rx_time``
238 * ``dev.ffec.<unit>.int_coal.rx_count``
239 * ``dev.ffec.<unit>.int_coal.tx_time``
240 * ``dev.ffec.<unit>.int_coal.tx_count``
241
242A value of zero for the time or count disables the interrupt coalescing in the
243corresponding direction.
244
[bd25da8]245MMC/SDCard Driver
246-----------------
247
248The MMC/SDCard driver (uSDHC module) is provided by the `libbsd`.  It is
249initialized according to the device tree.  Pin re-configuration according to
250the serial clock frequency is not supported.  Data transfers are extremely
251slow.  This is probably due to the missing DMA support.
252
[8e3de16]253Caveats
254-------
255
256The clock and pin configuration support is quite rudimentary and mostly relies
257on the boot loader.  For a pin group configuration see
258``imx_iomux_configure_pins()``.  There is no power management support.
[05d066a]259
260lm3s69xx
261========
262
263TODO.
264
265lpc176x
266=======
267
268TODO.
269
270lpc24xx
271=======
272
273TODO.
274
275lpc32xx
276=======
277
278TODO.
279
280raspberrypi
281===========
282
283TODO.
284
285realview-pbx-a9
286===============
287
288TODO.
289
290rtl22xx
291=======
292
293TODO.
294
295smdk2410
296========
297
298TODO.
299
300stm32f4
301=======
302
303TODO.
304
305tms570
306======
307
308TODO.
309
310xilinx-zynq
311===========
312
313TODO.
Note: See TracBrowser for help on using the repository browser.