bsps/raspberrypi: Change firmware version, add SPI & I2C support

This commit is contained in:
pranav 2021-08-16 15:57:53 +05:30 committed by Joel Sherrill
parent efb8e7c6c3
commit bd4dedc192

View File

@ -5,8 +5,9 @@
raspberrypi raspberrypi
=========== ===========
This BSP supports `Raspberry Pi 1` and `Raspberry Pi 2` currently. The 'raspberrypi' BSP supports the single core models (Zero, Zero W, A+, B+),
The support for `Raspberry Pi 3` is work under progress. and the 'raspberrypi2' BSP supports the Raspberry Pi 2, Raspberry Pi 3 A+, and Raspberry Pi 3.
The Raspberry Pi 4 is not supported currently.
The default bootloader on the Raspberry Pi which is used to boot Raspbian The default bootloader on the Raspberry Pi which is used to boot Raspbian
or other OS can be also used to boot RTEMS. U-boot can also be used. or other OS can be also used to boot RTEMS. U-boot can also be used.
@ -19,10 +20,12 @@ The bootloader looks for a kernel image, by default the kernel images must
have a name of the form ``kernel*.img`` but this can be changed by adding have a name of the form ``kernel*.img`` but this can be changed by adding
`kernel=<img_name>` to ``config.txt``. `kernel=<img_name>` to ``config.txt``.
You must provide the required files for the GPU to proceed. These files You must provide the required firmware files on the SD card for the GPU to proceed,
and thereby to boot RTEMS.
The BSP currently boots up with an older version of the official firmware. These files
can be downloaded from can be downloaded from
`the Raspberry Pi Firmware Repository <https://github.com/raspberrypi/firmware/tree/master/boot>`_. `the Raspberry Pi Firmware Repository <https://github.com/raspberrypi/firmware/tree/1.20200601/boot>`_.
You can remove the ``kernel*.img`` files if you want too, but don't touch You can remove the ``kernel*.img`` files if you want to, but don't touch
the other files. the other files.
Copy these files in to a SD card with FAT filesystem. Copy these files in to a SD card with FAT filesystem.
@ -46,10 +49,46 @@ Make sure you have these lines below, in your ``config.txt``.
.. code-block:: none .. code-block:: none
enable_uart=1 dtoverlay=disable-bt
kernel_address=0x200000 kernel_address=0x200000
kernel=kernel.img kernel=kernel.img
SPI Driver
------------
SPI drivers are registered by the ``rpi_spi_init(bool bidirectional_mode)`` function.
.. code-block:: none
#include <assert.h>
#include <bsp.h>
void spi_init(void)
{
int rv;
rv = rpi_spi_init(false);
assert(rv == 0);
}
I2C Driver
------------
I2C drivers are registered by the ``rpi_setup_i2c_bus()`` function.
.. code-block:: none
#include <assert.h>
#include <bsp.h>
void i2c_init(void)
{
int rv;
rv = rpi_setup_i2c_bus();
assert(rv == 0);
}
Testing using QEMU Testing using QEMU
------------------ ------------------