At least for the 810e, there is a "top block swap" feature:
The FWH flash part is a 512kB (or more) part, of 8x (or more) 64kB blocks. The top block can be write protected separately via a jumper. The other blocks can also be collectively write protected by a jumper.
The ICH (like a southbridge I guess) contains the CMOS batter-backed ram. One extra bit in CMOS can be set in the PCI config space of the ICH. The "top block swap" can be used for failsafe top or "boot" block updates to the FWH flash.
The update utility first copies the top block to the block just below it, and verifies the flash operation. It then sets the top block swap bit. From this point on, if a flash operation to the top block fails, the power is lost, etc, the system will boot to the 2nd from top block, which presumably contains enough code to load the flash utility from some device (floppy/cdrom?) Once the update has completed successfully, the top block swap is disabled.
I have verified this using setpci. On an IBM NetVista 6341-23U, it works in that the system fails to boot upon setting the bit, and clearing the CMOS restores the system to normal.
The chipset docs also advertise a power-on strapping option for the ICH, but the system I tested had neither that or the write protect jumpers. ( It did have a recovery jumper, but that seems to just activate recovery mode in the top block's boot block code, not force a top block swap)
I'm going to try using this as a way of trying out Linuxbios with a way to get back the vendor bios (the FWH is soldered on); flash linuxbios to the 2nd from top block, set the swap bit. If it breaks, clear CMOS, recover the vendor bios.
BTW - does anyone have any working code to flash an ST M50FW0404 or an Intel 82802? Uniflash/devbios don't support the ST at least.
-- Jeremy Jackson Coplanar Networks (519)897-1516 http://www.coplanar.net _______________________________________________ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios