Penetrarea în memoria ROM BIOS mastering flash-ul spi №1

interfață SPI: Context istoric

După cum se știe, viteza de cip de memorie read-only
(Flash ROM), utilizat ca suport BIOS, nu are practic nici un efect asupra
performanța generală a computerului. Acest lucru se datorează faptului că la început
placi materne, BIOS este rescris (sau decomprimat) în operaționale
Memorie Shadow RAM și atunci când accesarea BIOS la sesiunea sistemului de operare, programul funcționează cu
RAM, mai degrabă decât ROM cip Flash. Prin urmare, spre deosebire de
procesor, memorie, subsistemul grafică, care este însoțită de evoluția
creșterea productivității, Flash ROM cip, și interfețele lor sunt dezvoltate în
cealaltă direcție. Iată principalele criterii de reducere a costurilor,
consumul de energie și amprenta de pe placa de bază. Metoda principală
atingerea acestor obiective - reducerea numărului de conductoare între chip BIOS
iar regulatorul este de obicei inclusă în „Southbridge“ chipset-ul. Din punct de vedere
mamă BIOS metodă de conectare cip, trei generații pot fi identificate
placi:

Rețineți că interfața LPC este, de asemenea, susținută de chipset-uri moderne și
designer de placa de baza poate fi folosit pentru a conecta cip BIOS
ca un LPC, și SPI. Domeniul de aplicare a interfeței SPI nu se limitează la
placa de baza de calculator. Cititorul atent poate nota
că, din cauza trecerii la un format de date seriale, fiecare dintre cele de mai sus
Interfețele folosesc mai multe cicluri de ceas pentru operațiunile de citire și scriere,
decât predecesorul său, care este plină de declin în performanță. Dar acest lucru nu este
Aceasta are loc, deoarece această circumstanță de frecvență tot mai mare de compensare, și
optimizarea formatelor de date. Magistrala ISA funcționează la frecvențe 5-8MHz, LPC pe
33MHz, SPI la 33-50 MHz.

arhitectura cip ROM SPI Flash

Scopul fiecărei descrierii opt contacte cip a tuturor comenzilor și
alte detalii sunt prezentate în [5].

Arhitectura controler SPI

Bit 0 (Ciclul SPI In Progress) - este utilizat pentru determinarea
finalizarea operațiunii de pe SPI autobuz. „0“ înseamnă că SPI anvelope este liber și programul
poate începe ciclul următor. „1“ înseamnă că anvelopa clasele de SPI, complet
tranzacție. Acest bit este setat și eliminate de hardware-ul, disponibil numai pentru
lectură.

Bit 1 (Rezervat) - nu este utilizat.

Bitul 2 (Ciclul Stare Done) - este setat la „1“ în hardware, în timp ce
tranzacția se încheie pe SPI autobuz. Pentru a reseta, programul trebuie să scrie „1“
biți activi.

Bit 3 (eroare Ciclul Flash) - este setat la "1" de hardware-ul, în cazul în care
tranzacție a avut loc efectuarea de erori: încercarea de protecție pentru a începe înregistrarea sau
după finalizarea tranzacției anterioare, înainte. Pentru a reseta, programul trebuie
pentru a scrie „1“ în acest bit.

Biți 5-7 (Rezervat) - nu este utilizat.

Bit 8 (Rezervat) - nu este utilizat. După cum sa arătat mai sus, biții 8-31
considerat pe 32 de biți cuvânt corespunde biților registrului 0-23 Software
Secvențierea de control Flash.

Bit 10 (Secvență Ciclul atomic) - în ordinea de transmisie pentru a efectua
înregistrarea tranzacției „1“ în acest bit previne evenimente externe intervin în
procesele care au loc în interfața SPI, atâta timp până la finalizarea trei
faza: transferul comenzii prefix, transferul de echipa de bază și finalizarea
punerea în aplicare a echipei de bază.

De notat că, astfel, a realizat unul dintre mecanismele de apărare împotriva
distorsiune accidentale chips-uri de conținut de BIOS. Așa-numitul prefix
comandă (de exemplu, activarea scrierii) trebuie să preceadă comenzi pentru schimbarea
conținut cip (de exemplu, scrie, Ștergere). După ce a primit codul de comandă care conține
„1“ în acest bit, toate cele trei faze, controlerul efectuează hardware-ul, fără a
intervenția CPU până la finalizarea echipei de bază.

Bit 11 (Sequence Prefix Opcode Pointer) - utilizând prefixul
comandă (când bitul 10 este setat la „1“, supra.), acest bit selectează unul din doi
octeți transmis ca o comandă prefix pentru SPI cip
Flash. Când „0“ selectează octetul scăzut Prefixul Opcode Configuration Înregistrare
Register, atunci când "1" - seniorului.

Biți 12-14 (Ciclul Opcode Pointer) - Acest câmp de biți care selectează una dintre
opt octeți, care vor fi menționate ca echipa de bază pentru cip
SPI Flash. Acești octeți sunt în registrul de configurare Opcode Meniu
Înregistrează-te.

Bit 15 (Rezervat) - nu este utilizat.

Biți 16-21 (Count octet de date) - specifică numărul de octeți de date pentru
citirea și scrierea de date operațiuni. Suma egală cu valoarea acestui câmp plus 1.
De exemplu: 000000b = 1 octet, 111111b = 64 octeți.

Bit 22 (Ciclul de date) - Setează disponibilitatea de octeți de date în instrucțiunea. "0"
Aceasta înseamnă că datele nu sunt disponibile (de exemplu, de a șterge comanda), „1“ înseamnă că
date este prezent (de exemplu, comanda de stare citit, datele sunt
registru de stare conținutul).

Bit 23 (SPI SMI # Activare) - permisiunea de a forma o cerere de întrerupere
Sistem de management al tranzacției după întrerupere, 0 = fumat complet,
1 = activat.

Biți 24-26 (Ciclul de frecvență SPI) - specifică rata de biți
sincronizare atunci când efectuează tranzacții pe SPI. Există două valori
(Restul sunt rezervate): = 20MHz 000 mld, 001B = 33MHz.

Biți 27-31 (Rezervat) - nu este utilizat.

Rețineți că pre-umplere opt octeți înregistrați Opcode Meniu
Configurare Înregistrare și doi octeți Prefix Opcode Configurare Registrul
Înregistrare efectuează BIOS-ul în timpul pornirii platformei. Prin urmare, în timpul formării de biți
câmpuri, selectați codul de comandă și prefixul, programul trebuie să scaneze
aceste înregistrări și pentru a găsi ceea ce numărul de acestea sunt necesare coduri
operațiuni. umple opțiuni variază, chiar printre placi de baza
un model, folosind diferite versiuni de BIOS. Unele utilitati suprascrie
Flash schimba conținutul acestor registre.

O descriere detaliată a tuturor registrelor și comenzile de controler SPI este dat în [3].
Descriere comandă SPI Flash cip este dat în [4-7]. Informațiile conținute
de mai sus ilustrează, de asemenea, exemple de asamblare incluse în articol.

Mecanisme de acces la Flash ROM și scrie protecție

În general, pentru a iniția ștergerea sau operațiuni de suprascriere microcircuit
BIOS-ul, software-ul trebuie să efectueze patru pași:

Luați în considerare detaliile acestor proceduri, mecanismele de protecție pe care le preveni
punerea în aplicare neautorizată, și, desigur, vulnerabilitatea acestor mecanisme.

surse de informații

Documentele electronice sunt disponibile pe site-ul
developer.intel.com.

1) Intel Low Pin Count (LPC) Interface Specification. Revizia 1.1. document
Numărul 251289-001.
2) Intel P965 Express Chipset Family Foaie de date - pentru memoria Intel 82P965
Controler Hub (MCH). Numărul documentului: 313053-001.
3) Intel I / O controler Hub 8 (ICH8) Familie Datasheet - Pentru Intel 82801HB
ICH8 și 82801HR ICH8R I / O Controler Hubs. Numărul documentului: 313056-001.

Documentele electronice sunt disponibile pe site-ul
www.superflash.com sau
ssti.com.

4) 1 Mbit serial SPI Sheet Flash SST25VF010 de date. Numărul documentului:
S71233-01-000.
5) 8 Mbit serial SPI Sheet Flash SST25VF080B de date. Numărul documentului:
S71296-01-000.

Documentele electronice sunt disponibile pe site-ul
winbond.com.tw.

6) W25X10A, W25X20A, W25X40A, W25X80A 1M-bit, 2M-bit, 4M-bit și 8M biți
Serial de memorie flash cu sectoarele 4KB și două ieșiri SPI Data Sheet.

Documentele electronice sunt disponibile pe site-ul
macronix.com.

7) MX25L802 8M-bit [8Mx1] CMOS serial Sheet Flash de date EEPROM.

Documentele electronice sunt disponibile pe site-ul
datakey.com.

8) SPI EEPROM Interface Specification. Part Number 223-0017-004 H. Revizia

Documentele electronice sunt disponibile pe site-ul
vtitechnologies.com.

9) SPI Interface Specification. Notă tehnică 15.

Documentele electronice sunt disponibile pe site-ul
pcisig.com.

Documente [11], [12] pe site-ul pcisig.com sunt disponibile numai pentru membrii PCI
Special Interest Group. Folosind motoarele de căutare, puteți găsi
aceste documente pentru descărcare gratuită.
10) Specificație PCI BIOS. Revizia 2.1.
11) PCI Local Bus Specificații. Revizia 3.0.
12) PCI-to-PCI Podul Arhitectura Specificații. Revizia 1.1.

Arată acest articol unui prieten: