Beagle: FDT support in BSP as a GSoC project?

Christian Mauderer list at c-mauderer.de
Sun Aug 11 15:59:40 UTC 2019


Hello,

while mentoring Vijays GSoC project this year I noted that some drivers
in the Beagle BSPs have quite horrible hard coded values for things like
pinmux initialization. Maybe it would be a nice GSoC project for next
year to replace this stuff with a fdt based initialization. I would like
to ask for feedback before creating a ticket for it because it would
mean a quite big change for the BSP (maybe even the name - see below).

Basically such a project would include the following parts:

- Parse the pinmux settings from FDT and create a two part driver for a
'pinctrl-single' compatible FDT entry. One part generic, one device
specific (similar to FreeBSD or Linux).

- Remove pinmux initialization from all drivers.

- Initialize drivers based on the FDT (instead of functions like
bbb_register_i2c_1(...))

- Taking a more detailed look at the FDT what else could be initialized
from it (maybe clocks?)

It could be a quite nice project for a RTEMS beginner. Due to the
distributed initialization a lot of drivers have to be touched (at least
i2c, spi and pwm). So a potential student would get a nice overview over
the parts.

Note that this would be a big change for the BSP. Currently the BSP can
be used without an FDT (as far as I know). Only libbsd needs one. After
that a FDT would be mandatory. Despite that, I think that it would be an
improvement.

Maybe it would be possible to merge the four beagle* BSPs that we have
into only one "beagle" or "am33xx" BSP with that change. That would
allow to support new Beagle variants like the Pocket Beagle without much
effort (most likely only a change in the FDT).

What do you think? Should I create a ticket for it?

Best regards

Christian


More information about the devel mailing list