Similar to the hardware, the OSWALD is designed to allow students the freedom to work with and explore all aspects of computer science. It provides a safe environment for students to peek into the inner workings of the system from the initial boot loader to multimedia rich applications.
Soon there will be binary images that can be used to return your OSWALD to its original condition. Also updates will be put here as binaries. If you are adventurous you can also build this software by hand.
- Linux Kernel
- Root File System Image
This is the process to build all of the software for yourself. Note: this is a long, and often frustrating process. All of the following information is designed to run under linux, or a linux like environment (eg cygwin for windows, or MacOSX may work, untested).
We are using the OpenEmbedded environment for our embedded software development needs. By doing so we hope to take advantage of the development from similar projects such as the BeagleBoard and Pandora which are developing systems with similar hardware.
The OMAP kernel is a heavily patched kernel that is built from a branch of the main linux kernel source tree. This makes the build process fairly simple, but configuration is required, and your system may not boot correctly if you don't do this correctly.
<outline OMAP kernel build process>
U-Boot is a boot loader that handles the loading of the linux kernel.
X-Loader is the lowest piece of software that we build, it is written by TI. X-Loader is used in our system to setup very low-level function of the OMAP and start U-Boot.
Firmware on the OSWALD
Even though the main processor is the TI OMAP3 there are a number of smaller microcontrollers that also contain software. The firmware on these chips is available and the system has the ability to reprogram all of the peripheral chips.
The cypress microcontroller controls the touch pad and button inputs. It also communicates with the ATMega48 to gather information about the accelerometer and 5-way switch. This microcontroller interfaces to the OMAP via USB as multiple HID devices (joystick, keyboard and mouse).
The firmware can be complied using the latest version of PSoC Designer from Cypress (follow the link below). Programming of the CY8C24794 is not supported in current RADIX releases, this is planned for future releases.
The ATMega microcontroller monitors the accelerometer as well as the 5-way switch. It communicates to the cypress microcontroller through a UART interface. The source can be compiled using avr-gcc, which is available on multiple platforms, using the included makefile. Currently programming the mega is not supported by RADIX, but will be added in the future.
The TI cc2431 is the zigbee wireless solution. This chip contains an 8bit 8051 microcontroller core and the CC2420 radio core. This is a very flexible chip, and as such the current firmware is a UART interface that Linux will take advantage of. The firmware is based on TI's TIMAC software which provides the MAC layer of the networking stack. Programming of the cc2431 is not supported by current RADIX releases but is planned for the future. The firmware can be built using IAR Embedded Workbench (a evaluation version can be found here).
The OMAP3530 used for the OSWALD contains a graphics accelerator based on the SGX core from Imagination Technologies. PowerVR SGX530 is a new generation of programmable PowerVR graphics and video IP cores. Only the kernel portions of Linux drivers will be open source. The PowerVR folks will provide binary user-space libraries. Using the email contact at TIs Mobile Gaming Developers page there are Linux v2.6 OMAP3430 SDKs for OMAP3 Zoom and SDP supporting OpenGL ES v2.0, OpenGL ES v1.1 and OpenVG 1.0 available.