[LinuxBIOS] [patch] flashrom: add support for Asus P5A

Luc Verhaegen libv at skynet.be
Thu May 17 03:21:44 CEST 2007


On Tue, May 15, 2007 at 12:34:12PM +0200, Peter Stuge wrote:
> On Tue, May 15, 2007 at 12:11:26PM +0200, Luc Verhaegen wrote:
> > The Asus P5A also seriously messes up pci-ids, there is nothing
> > dependable there, so people who want to use flashrom on this board
> > should use -m asus:p5a
> 
> Did anyone have any ideas for more reliable detection?
> 
> All I can come up with is to try to extract something meaningful from
> the current BIOS in RAM.. (not the flash chip)
> 

> //Peter

Since nobody bothered to reply, i will now give you my take on this (in 
as far as this wasn't clear already :)).

DMI is probably what is needed here.

But i kind of am against elaborately depending on another thing which 
is:
A) deprecated.
	http://www.dmtf.org/standards/dmi/

	"Due to the rapid advancement of DMTF technologies, such as CIM, 
	the DMTF defined an "End of Life" process for its Desktop Management 
	Interface (DMI), which ended March 31, 2005"

B) just as easy to bugger up. I'm mostly worried about the same board 
   having multiple names here, changed between bios revisions when 
   developers notice a typo, or because there was yet another marketing 
   u-turn.

   We're just pushing the "unable to identify" boundary slightly 
   further, as there will still be cases where dmidecode will be 
   insufficient.

Also, when evaluating the current situation:
* Agami aruma is linuxbios only, so name matched.
* epia-M is matched properly on pci-ids.
* asus A7V8X-MX is matched properly on pci-ids.
* Iwill is a buggered up.
* Asus P5A is buggered up too.

Now, the P5A is a socket 7 motherboard from 1999, it was hugely popular 
then, even though it only had half the L2 (L3 when using a K6-2/3) cache 
of other motherboards. The chance of people running into it again are 
very slim, i was already very amazed when a user popped up on irc 
talking about this device.

I think that asus people were little aware of pci-subsystem ids then. 
I'm not sure when they came into existence, but they weren't in the 
original pci spec.

So very few people will ever really bother about the P5A. I just added 
it because the hardware is running right here. It's also an ASUS_FLASH 
(first vector), which, i now found out first hand, is just as "trivial" 
as an AWDFLASH (second, full vector).

This only really leaves the Iwill board as the only board for which this 
is needed, and i don't think that this is enough of a reason to bump the 
complexity with dmi code _yet_.

On the other hand, if anyone writes up a suitable/cut down dmi decoder 
for linuxbios, one which:
* runs only when the bios isn't linuxbios.
* and runs after a failed pci subsystem id match as subsystem ids are a 
  lot cheaper.
* adds only a single string to the board enables struct
* a single function which returns the board name only: we probably don't 
  want to strcmp all dmi names in the table against all dmi devices 
  known. That would be rather painful and it could lead to false 
  positives.
* adds only a single string to the board enables struct.

Then no-one should have much in the way of objections, i just don't want 
to go there myself (well, maybe if i'm really bored, but really really 
bored). It might not be too much work, but it isn't going to be as 
trivial as pci subsystem ids.

I'm not sure what the license of dmi decode is yet.

Also, we do want to make the entries of the board enables all sit on 
single, but very long lines. I know that this is sniffed at (uwe :p), 
but believe me, you do want this when more entries are in there. And 
when you add another string, entries would cover three lines and would 
be even harder to read.

(my) Conclusion: DMI is probably where we need to go if it is really 
necessary, but i'm not too keen on doing this myself as it is just more 
of the same "vendor buggering up" nonsense :)

Luc Verhaegen.





More information about the coreboot mailing list