After lurking here for while I thought i'd give something back:
With a bit hunting on the web (and hacking on my IA-1), I found the bits that control the Leds and the backlight. They are all in the same 32bit I/O port register:
I/O Port Address: 0xEE4C (Note This may vary if you use a bios other than the 3/1/00 compaq version)
Bit 0: Left Led (aka on/off) 1=Off, 0=On
Bit 7: Backlight control 1=On, 0=Off
Bit 8: Center Led (aka email) 1=On, 0=Off
Bit 14: Right Led (aka internet) 1=On, 0=Off
I would not have found this without the pioneering work that Robert Rose did for the iopener hacking community - Thanks Robert!
The three clues that I needed were:
- Links to Robert's code and comments: http://fastolfe.net/misc/ihack-resources.html (and others)
- The Via VT82C686a Southbridge datasheet http://www.via.com.tw/pdf/productinfo/686a.pdf
- And finally a "cat /proc/pci" on the jailbait distro revealed:
Bus 0, device 7, function 4:
Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 32).
The following is a Q&D example of user space code (must run as root) to toggle the bits for a second:
(Compile with gcc -O -o ltoggle ltoggle.c)
unsigned long i;
iopl(3); // Give Access to all ports
i = inl(0xEE4C);
i = i ^ 0x04181; // Toggle Leds and Backlight (Bits 0,7,8 and 14)
i = i ^ 0x04181; // Restore the bits
I plan to post more complete user space code to http://www.ia1hacking.com after I clean it up.