Drivers justification

The tablets contain a number of components which are not documented or utilized at all. We believe these components are holding back further development and advancement of the platform.

If we had drivers and documentation for each element we could get the most out of our devices.


[edit] PowerVR MBX

The OMAP2-based devices contain a 3D graphics processor, which is currently not used. We (the community) would like to ask Nokia to release a driver for this component so that we can develop more advanced GUIs, games, etc.

With desktop computers, 2D and 3D effects are becoming the norm (e.g. Windows Aero on Vista, Quartz on Mac OS X, and Compiz on Linux desktops). Embedded devices such as the iPhone are also using graphics acceleration (in that case a PowerVR too) to provide very polished, visually pleasing, and interesting interfaces to the their respective "desktops" and making that acceleration available to applications as well.

We believe that having access to the graphics acceleration hardware on the N8x0 will allow developers to create new and compelling interfaces, applications and games, which will give us a head-start in developing for future Nokia tablet devices (which will presumably have 3D acceleration available from the outset).

Therefore, we would like to ask Nokia to make available to us the PowerVR driver and OpenGL ES implementation. We understand that the driver in question has some issues (e.g. stability, awkward implementation details - console must be left open, etc.), but it would be a great help.

Ideally we would like the source code for the driver, support library and OpenGL ES library, but we understand that this is ImgTech's IP and therefore they will probably be unwilling to support this; as a second we would like a binary-blob style driver, which can then be used with different Linux kernels, but we do not know whether this is the form the current driver takes, or if it would entail extra effort and expense for Nokia (it would surely be in Texas Instruments' and ImgTech's best interest to do this, to push the use and acceptance of their technology, but that is a moot point in this discussion). As a last option, we would simply like access to the existing binary driver, support library and OpenGL ES library.

[edit] IVA

The OMAP2420 contains something called an IVA (imaging and video accelerator), which we are told[1] is able to do full motion video encoding/decoding at up to 30fps and also fast JPEG compression/decompression. This hardware is not used at present, but is apparently able to do quite a lot. The tablets are currently limited by the LCD controller bandwidth, but are also limited by the ARM CPU in the quality and size of the videos they are able to decode.

We would like to know why the IVA is not being used, and if possible to obtain technical information about it to allow us to program and use it. We understand that it consists of an ARM7 core plus some coprocessors to speed up a variety of operations including VLC (variable length coding/decoding) and iMX (programmable parallel operations).

Being able to use this IVA would greatly enhance the abilities of the tablets as a multimedia device for both photos/photo manipulation and video watching (currently videos must be encoded specifically for it, which is fine as they become smaller, but with cheaper microSD storage available now, the convenience of having the same data files outweighs the inefficiency of storage).

It's also likely that the additional processing power could enable better support of newer, more efficient codecs, such as h264, that currently require too much CPU power to be generally useful. As h.264 video podcasts intended for use with iPods are popular, but usually have bitrates too high for the tablets to handle, this would be a great improvement in usefulness.

[edit] 5 Mbit SRAM Framebuffer

The OMAP2420 contains a 5Mbit SRAM buffer which is meant to allow a VGA display.[1] According to our research, this buffer is not being utilised by this device. We believe this buffer may be used as a fast destination render target for the PowerVR. This onchip framebuffer will provide a very fast RGB surface for use in X11 and SDL gaming.

This is semi documented within dispc.c.

[edit] Bringing it together

On their own each component has limited purpose and use, however a work flow which involves rendering 3d objects with the PowerVR (or 2d from the CPU or IVA) onto the 5Mbit SRAM buffer which can then be converted from RGB to YUV and copied to main DDR memory by the IVA would allow us to achieve improved performance over the current all software approach.

We have software which successfully confirms there is enough bandwidth between the main memory and the Epson LCD chip using a specialised YUV mode, however it will require the help of the hardware components listed above to bring these benefits to all software running on the device.

Using specialized hardware should also drastically decrease battery consumption for demanding tasks, the likes of which are becoming more common on handheld platforms.

[edit] References

  1. 1.0 1.1