[LinuxBIOS] Question about contribution to the LinuxBIOS

Uwe Hermann uwe at hermann-uwe.de
Fri Oct 12 17:05:12 CEST 2007


On Fri, Oct 12, 2007 at 08:10:16PM +0800, JGong at winbond.com wrote:
> >Provide datasheets.
> We could provide the latest datasheet for our chips if any developer
> needs.

That's great to hear!

> >SuperIO driver development
> According to the source code, it seems that the superIO driver will
> perform the action instead of the factory BIOS code, am I right?

Yes, it's not an OS-level driver, but rather some code in LinuxBIOS
itself. It runs at boot-time, milliseconds after the power-on.

> And when a new superIO driver is completed, how can we test it?

Hm, I think the only way is to do this on a supported mainboard. You
_can_ test the early COM1 serial init of the Super I/O on almost any
board (that part can work even before the RAM is initialized by LinuxBIOS),
but the other stuff (PNP init for LDNs) is done later and will likely only
be possible to test on boards (more or less) fully supported by LinuxBIOS.


> >Some help with embedded controllers in laptops/notebooks
> So far, I've got no ideas with this part. :(

OK, please let us know if/when you can find out more about this, that's
a very "hot topic" for LinuxBIOS, as we currently don't support any laptops.

> >Superiotool
> We could provide the information of our superIO output. 

Yep, thanks!

> Anyway, I hope I can help a bit about our superIO chips' work in the
> future.

Great, thanks! That's very appreciated.

For reference (for the LinuxBIOS mailing list subscribers), here's the
original mail:

--- snip ---
> Let me introduce myself to you, I am in charge of several Winbond
> hardware monitor chips driver work under Linux. I saw you mail posted on
> lm-sensors mailing list several days ago, I hope I can help in some
> degree although I am a newbie to the LinuxBIOS project. :)

That's great to hear, thanks!

Feel free to also post this to the LinuxBIOS mailing list, I'm sure
other people will appreciate to know about this...

> So here my question is: Could you tell me what can we (as the super I/O
> manufacturer) do to contribute to this project?

Well, depends a bit... Right now I can think of a few things:

 - Provide datasheets.

   Thankfully most (all?) are publically available, but if there are
   some chips without public datasheet it would be great to make those
   public, or (if not possible) to send them to one or two LinuxBIOS

 - For LinuxBIOS purposes we don't need to do too much initialization,
   the real hard work (as far as sensors are concerned) is done in the
   OS (i.e. by Linux and lm-sensors).

   What we usually need is a small "driver" which enables the COM
   port(s) so we can get serial debug ouput via a null-modem cable.
   Later in the boot process we init the keyboard parts, parallel ports,
   etc. etc. (the logical devices). Some very few parts need some
   special init for SMBus or HW monitoring/sensors. An example:

   In the past there was one driver per Super I/O, but we're working on
   creating generic drivers for Super I/Os in LinuxBIOS which can handle
   _all_ (or at least most) Super I/Os from one vendor.

   I've done such a driver for SMSC chips, see
   It supports ca. 15 different SMSC chips from the same code base,
   which is really a great improvement (vs. having 15 almost-indentical
   drivers with lots of duplicated code).

   I've started a similar driver for Winbond chips, too, but it's not
   yet finished. If you want I can post a first version of the code in
   a few days or so, any help with improving that code would be great!

   FYI, the currently supported Super I/Os in LinuxBIOS are listed here:

   The current code for the Winbond chips is here:

 - Some help with embedded controllers in laptops/notebooks would be
   very appreciated. One area where LinuxBIOS lacks support right now
   is laptops. Not a single laptop is supported, mainly because we don't
   have the knowledge / datasheets of how to handle the early boot
   process on laptops (where the ECs seem to play a big role).

   It would be absolutely fantastic if you could help us to support a
   laptop with already-working chipset and CPU and a Winbond EC where
   you know how to do the early boot-up stuff...

   Say, something recent with AMD CPU (K8) and a supported southbridge,
   e.g. NVIDIA CK804 or MCP55, and a Winbond EC + Super I/O. We probably
   don't support special chipsets for laptops yet, but apparently there's
   at least one or two laptops with "standard" desktop chipsets out there
   which would make a good first target.

 - Superiotool.

   This is a user-space tool (only loosely related to LinuxBIOS), which
   can detect Super I/Os and dump their register contents. Adding
   support for more Winbond chips to superiotool would be greatly
   appreciated, too (esp. for chips where we cannot get public datasheets).

   The current Winbond-status/-code is here:

   Also, as you probably have access to some boards with Winbond chips,
   posting the output of 'superiotool -d' to the mailing list would be
   nice (we're collecting a few sample register dumps for every chip for
   reference and easier debugging in case we have Super I/O related bugs).

 - Maybe other things I cannot think of right now. As I said, please
   also write to the mailing list, maybe other developers can provide
   further hints etc.

--- snip ---

http://www.hermann-uwe.de  | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20071012/6f715d52/attachment.sig>

More information about the coreboot mailing list