[PATCH v2] user/bsps: Add beagle BSP

Vijay Kumar Banerjee vijaykumar9597 at gmail.com
Sun Jun 9 14:57:37 UTC 2019


---
 user/bsps/bsps-arm.rst | 69 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 68 insertions(+), 1 deletion(-)

diff --git a/user/bsps/bsps-arm.rst b/user/bsps/bsps-arm.rst
index eb972c6..e6826cd 100644
--- a/user/bsps/bsps-arm.rst
+++ b/user/bsps/bsps-arm.rst
@@ -93,7 +93,74 @@ TODO.
 beagle
 ======
 
-TODO.
+This BSP supports four variants, `beagleboardorig`, `beagleboardxm`, `beaglebonewhite`
+and `beagleboneblack`. 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.
+
+TODO(These drivers are present but not documented yet):
+* Clock driver.
+* Network Interface Driver.
+* SDcard driver.
+* GPIO Driver.
+* Console driver.
+* PWM Driver.
+* RTC driver.
+
+Boot via U-Boot
+---------------
+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 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
+
+Getting the Device Tree Blob
+----------------------------
+
+The Device Tree Blob(dtb) is needed to load the device tree while starting up
+the kernel. Currently the dtb is built using the linux `device-tree-rebasing
+<https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git/tree/>`_
+repository.
+
+Writing the uEnv.txt file
+-------------------------
+
+The uEnv.txt file is needed to set any environment variable before the kernel is
+loaded. Each line is a u-boot command that the uboot will execute during
+starting up.
+
+Add the following to a file named uEnv.txt:
+
+.. code-block:: none
+   setenv bootdelay 5
+   uenvcmd=run boot
+   boot=fatload mmc 0 0x80800000 rtems-app.img ; fatload mmc 0 0x88000000 am335x-boneblack.dtb ; bootm 0x80800000 - 0x88000000
+
+I2C Driver
+----------
+
+This BSP uses the I2C framework and is registered using
+``am335x_i2c_bus_register()`` the function prototype is given below:
+
+.. code-block:: C
+   int am335x_i2c_bus_register(
+   const char         *bus_path,
+   uintptr_t           register_base,
+   uint32_t            input_clock,
+   rtems_vector_number irq
+   );
+
+This function is needed only while registering with custom path with custom
+values. For registering the `/dev/i2c-0` device, a wrapper function is provided,
+``bbb_register_i2c_0()`` similarly ``bbb_register_i2c_1()`` and
+``bbb_register_i2c_2()`` are respectively used to register `i2c-1` and `i2c-2`.
+
+SPI Driver
+----------
+
+The SPI device `/dev/spi-0` can be registered with ``bbb_register_spi_0()```
 
 csb336
 ======
-- 
2.20.1



More information about the devel mailing list