[PATCH] user/bsps: Add beagle BSP

Christian Mauderer list at c-mauderer.de
Sun Jun 9 14:29:04 UTC 2019


On 09/06/2019 15:58, Vijay Kumar Banerjee wrote:
> ---
>  user/bsps/bsps-arm.rst | 68 +++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 67 insertions(+), 1 deletion(-)
> 
> diff --git a/user/bsps/bsps-arm.rst b/user/bsps/bsps-arm.rst
> index eb972c6..290a6fc 100644
> --- a/user/bsps/bsps-arm.rst
> +++ b/user/bsps/bsps-arm.rst
> @@ -93,7 +93,73 @@ 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://github.com/RobertCNelson/device-tree-rebasing>`_
> +repository.

I think that one is a fork maintained by only one person. Maybe a hint
to the Linux tree or some better maintained repo would be better. For
example I found a devicetree-rebasing repo on the official kernel.org
page which looks quite up to date:

https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git/tree/

> +
> +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 `i2c-0`, a wrapper function is provided,
> +``bbb_register_i2c_0()`` and this will be used generally.

There are also bbb_register_i2c_1 and ..._2.

> +
> +SPI Driver
> +----------
> +
> +The SPI device `/dev/spi-0` can be registered with ``bbb_register_spi_0()```
>  
>  csb336
>  ======
> 




More information about the devel mailing list