User:GNUtoo: Difference between revisions

From flashrom
Jump to navigation Jump to search
 
(37 intermediate revisions by the same user not shown)
Line 1: Line 1:
I've no code in flashrom yet, but I made a flashrom compatible arduino programmer and participated in testing and documentation.
I've no code in flashrom yet, but I made a flashrom compatible arduino programmer and participated in testing and documentation.
== Wiki contributions ==
My contributions to this wiki are available under the following licenses:
* [https://creativecommons.org/licenses/by-sa/3.0/legalcode CC-BY-SA 3.0]
* [https://creativecommons.org/licenses/by-sa/4.0/legalcode CC-BY-SA 4.0] or later
* [https://www.gnu.org/licenses/fdl.txt GFDL 1.3] or later
== My interests ==
* Easily available external flashers.
* BIOS->Coreboot flashing on the Libreboot compatible laptops.
* NIC flashing (to flash ipxe)
* GPU flashing (to flash sgabios)




Line 9: Line 21:
! Test result
! Test result
|-
|-
| Asus M4A785T-M mainboard
| Asrock E350M1
| W25x80 (DIP8)
|  
* A25L032
|
|
* Yes with the BIOS
* Works from coreboot
* Yes with coreboot
* Untested from the BIOS
|-
|-
| <s> Lenovo X60 </s>
| Asus F2A85M-PRO
| <s> MX25L1605 </s>
|
|
|
* Yes with coreboot.
|-
|-
| Lenovo X60
| Asus M4A785T-M
|
* W25x80 (DIP8)
|
* Works with the BIOS
* Works with coreboot
|-
| Lenovo Thinkpad T400
|
|
|
|
* Yes with coreboot.
|-
|-
| Lenovo X60T
| Lenovo Thinkpad T60
|
|
* MX25L1605D/MX25L1608D
|
|
* Yes with coreboot
* Works with coreboot
|-
|-
| Lenovo T60
| Lenovo Thinkpad X200
| MX25L1605D/MX25L1608D
|
|
|
* Yes with coreboot
|-
|-
| PCEngines Alix.1c
| Lenovo Thinkpad X200 Tablet
|
|
|
|
* Yes with coreboot
* Yes with the recovery LPC dongle
|-
|-
| Asus N71JQ
| Lenovo Thinkpad X60
|
|
* Requires some bit flippings in the flash descriptor.
* SST25VF016B
* Not tested internally.
|
* Works with coreboot.
|-
| Lenovo Thinkpad X60T
|
* MX25L1605D/MX25L1608D
|
* Works with coreboot
|-
| <s>PC Engines Alix.1c</s>
|
|
* Works with coreboot
* Works with the recovery LPC dongle
|-
| PC Engines APU1D4
|
|
|-
|}
|}


Line 50: Line 84:
{| class="wikitable"  border="1"
{| class="wikitable"  border="1"
! Device or programmer
! Device or programmer
! Flashrom driver
! Status
! Status
|-
|-
| Arduino uno (serprog)
| Arduino uno
| serprog
|
|
* Requires a 5v->3.3v level shifter for most current flash chips.
* Works fine
* Issues with the 8u2/8u3 when using the serial port at high speed.
|-
|-
| Arduino duemillanove (serprog)
| Arduino duemillanove
| serprog
|
|
* Requires a 5v->3.3v level shifter for most current flash chips.
* Works fine
* Works fine otherwise.
|-
|-
| Arduino Due ( no support for it yet )
| Arduino Due
| serprog
|
|
* 3.3v level output on SPI.
* Works fine
* Not working: No support for it yet.
|-
|-
| openmoko debug board (openmoko)
| openmoko debug board
| ft2232_spi:type=openmoko
|
|
* Works fine
* Works fine
|-
|-
| Old 3com PCI NIC
| 3com PCI NIC (10b7:9200)
| nic3com
|  
|  
* Works fine
* Works fine
|-
| Sata SII PCI card
|
|
* writing and erasing worked fine.
|-
|-
| Really old PCI realtek cards
| Really old PCI realtek cards
|
|
|
* No parallel chip to test
* No parallel chip to test
|-
|-
| Some GNU/Linux embedded boards (linux_spi)
| Bug 1.x and 2.x from buglabs
| linux_spi
|
|
* Backporting some mainline kernel patches is required on some very old (2.6.35) kernel for omap3.
* Backporting some mainline kernel patches is required on some very old (2.6.35) kernel for omap3.
* Works fine otherwise
* Works fine otherwise
|-
| <s> An atahpt PCI card </s>
|
|
*Didn't work when adding the PCI IDS, but the atahpt is known not to work according to the mailing list.
|-
| <s> old AGP Nvidia card </s>
|
|
* Worked with a patch (documented below)
|-
| Nvidia geforce 210 PCIe 16x card
|
|
* didn't work when adding the PIC IDs
|}
|}
* <s>An atahpt that doesn't work when adding its PCI IDs(but atahpt are known not to work according to the mailing list)</s>
* <s>A very old AGP Nvidia card => works with a patch</s>
* A recent geforce 210 that didn't work when adding the PCI IDs


I've also the following hardware:
I've also the following hardware:
* [http://www.tme.eu/en/details/pom-5250/test-clips/pomona/5250/ pomona clip] for recovering my x60
* SOIC-8 and SOIC-16 clips (like the [http://www.tme.eu/en/details/pom-5250/test-clips/pomona/5250/ pomona 5250])
* some chips(2MB SO8(currently soldered), 16MB SO8)
* some chips(2MB SO8(currently soldered), 16MB SO8)


Line 97: Line 152:
== Howto(Dangerous, not ready for the wiki) ==
== Howto(Dangerous, not ready for the wiki) ==


=== Howto flash sgabios on an Nvidia video card ===
* [[/Howto_flash_sgabios_on_an_Nvidia_video_card | 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.
 
==== Howto ====
 
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 ====
Clone ipxe:
$ git clone git://git.ipxe.org/ipxe.git
Then locate your network card with:
# lspci -nnnn
it will look like that:
[...]
00:0c.0 Ethernet controller [0200]: 3Com Corporation 3c905C-TX/TX-M [Tornado] [10b7:9200] (rev 78)
[...]
Note the pci ids that are here: [10b7:9200]
 
Ajust your settings in src/config/local/


Then build ipxe:
* [[/Howto_flash_ipxe_on_an_3com_network_card| Howto flash ipxe on an 3com network card]]
cd ipxe/src/
make bin/10b79200.rom


Then backup the existing rom:
* [[/Howto_flash_coreboot_on_a_pcengine_apu1 | Howto flash coreboot on an PC Engine APU1]]
cd ../../
flashrom -pnic3com -r 3com_rom_backup.rom
The flashchip size is written in the output of that command.


Then generate a rom that is exactly the size of your rom chip:
* [[/Benchmarks]]
dd if=/dev/zero of=bin/10b79200.rom.64k bs=1 count=65536
dd if=bin/10b79200.rom of=bin/10b79200.rom.64k conv=notrunc

Latest revision as of 22:32, 27 April 2023

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

Wiki contributions

My contributions to this wiki are available under the following licenses:

My interests

  • Easily available external flashers.
  • BIOS->Coreboot flashing on the Libreboot compatible laptops.
  • NIC flashing (to flash ipxe)
  • GPU flashing (to flash sgabios)


My hardware

Mainboard based programmers

Device or programmer Flash chip Test result
Asrock E350M1
  • A25L032
  • Works from coreboot
  • Untested from the BIOS
Asus F2A85M-PRO
Asus M4A785T-M
  • W25x80 (DIP8)
  • Works with the BIOS
  • Works with coreboot
Lenovo Thinkpad T400
Lenovo Thinkpad T60
  • MX25L1605D/MX25L1608D
  • Works with coreboot
Lenovo Thinkpad X200
Lenovo Thinkpad X200 Tablet
Lenovo Thinkpad X60
  • SST25VF016B
  • Works with coreboot.
Lenovo Thinkpad X60T
  • MX25L1605D/MX25L1608D
  • Works with coreboot
PC Engines Alix.1c
  • Works with coreboot
  • Works with the recovery LPC dongle
PC Engines APU1D4

External programmers

Device or programmer Flashrom driver Status
Arduino uno serprog
  • Works fine
Arduino duemillanove serprog
  • Works fine
Arduino Due serprog
  • Works fine
openmoko debug board ft2232_spi:type=openmoko
  • Works fine
3com PCI NIC (10b7:9200) nic3com
  • Works fine
Sata SII PCI card
  • writing and erasing worked fine.
Really old PCI realtek cards
  • No parallel chip to test
Bug 1.x and 2.x from buglabs linux_spi
  • Backporting some mainline kernel patches is required on some very old (2.6.35) kernel for omap3.
  • Works fine otherwise
An atahpt PCI card
  • Didn't work when adding the PCI IDS, but the atahpt is known not to work according to the mailing list.
old AGP Nvidia card
  • Worked with a patch (documented below)
Nvidia geforce 210 PCIe 16x card
  • didn't work when adding the PIC IDs

I've also the following hardware:

  • SOIC-8 and SOIC-16 clips (like the pomona 5250)
  • some chips(2MB SO8(currently soldered), 16MB SO8)

Work in progress for the wiki

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

Howto(Dangerous, not ready for the wiki)