MetaFlash
| Sprache: | Deutsch | 
|---|
Subpages: 
MetaFlash hat keine Unterseiten.
| MetaFlash | |
|   | |
| Gestartet: | 15.03.2014 | 
| Involvierte: | User:A | 
| Status: | completed | 
| Beschreibung: | SPI Programmierer | 
| Shutdownprozedur: | |
| Zuletzt aktualisiert: | 16.03.2014 | 
Das MetaLab hat jetzt den MetaFlash, einen aus einem Raspberry Pi & (im Moment) einem Breadboard bestehenden SPI Programmierer. Der MetaFlash befindet sich in der µC Programmer-Lade im WhateverLab. Bisherig einziger Anwendungszweck: BIOS/UEFI SPI Chips neu programmieren. Im Moment können damit nur 8-pin DIP SPI Chips programmiert werden.
Anschlüsse, Verdrahtung, Spezifikationen
Verdrahtung
| RPi header | SPI flash | Jumper-Wire | 
|---|---|---|
| 17 | Vcc 3.3V | Blue | 
| 19 | DI / MOSI | Purple | 
| 21 | DO / MISO | Grey | 
| 23 | SCK | White | 
| 25 | GND | Black | 
| 24 | /CS / CS# | Green | 
Details
Die MAC des verwendeten Raspberry Pi: b8:27:eb:c1:8e:3e
Der Programmierer wurde nach einer Anleitung von win-raid.com zusammengestöpselt, welche auf der Raspberry Pi Doku von flashrom.org basiert.
Anleitung
Um mit dem MetaFlash einen UEFI SPI Chip neu zu programmieren:
Raspberry/MetaFlash Vorbereitung
- Raspberry Pi mit MetaFlash verdrahten (sollte bereits der Fall sein)
- Raspbian auf eine SD Karte einspielen
- Ethernet anschließen
- Entweder Monitor & Tastatur finden, oder später irgendwie via MAC die IP finden
- Raspberry Pi einschalten & einloggen, entweder lokal oder via ssh
- Sicherstellen dass die neueste Raspbian Version läuft. Wenn nicht-->apt-get dist-upgrade
- sudo apt-get install pciutils-dev
- sudo apt-get install zlib1g-dev
- sudo apt-get install build-essential
- sudo apt-get install subversion
- cd ~
- svn co svn://flashrom.org/flashrom/trunk flashrom
- cd flashrom
- make
- Neuen Club-Mate holen
- sudo make install
- sudoedit /etc/modprobe.d/raspi-blacklist.conf
- -->Den Eintrag "blacklist spi-bcm2708" mit einem # auskommentieren
- sudo shutdown -r now
ROM Binary Vorbereitung
- UEFI bzw. BIOS ROM Datei organisieren. Zum Beispiel vom der Mainboard Hersteller.
- Mit UEFITool sicherstellen dass das ROM das Format "Intel image" oder "XX region has intersection with YY region" (Bei Gigabyte Mainboards) hat.
- Wenn nein, mittels "Extract body" in UEFITool den capsule header entfernen, dann nochmal überprüfen.
- Den OPROMs des UEFI vielleicht ein Update spendieren wenn es sich um ein AMI UEFI handelt, mittels UBU
- Sicherstellen dass der SPI Chip für das Mainboard vorgesehen ist
- Sicherstellen, dass das ROM Binary file /exakt/ die Kapazität des SPI Chips hat
ROM flashen
- Der SPI Chip muss mit dem MetaFlash Breadboard verbunden werden. Der Pin 1 des SPI Chips sollte dabei mit dem Steckplatz 1e am Breadboard verbunden sein und der Pin 5 mit dem Steckplatz 4f. (Die restlichen 6 Verbindungen sollten somit logisch sein: 2-->2e, 3-->3e, 4-->4e, 7-->2f, 6-->3f)
- Dazu gibt es 2 Möglichkeiten:
- Den SPI Chip direkt in das Breadboard stecken (Vorsichtig, aber bis zum Anschlag!), d.h. die SPI Chip Kerbe zeigt dabei vom Breadboard weg
- Den SPI Chip via Jumper-Drähten an das Breadboard anschließen. Bei Mainboards mit nicht-gesockeltem Chip kann das zwangweise notwendig sein. Siehe dazu ISP auf flashrom.org
 
- ROM Datei auf den Raspberry Pi transferieren
- modprobe spi_bcm2708
- modprobe spidev
- Man KÖNNTE jetzt den Inhalt des Chips mittels sudo flashrom -E -V -p linux_spi:dev=/dev/spidev0.0löschen, das sollte aber nicht notwendig sein. Es sei hier nur erwähnt.
- Stromversorgung sicherstellen, Stoßgebete an alle zuhörenden Mächte des Universums absenden & den Flash Vorgang starten: sudo flashrom -w /foo/bar/YOUR_ROM_GOES.HERE -V -p linux_spi:dev=/dev/spidev0.0
- It's NOT hung. Flash+Verify brauchen approximately forever.
- You're done. sudo shutdown now, Chip entnehmen bzw. Verbindung trennen, testen.
- Wer bei einem ASRock Mainboard jetzt durch eine fehlende Firewire GUID belästigt wird, schaut bitte hier
Potential MetaFlash Improvements / TODO
- Der MetaFlash verfügt momentan über keine dezidierte SD Karte, dadurch muss sich jeder Raspbian immer neu aufsetzen.
- Aus dem vorherig genannten Punkt ergibt sich dass der MetaFlash keine statische IP im Metalab hat. Das ist auch lästig, weil man dadurch immer Monitor & Tastatur jagen muss, oder nach zur MAC gehörenden IP fahnden muss.
- Die Oberseite des Gehäuses des Raspberry Pi der für den MetaFlash verwendet wird hat keine Aussparung für den Raspberry Pi GPIO Anschluss & kann dadurch nicht verwendet werden. Sollte sich (sofern das Material geeeignet ist) via Geil-o-mat, Lazzor oder ansonsten via Handarbeit beheben lassen.
- Die Entkopplung via Elko ist zwar funktionsfähig, aber nicht perfekt. Eigentlich sollte hier ein Elko in Parallelschaltung mit einem Keramik Kondensator verwendet werden. Ist aber eigentlich wurscht.
- Der MetaFlash verwendet momentan ein Breadboard. Das ist wackelig und fehleranfällig. Irgendwann sollte man hierzu vielleicht eine Platine ätzen.
- Der MetaFlash kann momentan nur 8-pin DIP SPI Chips flashen. Eigentlich sollte sich das aber auf beliebige Chip-Dimensionen erweitern lassen.
- Der MetaFlash verwendet momentan direkt Jumper-Drähte zum Anschluss an den Raspberry Pi. Ein Header wäre hier hübscher.
- Ein SOIC Clip wäre für fix verlötete/nicht gesockelte Chips praktisch.