Andy - AMD In Place

NDA with team


Mechanical Form Factor

Need to dissasemble X220 Laptop

Andy & Jane (Vince?)

Battery subsystem


USB Device. Is it USB directly to the camera moudule in the screen assembly or is the system split up somehow:

[    2.686313] usb 1-1.6: new high-speed USB device number 4 using ehci_hcd
[    2.784044] usb 1-1.6: New USB device found, idVendor=17ef, idProduct=4816
[    2.784049] usb 1-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.784052] usb 1-1.6: Product: Integrated Camera
[    2.784055] usb 1-1.6: Manufacturer: Chicony Electronics Co., Ltd.

Keyboard, Nipple & Trackpad

This needs to be properly understood, as we will be using this system.

How is this presented to the current system?

input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    5.535549] psmouse serio1: synaptics: Touchpad model: 1, fw: 7.4, id: 0x1e0b1, caps: 0xd047b3/0xb40000/0xa0000
[    5.535560] psmouse serio1: synaptics: serio: Synaptics pass-through port at isa0060/serio1/input0
[    5.586186] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input10
...Is this the the power key? or is this so that the ACPI system can send key presses...
[    8.656343] input: ACPI Virtual Keyboard Device as /devices/virtual/input/input11

Fingerprint scanner sits on USB

[    2.522587] usb 1-1.3: new full-speed USB device number 3 using ehci_hcd
[    2.615815] usb 1-1.3: New USB device found, idVendor=147e, idProduct=2016
[    2.615820] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.615824] usb 1-1.3: Product: Biometric Coprocessor
[    2.615827] usb 1-1.3: Manufacturer: UPEK

Sensors and Actuators

Lid Switch
[    4.533090] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1
[    4.533330] ACPI: Lid Switch [LID]

Sleep Button
- Where is this? is it even brought out to the outside?
[    4.533479] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input2
[    4.533490] ACPI: Sleep Button [SLPB]

Power Button
[    4.550330] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[    4.550343] ACPI: Power Button [PWRF]

LED Backlight
Claims to support 8 brightness levels (3bit) but in reality I see 16 Levels (and off as a 17th level!)
[    4.599001] thinkpad_acpi: http://ibm-acpi.sf.net/
[    4.599003] thinkpad_acpi: ThinkPad BIOS 6QET61WW (1.31 ), EC 6QHT31WW-1.12
[    4.599006] thinkpad_acpi: Lenovo ThinkPad X201, model 3323B61
[    4.605073] thinkpad_acpi: detected a 8-level brightness capable ThinkPad
[    4.605692] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver
[    4.605695] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default...

Radio (WiFi / BT etc) Master switch
[    4.605243] thinkpad_acpi: radio switch found; radios are disabled

[    4.605555] thinkpad_acpi: possible tablet mode switch found; ThinkPad in laptop mode

[    4.613102] Registered led device: tpacpi::thinklight                     << Screen / keyboard LED.
[    4.613202] Registered led device: tpacpi::power                          << Round symbol with stylizes Z in middle - front of screen only
[    4.613264] Registered led device: tpacpi::standby                        << Sleep LED on both sides of screen
[    4.613305] Registered led device: tpacpi::thinkvantage                   << AC power indicator both sides of screen

Extra buttons
(I think that these are mute, volume +/- and 'blue' think vantage). If so they are NOT part of the standard keyboard.
[    4.618408] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input4


Daniel will look at speccing this

We will need to supply some form of RTC.

However if we need to provide a coulomb counter for part of the battery managment subsystem then it would be logical to include the RTC there (as they will both need continuous power).

What bus do we place the RTC on?

Thermal & Power Managment System

Daniel will look at speccing this

I would like to handle thermal & power managment from a dedicated MCU.

The host OS should be able to read and control the TPMS from a single bus interface, with simple register read and write.

Thus reading any of the thermal sensors / fan speeds / power rails will actuly just read a register on the TPMS MCU.

The TPMS MCU will already be monitoring these devices (probably much more often!), and will convert from a RAW reading into SI units.

The TPMS will also 'filter' these readings and provide a weighted running average for example.

I guess this will mean that the TPMS should also have registers for 'RAW' values.

The TPMS should be able to control fan speed on behalf of the host system.

Under Automatic 'servo' control - if set by the host OS, and it will ramp up fan speeds according to temperature.

The TPMS can be configured to provide interrupts back to the host OS. Interrupts are for:

What Fan(s) do we need?

What thermal monitoring points should we have?

Power managment

Daniel will look at speccing this

In exactly the same way that the TPMS monitors and provides low pass filtering on temperature monitoring, the same should be true for Power monitoring.

We probably do not need to perform this for CPU and RAM power lines (I would expect that to be handled by the PMIC), but we should definately monitor all VCC rails NOT covered by the PMIC / PSU itself.

I guess we should also have upper and lower limits for power rails (or a % tolerance) that creates a warning if the limits are exceeded, then a wider tolerance that will shutdown the system and finally one that will remove power.

Alarm triggers

We probably should sample and hold worst case values (pre-filtered) that caused us to go into an alarm state...

Should this be non-volatile?

Clock tree

Debug Serial "consoles"

There must be at least one debug console that is brought to the outside world somehow.

This MUST be a dedicated port and MAY NOT be repurposed later - i.e. it should always be possible to get into the system via this console.

I am not against this being presented on a USB port.

If we can make one of the ports OTG via the hub this would be cool - i.e. in host mode you could access all the USB devices that are internal.

Such a host mode may need a physical (sic - missing word here?) to enable this mode


Steve McIntyre is dealing with this

Naming Scheme

Leif Lindholm is dealing with this


2014-09-14, MASS: Having read the above, I have the following comments:

2014-09-16, p2:

VeroApparatus: TaskList (last edited 2015-02-11 09:50:00 by AndySimpkins)