Freescale MPC5121e
Cache Coherency
The cache coherency of the DMA arbiter in the v1.5 series of the 5121e is broken. It can be worked around if you use a MMU-less kernel, but for a standard Linux kernel be sure that you are working with at least the 2.0 version of the 5121e. Earlier versions will work for hours or day under moderate load before corrupting memory. The failure mode is rather subtle because the device IO cache can be corrupted, which may not immediately cause a kernel or userspace crash. File data and filesystems may be corrupted because bad data is written to dirty pages, which may eventually be written to disk. The problem is also not easily repeatable since it depends on the state of very low-level kernel buffers and the timing of data on the DMA bus. The best way to stress test for this kind of problem is to force the Linux kernel to use less than the full physical memory (kernel parameter mem=nn[MKG]), and stress the system with high process loads, high CPU loads, and high memory loads. Reboot the system periodically and run a full fsck to ensure that the filesystem is not corrupt.
framebuffer configuration
These are the settings for 480x272 video mode on the Freescale 5121e SOC (a PowerPC CPU core). Put these settings in the file, /etc/fb.modes. Then you should be able to set the mode using `fbset 480x272-60`.
mode "480x272-60" # D: 8.467 MHz, H: 16.800 kHz, V: 59.999 Hz geometry 480 272 480 272 32 timings 118105 8 8 2 4 8 2 vsync high csync high nonstd 10 rgba 8/16,8/8,8/0,8/24 endmode
You can fine-tune the position of the display output using `fbset -move`. This changes the values found in the timings section. After moving the display as shown below you can run `fbset -s` to see how this has changed the timings section.
fbset -move down fbset -move up fbset -move left fbset -move right
You can also investigate the values of kernel parameters in /sys/class/graphics/fb*. You can also modify some of the parameters live.
echo "0" > /sys/class/graphics/fbcon/cursor_blink echo "1" > /sys/class/graphics/fbcon/cursor_blink
You can rotate the display. Note that this will also update the console dimensions shown by `stty -a`:
echo "1" > /sys/class/graphics/fbcon/rotate echo "0" > /sys/class/graphics/fbcon/rotate