[PATCH v2] user/bsps: Add beagle BSP

Christian Mauderer list at c-mauderer.de
Mon Jun 10 15:38:04 UTC 2019


On 10/06/2019 14:53, Vijay Kumar Banerjee wrote:
> 
> 
> On Mon, Jun 10, 2019, 6:13 PM Christian Mauderer <list at c-mauderer.de
> <mailto:list at c-mauderer.de>> wrote:
> 
>     On 09/06/2019 16:57, Vijay Kumar Banerjee wrote:
>     > ---
>     >  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/>`_
> 
>     Sorry that I have to nag about that again. I know I suggested that tree.
>     But it seems that there is a problem with it: If I build the tree from
>     that source, neither SD nor your I2C overlay driver works. I haven't had
>     a look at it yet what has been changed.
> 
> 
> I looked into that repo and it seems like it doesn't work with overlay
> because the makefile doesn't use the -@ option in dtc
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git/tree/Makefile#n119

That's not the main problem. It seems that there have been some more
changes. For example the SD card isn't working any longer with the head
of that repo.

Most likely the best source for device tree files that should be used
together with libbsd are the ones from the matching FreeBSD commit.

> 
> 
>     So either we would have to suggest a (working) branch of that repo or we
>     should link to some other repo. Most likely the dts files from FreeBSD
>     would be best source to document for usage with libbsd.
> 
>     Please wait with sending a v3 for at least a day or two. Maybe someone
>     else has a good idea for a source.
> 
>     > +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
>     >  ======
>     >
> 




More information about the devel mailing list