Installing Windows XP on TIM Alice Mobile IDOL

2021-01-03

/uploads/blog/2021/1609708627169-photo_2021-01-03_16-16-37.jpg

Introduction

TIM or Alice Mobile IDOL (Internet Device on Linux) is a MID (Mobile Internet Device) that was once produced back in 2007 - 2009 (rough time frame, not confirmed). IDOL is among one of the many OEM varients of the Compal Jax10. Most of the varients have the following spec:

The following is a (maybe incomplete) list of the models produced:

Many of the version comes with Linux pre-installed. However the hardware is capable of running Windows XP. This blog post is about installing Windows XP on to the Alice Mobile / TIM variant. Maybe also applies to Windows 7 or other Windows version as well.

I know this is probably 10 years too late, but if anyone happens to have this machine, hopefully this could be helpful.

Issues

I wrote this blog post, because it is not that straight-forward to install XP on to this machine. If you just install Windows XP and then install the drivers for P8880 on this TIM IDOL, you would likely encounter the following issues:

Actually this is exactly what you would encounter if you try to install Windows XP on P8860/ P8880 back in 2007. These are not driver issues, but rather EC firmware and BIOS issue. Early versions of EC and BIOS are not ready for Windows. Aigo released a series of BIOS updates to fix these issues.

Though you could install Aigo BIOS updates on to a Telco/ TIM machine, and it would fix the touchscreen and bluetooth issue. However, if would break the keyboard: the keymap between Telco version and US keybaord version is different. Almost everything is screwed up, you get enter, backspace, etc. in letter area, and TAB is now Fn. Basically you lose the keyboard.

So we will fix these issues by creating a BIOS that is Windows XP ready and works for Itelco machine. I am not sure about the fix for the WiFi yet.

Fix the keyboard issue

There are lot of BIOS versions floating online, I have tested several and here are the findings:

I hope there could be a BIOS update log so I know what was changed... The letter after the number seems to be the variant code, A is international version, C is the China Mobile version, E is the China Telecom version, and I is the TIM Alice Mobile version. Not sure about the S variant.

I have also made a backup of the original BIOS in the Telco machine, version 113I. For some reason the RO feature of phlash16 doesn't work on this machine, so I had to use a SPI Flash programmer to dump the BIOS.

To give some background information: On x86 laptops (and on this MID as well), the keyboard is controlled by the EC (Embedded Controller). The EC scans the keyboard, emulates the i8042 KBC and sends the keycode directly to the north bridge via LPC (ISA bus). The key mapping is done within the EC. So our target is the EC firmware rather than the BIOS.

Unfortunately, since the EC takes care of all these legacy IOs (including PS2, serial, etc.), EC is actually the key to fix touchscreen and bluetooth issue, so we couldn't just use the Itelco EC firmware with Aigo BIOS. We would have to inject the Italian keybaord mapping into the Aigo EC firmware.

The EC used on the IDOL is ENE KB926B, which contains a 8051-compatible core. The EC firmware is the first 128KB of the BIOS image. Luckily we could find the datasheet for KB926D online, though it is not the same model as used, but could be used as a reference. The keymap can be found in the datasheet in page 63 and 64.

A guess would be that the EC ROM contains a keymap table that would be copied to the EC RAM. We can try to find that table by searching 0xB3. Because 0xB3 means empty, it is likely to show up a lot in the table. And it turns out the guess is correct. By trial and error, the third table is the table that is actually used on the MID. By overwritting the table in Aigo EC with the one in TIM EC, the keymap could be fixed.

/uploads/blog/2021/1609703552738-image.png

Because EC ROM is not part of the actual BIOS (but part of BIOS image), the BIOS checksum doesn't care about the EC ROM. EC ROM itself is not protected by a checksum, so it is good to go at this stage. Go ahead and flash this in, and it would fix the issue.

WiFi issue

However, it seems like non of the BIOS version actually fix the WiFi issue. Note that I don't even know how to switch WiFi on in newer BIOS versions. At first they didn't show up in the OS at all. At one point I flashed back to 110A_T07 and it showed up, but the driver doesn't install. Then I reverted back to the 109E (latest), then somehow the OS detects the WiFi this time. But again the driver doesn't install. Switching it off in SmartKey does make it disappear, though. Turning it back on doesn't bring it back, as expected.

Given the WiFi works in Aigo P8880 in Windows XP with the same BIOS version, a reasonable guess is that the WiFi hardware is actaully different. But I don't currently own Aigo P8880 so I couldn't compare.

Sources