Adding a Beagleboard BSP to RTEMS -- Drivers? General Feedback?

Hi Everyone,

My name is Jim Switzer, and I’m a 4th year Undergraduate at Olin College of Engineering in Needham Massachusetts.

This summer I would like to create an RTEMS board support package for the Beagleboard (for GSoC).
This would enable RTEMS (a free real-time operating system (and fellow GSoC participant)) to run on the beagle-board, enabling it, or variants, to be used to control real-time systems.

A board support package (BSP) is a collection of boot parameters, and some basic drivers built into the OS that enable the operating system to run in a on a set of hardware, and load additional drivers.

I’m getting started on my project a bit late in the game (only found out about this whole GSoC thing about a week ago), but I’ll have a proposal in with the rest by Friday.

Broadly, what I’d be doing is:

*Finding critical drivers and rewriting them to work with RTEMS on bootup.
*Tweaking the RTEMS boot parameters to match any tricky issues with the OMAP/beagleboard.
*Adding ‘non-critical’ drivers to RTEMS that can be loaded after bootup, such as network, usb, maybe the dvi.

RTEMS has a few BSPs already out there for other ARM boards, which is where I’ll probably start:
These two look the most complete, and run on the skyeye.org ARM system simulator:
http://wiki.rtems.org/wiki/index.php/Edb7312
http://wiki.rtems.org/wiki/index.php/Smdk2410

These are for the following two boards (respectively) :
http://www.cirrus.com/en/products/pro/detail/P139.html
http://www.armkits.com/Product/s3ceb2410.asp?gclid=CMX13rXs8qACFQ2dnAodayzpGw

I have one question for you: Where would be the best place to find drivers for the devices on the beagleboard?

What sort of OSs have they been written for? (linux, BSD?) (I think RTEMS is BSD-like, but I need to do some more research)

Also, advice and feedback on where I seem to be going with my project would be nice. Is this something that you think would be valuable to the beagle-board community? My main contact so far has been Joel Sherrill (Maintainer of RTEMS). Is anyone with beagleboard driver experience interested in mentoring me on this? (Joel or another RTEMS community member would co-mentor me, and I’ll be submitting my application to both RTEMS and BeagleBoard).

Thanks,
-Jim

Hi Jim,

A board support package (BSP) is a collection of boot parameters, and some
basic drivers built into the OS that enable the operating system to run in a
on a set of hardware, and load additional drivers.

(this may seem obvious to everyone else but i finally know what that
TLA means :wink:

I'm getting started on my project a bit late in the game (only found out
about this whole GSoC thing about a week ago), but I'll have a proposal in
with the rest by Friday.

Broadly, what I'd be doing is:

*Finding critical drivers and rewriting them to work with RTEMS on bootup.
*Tweaking the RTEMS boot parameters to match any tricky issues with the
OMAP/beagleboard.
*Adding 'non-critical' drivers to RTEMS that can be loaded after bootup,
such as network, usb, maybe the dvi.

Sounds broadly about right.

I have one question for you: Where would be the best place to find drivers
for the devices on the beagleboard?

What sort of OSs have they been written for? (linux, BSD?) (I think RTEMS
is BSD-like, but I need to do some more research)

Well that is really part of your application ;-). Both to come up
with the ideas and show that you're able to find solutions -
particularly in light of all the various licensing issues. Obviously
ensure it is acceptable to RTEMS.

But ... to aid you on that path since asking questions on lists in one
way to do it ... AFAIK most of the beagle-specific stuff is done in
Linux, and mostly GPL2 only, which may not may not be friendly to
RTEMS (i thought it was bsd too, but the main license page says gpl2
or later). IMHO the abstractions used within linux used to support a
myriad of devices makes it quite difficult to use as a reference, but
YMMV. Bootloaders have some basic drivers too which may be easier to
navigate.

You probably have just enough time to go do some research, at least
enough to demonstrate you're capable.

Also, advice and feedback on where I seem to be going with my project would
be nice. Is this something that you think would be valuable to the
beagle-board community? My main contact so far has been Joel Sherrill
(Maintainer of RTEMS). Is anyone with beagleboard driver experience
interested in mentoring me on this? (Joel or another RTEMS community member
would co-mentor me, and I'll be submitting my application to both RTEMS and
BeagleBoard).

Sounds interesting to me, although for me it is 100% hobby and have
had no experience with RTEMS. (not sure how the hardware thing goes
if you're accepted via RTEMS too).

I guess the main thing is convincing everyone you're able to do the
work. And setting realistic goals that can be achieved in the time
allotted. Since RTEMS already supports ARM you'll hopefully be able
to focus on the OMAP specific stuff (but arm is a big family, so even
basics like the interrupt controller might be different). I guess
you'll be tight for time but just flesh out the broad strokes above
based on what you can find out. Although it shouldn't be a priority
(all other things considered), `management features' like video or
sound are always nice.

Being able to demonstrate a working dev environment is important.
e.g. at least getting a version of rtems running in a simulator or
emulator (the RTEMS guys probably have such a requirement anyway).

Can't think of much else. Good luck.

Michael