potential GSOC project: Improve the Raspberry Pi BSP

Gedare Bloom gedare at rtems.org
Thu Mar 20 13:58:10 UTC 2014


Andre and Alan,
I would be interested in seeing something like...
rtems_spi_initialize(&spi_handle)
rtems_spi_write(&spi_handle, data)
rtems_spi_read(&spi_handle, &data)
rtems_spi_ioctl(&spi_handle, &spi_control)
or something similar, where spi can be replaced with i2c,  gpio, 1-wire, etc.

Something more generic might even work, like
rtems_bus_initialize(BUS_TYPE_SPI, &bus_handle, ...)
rtems_bus_write(&bus_handle, data)
etc.

This interface should "cover" the cpukit/libi2c, and be implemented in
RPi as an example. then, any BSP that implements this interface can
support the applications that use it.
-Gedare

On Thu, Mar 20, 2014 at 5:36 AM, Andre Marques
<andre.lousa.marques at gmail.com> wrote:
> On 03/20/14 02:21, Alan Cudmore wrote:
>
> Interesting idea.
> Part of this may be done:
> GPIO : Can start with Pierre's implementation
> i2c: Isn't there a libi2c already?
> SPI: ?
>
>
> cpukit/libi2c also deals with SPI.
>
> It is also implemented on the FreeBSD port to RPi
>
> https://github.com/freebsd/freebsd/blob/master/sys/arm/broadcom/bcm2835/bcm2835_spi.c
>
> and more info can be found at
>
> http://elinux.org/RPi_SPI
>
>
> SD card: ? There should be at least one example to follow in the ARM tree.
>
> Framebuffer: I think this is well defined.
>
>
> Alan
>
>
>
> On Wed, Mar 19, 2014 at 7:59 PM, Gedare Bloom <gedare at rtems.org> wrote:
>>
>> On Wed, Mar 19, 2014 at 7:04 PM, Joel Sherrill
>> <joel.sherrill at oarcorp.com> wrote:
>> >
>> > On 3/19/2014 4:18 PM, Pierre Ficheux wrote:
>> >> Hi Alan,
>> >>
>> >> ----- Mail original -----
>> >>> De: "Alan Cudmore" <alan.cudmore at gmail.com>
>> >>> À: "Pierre Ficheux" <pierre.ficheux at openwide.fr>
>> >>> Cc: "Andre Marques" <andre.lousa.marques at gmail.com>,
>> >>> rtems-users at rtems.org
>> >>> Envoyé: Mercredi 19 Mars 2014 22:10:50
>> >>> Objet: Re: potential GSOC project: Improve the Raspberry Pi BSP
>> >>>
>> >>>
>> >>> Hi Pierre,
>> >>> We hope to use your GPIO implementation for this project. Any
>> >>> problems with incorporating it into the BSP?
>> >> No problem at all.
>> >>
>> >>>
>> >>> For the USB and MMC support, the u-boot code would be nice, but it is
>> >>> GPL and not compatible with the RTEMS libraries. But it could serve
>> >>> as a reference.
>> >> I'm not aware of RTEMS licensing issue :) I know it's GPL with linking
>> >> exception but what's the problem with "libraries" ?
>> > Ultimately, everything is statically linked together. So the license of
>> > a library
>> > could virally impact the license of all users.
>> >
>> > Ideally this support would be part of the BSP.
>> >
>> > There is a proposed API and simple driver model for analogs and discrete
>> > IO
>> > in RTEMS git in another git module. It includes some shell commands to
>> > assist
>> > in debugging and playing with IO settings.
>> Would adding "generic" RTEMS interfaces for GPIO, i2c, SPI, and SD
>> card with example implementations in Raspberry Pi be feasible and
>> interesting?
>>
>> -Gedare
>>
>> >>>
>> >>> Also, I am not sure how to approach the USB and network
>> >>> implementation. For example, we could probably get the Ethernet to
>> >>> work, and the USB code would just be "a bunch of files" in the
>> >>> ethernet driver directory. But I think the right way would be to use
>> >>> the FreeBSD library support of the USB and Ethernet devices. I just
>> >>> don't know how to do that :)
>> >> I do agree. I talked about U-Boot for MMC support though it includes
>> >> USB support too.
>> > If this were in the new BSD USB/TCP/IP code, it should be
>> > straightforward to
>> > support both USB and TCP/IP.
>> >> regards
>> >>>
>> >>> Alan
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> On Wed, Mar 19, 2014 at 4:33 PM, Pierre Ficheux <
>> >>> pierre.ficheux at openwide.fr > wrote:
>> >>>
>> >>>
>> >>> USB should be interesting too on RPi because of Ethernet support ;)
>> >>>
>> >>> Regarding SD card you should take a look at U-Boot for RPi which
>> >>> includes MMC support in drivers/mmc. U-Boot includes USB support for
>> >>> RPi too in drivers/usb.
>> >>>
>> >>> https://github.com/gonzoua/u-boot-pi
>> >>>
>> >>> regards
>> >>>
>> >>> ----- Mail original -----
>> >>>> De: "Andre Marques" < andre.lousa.marques at gmail.com >
>> >>>> À: "Alan Cudmore" < alan.cudmore at gmail.com >
>> >>>> Cc: rtems-users at rtems.org
>> >>>> Envoyé: Mercredi 19 Mars 2014 20:59:56
>> >>>> Objet: Re: potential GSOC project: Improve the Raspberry Pi BSP
>> >>>
>> >>>>
>> >>>>
>> >>>> Hello Alan,
>> >>>>
>> >>>> I have decided to go with the framebuffer instead of the USB
>> >>>> support.
>> >>>> Will update the proposal with this.
>> >>>>
>> >>>> Before GSOC I am considering to look at the SD card access through
>> >>>> the onboard card reader. What do you think?
>> >>>>
>> >>>> --André Marques.
>> >>>>
>> >>>> On 03/19/14 00:56, Alan Cudmore wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>> Hi André ,
>> >>>> I agree about the USB stack. I am not even sure about how to
>> >>>> integrate a driver that depends on the FreeBSD USB stack.
>> >>>>
>> >>>>
>> >>>> The GPIO driver from Pierre is the one I was referring to. I don't
>> >>>> think anyone ever made a decision on how to integrate the GPIO
>> >>>> driver. If we have macros in the BSP header files then the GPIO can
>> >>>> be programmed with the simple macros or the driver that Pierre
>> >>>> wrote. If the project decides to use the GPIO device model for
>> >>>> other
>> >>>> BSPs, then the generic driver code can be moved to a shared
>> >>>> directory at a later date.
>> >>>>
>> >>>>
>> >>>> Thanks for the update,
>> >>>>
>> >>>>
>> >>>> Alan
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> On Tue, Mar 18, 2014 at 11:04 AM, Andre Marques <
>> >>>> andre.lousa.marques at gmail.com > wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> Hello,
>> >>>>
>> >>>> about the USB driver port from FreeBSD I am finding it difficult to
>> >>>> gauge how much work it would involve, so I will follow your
>> >>>> suggestion and look at something else.
>> >>>>
>> >>>> As for GPIO I belive the work that has been done is this:
>> >>>>
>> >>>>
>> >>>> https://github.com/pficheux/raspberry_pi/tree/master/RTEMS/gpio_driver
>> >>>>
>> >>>> Am I right?
>> >>>>
>> >>>> I also found a discussion on the best way of implementing the
>> >>>> driver
>> >>>>
>> >>>> http://www.rtems.org/pipermail/rtems-users/2013-October/012059.html
>> >>>>
>> >>>> but i am not sure if that came to a decision.
>> >>>>
>> >>>> Meanwhile I will update the proposal with some basic info on the
>> >>>> drivers.
>> >>>>
>> >>>> --André Marques.
>> >>>>
>> >>>>
>> >>>>
>> >>>> On 03/14/14 13:16, Andre Marques wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> Hello,
>> >>>>
>> >>>> On 03/14/14 02:33, Alan Cudmore wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>> Andre,
>> >>>> I think your project proposal looks good, but I wonder if including
>> >>>> USB support is too much. There are low level "bare metal" USB
>> >>>> examples out there for the Raspberry Pi, and that may serve as a
>> >>>> starting point, but I think a real USB implementation will use the
>> >>>> BSD library that has been ported to RTEMS. It may be possible,
>> >>>> since
>> >>>> there is a FreeBSD port to the Raspberry Pi. Maybe others can help
>> >>>> here.
>> >>>>
>> >>>>
>> >>>> I will take a look into this.
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> If you think that GPIO, SPI, and I2C are not enough, then you could
>> >>>> always look at the framebuffer or SD card access.
>> >>>>
>> >>>>
>> >>>> Yes, right now I am trying to clarify everything the best I can so
>> >>>> I
>> >>>> don't end up with a lot more (or less) work than I can handle.
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> Finally, it may be necessary to have an Raspberry Pi and a few
>> >>>> peripherals. For example, I have an inexpensive I2C compass module
>> >>>> that I use with linux, and I have a breadboard wired up with LEDs
>> >>>> to
>> >>>> test GPIO.
>> >>>>
>> >>>>
>> >>>> Right now I have access to a Raspberry Pi at the university, not
>> >>>> sure
>> >>>> about the peripherals though. Anyway, if this projects really goes
>> >>>> forward I will get myself a raspberry and peripherals (I have
>> >>>> already some other components, like a breadboard, leds, wire, etc).
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> Thanks,
>> >>>> Alan
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> On Thu, Mar 13, 2014 at 8:32 PM, Alan Cudmore <
>> >>>> alan.cudmore at gmail.com > wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>> I'm glad there is interest in this project. Andre, I will read your
>> >>>> proposal and provide feedback.
>> >>>> Joel, I was on the melange site and the system recognizes my
>> >>>> account.
>> >>>> Do I need to do anything to be a mentor for RTEMS?
>> >>>> Alan
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> On Thu, Mar 13, 2014 at 7:31 PM, Andre Marques <
>> >>>> andre.lousa.marques at gmail.com > wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> It is now on melange too.
>> >>>>
>> >>>> --André Marques.
>> >>>>
>> >>>>
>> >>>>
>> >>>> On 03/13/14 23:21, Hesham Moustafa wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> Hi Andre,
>> >>>>
>> >>>>
>> >>>> I quote from RTEMS SoC page :
>> >>>>
>> >>>> "GSOC STUDENTS! PLEASE FILL IN THE APPLICATION AT
>> >>>> http://www.google-melange.com ! YOU CAN EDIT UNTIL THE DEADLINE!
>> >>>> BUT
>> >>>
>> >>>> YOU WILL NOT GET A SLOT IF YOU DO NOT APPLY THROUGH Google!!!"
>> >>>>
>> >>>>
>> >>>> Regards,
>> >>>> Hesham
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> On Fri, Mar 14, 2014 at 1:16 AM, Andre Marques <
>> >>>> andre.lousa.marques at gmail.com > wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> Hello,
>> >>>>
>> >>>> I just posted the first proposal draft for "Raspberry Pi BSP
>> >>>> Peripherals " in the RTEMS Wiki
>> >>>>
>> >>>> http://wiki.rtems.org/wiki/index.php/RTEMSSummerOfCode
>> >>>>
>> >>>> Any feedback is more than welcome. Should I post it already in
>> >>>> melange too?
>> >>>>
>> >>>> --André Marques.
>> >>>>
>> >>>>
>> >>>>
>> >>>> On 03/13/14 15:26, Joel Sherrill wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> On 3/13/2014 9:46 AM, Andre Marques wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>> Hello,
>> >>>>
>> >>>> I would be very interested in working in this project because I'm
>> >>>> currently trying to work with Raspberry Pi and RTEMS for my
>> >>>> undergraduate thesis, so this could be a great followup to that for
>> >>>> the summer.
>> >>>>
>> >>>> I will need to do some reseach on it before making a proposal (the
>> >>>> time is also gettting shorter), but will post a proposal draft very
>> >>>> soon.
>> >>>>
>> >>>> This would be a great area to work. As Alan says, the list is
>> >>>> likely
>> >>>> too much for
>> >>>> one student, so it seems likely that the work could be divided for
>> >>>> two students
>> >>>> working on different parts.
>> >>>>
>> >>>> For the Pi Master list, I would like to add the Geert board. That
>> >>>> looks like something
>> >>>> of interest to RTEMS folks.
>> >>>>
>> >>>> --joel
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> --André Marques.
>> >>>>
>> >>>> On 03/13/14 11:23, Alan Cudmore wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>> ( I posted this to the rtems-devel list by mistake, my apologies
>> >>>> for
>> >>>> the duplicate message )
>> >>>>
>> >>>>
>> >>>>
>> >>>> f there are still potential GSOC students out there looking for a
>> >>>> project, I would like to offer a potential project to work on:
>> >>>> Improving the Raspberry Pi BSP. I would be happy to mentor a
>> >>>> student
>> >>>> for this project. Below is my description for the task.
>> >>>>
>> >>>>
>> >>>> Thanks,
>> >>>> Alan
>> >>>>
>> >>>>
>> >>>> One of the RTEMS Open Projects is to contribute a BSP or Board
>> >>>> Support Package for readily available boards. The Raspberry Pi is
>> >>>> probably the most available board at $25 and $35 USD, and there
>> >>>> have
>> >>>> been over two million of these boards sold. The RTEMS head (4.11)
>> >>>> currently has a basic BSP for the Raspberry Pi, supporting the CPU,
>> >>>> a single UART, and timer. It is enough to run some basic RTEMS
>> >>>> programs, but expanding the BSP to support peripherals will make it
>> >>>> much more useful.
>> >>>> For this project, the GSOC student could improve the peripheral
>> >>>> support for the Raspberry Pi BSP.
>> >>>> The peripherals we need to support (in order of increasing
>> >>>> difficulty) include:
>> >>>> 1. GPIO (This has been done by one user, but is not integrated)
>> >>>> 2. I2C Bus
>> >>>> 3. SPI Bus
>> >>>> 4. Secure Digital card read and write support (using the SPI bus)
>> >>>> 5. Graphics / RTEMS Framebuffer Support (I have a graphics demo
>> >>>> working in an RTEMS task)
>> >>>> 6. USB Device support
>> >>>> 7. HDMI/Graphics console (Requires framebuffer support and USB or
>> >>>> GPIO connected keyboard device)
>> >>>> 8. Ethernet network support (Requires USB support)
>> >>>> The entire list is probably too much for a single student to
>> >>>> accomplish, so we can adjust the list of work according to what is
>> >>>> possible.
>> >>>>
>> >>>>
>> >>>> It may also be a good idea to add support for both models of the
>> >>>> Raspberry Pi (256MB and 512MB) and be able to configure the memory
>> >>>> map in the BSP to match the boot time split between the CPU and GPU
>> >>>> memory.
>> >>>>
>> >>>>
>> >>>> Finally, in order to do some of this coding, it may be necessary to
>> >>>> come up with a more efficient way to load and debug code on the
>> >>>> Raspberry Pi. Options include using U-boot or connecting a JTAG
>> >>>> debug device to load code.
>> >>>>
>> >>>>
>> >>>>
>> >>>> _______________________________________________
>> >>>> rtems-users mailing list rtems-users at rtems.org
>> >>>> http://www.rtems.org/mailman/listinfo/rtems-users
>> >>>>
>> >>>> --
>> >>>> Joel Sherrill, Ph.D. Director of Research & Development
>> >>>> joel.sherrill at OARcorp.com On-Line Applications Research
>> >>>> Ask me about RTEMS: a free RTOS Huntsville AL 35805
>> >>>> Support Available (256) 722-9985
>> >>>>
>> >>>> _______________________________________________
>> >>>> rtems-users mailing list
>> >>>> rtems-users at rtems.org
>> >>>> http://www.rtems.org/mailman/listinfo/rtems-users
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> _______________________________________________
>> >>>> rtems-users mailing list
>> >>>> rtems-users at rtems.org
>> >>>> http://www.rtems.org/mailman/listinfo/rtems-users
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> _______________________________________________
>> >>>> rtems-users mailing list
>> >>>> rtems-users at rtems.org
>> >>>> http://www.rtems.org/mailman/listinfo/rtems-users
>> >>>>
>> >>> --
>> >>> Pierre FICHEUX -/- CTO OW/OWI, France -\- pierre.ficheux at openwide.fr
>> >>> http://ingenierie.openwide.fr
>> >>> http://www.linuxembedded.fr
>> >>> I would love to change the world, but they won't give me the source
>> >>> code
>> >>>
>> >>>
>> >> --
>> >> Pierre FICHEUX -/- CTO OW/OWI, France -\- pierre.ficheux at openwide.fr
>> >>                                          http://ingenierie.openwide.fr
>> >>                                          http://www.linuxembedded.fr
>> >> I would love to change the world, but they won't give me the source
>> >> code
>> >>
>> >> _______________________________________________
>> >> rtems-users mailing list
>> >> rtems-users at rtems.org
>> >> http://www.rtems.org/mailman/listinfo/rtems-users
>> >
>> > --
>> > Joel Sherrill, Ph.D.             Director of Research & Development
>> > joel.sherrill at OARcorp.com        On-Line Applications Research
>> > Ask me about RTEMS: a free RTOS  Huntsville AL 35805
>> > Support Available                (256) 722-9985
>> >
>> > _______________________________________________
>> > rtems-users mailing list
>> > rtems-users at rtems.org
>> > http://www.rtems.org/mailman/listinfo/rtems-users
>
>
>
>
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users
>
>




More information about the users mailing list