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/arm/altera-cyclone-v.rst | 83 +++++++++++++++++++++ user/bsps/arm/atsam.rst | 8 ++ user/bsps/arm/beagle.rst | 8 ++ user/bsps/arm/bsp-csb337.rst | 8 ++ user/bsps/arm/bsp-stm32f4.rst | 8 ++ user/bsps/arm/csb336.rst | 8 ++ user/bsps/arm/edb7312.rst | 8 ++ user/bsps/arm/gdbarmsim.rst | 8 ++ user/bsps/arm/gumstix.rst | 8 ++ user/bsps/arm/imx.rst | 149 +++++++++++++++++++++++++++++++++++++ user/bsps/arm/lm3s69xx.rst | 8 ++ user/bsps/arm/lpc176x.rst | 8 ++ user/bsps/arm/lpc24xx.rst | 78 +++++++++++++++++++ user/bsps/arm/raspberrypi.rst | 8 ++ user/bsps/arm/realview-pbx-a9.rst | 8 ++ user/bsps/arm/rtl22xx.rst | 8 ++ user/bsps/arm/smdk2410.rst | 8 ++ user/bsps/arm/tms570.rst | 8 ++ user/bsps/arm/xilinx-zynq.rst | 8 ++ 19 files changed, 438 insertions(+) create mode 100644 user/bsps/arm/altera-cyclone-v.rst create mode 100644 user/bsps/arm/atsam.rst create mode 100644 user/bsps/arm/beagle.rst create mode 100644 user/bsps/arm/bsp-csb337.rst create mode 100644 user/bsps/arm/bsp-stm32f4.rst create mode 100644 user/bsps/arm/csb336.rst create mode 100644 user/bsps/arm/edb7312.rst create mode 100644 user/bsps/arm/gdbarmsim.rst create mode 100644 user/bsps/arm/gumstix.rst create mode 100644 user/bsps/arm/imx.rst create mode 100644 user/bsps/arm/lm3s69xx.rst create mode 100644 user/bsps/arm/lpc176x.rst create mode 100644 user/bsps/arm/lpc24xx.rst create mode 100644 user/bsps/arm/raspberrypi.rst create mode 100644 user/bsps/arm/realview-pbx-a9.rst create mode 100644 user/bsps/arm/rtl22xx.rst create mode 100644 user/bsps/arm/smdk2410.rst create mode 100644 user/bsps/arm/tms570.rst create mode 100644 user/bsps/arm/xilinx-zynq.rst (limited to 'user/bsps/arm') diff --git a/user/bsps/arm/altera-cyclone-v.rst b/user/bsps/arm/altera-cyclone-v.rst new file mode 100644 index 0000000..14c026c --- /dev/null +++ b/user/bsps/arm/altera-cyclone-v.rst @@ -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 `_ + +* `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. diff --git a/user/bsps/arm/atsam.rst b/user/bsps/arm/atsam.rst new file mode 100644 index 0000000..db65026 --- /dev/null +++ b/user/bsps/arm/atsam.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +atsam +===== + +TODO. diff --git a/user/bsps/arm/beagle.rst b/user/bsps/arm/beagle.rst new file mode 100644 index 0000000..a36efde --- /dev/null +++ b/user/bsps/arm/beagle.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +beagle +====== + +TODO. diff --git a/user/bsps/arm/bsp-csb337.rst b/user/bsps/arm/bsp-csb337.rst new file mode 100644 index 0000000..6f7d927 --- /dev/null +++ b/user/bsps/arm/bsp-csb337.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +csb337 +====== + +TODO. diff --git a/user/bsps/arm/bsp-stm32f4.rst b/user/bsps/arm/bsp-stm32f4.rst new file mode 100644 index 0000000..23e764e --- /dev/null +++ b/user/bsps/arm/bsp-stm32f4.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +stm32f4 +======= + +TODO. diff --git a/user/bsps/arm/csb336.rst b/user/bsps/arm/csb336.rst new file mode 100644 index 0000000..7894f45 --- /dev/null +++ b/user/bsps/arm/csb336.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +csb336 +====== + +TODO. diff --git a/user/bsps/arm/edb7312.rst b/user/bsps/arm/edb7312.rst new file mode 100644 index 0000000..8d91a34 --- /dev/null +++ b/user/bsps/arm/edb7312.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +edb7312 +======= + +TODO. diff --git a/user/bsps/arm/gdbarmsim.rst b/user/bsps/arm/gdbarmsim.rst new file mode 100644 index 0000000..26ea90c --- /dev/null +++ b/user/bsps/arm/gdbarmsim.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +gdbarmsim +========= + +TODO. diff --git a/user/bsps/arm/gumstix.rst b/user/bsps/arm/gumstix.rst new file mode 100644 index 0000000..6ab98ae --- /dev/null +++ b/user/bsps/arm/gumstix.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +gumstix +======= + +TODO. diff --git a/user/bsps/arm/imx.rst b/user/bsps/arm/imx.rst new file mode 100644 index 0000000..bc93ae3 --- /dev/null +++ b/user/bsps/arm/imx.rst @@ -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 + #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. diff --git a/user/bsps/arm/lm3s69xx.rst b/user/bsps/arm/lm3s69xx.rst new file mode 100644 index 0000000..15101ba --- /dev/null +++ b/user/bsps/arm/lm3s69xx.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +lm3s69xx +======== + +TODO. diff --git a/user/bsps/arm/lpc176x.rst b/user/bsps/arm/lpc176x.rst new file mode 100644 index 0000000..663fe4e --- /dev/null +++ b/user/bsps/arm/lpc176x.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +lpc176x +======= + +TODO. diff --git a/user/bsps/arm/lpc24xx.rst b/user/bsps/arm/lpc24xx.rst new file mode 100644 index 0000000..ecf1d84 --- /dev/null +++ b/user/bsps/arm/lpc24xx.rst @@ -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 `_ +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. diff --git a/user/bsps/arm/raspberrypi.rst b/user/bsps/arm/raspberrypi.rst new file mode 100644 index 0000000..4ef75bd --- /dev/null +++ b/user/bsps/arm/raspberrypi.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +raspberrypi +=========== + +TODO. diff --git a/user/bsps/arm/realview-pbx-a9.rst b/user/bsps/arm/realview-pbx-a9.rst new file mode 100644 index 0000000..96710a0 --- /dev/null +++ b/user/bsps/arm/realview-pbx-a9.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +realview-pbx-a9 +=============== + +TODO. diff --git a/user/bsps/arm/rtl22xx.rst b/user/bsps/arm/rtl22xx.rst new file mode 100644 index 0000000..74b3235 --- /dev/null +++ b/user/bsps/arm/rtl22xx.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +rtl22xx +======= + +TODO. diff --git a/user/bsps/arm/smdk2410.rst b/user/bsps/arm/smdk2410.rst new file mode 100644 index 0000000..ef3bbad --- /dev/null +++ b/user/bsps/arm/smdk2410.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +smdk2410 +======== + +TODO. diff --git a/user/bsps/arm/tms570.rst b/user/bsps/arm/tms570.rst new file mode 100644 index 0000000..593407a --- /dev/null +++ b/user/bsps/arm/tms570.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +tms570 +====== + +TODO. diff --git a/user/bsps/arm/xilinx-zynq.rst b/user/bsps/arm/xilinx-zynq.rst new file mode 100644 index 0000000..909b23e --- /dev/null +++ b/user/bsps/arm/xilinx-zynq.rst @@ -0,0 +1,8 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019 TBD + +xilinx-zynq +=========== + +TODO. -- cgit v1.2.3