keyboard links for myself

Just not to forget, some usefull links or developers.

  • General info from intel

http://www.intel.ru/content/dam/www/public/us/en/documents/white-papers/controller-usage-low-power-designs-paper.pdf

  • old style x220 style keyboard controller:

Serial Interface
I2C-bus        H8S/2117 Common KBC Board
RET05B0004-0110     DEC.11.09
Rev.1.10

http://am.renesas.com/products/mpumcu/h8s/Application_Notes.jsp
http://documentation.renesas.com/doc/products/mpumcu/apn/ret05b0004_h8s2117ap.pdf

  • reverse engineered x220 style keyboard controller

http://dev.inversepath.com/download/public/embedded_systems_exploitation.pdf

https://www.google.es/search?q=Source+Equivalent+for+ThinkPad+Embedded+Controller+Firmware&ie=utf-8&oe=utf-8&gws_rd=cr&ei=-OgrVpqkDYX3UM6Wm8AN#q=site:ec.gnost.info

  • Phoenix Multikey 42i.pdf

MultiKey/42i Developer’s Technical Reference Keyboard Controller Firmware With An Embedded 8042 Microcontroller for a Super I/O Chipset

https://drive.google.com/file/d/0BxCxfmZ1r7IeWTRUMkQ5VG5Ua0k/view?usp=sharing

i think the SMSC one doesn’t follow the Phoenix Multikey system but it is good to know how things were donde before.

See how coreboot handles it:

=================================

Well it seems it handles it like a normal keyboard and the code related to it is really really small.

My problem is that the embedded controller won’t send the keys to the BIOS. It has to be changed before. but At least I have a place where I can debug it.

FDC37N972_KBDC

http://tracker.coreboot.org/trac/coreboot/browser/trunk/src/superio/smsc/fdc37n972/fdc37n972.h

#define FDC37N972_KBDC 0x07 /* Keyboard */

#define FDC37N972_MBX  0x09 /* Mailbox register */

case FDC37N972_KBDC:
pc_keyboard_init(&conf->keyboard);
break;

23    #include <device/device.h>
24    #include <pc80/keyboard.h>
25    #include <uart8250.h>
26
27    extern struct chip_operations superio_smsc_fdc37n972_ops;
28
29    struct superio_smsc_fdc37n972_config {
30
31            struct pc_keyboard keyboard;
32    };
33
34    #endif

but then coreboot doesn’t support it like the rest of the SMSC superio controllers

something changed from FDC37M????? to FDC37N?????

http://tracker.coreboot.org/trac/coreboot/browser/trunk/src/superio/smsc/smscsuperio/superio.c

28    #define FDC37B80X       0x42    /* Same ID: FDC37M70X (a.k.a. FDC37M707) */
49    #define FDC37B78X       0x44
50    #define FDC37B72X       0x4c
51    #define FDC37M81X       0x4d
52    #define FDC37M60X       0x47

144    /**
145     * Enter the configuration state by writing 0x55 to the config port.
146     *
147     * The Super I/O configuration registers can only be modified when the chip
148     * is in the configuration state. Thus, to program the registers you have
149     * to a) enter config mode, b) program the registers, c) exit config mode.
150     *

http://tracker.coreboot.org/trac/coreboot/browser/trunk/src/pc80/keyboard.c

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s