Introduction
Update Sept 16, 2023:
Several readers have been able to follow the guide and recreate the modded BIOS, and they are kind enough to send me the BIOS for people to download and use. I am attaching them here if people want to try themselves:
Modded BIOS by Daniel James: /uploads/blog/2023/20090514-102A_modified.ROM
Modded BIOS by Maurice Abuatta: /uploads/blog/2023/Modded Bios.rar
Thanks again to them!
Update Jun 13, 2023:
It has been a while since this was posted. I have got several emails asking for the BIOS of the device, here is the general respond:
So, in short, unfortunately I have lost the modified BIOS. I still have the original BIOS backup, and I have just uploaded it to the archive: https://archive.org/details/113i_20230614. If anyone would like to take a look or hack the BIOS you don't need to buy a SPI flash programmer/ probe yourself. I put my TIM IDOL into storage few months ago and now couldn't locate which box it is in after finding for several hours... (my bad) so dumping the BIOS from my machine is kind of out of the question.
Also keep in mind that new BIOS + my EC keymapping hack would only solve the bluetooth and touchscreen issue on Windows XP, the WiFi remains broken. This is the rather confusing part, I am really not sure what the root cause of it.
Regard, Wenting
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:
- Intel Atom Z500 processor (45nm, 1C1T, 800MHz)
- Intel US15W chipset (GMA 500 Integrated Graphics)
- 512MB DDR-2 memory
- 2 x Intel Z140 2GB SSD
- Bluetooth
- AirDio AD1111 WiFi (Marvell SD8686 SDIO chip)
- 4.8" 800x480 Touchscreen
- U-blox NEO-5Q GPS
- Dual Camera (3MP AF)
The following is a (maybe incomplete) list of the models produced:
- Aigo P8860
- Aigo P8861 (8GB SSD)
- Aigo P8861H (8GB SSD, HSDPA 3G)
- Aigo P8880 (8GB SSD, HSDPA 3G)
- Aigo P8880E (8GB SSD, EVDO 3G)
- Aigo P8880T (8GB SSD, TD-SCDMA 3G)
- Aigo P8888 (EVDO 3G)
- Aigo P8888W (HSDPA 3G)
- Aigo P8895 (HSDPA 3G)
- Compal Jax10
- Gigabyte M528 (HSDPA 3G)
- SDFR M! PC Pocket (HSDPA 3G, French version)
- Itelco TIM Alice Mobile IDOL (HSDPA 3G, Italian version)
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:
- Touchscreen doesn't work
- Bluetooth doesn't work
- WiFi driver won't install
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:
- 20081015 / 109A_T01: Phoenix logo, WiFi driver doesn't install, 2 unknown devices
- 20090219 / 110A_T07: aigo logo, WiFi driver doesn't install, 1 unknown device (PNP0F14)
- 20090318 / 003A: aigo logo, WiFi doesn't show up, 1 unknown device (PNP0F14)
- 20090514 / 102A: aigo logo, WiFi doesn't show up, no unknown device
- 20090709 / 107C: G3 logo (P8880T), WiFi doesn't show up, no unknown device
- 20091014 / 108C: G3 logo (P8880T), WiFi doesn't show up, no unknown device
- 20091125 / 109E: 天翼 logo (P8880E), WiFi doesn't show up, no unknown device
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.
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.