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-devsudo apt-get install zlib1g-devsudo apt-get install build-essentialsudo apt-get install subversioncd ~svn co svn://flashrom.org/flashrom/trunk flashromcd flashrommake- Neuen Club-Mate holen
sudo make installsudoedit /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_bcm2708modprobe 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 muss neu etikettiert werden, das alte Label wurde noch erstellt als der MetaFlash namenlos war
- 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.