MetaFlash
aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Zur Navigation springenZur Suche springen
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.0
lö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.