Milkymist software task list

Sébastien Bourdeauducq sebastien.bourdeauducq at
Sun Feb 21 06:37:38 EST 2010


here is a list of pending software sub-tasks. If you are interested in working 
on any of them, reply to devel at :)

* Implement a proper FDPIC loader with shared libraries support. Nico from 
OpenWrt is working on this and has already written untested code that should 
support statically linked binaries.
Once this code works, a possible technique is to use a statically linked FDPIC 
GDB server from which shared library support will be debugged.
* Find out why kernel 2.6.33 freezes when running Busybox init (and fix).
The symptom is the printing of the message:
"mount: mounting /dev/root on / failed: Invalid argument"
followed by a complete system lock-up. If this message is related to the 
crash, it suggests the mount API might have been changed between 2.6.26 (which 
works) and 2.6.33.
* Fix SLUB and SLOB memory allocators, which cause this error when enabled:
BUG: failure at mm/nommu.c:114/kobjsize()!
Kernel panic - not syncing: BUG!
If we choose to ignore these problems and keep SLAB, then we should find a way 
to handle allocations of large memory blocks (would be nice to run Qt4 apps ;)
* Fix poll() system call
* Fix /proc/self/exe
* Develop an ALSA driver for the AC'97 controller
* Develop a driver for the TMU2 accelerator
* Develop a driver for the PFPU accelerator (low-level driver only. VLIW 
instruction scheduling etc. should be done in userspace, see below).

* Develop an userspace library to use the TMU2. This should be 
straightforward. Maybe we'll want to integrate this into DirectFB (depending 
on the relevance and quality of DirectFB). In case the library is running on 
systems where the TMU2 is not available (e.g. a PC, for tests), a software or, 
better, OpenGL implementation should be used.
* Develop a userspace library to use the PFPU. This is a more complex task. 
The library should have a high-level interface that hides the gory details of 
using the PFPU (e.g. the library must include a compiler and VLIW scheduler). 
The API should be clean and well-thinked and the PFPU should be emulated on 
systems where it is not available.
Basically, we want a floating point numeric computation library that is able 
to use PFPU acceleration where it is available.
* Support TMU2 acceleration (via the library, maybe DirectFB) in Genode FX for 
scaling images and blitting/moving windows.

* Port the existing rendering code (in the SoC demo firmware, which was shown 
on video) to Linux, using SDL and the TMU2 and PFPU libraries plus ALSA for 
audio input.
* Implement more MilkDrop features (wave modes, per-pixel equations, ...).
* Test presets and, when they don't match the original, find out why.

* Develop a neat user-friendly interface using Genode FX. This is for high 
level programmers and usability experts :)
* Integrate the renderer into the Genode FX-based code.

* TMU2, PFPU and AC97 cores docs:
* Genode FX
* DirectFB
* ALSA API for AC97 codecs


More information about the discussion mailing list