Difference between revisions of "Embedded controller"

From coreboot
Jump to: navigation, search
m
m (Supported by coreboot: other ECs)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
[[File:Dell_latitude_cpi_a366xt_superio.jpg|thumb|right|SMSC FDC37N958FR]]
 +
[[File:Dell_latitude_c610_superio.jpg|thumb|right|SMSC LPC47N252]]
 +
 
The '''embedded controller''' is a small microcontroller typically used in laptops for various purposes.
 
The '''embedded controller''' is a small microcontroller typically used in laptops for various purposes.
  
Line 5: Line 8:
 
=== Renesas M3885/M3886 ===
 
=== Renesas M3885/M3886 ===
  
These ECs are supported by coreboot. There are several versions, with flash and with mask roms. Only the flash versions are update-able. These ECs are Family 740 based. A development environment including compiler and simulator is available from Renesas.
+
These ECs are supported by coreboot. There are several versions, with flash and with mask ROMs. Only the flash versions are update-able. These ECs are Family 740 based. A development environment including compiler and simulator is available from Renesas.
  
=== ENE KB3310/KB3910/KB3920 ===
+
=== Other ECs ===
 
+
ECs are supportable if you either have
Very common ECs in netbooks are the KB3310, KB3910 and KB3920 from [http://www.ene.com.tw/en/index.asp ENE Technology]. The ENE ECs are 8051 based.
+
* interface docs for the vendor supplied closed source EC firmware or
 
+
* complete docs for the EC, and docs for the hardware it should control (backlight, battery charging, power sequencing of the mainboard)
The Quanta IL1 reference design seems to use ENE3310 controller. The q1d25i.rom was examined. The EC code is on 0xFFF00000 on One Mini A110. Its 64KB big HOLE0.ROM.
+
* open source EC firmware
 
+
Some of the info (interface docs) can be reverse engineered to some degree, but that is very tedious.
More discussion and info on the ENE EC's:
+
 
+
* ENE [http://wiki.laptop.org/images/a/ab/KB3700-ds-01.pdf KB3700 datasheet].
+
* [http://forum.eeeuser.com/viewtopic.php?pid=99076 eeeUser Discussion]
+
* [http://code.google.com/p/eeetune/wiki/KBMemoryMap Memory map of ENE KB3310]
+
* [https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/ 8051 simulator]
+
* [http://dev.laptop.org/git?p=projects/olpcflash;a=blob;f=olpcflash.c;hb=HEAD OpenEC Firmware]
+
* [http://wiki.laptop.org/go/OpenEC OpenEC Project]
+
* [http://www.cagnulein.com/tmp/eee.c-20080812 Example code] that makes use of the KB3310's "Index IO" access functions.
+
 
+
=== Renesas H8 ===
+
 
+
Some ECs are H8 based.
+
 
+
* [http://www.gnuh8.org/ port of the GNU compiler suite to the H8]
+
* [http://wunderkis.de/h8-gcc/h8tools.tar.gz H8 bootloader]
+
* [http://h8300-hms.sourceforge.net/ sourceforge project for H8/300]
+
  
 
== Embedded controller table ==
 
== Embedded controller table ==
Line 43: Line 29:
  
 
|- bgcolor="#eeeeee"
 
|- bgcolor="#eeeeee"
| [http://www.ene.com.tw/en/index.asp ENE] || KB910 || EC || ? || ? || —
+
| [http://www.ene.com.tw/en/index.asp ENE] || KB910 || EC || 8bit, 8051 core || ? || —
 
|- bgcolor="#eeeeee"
 
|- bgcolor="#eeeeee"
| [http://www.ene.com.tw/en/index.asp ENE] || KB3310 || EC || ? || ? || —
+
| [http://www.ene.com.tw/en/index.asp ENE] || KB926C || EC || 8bit, 8051 core || ? || —
 +
|- bgcolor="#eeeeee"
 +
| [http://www.ene.com.tw/en/index.asp ENE] || KB926D || EC || 8bit, 8051 core || ? || —
 +
|- bgcolor="#eeeeee"
 +
| [http://www.ene.com.tw/en/index.asp ENE] || KB3310 || EC || 8bit, 8051 core || ? || —
 
|- bgcolor="#eeeeee"
 
|- bgcolor="#eeeeee"
 
| [http://www.ene.com.tw/en/index.asp ENE] || KB3700 || EC || 8bit, 8051 core || [http://wiki.laptop.org/images/a/ab/KB3700-ds-01.pdf] || —
 
| [http://www.ene.com.tw/en/index.asp ENE] || KB3700 || EC || 8bit, 8051 core || [http://wiki.laptop.org/images/a/ab/KB3700-ds-01.pdf] || —
Line 63: Line 53:
 
| [http://www.ite.com.tw/EN/index.aspx ITE] || IT8500 || EC & Super I/O || ? || ? || Source: [http://gmb.viatech.com.cn/resource/downloads/VGTF-Autumn/ITE/ITE.pdf]
 
| [http://www.ite.com.tw/EN/index.aspx ITE] || IT8500 || EC & Super I/O || ? || ? || Source: [http://gmb.viatech.com.cn/resource/downloads/VGTF-Autumn/ITE/ITE.pdf]
 
|- bgcolor="#eeeeee"
 
|- bgcolor="#eeeeee"
| [http://www.ite.com.tw/EN/index.aspx ITE] || IT8502E || EC & Super I/O || ? || ? || Source: [http://de.viatech.com/de/initiatives/spearhead/surfboard_c855/]
+
| [http://www.ite.com.tw/EN/index.aspx ITE] || IT8502E || EC & Super I/O || 8bit, 8032 core (8051 compatible) || on request || Source: [http://de.viatech.com/de/initiatives/spearhead/surfboard_c855/] [http://gmb.viatech.com/resource/jsp/PartnersSolutions/Partners/ITE/index.jsp]
 
|- bgcolor="#eeeeee"
 
|- bgcolor="#eeeeee"
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&ID=6,79 IT8510E/TE/G] || EC & Super I/O || 8bit, 8032 core (8051 compatible) || ? || —
+
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&ID=6,79 IT8510E/TE/G] || EC & Super I/O || 8bit, 8032 core (8051 compatible) || on request || —
 
|- bgcolor="#eeeeee"
 
|- bgcolor="#eeeeee"
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&ID=6,80 IT8511E/TE/G] || EC & Super I/O || 8bit, 8032 core (8051 compatible) || ? || —
+
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&ID=6,80 IT8511E/TE/G] || EC & Super I/O || 8bit, 8032 core (8051 compatible) || on request || —
 
|- bgcolor="#eeeeee"
 
|- bgcolor="#eeeeee"
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&ID=6,81 IT8512E/F/G] || EC & Super I/O || 8bit, 8032 core (8051 compatible) || ? || —
+
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&ID=6,81 IT8512E/F/G] || EC & Super I/O || 8bit, 8032 core (8051 compatible) || on request || —
 
|- bgcolor="#eeeeee"
 
|- bgcolor="#eeeeee"
 
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&ID=6,82 IT8513E/F/G] || EC & Super I/O || 8bit, 8032 core (8051 compatible) || ? || —
 
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&ID=6,82 IT8513E/F/G] || EC & Super I/O || 8bit, 8032 core (8051 compatible) || ? || —
Line 82: Line 72:
 
| [http://www.nuvoton.com/ Nuvoton] || PC97551<sup>3</sup> || EC || 16 bit, CR16B core || ? || &mdash;
 
| [http://www.nuvoton.com/ Nuvoton] || PC97551<sup>3</sup> || EC || 16 bit, CR16B core || ? || &mdash;
 
|- bgcolor="#eeeeee"
 
|- bgcolor="#eeeeee"
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/ECAndNBKeyboardController/W83L951DG_W83L951FG.htm W83L951DG/FG]<sup>4</sup> || EC || 8 bit, 8051 core || ? || &mdash;
+
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/ECAndNBKeyboardController/W83L951DG_W83L951FG.htm W83L951DG/FG]<sup>4</sup> || EC || 8 bit, 8051 core || on request || &mdash;
 
|- bgcolor="#eeeeee"
 
|- bgcolor="#eeeeee"
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/ECAndNBKeyboardController/W83L951ADG_W83L951AFG.htm W83L951ADG/AFG]<sup>4</sup> || EC || 8 bit, 8051 core || ? || &mdash;
+
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/ECAndNBKeyboardController/W83L951ADG_W83L951AFG.htm W83L951ADG/AFG]<sup>4</sup> || EC || 8 bit, 8051 core || on request || &mdash;
 
|- bgcolor="#eeeeee"
 
|- bgcolor="#eeeeee"
 
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/AdvancedEmbeddedController/WPC8769L.htm WPC8765L/WPC8769L]<sup>4</sup> || EC || 16 bit, ? core || ? || &mdash;
 
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/AdvancedEmbeddedController/WPC8769L.htm WPC8765L/WPC8769L]<sup>4</sup> || EC || 16 bit, ? core || ? || &mdash;
Line 131: Line 121:
 
</small>
 
</small>
  
== Embedded controller photos ==
+
== Resources ==
  
<gallery>
+
=== ENE KB3310/KB3910/KB3920 ===
File:Dell_latitude_cpi_a366xt_superio.jpg|SMSC FDC37N958FR
+
 
File:Dell_latitude_c610_superio.jpg|SMSC LPC47N252
+
Very common ECs in netbooks are the KB3310, KB3910 and KB3920 from [http://www.ene.com.tw/en/index.asp ENE Technology]. The ENE ECs are 8051 based.
</gallery>
+
 
 +
The Quanta IL1 reference design seems to use ENE3310 controller. The q1d25i.rom was examined. The EC code is on 0xFFF00000 on One Mini A110. Its 64KB big HOLE0.ROM.
 +
 
 +
More discussion and info on the ENE ECs:  
 +
 
 +
* [http://wiki.laptop.org/images/a/ab/KB3700-ds-01.pdf ENE KB3700 datasheet].
 +
* [http://forum.eeeuser.com/viewtopic.php?pid=99076 eeeUser Discussion]
 +
* [http://code.google.com/p/eeetune/wiki/KBMemoryMap Memory map of ENE KB3310]
 +
* [https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/ 8051 simulator]
 +
* [http://dev.laptop.org/git?p=projects/olpcflash;a=blob;f=olpcflash.c;hb=HEAD OpenEC Firmware]
 +
* [http://wiki.laptop.org/go/OpenEC OpenEC Project]
 +
* [http://www.cagnulein.com/tmp/eee.c-20080812 Example code] that makes use of the KB3310's "Index IO" access functions.
 +
 
 +
=== Renesas H8 ===
 +
 
 +
Some ECs are H8 based.
 +
 
 +
* [http://www.gnuh8.org/ Port of the GNU compiler suite to the H8]
 +
* [http://wunderkis.de/h8-gcc/h8tools.tar.gz H8 bootloader]
 +
* [http://h8300-hms.sourceforge.net/ Sourceforge project for H8/300]
  
 
== Toolchains ==
 
== Toolchains ==

Latest revision as of 00:27, 23 February 2011

SMSC FDC37N958FR
SMSC LPC47N252

The embedded controller is a small microcontroller typically used in laptops for various purposes.

Supported by coreboot

Renesas M3885/M3886

These ECs are supported by coreboot. There are several versions, with flash and with mask ROMs. Only the flash versions are update-able. These ECs are Family 740 based. A development environment including compiler and simulator is available from Renesas.

Other ECs

ECs are supportable if you either have

  • interface docs for the vendor supplied closed source EC firmware or
  • complete docs for the EC, and docs for the hardware it should control (backlight, battery charging, power sequencing of the mainboard)
  • open source EC firmware

Some of the info (interface docs) can be reverse engineered to some degree, but that is very tedious.

Embedded controller table

Vendor Model Type Architecture Datasheet(s) Comments
ENE KB910 EC 8bit, 8051 core  ?
ENE KB926C EC 8bit, 8051 core  ?
ENE KB926D EC 8bit, 8051 core  ?
ENE KB3310 EC 8bit, 8051 core  ?
ENE KB3700 EC 8bit, 8051 core [1]
ENE KB3910 EC 8bit, 8051 core  ?
ENE KB3920 EC 8bit, 8051 core  ?
ENE KB3925 EC 8bit, 8051 core  ?
ENE KB3926 EC 8bit, 8051 core  ?
Fujitsu MB90378 EC 16bit, F2MC-16LX family [2]
ITE IT8500 EC & Super I/O  ?  ? Source: [3]
ITE IT8502E EC & Super I/O 8bit, 8032 core (8051 compatible) on request Source: [4] [5]
ITE IT8510E/TE/G EC & Super I/O 8bit, 8032 core (8051 compatible) on request
ITE IT8511E/TE/G EC & Super I/O 8bit, 8032 core (8051 compatible) on request
ITE IT8512E/F/G EC & Super I/O 8bit, 8032 core (8051 compatible) on request
ITE IT8513E/F/G EC & Super I/O 8bit, 8032 core (8051 compatible)  ?
ITE IT8516 EC & Super I/O  ?  ? Source: [6]
ITE IT8301E External GPIO chip  ?  ?
Nuvoton 87541V EC 16 bit, CR16B core  ?
Nuvoton PC975513 EC 16 bit, CR16B core  ?
Nuvoton W83L951DG/FG4 EC 8 bit, 8051 core on request
Nuvoton W83L951ADG/AFG4 EC 8 bit, 8051 core on request
Nuvoton WPC8765L/WPC8769L4 EC 16 bit, ? core  ?
Nuvoton WPC8763L4 EC 16 bit, CR16CPlus core  ?
Nuvoton WPCE775x4 EC 16 bit, CR16CPlus core  ?
Nuvoton NPCE78nx EC  ?  ?
Renesas M388591 EC 8bit, 740 family [7]
Renesas M38867M8A1 EC 8bit, 740 family [8]
Renesas H8S/2117R2 EC 16 bit, H8S family  ? Source: [9]
Renesas H8S/2161B2 EC 16 bit, H8S family  ? Source: [10], [11], [12], [13]
Renesas H8S/2169AV 2 EC 16 bit, H8S family  ? Source: [14], [15], [16]
Renesas H8S/64F3169ATE102 EC 16 bit, H8S family  ?
NSC PC87570 EC & Super I/O  ?  ?
SMSC FDC37N958FR EC & Super I/O  ?  ?
SMSC LPC47N252 EC & Super I/O  ?  ?
SMSC MEC1308 EC 8bit, 8051 core  ?
SMSC KBC1122/KBC1122P EC & Super I/O 8bit, 8051 core  ?
SST SST79LF008 EC & Super I/O & BIOS flash 8bit, 8051 core  ?

1 Previously Mitsubishi, now Renesas.
2 Previously Hitachi, now Renesas.
3 Previously National (NSC), then Winbond, now Nuvoton.
4 Previously Winbond, now Nuvoton.

Resources

ENE KB3310/KB3910/KB3920

Very common ECs in netbooks are the KB3310, KB3910 and KB3920 from ENE Technology. The ENE ECs are 8051 based.

The Quanta IL1 reference design seems to use ENE3310 controller. The q1d25i.rom was examined. The EC code is on 0xFFF00000 on One Mini A110. Its 64KB big HOLE0.ROM.

More discussion and info on the ENE ECs:

Renesas H8

Some ECs are H8 based.

Toolchains

TODO

Public domain I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.

In case this is not legally possible:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.