From flashrom
Revision as of 20:27, 4 May 2013 by GNUtoo (talk | contribs)
Jump to navigation Jump to search

I've no code in flashrom yet, but I made a flashrom compatible arduino programmer and participated in testing and documentation.

With regard to testing I've the following programmers:

  • (old) M4A785T-M with W25x80 DIP8(with and without coreboot) => works fine
  • (old) X60 with coreboot and MX25L1605 => works fine
  • Arduino uno and duemillanove (serprog based) => 5v only, which is problematic
  • openmoko debug board (FTDI based) => worked fine until broken in lastest svn at the time of writing,also had speed issues with some chips...
  • (really old) 3com Nic => works fine
  • some (really really old) reaktek cards but without chip on them.
  • linux_spi compatible hardwre... => works fine too so far...
  • An atahpt that doesn't work when adding its PCI IDs(but atahpt are known not to work according to the mailing list)
  • A very old AGP Nvidia card(I didn't test it yet)
  • A recent geforce 210 that didn't work when adding the PCI IDs

I've also the following hardware:

  • pomona clip for recovering my x60
  • some chips(2MB SO8(currently soldered), 16MB SO8)

Work in progress for the wiki

Don't try that, it's dangerous!!!!


Howto flash sgabios on an Nvidia video card

Use case

  • Servers often lack a screen.
  • Some blind people also lack a way to see the startup of the computer until the braille tablet is running.

This Howto will help you transform your Nvidia video card in a something that send to a serial port what would have been displayed on the screen. The card will probably stop working as a graphic card due to the lack of VGA option rom tailored to the card.

The user is expected to see the output trough a serial console.


Here's an example on how to flash sgabios on an Nvidia video card:

  • download flashrom
  • apply that patch:
diff --git a/gfxnvidia.c b/gfxnvidia.c
index d0a9feb..35e4687 100644
--- a/gfxnvidia.c
+++ b/gfxnvidia.c
@@ -110,7 +110,7 @@ int gfxnvidia_init(void)
        rpci_write_long(dev, 0x50, reg32);
        /* Write/erase doesn't work. */
-       programmer_may_write = 0;
+       //programmer_may_write = 0;
        register_par_programmer(&par_programmer_gfxnvidia, BUS_PARALLEL);
        return 0;
  • compile it
  • download and build sgabios
  • Identify your flash chip size by running:
flashrom -pgfxnvidia
  • save the content of the chip with:
flashrom -pgfxnvidia -r original.rom
  • pad sgabios to the size of your flashchip:
dd if=/dev/zero of=sgabios.rom bs=1 count=65536
dd if=10b79200.rom of=sgabios.rom conv=notrunc
  • flash it(and retry in case of failure, it has a high failure rate)

Howto flash ipxe on an 3com network card