samedi 3 novembre 2018

Flash d'un chip BIOS avec un Arduino

Pré-requis : 

  • Un Arduino UNO dans ce cas-ci (ATMEGA328P)
  • Le chip du bios, Winbond W25Q64 dans ce cas-ci
  • D'un PC sous Linux (Debian, Ubuntu, Kali...).


Câblage :


Manipulation :

- Télécharger l'IDE Arduino
        $ sudo apt-get update
        $ sudo apt-get install arduino arduino-core 

- Télécharger les outils AVR
        $ sudo apt-get install avr-gcc avr-libc 

- Télécharger flashrom 
        $ sudo apt-get install flashrom 

- Télécharger Frser-duino 
        $ sudo apt-get install git 
        $ git clone --recursive git://github.com/urjaman/frser-duino 
        $ cd frser-duino 
        $ make u2

 - Transférer le programme dans l'Arduino
        # Connecter l'Arduino au PC
        $ make flash-u2

- Lancer flashrom
        # Sauvegarde de la rom présente sur le chip (facultatif)
        $ sudo flashrom -p serprog:dev=/dev/ttyACM0:115200 -r /chemin/romOri.rom

        # Télécharger la dernière version du BIOS
        # Sauvegarder la ROM quelque part sur le pc

        # Ecriture du chip avec la nouvelle version du bios
        $ sudo flashrom -p serprog:dev=/dev/ttyACM0:115200 -w /chemin/romNew.rom