A few months ago, ITE open sourced the initial IT8500 EC patch on this mailing list (http://www.flashrom.org/pipermail/flashrom/2010-August/004382.html) so that we could check it in to the Chromium OS branch. It didn't quite make it upstream, and has been updated since then.

The attached patch basically does the same thing and has been deployed and tested to work on the Cr-48. There are a few caveats, though:
- The boot BIOS straps register must be modified to select LPC. This can be done with the attached "select_bbs.sh" script (Install iotools (http://code.google.com/p/iotools/) before using select_bbs). We worked around this in the Chromium OS branch by adding a bus argument to the programmer option, ie "flashrom -p internal:bus=lpc".

- It is very important to disable power management daemons before running Flashrom on this EC. I commented out the brute force method we use in the Chromium OS branch that disables powerd, since IIRC Carl-Daniel has a better approach in the works.

- Due to dependencies which may be introduced by the OEM/ODM EC firmware, the code is not guaranteed to work for anything other than the Cr-48.

- Carl-Daniel pointed out that the code might ignore the result of it87 init code. I've attempted to mitigate this in the patch (see internal.c), but I think it's just the symptom of a larger problem with how we detect and initialize IO bridges, and should probably be dealt with in a separate patch.

Here is the text from the original patch submission:
The attached patch adds generalized support for IT8500/IT8502 embedded controllers.
The patch was developed by Google for Flashrom r1082, but applies cleanly against r1130.
It was tested for IT8500E on a Chrome OS platform and may require modification
depending on ODM/OEM customization and EC firmware version.

This patch is not officially supported by ITE Tech Inc.


Signed-off-by: David Hendricks <dhendrix@google.com>
(The original patch also included a sign-off from Yung-chieh Lo @ Google and Donald Huang @ ITE).

--
David Hendricks (dhendrix)
Systems Software Engineer, Google Inc.