CHOST: i586 vs. i486 on AMD Geode LX

On my blog post about Installing Gentoo on ALIX.3D3 Mart Raudsepp made an interesting comment: He pointed out, that on AMD Geode CPUs it might be better to use i486 CHOST instead of my used i586, because the CPU is more like a i486 as far as instruction scheduling and times go.

This sounded interesting, so I googled for some benchmark test to measure differences. I found nbench, which measures performance by executing some typical algorithms and compares them to a Pentium 90 based system. So I installed it and run on the i586 CHOST system, then rebuild it completely to i486 CHOST and run it again. Continue reading →

GPIO on ALIX.3D3

The AMD CS5536 Geode companion on the ALIX.3D3 board has several general purpose input/output pins. Most of them have different functions as well, and there are some registers to set if they should be used as special function GPIO pins. The ALIX.3D3 uses 4 GPIO pins for 3 LEDs and 1 mode switch. Accessing the leds is very easy using the leds-alix2 driver, but they can be addressed as GPIO as well. There is already a driver for the GPIO pins in the kernel named cs5535_gpio.c, but it uses a non standard interface to communicate with kernel. So, I wrote a new kernel driver using the GPIO interface. Continue reading →

Using Geode's AES engine on ALIX.3D3

The AMD Geode LX800 CPU has an on-chip AES 128-bit crypto accelerations block and a true random number generator. Using this block for encryption and decryption is a lot faster than software implemented algorithms and it unloads the CPU. There are two main purposes where en/decryption is needed:

  • Storing files
  • Communication over network (IPSEC, OpenVPN, WPA2, ...)

I'll focus on the first point in this article using LUKS (Linux Unified Key Setup).

Continue reading →

Installing heat sink on ALIX.3D3

A few days ago, while I was compiling some stuff on my ALIX.3D3, I discovered a very high CPU temperature by chance:

M/B Temp:    +59 C  (low  =    +0 C, high =   +70 C)
CPU Temp:  +71.1 C  (low  =  +0.0 C, high = +70.0 C)   ALARM
Alix.3D3 with heat sink

Alix.3D3 with heat sink

I downloaded the datasheet of the AMD Geode LX800 CPU to check which temperatures are OK. On page 598 I found that my model (ALXD800EEXJ2VD) is fine for temperatures from 0 °C to 85 °C. Anyway I looked in my spare part box if I could find a suitable heat sink and fortunately I found a 40mm x 40mm x 9mm one. So I ordered some thermal adhesive and installed it.

Continue reading →