Hi Uwe,
Thanks for your explanation.
Provide datasheets.
We could provide the latest datasheet for our chips if any developer needs.
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?
And when a new superIO driver is completed, how can we test it?
Some help with embedded controllers in laptops/notebooks
So far, I've got no ideas with this part. :(
Superiotool
We could provide the information of our superIO output.
Anyway, I hope I can help a bit about our superIO chips' work in the future.
Best regards,
Gong Jun
=========================================================================================== The privileged confidential information contained in this email is intended for use only by the addressees as indicated by the original sender of this email. If you are not the addressee indicated in this email or are not responsible for delivery of the email to such a person, please kindly reply to the sender indicating this fact and delete all copies of it from your computer and network server immediately. Your cooperation is highly appreciated. It is advised that any unauthorized use of confidential information of Winbond is strictly prohibited; and any information in this email irrelevant to the official business of Winbond shall be deemed as neither given nor endorsed by Winbond.
Hi,
On Fri, Oct 12, 2007 at 08:10:16PM +0800, JGong@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.
http://linuxbios.org/Supported_Motherboards
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 developers.
- 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: http://tracker.linuxbios.org/trac/LinuxBIOS/browser/trunk/LinuxBIOSv2/src/su...
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 http://tracker.linuxbios.org/trac/LinuxBIOS/browser/trunk/LinuxBIOSv2/src/su... 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: http://linuxbios.org/Supported_Chipsets_and_Devices
The current code for the Winbond chips is here: http://tracker.linuxbios.org/trac/LinuxBIOS/browser/trunk/LinuxBIOSv2/src/su...
- 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: http://tracker.linuxbios.org/trac/LinuxBIOS/browser/trunk/util/superiotool/w...
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 ---
Uwe.