Difference between revisions of "User:GNUtoo"

From flashrom
Jump to: navigation, search
(Howto(Dangerous, not ready for the wiki))
 
(39 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.
  
With regard to testing I've the following programmers:
+
== Wiki contributions ==
* M4A785T-M with W25x80 DIP8(with and without coreboot) => works fine
+
My contributions to this wiki are available under the following licenses:
* <s>X60 with coreboot and MX25L1605</s> => works fine
+
* [https://creativecommons.org/licenses/by-sa/3.0/legalcode CC-BY-SA 3.0]
* X60 with coreboot
+
* [https://creativecommons.org/licenses/by-sa/4.0/legalcode CC-BY-SA 4.0] or later
* X60T with coreboot and MX25L1605D/MX25L1608D
+
* [https://www.gnu.org/licenses/fdl.txt GFDL 1.3] or later
* T60 with coreboot and MX25L1605 => works fine
+
 
* (old) Alix.1c with coreboot and the recovery LPC dongle
+
== My interests ==
* Arduino uno and duemillanove (serprog based) => 5v only, which is problematic
+
* Easily available external flashers.
* openmoko debug board (FTDI based) => works fine
+
* BIOS->Coreboot flashing on the Libreboot compatible laptops.
* (really old) 3com Nic => works fine
+
* NIC flashing (to flash ipxe)
* some (really really old) reaktek cards but without chip on them.
+
* GPU flashing (to flash sgabios)
* linux_spi compatible hardwre... => works fine too so far...
+
 
* <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>
+
== My hardware ==
* A recent geforce 210 that didn't work when adding the PCI IDs
+
=== Mainboard based programmers ===
 +
{| class="wikitable"  border="1"
 +
! 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 ===
 +
{| class="wikitable"  border="1"
 +
! Device or programmer
 +
! Status
 +
|-
 +
| Arduino uno (serprog)
 +
|
 +
* Requires a 5v->3.3v level shifter for most current flash chips.
 +
* Issues with the 8u2/8u3 when using the serial port at high speed.
 +
|-
 +
| Arduino duemillanove (serprog)
 +
|
 +
* Requires a 5v->3.3v level shifter for most current flash chips.
 +
* Works fine otherwise.
 +
|-
 +
| Arduino Due ( no support for it yet )
 +
|
 +
* 3.3v level output on SPI.
 +
* Not working: No support for it yet.
 +
|-
 +
| 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
 +
|-
 +
| Some GNU/Linux embedded boards (linux_spi)
 +
|
 +
* Backporting some mainline kernel patches is required on some very old (2.6.35) kernel for omap3.
 +
* 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
 +
|}
  
 
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
 
* [http://www.tme.eu/en/details/pom-5250/test-clips/pomona/5250/ pomona clip] for recovering my x60
 
* some chips(2MB SO8(currently soldered), 16MB SO8)
 
* some chips(2MB SO8(currently soldered), 16MB SO8)
 
  
 
== Work in progress for the wiki ==
 
== Work in progress for the wiki ==
Line 26: Line 143:
 
== 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/
+
* [[/Howto_flash_ipxe_on_an_3com_network_card| Howto flash ipxe on an 3com network card]]
  
Then build ipxe:
+
* [[/Howto_flash_coreboot_on_a_pcengine_apu1 | Howto flash coreboot on an PC Engine APU1]]
cd ipxe/src/
 
make bin/10b79200.rom
 
  
Then backup the existing rom:
+
* [[/Benchmarks]]
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:
+
* [[/Arduino_flasher_3v3]]
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 07:01, 10 May 2018

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 Status
Arduino uno (serprog)
  • Requires a 5v->3.3v level shifter for most current flash chips.
  • Issues with the 8u2/8u3 when using the serial port at high speed.
Arduino duemillanove (serprog)
  • Requires a 5v->3.3v level shifter for most current flash chips.
  • Works fine otherwise.
Arduino Due ( no support for it yet )
  • 3.3v level output on SPI.
  • Not working: No support for it yet.
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
Some GNU/Linux embedded boards (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:

  • 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(Dangerous, not ready for the wiki)