[coreboot] Laptop with PN800 chipset

Peter Stuge peter at stuge.se
Wed Mar 12 18:23:15 CET 2008

On Wed, Mar 12, 2008 at 08:44:41AM +0100, yannis le gal wrote:
> I found a technical documentation on the web :

Ok. That probably wasn't meant to end up on the web though.

> it talks about all chips used

Yes. I think this laptop is a fairly good laptop candidate for
coreboot if someone wants to have a go and is comfortable with
reverse engineering microcontroller assembly code.

> > laptops are not yet a viable target, except for one, because they
> > use special chips to control special features that are found only
> > on a laptop designed system, and normally these are not at all
> > documented.

Here the special chip is the Winbond W83L950D keyboard controller.
Actually this has started happening on desktop mainboards too. Me and
Uwe did some exploring of a board which had an SMSC superio with an
integrated microcontroller. When that board powered up the system CPU
was held in reset and only the microcontroller in the superio was
running, from system flash. There was a special sequence required to
release the system CPU from reset. Anyway, back to this system:

The W83L950D has an 8051 microcontroller and 40kb of flash memory
which contains the 8051 program. The chip also has a whole bunch
of other features and 72(!) GPIO pins. The data sheet can be found
on datasheetarchive.com.

The 8051 can be both good and bad, completely depending on how it's
software is written. Good if the 8051 handles all it's tasks
independently from the rest of the system. Bad if some software in
the system needs to interact with it. In any event the 8051 software
is most likely not documented anywhere, and certainly not somewhere

It is evident that the W83L950D 8051 code is responsible for quite a
few things, including:

* Fan control
* Keyboard and touchpad
* Special keys (Fn, power, lid, etc)
* Battery charging control and voltage monitoring
* Battery communication
* Power management
* Power good signalling to southbridge and hard drive
* Backlight level control
* Speaker beep simulation
* System wakeup (alarm)
* CPU temperature monitoring

Best case, all of these are completely autonomous.
Worst case, coreboot needs to help the 8051 do all of these things.

To do that the 40kb 8051 assembly program would need to be reverse
engineered. For comparison it took a year or so to reverse engineer
the 256kb firmware in the Xbox 360 DVD.

I think reality is somewhere in between the two extremes.

And then there's the PN800 which isn't supported. But at least there
are some developers involved in the project who already have contact
with VIA and are able to request information under NDA. If I've
understood correctly actually receiving the information will take at
least a few months however.

The rest of the system seems to be supported, probably well enough to
get some results once PN800 and the W83L950D firmware are
investigated and handled.

One person with appropriate background but no detailed knowledge of
these particular chips, say six-eight months of work.


More information about the coreboot mailing list