From 248c7089b9787a6bf89205e58e618eaa4417eb42 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Fri, 14 Jun 2019 16:41:06 +1000 Subject: user: Split the ARM BSPs source into separate files. --- user/bsps/bsps-arm.rst | 402 +++---------------------------------------------- 1 file changed, 20 insertions(+), 382 deletions(-) (limited to 'user/bsps/bsps-arm.rst') diff --git a/user/bsps/bsps-arm.rst b/user/bsps/bsps-arm.rst index eb972c6..1260529 100644 --- a/user/bsps/bsps-arm.rst +++ b/user/bsps/bsps-arm.rst @@ -6,385 +6,23 @@ arm (ARM) ********* -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 `_ - -* `Enclustra Mars MA3 SoC Module `_ - -* `Terasic DE10-Standard Development Kit `_ - -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. - -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 - #include - - 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 - #include - - 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..int_coal.rx_time`` - * ``dev.ffec..int_coal.rx_count`` - * ``dev.ffec..int_coal.tx_time`` - * ``dev.ffec..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 `_ -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 -` `_. - -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 -` `_. - -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 -` `_. - -Network Interface Driver ------------------------- - -Only a legacy network driver is support. For a `libbsd` base driver the -platform support is missing, see -`if_lpe.c `_. - -USB Driver ----------- - -The USB host driver (OHCI) is provided by the `libbsd`. - -Framebuffer Driver ------------------- - -For a custom framebuffer driver see -` `_. - -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. +.. include:: arm/altera-cyclone-v.rst +.. include:: arm/atsam.rst +.. include:: arm/beagle.rst +.. include:: arm/csb336.rst +.. include:: arm/csb337.rst +.. include:: arm/edb7312.rst +.. include:: arm/gdbarmsim.rst +.. include:: arm/gumstix.rst +.. include:: arm/imx.rst +.. include:: arm/lm3s69xx.rst +.. include:: arm/lpc176x.rst +.. include:: arm/imx.rst +.. include:: arm/lpc32xx.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/tms570.rst +.. include:: arm/xilinx-zynq.rst -- cgit v1.2.3