[LinuxBIOS] [PATCH] flashrom: board specific enables based on matching pci-ids.

Corey Osgood corey_osgood at verizon.net
Sun Mar 25 07:40:23 CEST 2007


Luc Verhaegen wrote:
> Hi,
> 
> This patch adds initial flashrom support for matching mainboards based 
> on pci-ids and pci subsystem/card ids.
> 
> I've been using subsystem/card ids as part of my unichrome driver for 
> years (xf86-video-unichrome/src/via_id.c). It is a very easy and 
> painless system for identifying boards.
> 
> It is relatively reliable, as it's always the same vendors that bugger 
> them up (like VIA and ECS). Most vendors do play nice. But, in order to 
> not mess up on devices like the EPIA-M, 2 sets of ids can be provided 
> here. This gives pretty absolute reliability. Boards that don't need 2 
> matches can just null the second set.
> 
> This code works correctly on:
> * EPIA-M with original BIOS. Matched and enabled correctly:
>   $ Found "VIA EPIA M/MII/...": Enabling flash write... OK.
> * EPIA-M with linuxbios: not matched - pci subsystem ids not set 
>   correctly (yet!) - but not a problem as linuxbios never disabled write 
>   in the first place.
> * Asus A7V400-MX now works correctly (the CrashFree BIOS). This involves
>   poking the Winbond LPC superio:
>   $ Found "Asus A7V8-MX SE": Enabling flash write... OK.
>   (This different name is correct. The difference is the northbridge 
>    revision and a sticker over "A7V8-MX SE")
> * Mitac 8999 laptop. Here GPIO15 enables the panel backlight, while on
>   EPIA-M it enables rom write. Hence this being highly incorrect here.
>   Requires nothing board specific and can flash np.
> * Shuttle SK43G requires nothing board specific.
> 
> There is one more VT823x based device in this house that might get 
> tested, and possibly implemented, this weekend.
> 
> The Island Aruma support is currently kept as is.
> 
> When no match has been made, or an error occured, then the name based 
> matching is still attempted.
> 
> I'm not a big fan of doing board specific things on the name alone. A
> user also shouldn't be allowed to specify a board name as that would 
> lead to very randomly poking bits with potentially not-so-fun 
> consequences. Testing here should imho involve editing flash_enable.c 
> directly.
> 
> Island aruma code can be converted with little effort, all it takes is 
> the output of lspci -vn.
> 
> Commit message, signed-off, etc are done git-style.
> 
> Luc Verhaegen.
> 

Luc, could you check out the PCChips M789CG for me and see if this can
support it? The stock bios is an AMIBIOS (if it matters), with a VT8235M
southbridge and ITE IT8705f Super I/O (docs here:
http://www.iteusa.com/product_info/file/pc/IT8705F_V.0.4.1.pdf). I've
tried both the epia-m and asus fixups that are currently in your patch,
but neither of them worked, and I know very little about the workings of
flashrom. Here's the line with my vendor ids:

{ 0x1106, 0x3177, 0x1106, 0x0000,  0x1106, 0x3123, 0x1106, 0x0000,
"PCChips M789CG(v3.0)", enable_flash_xxx },

Also, should we be moving these board-specific flash fixups off into
another file? I get the feeling we're going to have a lot of them in the
future.

Thanks,
Corey




More information about the coreboot mailing list