[LinuxBIOS] Winflashrom -- Current Status

Peter Stuge peter at stuge.se
Wed Aug 15 12:25:51 CEST 2007


On Wed, Aug 15, 2007 at 03:37:28PM +0700, Darmawan Salihun wrote:
> > What is required to get into the southbridge driver stack?
> 
> I'm not too sure. I think a "PCI bus filter driver", but that
> would be an overkill at the moment.

Why?


> The other problem is it's not well documented (maybe not documented
> at all :-/). I hardly found information about such a thing. Even,
> experts in Windows driver development says so.

I found some:

MSDN > Win32 and COM Development > Windows Driver Kit > Kernel-Mode
Driver Architecture > Design Guide (check out Reference too)
http://msdn2.microsoft.com/en-us/library/ms796245.aspx


> > really not feasible? It would definately be the cleanest way.
> 
> Yes, this is the cleanest way. However, we have to "attach" our
> driver entry point functions, including "AddDevice" function upon
> the first time the southbridge driver is installed.

Well we don't have to be the _only_ driver. I don't expect that to
work well.


> More like we make a driver for Intel, NVidia, AMD or Via chipset
> driver.

I think separate drivers is OK but only one is of course ideal.


> The PnP manager will try to find the driver for the corresponding
> device the first time it's found after Windows installation and it
> seems once it has the driver we wouldn't be able to add our own
> "hook" into the driver stack. Unless we make the thing called "PCI
> bus filter driver" or other "Bus filter driver" as needed.

Right, this is what I thought seemed right.


> But, the problem goes back to the beginning, it's not even
> documented.

There is talk about it. Google has a few bits of info too, as usual.

One link is Doron Holan's blog: (Technical lead for WDF)
http://blogs.msdn.com/doronh/archive/2006/09/18/761325.aspx
(here talk about class filter drivers)


And there is an example, look for "toaster", in the WDK/DDK.

It was introduced in this old newsletter it seems:
http://www.microsoft.com/whdc/resources/news/newsletters/MHN_090803.htm


The WDK doesn't seem to be readily available without registration and
possibly payment but there is a DDK for 2k<=SP4 XP<=SP1 and 2003<=SP1
immediately downloadable from:

http://www.microsoft.com/whdc/DevTools/ddk/default.mspx

..which probably works just fine also for later versions.


There's documentation to go with the DDK too:

http://www.microsoft.com/whdc/DevTools/WDK/WDKdocs.mspx


There are also some interesting docs on the toaster:

http://www.microsoft.com/whdc/driver/foundation/toastersamp.mspx

http://download.microsoft.com/download/3/5/a/35a609bf-872a-4eb8-a0d6-a3e026f8485a/ToasterSamp.doc
Google HTML: http://209.85.135.104/search?q=cache:wRLrFGamtKYJ:download.microsoft.com/download/3/5/a/35a609bf-872a-4eb8-a0d6-a3e026f8485a/ToasterSamp.doc+msdn+filter+driver+sample&hl=en&ct=clnk&cd=13

http://download.microsoft.com/download/1/8/f/18f8cee2-0b64-41f2-893d-a6f2295b40c8/DW04006_WINHEC2004.ppt
Google HTML: http://209.85.135.104/search?q=cache:H-hy11oPjsIJ:download.microsoft.com/download/1/8/f/18f8cee2-0b64-41f2-893d-a6f2295b40c8/DW04006_WINHEC2004.ppt+msdn+filter+driver+sample&hl=en&ct=clnk&cd=14

The latter one is slides about driver distribution and installation.
They have tools for that too:

http://www.microsoft.com/whdc/driver/install/difxtools.mspx
http://www.microsoft.com/whdc/driver/install/DIFxtls.mspx
http://search.microsoft.com/results.aspx?mkt=en-US&setlang=en-US&q=difxtools


Another good resource is:

http://www.codeproject.com/system/driverdev4asp.asp

here part 4 in a driver writing tutorial series that goes into
healthy depth about technicalities, and provides code.


Have a look.


//Peter




More information about the coreboot mailing list